From 771a380e6cdb9530e8e84da7094621ed8528fc81 Mon Sep 17 00:00:00 2001 From: Monty Marz Date: Mon, 2 Aug 2021 22:46:43 +0200 Subject: [PATCH] witch stuff --- .../entity/spot/bandit_camp/grim_salvager.ron | 2 +- .../entity/spot/bandit_camp/witch_dark.ron | 24 ++++++++ assets/common/entity/wild/peaceful/bear.ron | 11 ++++ assets/common/items/armor/witch/back.ron | 19 +++++++ assets/common/items/armor/witch/belt.ron | 19 +++++++ assets/common/items/armor/witch/chest.ron | 19 +++++++ assets/common/items/armor/witch/foot.ron | 19 +++++++ assets/common/items/armor/witch/hand.ron | 19 +++++++ assets/common/items/armor/witch/hat.ron | 19 +++++++ assets/common/items/armor/witch/pants.ron | 19 +++++++ assets/common/items/armor/witch/shoulder.ron | 19 +++++++ .../items/weapons/sceptre/belzeshrub.ron | 21 +++++++ assets/common/loadout/spots/witch.ron | 10 ++++ assets/voxygen/voxel/armor/witch/back.vox | 3 + assets/voxygen/voxel/armor/witch/belt.vox | 3 + assets/voxygen/voxel/armor/witch/chest.vox | 3 + assets/voxygen/voxel/armor/witch/foot.vox | 3 + assets/voxygen/voxel/armor/witch/hand.vox | 3 + assets/voxygen/voxel/armor/witch/hat.vox | 3 + assets/voxygen/voxel/armor/witch/pants.vox | 3 + assets/voxygen/voxel/armor/witch/shoulder.vox | 3 + .../voxygen/voxel/biped_weapon_manifest.ron | 4 ++ .../voxel/humanoid_armor_back_manifest.ron | 4 ++ .../voxel/humanoid_armor_belt_manifest.ron | 4 ++ .../voxel/humanoid_armor_chest_manifest.ron | 4 ++ .../voxel/humanoid_armor_foot_manifest.ron | 4 ++ .../voxel/humanoid_armor_hand_manifest.ron | 10 ++++ .../voxel/humanoid_armor_head_manifest.ron | 4 ++ .../voxel/humanoid_armor_pants_manifest.ron | 4 ++ .../humanoid_armor_shoulder_manifest.ron | 10 ++++ .../voxel/sprite/window/witch_purple.vox | 3 + assets/voxygen/voxel/sprite_manifest.ron | 11 ++++ .../manifests/spots_general/witch_hut.ron | 15 +++++ .../trees/{quirky.ron => tree_house.ron} | 6 +- assets/world/structure/human/blacksmith.vox | 3 - assets/world/structure/human/house_1.vox | 3 - assets/world/structure/human/house_2.vox | 3 - assets/world/structure/human/mage_tower.vox | 3 - assets/world/structure/human/stables_1.vox | 3 - assets/world/structure/human/town_hall.vox | 3 - .../world/structure/human/town_hall_spire.vox | 3 - .../structure/natural/witch-hut-black_0.vox | 3 + common/src/terrain/sprite.rs | 4 +- world/src/layer/spot.rs | 55 ++++++++++++++++--- 44 files changed, 373 insertions(+), 37 deletions(-) create mode 100644 assets/common/entity/spot/bandit_camp/witch_dark.ron create mode 100644 assets/common/entity/wild/peaceful/bear.ron create mode 100644 assets/common/items/armor/witch/back.ron create mode 100644 assets/common/items/armor/witch/belt.ron create mode 100644 assets/common/items/armor/witch/chest.ron create mode 100644 assets/common/items/armor/witch/foot.ron create mode 100644 assets/common/items/armor/witch/hand.ron create mode 100644 assets/common/items/armor/witch/hat.ron create mode 100644 assets/common/items/armor/witch/pants.ron create mode 100644 assets/common/items/armor/witch/shoulder.ron create mode 100644 assets/common/items/weapons/sceptre/belzeshrub.ron create mode 100644 assets/common/loadout/spots/witch.ron create mode 100644 assets/voxygen/voxel/armor/witch/back.vox create mode 100644 assets/voxygen/voxel/armor/witch/belt.vox create mode 100644 assets/voxygen/voxel/armor/witch/chest.vox create mode 100644 assets/voxygen/voxel/armor/witch/foot.vox create mode 100644 assets/voxygen/voxel/armor/witch/hand.vox create mode 100644 assets/voxygen/voxel/armor/witch/hat.vox create mode 100644 assets/voxygen/voxel/armor/witch/pants.vox create mode 100644 assets/voxygen/voxel/armor/witch/shoulder.vox create mode 100644 assets/voxygen/voxel/sprite/window/witch_purple.vox create mode 100644 assets/world/manifests/spots_general/witch_hut.ron rename assets/world/manifests/trees/{quirky.ron => tree_house.ron} (56%) delete mode 100644 assets/world/structure/human/blacksmith.vox delete mode 100644 assets/world/structure/human/house_1.vox delete mode 100644 assets/world/structure/human/house_2.vox delete mode 100644 assets/world/structure/human/mage_tower.vox delete mode 100644 assets/world/structure/human/stables_1.vox delete mode 100644 assets/world/structure/human/town_hall.vox delete mode 100644 assets/world/structure/human/town_hall_spire.vox create mode 100644 assets/world/structure/natural/witch-hut-black_0.vox diff --git a/assets/common/entity/spot/bandit_camp/grim_salvager.ron b/assets/common/entity/spot/bandit_camp/grim_salvager.ron index c6d499ea51..77cf951256 100644 --- a/assets/common/entity/spot/bandit_camp/grim_salvager.ron +++ b/assets/common/entity/spot/bandit_camp/grim_salvager.ron @@ -1,6 +1,6 @@ EntityConfig ( name: Name("Grim Salvager"), - body: RandomWith("human"), + body: RandomWith("humanoid"), alignment: Alignment(Enemy), loot: LootTable("common.loot_tables.creature.biped_large.saurok"), diff --git a/assets/common/entity/spot/bandit_camp/witch_dark.ron b/assets/common/entity/spot/bandit_camp/witch_dark.ron new file mode 100644 index 0000000000..6e3bbcdad5 --- /dev/null +++ b/assets/common/entity/spot/bandit_camp/witch_dark.ron @@ -0,0 +1,24 @@ +EntityConfig ( + name: Name("Witch"), + body: Exact(Humanoid(Body( + species: Human, + body_type: Female, + hair_style: 2, + beard: 0, + eyes: 0, + accessory: 0, + hair_color: 0, + skin: 0, + eye_color: 0, + ))), + alignment: Alignment(Enemy), + + loot: LootTable("common.loot_tables.creature.biped_large.saurok"), + + hands: TwoHanded(Item("common.items.weapons.sceptre.belzeshrub")), + + meta: [ + SkillSetAsset("common.skillset.dungeon.tier-5.sceptre"), + LoadoutAsset("common.loadout.spots.witch"), + ], +) diff --git a/assets/common/entity/wild/peaceful/bear.ron b/assets/common/entity/wild/peaceful/bear.ron new file mode 100644 index 0000000000..3d132caf15 --- /dev/null +++ b/assets/common/entity/wild/peaceful/bear.ron @@ -0,0 +1,11 @@ +EntityConfig ( + name: Name("Well-fed Bear"), + body: RandomWith("bear"), + alignment: Alignment(Wild), + + loot: Uninit, + + hands: Uninit, + + meta: [], +) diff --git a/assets/common/items/armor/witch/back.ron b/assets/common/items/armor/witch/back.ron new file mode 100644 index 0000000000..f8eb96d292 --- /dev/null +++ b/assets/common/items/armor/witch/back.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Cape", + description: "", + kind: Armor(( + kind: Back("Witch"), + stats: ( + protection: Normal(32.0), + poise_resilience: Normal(5.0), + energy_max: 90, + energy_reward: 0.1, + crit_power: 0.08, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/belt.ron b/assets/common/items/armor/witch/belt.ron new file mode 100644 index 0000000000..ac07cf922c --- /dev/null +++ b/assets/common/items/armor/witch/belt.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Belt", + description: "", + kind: Armor(( + kind: Belt("Witch"), + stats: ( + protection: Normal(8.0), + poise_resilience: Normal(1.0), + energy_max: 20, + energy_reward: 0.025, + crit_power: 0.02, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/chest.ron b/assets/common/items/armor/witch/chest.ron new file mode 100644 index 0000000000..1133e87625 --- /dev/null +++ b/assets/common/items/armor/witch/chest.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Robe", + description: "", + kind: Armor(( + kind: Chest("Witch"), + stats: ( + protection: Normal(48.0), + poise_resilience: Normal(6.0), + energy_max: 135, + energy_reward: 0.135, + crit_power: 0.125, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/foot.ron b/assets/common/items/armor/witch/foot.ron new file mode 100644 index 0000000000..f55cd63bba --- /dev/null +++ b/assets/common/items/armor/witch/foot.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Boots", + description: "", + kind: Armor(( + kind: Foot("Witch"), + stats: ( + protection: Normal(16.0), + poise_resilience: Normal(2.0), + energy_max: 45, + energy_reward: 0.045, + crit_power: 0.04, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/hand.ron b/assets/common/items/armor/witch/hand.ron new file mode 100644 index 0000000000..e777dfa770 --- /dev/null +++ b/assets/common/items/armor/witch/hand.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Handwarmers", + description: "", + kind: Armor(( + kind: Hand("Witch"), + stats: ( + protection: Normal(16.0), + poise_resilience: Normal(2.0), + energy_max: 45, + energy_reward: 0.045, + crit_power: 0.04, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/hat.ron b/assets/common/items/armor/witch/hat.ron new file mode 100644 index 0000000000..567a2dc7ce --- /dev/null +++ b/assets/common/items/armor/witch/hat.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch hat", + description: "", + kind: Armor(( + kind: Head("Witch"), + stats: ( + protection: Normal(32.0), + poise_resilience: Normal(5.0), + energy_max: 90, + energy_reward: 0.1, + crit_power: 0.08, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/pants.ron b/assets/common/items/armor/witch/pants.ron new file mode 100644 index 0000000000..87df58804a --- /dev/null +++ b/assets/common/items/armor/witch/pants.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Skirt", + description: "", + kind: Armor(( + kind: Pants("Witch"), + stats: ( + protection: Normal(32.0), + poise_resilience: Normal(4.0), + energy_max: 90, + energy_reward: 0.1, + crit_power: 0.08, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/armor/witch/shoulder.ron b/assets/common/items/armor/witch/shoulder.ron new file mode 100644 index 0000000000..6c2f6b4528 --- /dev/null +++ b/assets/common/items/armor/witch/shoulder.ron @@ -0,0 +1,19 @@ +ItemDef( + name: "Witch Mantle", + description: "", + kind: Armor(( + kind: Shoulder("Witch"), + stats: ( + protection: Normal(32.0), + poise_resilience: Normal(5.0), + energy_max: 90, + energy_reward: 0.1, + crit_power: 0.08, + stealth: 0.0, + ), + )), + quality: Epic, + tags: [ + Cultist, + ], +) diff --git a/assets/common/items/weapons/sceptre/belzeshrub.ron b/assets/common/items/weapons/sceptre/belzeshrub.ron new file mode 100644 index 0000000000..7d986452e1 --- /dev/null +++ b/assets/common/items/weapons/sceptre/belzeshrub.ron @@ -0,0 +1,21 @@ +ItemDef( + name: "Belzeshrub the Broom God", + description: "'Is it... alive?'", + kind: Tool(( + kind: Sceptre, + hands: Two, + stats: Direct(( + equip_time_secs: 0.4, + power: 2.5, + effect_power: 1.0, + speed: 0.8, + crit_chance: 0.078125, + range: 1.0, + energy_efficiency: 1.0, + buff_strength: 1.0, + )), + )), + quality: Artifact, + tags: [], + ability_spec: None, +) \ No newline at end of file diff --git a/assets/common/loadout/spots/witch.ron b/assets/common/loadout/spots/witch.ron new file mode 100644 index 0000000000..233e207a71 --- /dev/null +++ b/assets/common/loadout/spots/witch.ron @@ -0,0 +1,10 @@ +({ + Armor(Head): Item("common.items.armor.witch.hat"), + Armor(Chest): Item("common.items.armor.witch.chest"), + Armor(Shoulders): Item("common.items.armor.witch.shoulder"), + Armor(Belt): Item("common.items.armor.witch.belt"), + Armor(Hands): Item("common.items.armor.witch.hand"), + Armor(Legs): Item("common.items.armor.witch.pants"), + Armor(Feet): Item("common.items.armor.witch.foot"), + Lantern: Item("common.items.lantern.black_0"), +}) diff --git a/assets/voxygen/voxel/armor/witch/back.vox b/assets/voxygen/voxel/armor/witch/back.vox new file mode 100644 index 0000000000..b0155b23f9 --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/back.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b094f6b58272423f36ca7e344d9082bb455232fe2be77b278b9e7591807be62 +size 1440 diff --git a/assets/voxygen/voxel/armor/witch/belt.vox b/assets/voxygen/voxel/armor/witch/belt.vox new file mode 100644 index 0000000000..fe892025f7 --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/belt.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e64552b6b85ff1d69d615ed08a98ed0f858e38b56322c2982149f064957c13fa +size 1524 diff --git a/assets/voxygen/voxel/armor/witch/chest.vox b/assets/voxygen/voxel/armor/witch/chest.vox new file mode 100644 index 0000000000..2fa59fd0da --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c66b3446524241f3cd4e3c6e56c520e131a65a0515c284909dc5ec16490b4f57 +size 2816 diff --git a/assets/voxygen/voxel/armor/witch/foot.vox b/assets/voxygen/voxel/armor/witch/foot.vox new file mode 100644 index 0000000000..bc3c15509d --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/foot.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87c11b4bd3c65eab29571f5e3d3c22f8d36c4a55722e9229cdf4c28b198529ab +size 1480 diff --git a/assets/voxygen/voxel/armor/witch/hand.vox b/assets/voxygen/voxel/armor/witch/hand.vox new file mode 100644 index 0000000000..03dd01c54f --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/hand.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24492bc73931c9e2173bbabf3a984249ef61c5f1a6cacee6a0bf59bd6d7f49e4 +size 1392 diff --git a/assets/voxygen/voxel/armor/witch/hat.vox b/assets/voxygen/voxel/armor/witch/hat.vox new file mode 100644 index 0000000000..651a71a91d --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/hat.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b0355f93f1210cd361d31a53000716eb5604d32c6ff27db6c89ba47e3f72dd +size 5272 diff --git a/assets/voxygen/voxel/armor/witch/pants.vox b/assets/voxygen/voxel/armor/witch/pants.vox new file mode 100644 index 0000000000..49b201487e --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/pants.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f8c4c0a759dd365fdc11340fda57c52ad29e97e087e329842f72d8df8d76c07 +size 2256 diff --git a/assets/voxygen/voxel/armor/witch/shoulder.vox b/assets/voxygen/voxel/armor/witch/shoulder.vox new file mode 100644 index 0000000000..eff616cae1 --- /dev/null +++ b/assets/voxygen/voxel/armor/witch/shoulder.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb22fd10cffd92c7f2a95854797f2b59057f6522b1a0693e3c4c83a9412086e0 +size 1368 diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index ffc7128cf7..a87845437a 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -950,6 +950,10 @@ vox_spec: ("weapon.sceptre.root_evil", (-2.5, -2.5, -6.0)), color: None ), + "common.items.weapons.sceptre.belzeshrub": ( + vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)), + color: None + ), "common.items.weapons.sceptre.sceptre_velorite_0": ( vox_spec: ("weapon.sceptre.ore-nature", (-2.0, -6.0, -5.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_back_manifest.ron b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron index 1459d036eb..10f0b422df 100644 --- a/assets/voxygen/voxel/humanoid_armor_back_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron @@ -80,6 +80,10 @@ vox_spec: ("armor.cloth.silken.back", (-4.0, -2.5, -11.5)), color: None ), + "Witch": ( + vox_spec: ("armor.witch.back", (-4.0, -2.5, -11.5)), + color: None + ), "Druid": ( vox_spec: ("armor.cloth.druid.back", (-5.0, -2.5, -11.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron index e6b95396a8..25062188b9 100644 --- a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron @@ -112,6 +112,10 @@ vox_spec: ("armor.cloth.silken.belt", (-4.0, -3.5, -3.0)), color: None ), + "Witch":( + vox_spec: ("armor.witch.belt", (-4.0, -3.5, -3.0)), + color: None + ), "Druid":( vox_spec: ("armor.cloth.druid.belt", (-4.0, -4.0, -0.5)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron index db7a6b80ec..7177fd67e5 100644 --- a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron @@ -182,6 +182,10 @@ vox_spec: ("armor.cloth.silken.chest", (-7.0, -4.0, 1.0)), color: None ), + "Witch": ( + vox_spec: ("armor.witch.chest", (-7.0, -4.0, 1.0)), + color: None + ), "Druid": ( vox_spec: ("armor.cloth.druid.chest", (-7.0, -4.0, 2.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron index 617d459fb3..308d1cc255 100644 --- a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron @@ -112,6 +112,10 @@ vox_spec: ("armor.cloth.silken.foot", (-2.5, -3.5, -2.0)), color: None ), + "Witch": ( + vox_spec: ("armor.witch.foot", (-2.5, -3.5, -2.0)), + color: None + ), "Druid": ( vox_spec: ("armor.cloth.druid.foot", (-2.5, -3.5, -2.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron index 7d3bff8625..34ed01d6c3 100644 --- a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron @@ -250,6 +250,16 @@ color: None ) ), + "Witch": ( + left: ( + vox_spec: ("armor.witch.hand", (-2.5, -2.5, -4.0)), + color: None + ), + right: ( + vox_spec: ("armor.witch.hand", (-1.5, -2.5, -4.0)), + color: None + ) + ), "Druid": ( left: ( vox_spec: ("armor.cloth.druid.hand", (-2.5, -1.0, -3.0)), diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron index 6307a9b106..6320b77dda 100644 --- a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -28,5 +28,9 @@ vox_spec: ("armor.misc.head.exclamation", (-11.0, -11.0, 18.0)), color: None ), + (Human, "Witch"): ( + vox_spec: ("armor.witch.hat", (-2.0, -2.0, 5.0)), + color: None + ), } )) diff --git a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron index 9aa5dde696..137b48109c 100644 --- a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron @@ -140,6 +140,10 @@ vox_spec: ("armor.cloth.silken.pants", (-5.0, -4.0, 0.5)), color: None ), + "Witch": ( + vox_spec: ("armor.witch.pants", (-5.0, -4.0, 0.5)), + color: None + ), "Druid": ( vox_spec: ("armor.cloth.druid.pants", (-5.0, -4.0, 0.5)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron index 0b027a70a6..3ee73f6cd7 100644 --- a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron @@ -331,6 +331,16 @@ color: None ) ), + "Witch": ( + left: ( + vox_spec: ("armor.witch.shoulder", (-5.0, -4.0 , -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.witch.shoulder", (-1.0, -4.0, -2.0)), + color: None + ) + ), "Druid": ( left: ( vox_spec: ("armor.cloth.druid.shoulder", (-4.5, -4.0 , -3.5)), diff --git a/assets/voxygen/voxel/sprite/window/witch_purple.vox b/assets/voxygen/voxel/sprite/window/witch_purple.vox new file mode 100644 index 0000000000..975beb8ad6 --- /dev/null +++ b/assets/voxygen/voxel/sprite/window/witch_purple.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:431c9d18da9a41a661eb09ee566bcc8fd47a8798102346d6d188aee92591be34 +size 4512 diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 36e7be1102..f39631287e 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -3257,4 +3257,15 @@ EnsnaringVines: Some(( ], wind_sway: 0.0, )), +// WitchWindow +WitchWindow: Some(( + variations: [ + ( + model: "voxygen.voxel.sprite.window.witch_purple", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)), ) diff --git a/assets/world/manifests/spots_general/witch_hut.ron b/assets/world/manifests/spots_general/witch_hut.ron new file mode 100644 index 0000000000..63fa53e5e5 --- /dev/null +++ b/assets/world/manifests/spots_general/witch_hut.ron @@ -0,0 +1,15 @@ +#![enable(unwrap_newtypes)] + +[ + ( + specifier: "world.structure.natural.witch-hut-black_0", + center: (20, 23, 16), + custom_indices: { + 12: Sprite(Cauldron), + 10: Sprite(WitchWindow), + 44: Filled(GlowingRock, (r: 54, g: 180, b: 64)), + 8: Filled(Air, (r: 255, g: 255, b: 255)), + 249: Sprite(PotionMinor), + }, + ), +] diff --git a/assets/world/manifests/trees/quirky.ron b/assets/world/manifests/trees/tree_house.ron similarity index 56% rename from assets/world/manifests/trees/quirky.ron rename to assets/world/manifests/trees/tree_house.ron index c4f9a915f0..44f6d58d47 100644 --- a/assets/world/manifests/trees/quirky.ron +++ b/assets/world/manifests/trees/tree_house.ron @@ -1,10 +1,6 @@ #![enable(unwrap_newtypes)] -[ - ( - specifier: "world.structure.natural.witch-hut", - center: (10, 13, 9) - ), +[ ( specifier: "world.structure.natural.tree-house", center: (20, 15, 10) diff --git a/assets/world/structure/human/blacksmith.vox b/assets/world/structure/human/blacksmith.vox deleted file mode 100644 index ff36b1c097..0000000000 --- a/assets/world/structure/human/blacksmith.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02de8d2db9d4046dbad44eef6b5e3f4ea827ca6a77a6076d121731ebd1b2fe65 -size 40168 diff --git a/assets/world/structure/human/house_1.vox b/assets/world/structure/human/house_1.vox deleted file mode 100644 index 48cf82623a..0000000000 --- a/assets/world/structure/human/house_1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca799602961fa0d786081834352dd9c92e0149293d3f330517cef0fb0e90f88e -size 13400 diff --git a/assets/world/structure/human/house_2.vox b/assets/world/structure/human/house_2.vox deleted file mode 100644 index 29b2cb02ae..0000000000 --- a/assets/world/structure/human/house_2.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e8013bdd5588fe0e0043c2079ceab7a385d7b963227d6cefa83479c62ab1341 -size 15316 diff --git a/assets/world/structure/human/mage_tower.vox b/assets/world/structure/human/mage_tower.vox deleted file mode 100644 index 6969d0000b..0000000000 --- a/assets/world/structure/human/mage_tower.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f49b9458defb5de77c45e2f5266dadab448d1320f9593657df0e8f43ae260ff1 -size 76032 diff --git a/assets/world/structure/human/stables_1.vox b/assets/world/structure/human/stables_1.vox deleted file mode 100644 index 4eb4a8e59d..0000000000 --- a/assets/world/structure/human/stables_1.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a309d39bd5c3fafb402d249e76cf1ab6f22fcf1ba64491b466729b8fcf65aaa -size 49752 diff --git a/assets/world/structure/human/town_hall.vox b/assets/world/structure/human/town_hall.vox deleted file mode 100644 index 1c2b0d9943..0000000000 --- a/assets/world/structure/human/town_hall.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b7d7368adb164d98b2275cb228c0e75c4c57af0af6cfcc8080b420fbc404c8b -size 46848 diff --git a/assets/world/structure/human/town_hall_spire.vox b/assets/world/structure/human/town_hall_spire.vox deleted file mode 100644 index 0e7218ab28..0000000000 --- a/assets/world/structure/human/town_hall_spire.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9bc99805b91d0db7767b3228ef8c69b13dfa344fe6fd607c309f87c847f1473d -size 48640 diff --git a/assets/world/structure/natural/witch-hut-black_0.vox b/assets/world/structure/natural/witch-hut-black_0.vox new file mode 100644 index 0000000000..11622cf6cc --- /dev/null +++ b/assets/world/structure/natural/witch-hut-black_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:260db5a2615f86436e197e543086b298b48c9419a42bcac9ace2148f65cfde82 +size 23064 diff --git a/common/src/terrain/sprite.rs b/common/src/terrain/sprite.rs index aa20608b5b..347146c682 100644 --- a/common/src/terrain/sprite.rs +++ b/common/src/terrain/sprite.rs @@ -174,6 +174,7 @@ make_case_elim!( CeilingMushroom = 0x93, Orb = 0x94, EnsnaringVines = 0x95, + WitchWindow = 0x96, } ); @@ -244,7 +245,8 @@ impl SpriteKind { | SpriteKind::Window2 | SpriteKind::Window3 | SpriteKind::Window4 - | SpriteKind::DropGate => 1.0, + | SpriteKind::DropGate + | SpriteKind::WitchWindow => 1.0, // TODO: Figure out if this should be solid or not. SpriteKind::Shelf => 1.0, SpriteKind::Lantern => 0.9, diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index cb0a9224d6..68caa89ad0 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -34,7 +34,7 @@ pub enum Spot { // *Themed Spots* DwarvenGrave, GnarlingTotem, - //WitchHouse, + WitchHouse, //BanditCamp, //EnchantedRock, //TowerRuin, @@ -49,6 +49,7 @@ pub enum Spot { TreeStumpForest, DesertBones, AirshipCrash, + FruitTree, } // Available Biomes are: @@ -66,7 +67,22 @@ pub enum Spot { impl Spot { pub fn generate(world: &mut WorldSim) { + // Trees/spawn: false => *No* trees around the spot // Themed Spots -> Act as an introduction to themes of sites + Self::generate_spots( + Spot::WitchHouse, + world, + 2.0, + |g, c| { + g < 0.25 + && !c.near_cliffs() + && !c.river.near_water() + && !c.path.0.is_way() + && c.sites.is_empty() + && !matches!(c.get_biome(), BiomeKind::Ocean | BiomeKind::Mountain) + }, + false, + ); Self::generate_spots( Spot::DwarvenGrave, world, @@ -79,7 +95,7 @@ impl Spot { && c.sites.is_empty() && matches!(c.get_biome(), BiomeKind::Jungle | BiomeKind::Forest) }, - true, + false, ); Self::generate_spots( Spot::GnarlingTotem, @@ -93,7 +109,7 @@ impl Spot { && c.sites.is_empty() && matches!(c.get_biome(), BiomeKind::Forest | BiomeKind::Grassland) }, - true, + false, ); // Random World Objects -> Themed to their Biome and the NPCs that regularly // spawn there @@ -109,7 +125,7 @@ impl Spot { && c.sites.is_empty() && matches!(c.get_biome(), BiomeKind::Savannah) }, - true, + false, ); Self::generate_spots( Spot::TreeStumpForest, @@ -123,7 +139,7 @@ impl Spot { && c.sites.is_empty() && matches!(c.get_biome(), BiomeKind::Jungle | BiomeKind::Forest) }, - false, + true, ); Self::generate_spots( Spot::DesertBones, @@ -137,7 +153,7 @@ impl Spot { && c.sites.is_empty() && matches!(c.get_biome(), BiomeKind::Desert) }, - true, + false, ); Self::generate_spots( Spot::AirshipCrash, @@ -154,6 +170,20 @@ impl Spot { BiomeKind::Mountain | BiomeKind::Void | BiomeKind::Ocean ) }, + false, + ); + Self::generate_spots( + Spot::FruitTree, + world, + 20.0, + |g, c| { + g < 0.25 + && !c.near_cliffs() + && !c.river.near_water() + && !c.path.0.is_way() + && c.sites.is_empty() + && matches!(c.get_biome(), BiomeKind::Forest) + }, true, ); @@ -166,15 +196,12 @@ impl Spot { TowerRuinDesert WellOfLight Merchant Outpost -> Near a road! - *Quirky:* TreeHouse (Forest) TreeStump (Forest, Grassland) DesertBones (Desert, Savannah) AirshipCrash (Desert, Savannah, Grassland) EnchantedRock (Forest, Jungle) - - */ } @@ -240,6 +267,11 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { entity_radius: 60.0, entities: &[(6..12, "common.entity.spot.bandit_camp.dwarf_grave_robber")], }, + Spot::WitchHouse => SpotConfig { + base_structures: Some("spots_general.witch_hut"), + entity_radius: 1.0, + entities: &[(1..2, "common.entity.spot.bandit_camp.witch_dark")], + }, Spot::GnarlingTotem => SpotConfig { base_structures: Some("spots_grasslands.gnarling_totem"), entity_radius: 30.0, @@ -270,6 +302,11 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { entity_radius: 20.0, entities: &[(4..9, "common.entity.spot.bandit_camp.grim_salvager")], }, + Spot::FruitTree => SpotConfig { + base_structures: Some("trees.fruit_trees"), + entity_radius: 2.0, + entities: &[(0..2, "common.entity.wild.peaceful.bear")], + }, }; // Blit base structure if let Some(base_structures) = spot_config.base_structures {