mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
halloween npcs:
in forests, spawn harvester or dullahans or tricksters with custom halloween loot: facegourd, pumpkin_spice_brew, honeygourd
This commit is contained in:
parent
3b2eba1457
commit
1d98050f28
@ -0,0 +1,11 @@
|
||||
#![enable(implicit_some)]
|
||||
(
|
||||
name: Name("Dullahan"),
|
||||
body: RandomWith("dullahan"),
|
||||
alignment: Alignment(Enemy),
|
||||
loot: LootTable("common.loot_tables.calendar.halloween.halloween_dullahan"),
|
||||
inventory: (
|
||||
loadout: FromBody,
|
||||
),
|
||||
meta: [],
|
||||
)
|
@ -0,0 +1,11 @@
|
||||
#![enable(implicit_some)]
|
||||
(
|
||||
name: Name("Harvester"),
|
||||
body: RandomWith("harvester"),
|
||||
alignment: Alignment(Enemy),
|
||||
loot: LootTable("common.loot_tables.calendar.halloween.halloween_harvester"),
|
||||
inventory: (
|
||||
loadout: FromBody,
|
||||
),
|
||||
meta: [],
|
||||
)
|
@ -0,0 +1,24 @@
|
||||
#![enable(implicit_some)]
|
||||
(
|
||||
name: Name("Trickster"),
|
||||
body: RandomWith("draugr"),
|
||||
alignment: Alignment(Enemy),
|
||||
loot: LootTable("common.loot_tables.calendar.halloween.trickster"),
|
||||
inventory: (
|
||||
loadout: Inline((
|
||||
inherit: Asset("common.loadout.calendar.halloween.trickster"),
|
||||
active_hands: InHands((Choice([
|
||||
(1, Item("common.items.weapons.tool.broom")),
|
||||
(1, Item("common.items.weapons.tool.hoe")),
|
||||
(1, Item("common.items.weapons.tool.pickaxe")),
|
||||
(1, Item("common.items.weapons.tool.rake")),
|
||||
(1, Item("common.items.weapons.tool.shovel-0")),
|
||||
(1, Item("common.items.weapons.tool.shovel-1")),
|
||||
]), None)),
|
||||
)),
|
||||
items: [
|
||||
(10, "common.items.consumable.potion_big"),
|
||||
],
|
||||
),
|
||||
meta: [],
|
||||
)
|
13
assets/common/items/armor/misc/head/facegourd.ron
Normal file
13
assets/common/items/armor/misc/head/facegourd.ron
Normal file
@ -0,0 +1,13 @@
|
||||
ItemDef(
|
||||
name: "Pumpkin Head.",
|
||||
description: "Halloween attire.",
|
||||
kind: Armor((
|
||||
kind: Head,
|
||||
stats: Direct((
|
||||
energy_max: Some(4.0),
|
||||
energy_reward: Some(0.04),
|
||||
)),
|
||||
)),
|
||||
quality: Common,
|
||||
tags: [],
|
||||
)
|
22
assets/common/items/food/honeycorn.ron
Normal file
22
assets/common/items/food/honeycorn.ron
Normal file
@ -0,0 +1,22 @@
|
||||
ItemDef(
|
||||
name: "Honeycorn",
|
||||
description: "Sweeet",
|
||||
kind: Consumable(
|
||||
kind: Food,
|
||||
effects: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 4.0,
|
||||
duration: Some((
|
||||
secs: 5,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Common,
|
||||
tags: [Food],
|
||||
)
|
22
assets/common/items/food/pumpkin_spice_brew.ron
Normal file
22
assets/common/items/food/pumpkin_spice_brew.ron
Normal file
@ -0,0 +1,22 @@
|
||||
ItemDef(
|
||||
name: "Pumpkin Spice Brew",
|
||||
description: "Brewed from moldy pumpkins.",
|
||||
kind: Consumable(
|
||||
kind: Drink,
|
||||
effects: [
|
||||
Buff((
|
||||
kind: Saturation,
|
||||
data: (
|
||||
strength: 10.0,
|
||||
duration: Some((
|
||||
secs: 5,
|
||||
nanos: 0,
|
||||
)),
|
||||
),
|
||||
cat_ids: [Natural],
|
||||
)),
|
||||
]
|
||||
),
|
||||
quality: Moderate,
|
||||
tags: [Food],
|
||||
)
|
31
assets/common/loadout/calendar/halloween/trickster.ron
Normal file
31
assets/common/loadout/calendar/halloween/trickster.ron
Normal file
@ -0,0 +1,31 @@
|
||||
#![enable(implicit_some)]
|
||||
(
|
||||
head: Choice([
|
||||
(1, Item("common.items.armor.misc.head.bamboo_twig")),
|
||||
(1, Item("common.items.armor.misc.head.boreal_warhelm")),
|
||||
(1, Item("common.items.armor.misc.head.crown")),
|
||||
(1, Item("common.items.armor.misc.head.facegourd")),
|
||||
(1, Item("common.items.armor.misc.head.headband")),
|
||||
(1, Item("common.items.armor.misc.head.helmet")),
|
||||
(1, Item("common.items.armor.misc.head.hog_hood")),
|
||||
(1, Item("common.items.armor.misc.head.hood")),
|
||||
(1, Item("common.items.armor.misc.head.hood_dark")),
|
||||
(1, Item("common.items.armor.misc.head.mitre")),
|
||||
(1, Item("common.items.armor.misc.head.spikeguard")),
|
||||
(1, Item("common.items.armor.misc.head.straw")),
|
||||
(1, Item("common.items.armor.misc.head.wanderers_hat")),
|
||||
(1, Item("common.items.armor.misc.head.winged_coronet")),
|
||||
(1, Item("common.items.armor.misc.head.bandana.red")),
|
||||
(1, Item("common.items.armor.misc.head.bandana.thief")),
|
||||
]),
|
||||
chest: Choice([
|
||||
(1, Item("common.items.armor.leather_plate.chest")),
|
||||
]),
|
||||
legs: Choice([
|
||||
(1, Item("common.items.armor.leather_plate.pants")),
|
||||
]),
|
||||
feet: Choice([
|
||||
(1, Item("common.items.armor.misc.foot.sandals")),
|
||||
(1, Item("common.items.armor.cloth_blue.foot")),
|
||||
]),
|
||||
)
|
@ -0,0 +1,4 @@
|
||||
[
|
||||
(1.0, Item("common.items.food.pumpkin_spice_brew")),
|
||||
(5.0, Item("common.items.food.honeycorn")),
|
||||
]
|
@ -0,0 +1,9 @@
|
||||
[
|
||||
// Weapons
|
||||
(5.0, LootTable("common.loot_tables.weapons.tier-3")),
|
||||
// Armor
|
||||
(5.0, LootTable("common.loot_tables.armor.tier-3")),
|
||||
// Misc
|
||||
(2.0, Item("common.items.armor.misc.head.facegourd")),
|
||||
(2.0, Item("common.items.lantern.pumpkin")),
|
||||
]
|
@ -0,0 +1,4 @@
|
||||
[
|
||||
(1.0, Item("common.items.food.pumpkin_spice_brew")),
|
||||
(5.0, Item("common.items.food.honeycorn")),
|
||||
]
|
@ -2858,6 +2858,10 @@
|
||||
"voxel.armor.misc.head.spikeguard",
|
||||
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.3,
|
||||
),
|
||||
Simple("common.items.armor.misc.head.facegourd"): VoxTrans(
|
||||
"voxel.armor.misc.head.facegourd",
|
||||
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.3,
|
||||
),
|
||||
Simple("common.items.armor.misc.head.winged_coronet"): VoxTrans(
|
||||
"voxel.armor.misc.head.winged_coronet",
|
||||
(0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.3,
|
||||
@ -3129,6 +3133,14 @@
|
||||
"voxel.object.sunflower_ice_tea",
|
||||
(0.0, 0.0, 0.0), (-50.0, -60.0, -35.0), 0.9,
|
||||
),
|
||||
Simple("common.items.food.pumpkin_spice_brew"): VoxTrans(
|
||||
"voxel.object.pumpkin_spice_brew",
|
||||
(0.0, 0.0, 0.0), (-50.0, -60.0, -35.0), 0.9,
|
||||
),
|
||||
Simple("common.items.food.honeycorn"): VoxTrans(
|
||||
"voxel.object.honeycorn",
|
||||
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
|
||||
),
|
||||
Simple("common.items.food.carrot"): VoxTrans(
|
||||
"voxel.sprite.carrot.carrot",
|
||||
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
|
||||
|
BIN
assets/voxygen/voxel/armor/misc/head/facegourd.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/head/facegourd.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -960,6 +960,55 @@
|
||||
vox_spec: ("armor.misc.head.spikeguard", (-3.0, -5.0, 7.0)),
|
||||
color: None
|
||||
),
|
||||
//
|
||||
(Human, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-4.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Human, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-4.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Elf, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-3.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Elf, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-3.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Orc, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-3.0, -3.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Orc, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-3.0, -6.0, 2.0)),
|
||||
color: None
|
||||
),
|
||||
(Dwarf, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-5.0, -4.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Dwarf, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-3.0, -3.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Draugr, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-6.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
(Draugr, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-6.0, -5.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
(Danari, Female, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-2.0, -5.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
(Danari, Male, "common.items.armor.misc.head.facegourd"): (
|
||||
vox_spec: ("armor.misc.head.facegourd", (-2.0, -5.0, -1.0)),
|
||||
color: None
|
||||
),
|
||||
// Merchant Turban
|
||||
(Human, Male, "common.items.armor.merchant.turban"): (
|
||||
vox_spec: ("armor.merchant.turban", (-4.0, -7.0, -6.0)),
|
||||
|
@ -720,6 +720,7 @@
|
||||
Simple("common.items.armor.misc.head.crown"): "voxel.armor.misc.head.crown",
|
||||
Simple("common.items.armor.misc.head.mitre"): "voxel.armor.misc.head.mitre",
|
||||
Simple("common.items.armor.misc.head.spikeguard"): "voxel.armor.misc.head.spikeguard",
|
||||
Simple("common.items.armor.misc.head.facegourd"): "voxel.armor.misc.head.facegourd",
|
||||
Simple("common.items.armor.misc.head.winged_coronet"): "voxel.armor.misc.head.winged_coronet",
|
||||
Simple("common.items.armor.misc.head.boreal_warhelm"): "voxel.armor.misc.head.boreal_warhelm",
|
||||
Simple("common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): "voxel.armor.misc.head.woolly_wintercap",
|
||||
@ -793,6 +794,8 @@
|
||||
Simple("common.items.food.apple_stick"): "voxel.object.apple_stick",
|
||||
Simple("common.items.food.mushroom_stick"): "voxel.object.mushroom_stick",
|
||||
Simple("common.items.food.sunflower_icetea"): "voxel.object.sunflower_ice_tea",
|
||||
Simple("common.items.food.pumpkin_spice_brew"): "voxel.object.pumpkin_spice_brew",
|
||||
Simple("common.items.food.honeycorn"): "voxel.object.honeycorn",
|
||||
Simple("common.items.food.carrot"): "voxel.sprite.carrot.carrot",
|
||||
Simple("common.items.food.tomato"): "voxel.sprite.tomato.tomato",
|
||||
Simple("common.items.food.lettuce"): "voxel.sprite.cabbage.cabbage",
|
||||
|
BIN
assets/voxygen/voxel/object/honeycorn.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/object/honeycorn.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/object/pumpkin_spice_brew.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/object/pumpkin_spice_brew.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
17
assets/world/wildlife/spawn/calendar/halloween/halloween.ron
Normal file
17
assets/world/wildlife/spawn/calendar/halloween/halloween.ron
Normal file
@ -0,0 +1,17 @@
|
||||
SpawnEntry (
|
||||
name: "Halloween NPCs",
|
||||
note: "Search for them in forests.",
|
||||
rules: [
|
||||
Pack(
|
||||
groups: [
|
||||
(1, (1, 1, "common.entity.calendar.halloween.aggressive.halloween_harvester")),
|
||||
(1, (4, 8, "common.entity.calendar.halloween.aggressive.halloween_dullahan")),
|
||||
(1, (6, 10, "common.entity.calendar.halloween.aggressive.trickster")),
|
||||
|
||||
],
|
||||
spawn_mode: Land,
|
||||
calendar_events: Some([Halloween]),
|
||||
day_period: [Night, Morning, Noon, Evening],
|
||||
),
|
||||
],
|
||||
)
|
@ -167,6 +167,10 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
"world.wildlife.spawn.calendar.christmas.tundra.core",
|
||||
|c, _col| close(c.temp, CONFIG.snow_temp, 0.15) * BASE_DENSITY * 0.5,
|
||||
),
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, _col| close(c.temp, CONFIG.snow_temp, 0.15) * BASE_DENSITY * 0.5,
|
||||
),
|
||||
// Snowy animals
|
||||
("world.wildlife.spawn.tundra.snow", |c, col| {
|
||||
close(c.temp, CONFIG.snow_temp, 0.3) * BASE_DENSITY * col.snow_cover as i32 as f32 * 1.0
|
||||
@ -181,6 +185,15 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
* 1.0
|
||||
},
|
||||
),
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, col| {
|
||||
close(c.temp, CONFIG.snow_temp, 0.3)
|
||||
* BASE_DENSITY
|
||||
* col.snow_cover as i32 as f32
|
||||
* 1.0
|
||||
},
|
||||
),
|
||||
// Forest animals
|
||||
("world.wildlife.spawn.tundra.forest", |c, col| {
|
||||
close(c.temp, CONFIG.snow_temp, 0.3) * col.tree_density * BASE_DENSITY * 1.4
|
||||
@ -190,6 +203,10 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
"world.wildlife.spawn.calendar.christmas.tundra.forest",
|
||||
|c, col| close(c.temp, CONFIG.snow_temp, 0.3) * col.tree_density * BASE_DENSITY * 1.4,
|
||||
),
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, col| close(c.temp, CONFIG.snow_temp, 0.3) * col.tree_density * BASE_DENSITY * 1.4,
|
||||
),
|
||||
// **Taiga**
|
||||
// Forest core animals
|
||||
("world.wildlife.spawn.taiga.core_forest", |c, col| {
|
||||
@ -202,6 +219,12 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
close(c.temp, CONFIG.snow_temp + 0.2, 0.2) * col.tree_density * BASE_DENSITY * 0.4
|
||||
},
|
||||
),
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, col| {
|
||||
close(c.temp, CONFIG.snow_temp + 0.2, 0.2) * col.tree_density * BASE_DENSITY * 0.4
|
||||
},
|
||||
),
|
||||
// Core animals
|
||||
("world.wildlife.spawn.taiga.core", |c, _col| {
|
||||
close(c.temp, CONFIG.snow_temp + 0.2, 0.2) * BASE_DENSITY * 1.0
|
||||
@ -243,6 +266,16 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
* BASE_DENSITY
|
||||
* 4.0
|
||||
}),
|
||||
// Temperate Rainforest animals event
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, _col| {
|
||||
close(c.temp, CONFIG.temperate_temp + 0.1, 0.6)
|
||||
* close(c.humidity, CONFIG.forest_hum, 0.6)
|
||||
* BASE_DENSITY
|
||||
* 4.0
|
||||
},
|
||||
),
|
||||
// Water animals
|
||||
("world.wildlife.spawn.temperate.water", |c, col| {
|
||||
close(c.temp, CONFIG.temperate_temp, 1.0) * col.tree_density * BASE_DENSITY * 5.0
|
||||
@ -262,6 +295,16 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
* BASE_DENSITY
|
||||
* 8.0
|
||||
}),
|
||||
// Jungle animals event
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, _col| {
|
||||
close(c.temp, CONFIG.tropical_temp + 0.2, 0.3)
|
||||
* close(c.humidity, CONFIG.jungle_hum, 0.2)
|
||||
* BASE_DENSITY
|
||||
* 8.0
|
||||
},
|
||||
),
|
||||
// **Tropical**
|
||||
// Rare river animals
|
||||
("world.wildlife.spawn.tropical.river_rare", |_c, col| {
|
||||
@ -308,6 +351,16 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
* BASE_DENSITY
|
||||
* 2.0
|
||||
}),
|
||||
// Tropical Rainforest animals event
|
||||
(
|
||||
"world.wildlife.spawn.calendar.halloween.halloween",
|
||||
|c, _col| {
|
||||
close(c.temp, CONFIG.tropical_temp + 0.1, 0.4)
|
||||
* close(c.humidity, CONFIG.desert_hum, 0.4)
|
||||
* BASE_DENSITY
|
||||
* 2.0
|
||||
},
|
||||
),
|
||||
// Rock animals
|
||||
("world.wildlife.spawn.tropical.rock", |c, col| {
|
||||
close(c.temp, CONFIG.tropical_temp + 0.1, 0.5) * col.rock_density * BASE_DENSITY * 5.0
|
||||
|
Loading…
Reference in New Issue
Block a user