From a0d238276791912e04881c796b4f07335c3bcf4d Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 14 Aug 2020 16:55:03 -0500 Subject: [PATCH] balancing more specific stats Update body.rs more balancing non hostile catoblepas and mouflons quad low more adjustments Animals with enemy alignment now deal correct damage. Made health scaling species-specific. --- assets/common/cave_scatter.ron | 3 +- .../items/npc_armor/back/dungeon_purple-0.ron | 12 + .../items/npc_armor/belt/cultist_belt.ron | 12 + .../npc_armor/chest/cultist_chest_purple.ron | 12 + .../items/npc_armor/foot/cultist_boots.ron | 12 + .../npc_armor/hand/cultist_hands_purple.ron | 12 + .../npc_armor/pants/cultist_legs_purple.ron | 12 + .../shoulder/cultist_shoulder_purple.ron | 12 + .../items/npc_weapons/axe/malachite_axe-0.ron | 13 + .../items/npc_weapons/axe/starter_axe.ron | 13 + .../items/npc_weapons/bow/horn_longbow-0.ron | 13 + .../npc_weapons/dagger/starter_dagger.ron | 13 + .../common/items/npc_weapons/empty/empty.ron | 13 + .../npc_weapons/hammer/cultist_purp_2h-0.ron | 13 + .../npc_weapons/hammer/starter_hammer.ron | 13 + .../items/npc_weapons/shield/shield_1.ron | 13 + .../items/npc_weapons/staff/bone_staff.ron | 13 + .../items/npc_weapons/staff/cultist_staff.ron | 13 + .../npc_weapons/sword/cultist_purp_2h-0.ron | 13 + .../sword/cultist_purp_2h_boss-0.ron | 13 + .../items/npc_weapons/sword/starter_sword.ron | 13 + .../npc_weapons/sword/zweihander_sword_0.ron | 13 + .../common/items/npc_weapons/tool/broom.ron | 13 + .../items/npc_weapons/tool/fishing_rod.ron | 13 + assets/common/items/npc_weapons/tool/hoe.ron | 13 + .../common/items/npc_weapons/tool/pickaxe.ron | 13 + .../items/npc_weapons/tool/pitchfork.ron | 13 + assets/common/items/npc_weapons/tool/rake.ron | 13 + .../items/npc_weapons/tool/shovel-0.ron | 13 + .../items/npc_weapons/tool/shovel-1.ron | 13 + assets/common/recipe_book.ron | 8 +- common/src/comp/agent.rs | 3 +- common/src/comp/body.rs | 379 ++++++++++++++---- common/src/sys/agent.rs | 3 +- server/src/sys/terrain.rs | 21 +- world/src/layer/mod.rs | 42 +- world/src/lib.rs | 29 +- world/src/site/dungeon/mod.rs | 18 +- world/src/site/settlement/mod.rs | 16 +- 39 files changed, 767 insertions(+), 125 deletions(-) create mode 100644 assets/common/items/npc_armor/back/dungeon_purple-0.ron create mode 100644 assets/common/items/npc_armor/belt/cultist_belt.ron create mode 100644 assets/common/items/npc_armor/chest/cultist_chest_purple.ron create mode 100644 assets/common/items/npc_armor/foot/cultist_boots.ron create mode 100644 assets/common/items/npc_armor/hand/cultist_hands_purple.ron create mode 100644 assets/common/items/npc_armor/pants/cultist_legs_purple.ron create mode 100644 assets/common/items/npc_armor/shoulder/cultist_shoulder_purple.ron create mode 100644 assets/common/items/npc_weapons/axe/malachite_axe-0.ron create mode 100644 assets/common/items/npc_weapons/axe/starter_axe.ron create mode 100644 assets/common/items/npc_weapons/bow/horn_longbow-0.ron create mode 100644 assets/common/items/npc_weapons/dagger/starter_dagger.ron create mode 100644 assets/common/items/npc_weapons/empty/empty.ron create mode 100644 assets/common/items/npc_weapons/hammer/cultist_purp_2h-0.ron create mode 100644 assets/common/items/npc_weapons/hammer/starter_hammer.ron create mode 100644 assets/common/items/npc_weapons/shield/shield_1.ron create mode 100644 assets/common/items/npc_weapons/staff/bone_staff.ron create mode 100644 assets/common/items/npc_weapons/staff/cultist_staff.ron create mode 100644 assets/common/items/npc_weapons/sword/cultist_purp_2h-0.ron create mode 100644 assets/common/items/npc_weapons/sword/cultist_purp_2h_boss-0.ron create mode 100644 assets/common/items/npc_weapons/sword/starter_sword.ron create mode 100644 assets/common/items/npc_weapons/sword/zweihander_sword_0.ron create mode 100644 assets/common/items/npc_weapons/tool/broom.ron create mode 100644 assets/common/items/npc_weapons/tool/fishing_rod.ron create mode 100644 assets/common/items/npc_weapons/tool/hoe.ron create mode 100644 assets/common/items/npc_weapons/tool/pickaxe.ron create mode 100644 assets/common/items/npc_weapons/tool/pitchfork.ron create mode 100644 assets/common/items/npc_weapons/tool/rake.ron create mode 100644 assets/common/items/npc_weapons/tool/shovel-0.ron create mode 100644 assets/common/items/npc_weapons/tool/shovel-1.ron diff --git a/assets/common/cave_scatter.ron b/assets/common/cave_scatter.ron index 524ef2ff57..85cc78cfb2 100644 --- a/assets/common/cave_scatter.ron +++ b/assets/common/cave_scatter.ron @@ -7,6 +7,5 @@ (120, Mushroom), (8, ShinyGem), (15, Chest), - (2, Crate), - (0.25, Scarecrow), + (2, Crate), ] diff --git a/assets/common/items/npc_armor/back/dungeon_purple-0.ron b/assets/common/items/npc_armor/back/dungeon_purple-0.ron new file mode 100644 index 0000000000..325c85adcb --- /dev/null +++ b/assets/common/items/npc_armor/back/dungeon_purple-0.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Cultist Cape", + description: "Smells like dark magic and candles.", + kind: Armor( + ( + kind: Back("DungPurp0"), + stats: ( + protection: Normal(1.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/belt/cultist_belt.ron b/assets/common/items/npc_armor/belt/cultist_belt.ron new file mode 100644 index 0000000000..6b856636c6 --- /dev/null +++ b/assets/common/items/npc_armor/belt/cultist_belt.ron @@ -0,0 +1,12 @@ +Item( + name: "Cultist Belt", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Belt("Cultist"), + stats: ( + protection: Normal(0.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/cultist_chest_purple.ron b/assets/common/items/npc_armor/chest/cultist_chest_purple.ron new file mode 100644 index 0000000000..ed500e8f1f --- /dev/null +++ b/assets/common/items/npc_armor/chest/cultist_chest_purple.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Cultist Chest", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Chest("CultistPurple"), + stats: ( + protection: Normal(5.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/foot/cultist_boots.ron b/assets/common/items/npc_armor/foot/cultist_boots.ron new file mode 100644 index 0000000000..da1de15c1a --- /dev/null +++ b/assets/common/items/npc_armor/foot/cultist_boots.ron @@ -0,0 +1,12 @@ +Item( + name: "Cultist Boots", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Foot("Cultist"), + stats: ( + protection: Normal(1.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/hand/cultist_hands_purple.ron b/assets/common/items/npc_armor/hand/cultist_hands_purple.ron new file mode 100644 index 0000000000..220c1fab77 --- /dev/null +++ b/assets/common/items/npc_armor/hand/cultist_hands_purple.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Cultist Gloves", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Hand("CultistPurple"), + stats: ( + protection: Normal(2.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/pants/cultist_legs_purple.ron b/assets/common/items/npc_armor/pants/cultist_legs_purple.ron new file mode 100644 index 0000000000..0eaf1e95ab --- /dev/null +++ b/assets/common/items/npc_armor/pants/cultist_legs_purple.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Cultist Skirt", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Pants("CultistPurple"), + stats: ( + protection: Normal(10.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/shoulder/cultist_shoulder_purple.ron b/assets/common/items/npc_armor/shoulder/cultist_shoulder_purple.ron new file mode 100644 index 0000000000..ccf9691a7d --- /dev/null +++ b/assets/common/items/npc_armor/shoulder/cultist_shoulder_purple.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Cultist Mantle", + description: "Ceremonial attire used by members.", + kind: Armor( + ( + kind: Shoulder("CultistPurple"), + stats: ( + protection: Normal(5.0), + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/axe/malachite_axe-0.ron b/assets/common/items/npc_weapons/axe/malachite_axe-0.ron new file mode 100644 index 0000000000..c639db3dd8 --- /dev/null +++ b/assets/common/items/npc_weapons/axe/malachite_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Malachite Axe", + description: "An axe infused with malachite.", + kind: Tool( + ( + kind: Axe("MalachiteAxe0"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/axe/starter_axe.ron b/assets/common/items/npc_weapons/axe/starter_axe.ron new file mode 100644 index 0000000000..ccdd0c527c --- /dev/null +++ b/assets/common/items/npc_weapons/axe/starter_axe.ron @@ -0,0 +1,13 @@ +Item( + name: "Notched Axe", + description: "Every dent tells the story of a chopped tree.", + kind: Tool( + ( + kind: Axe("BasicAxe"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/bow/horn_longbow-0.ron b/assets/common/items/npc_weapons/bow/horn_longbow-0.ron new file mode 100644 index 0000000000..6c055bfa3e --- /dev/null +++ b/assets/common/items/npc_weapons/bow/horn_longbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Horn Bow", + description: "You don't recognize the creature these horns belong to.", + kind: Tool( + ( + kind: Bow("HornLongbow0"), + stats: ( + equip_time_millis: 400, + power: 0.5, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/dagger/starter_dagger.ron b/assets/common/items/npc_weapons/dagger/starter_dagger.ron new file mode 100644 index 0000000000..9d24de8e09 --- /dev/null +++ b/assets/common/items/npc_weapons/dagger/starter_dagger.ron @@ -0,0 +1,13 @@ +Item( + name: "Rusty Dagger", + description: "Easily concealed.", + kind: Tool( + ( + kind: Dagger("BasicDagger"), + stats: ( + equip_time_millis: 300, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/empty/empty.ron b/assets/common/items/npc_weapons/empty/empty.ron new file mode 100644 index 0000000000..489101c9f0 --- /dev/null +++ b/assets/common/items/npc_weapons/empty/empty.ron @@ -0,0 +1,13 @@ +Item( + name: "Empty", + description: "You expected a description?", + kind: Tool ( + ( + kind: Empty, + stats: ( + equip_time_millis: 200, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/hammer/cultist_purp_2h-0.ron b/assets/common/items/npc_weapons/hammer/cultist_purp_2h-0.ron new file mode 100644 index 0000000000..d384a3eb88 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/cultist_purp_2h-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Magical Cultist Warhammer", + description: "This belonged to an evil Cult Leader.", + kind: Tool( + ( + kind: Hammer("CultPurp0"), + stats: ( + equip_time_millis: 500, + power: 0.5, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/hammer/starter_hammer.ron b/assets/common/items/npc_weapons/hammer/starter_hammer.ron new file mode 100644 index 0000000000..e871d6cc38 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/starter_hammer.ron @@ -0,0 +1,13 @@ +Item( + name: "Sturdy Old Hammer", + description: "'Property of...' The rest is missing.", + kind: Tool( + ( + kind: Hammer("BasicHammer"), + stats: ( + equip_time_millis: 500, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/shield/shield_1.ron b/assets/common/items/npc_weapons/shield/shield_1.ron new file mode 100644 index 0000000000..6fe9c4a971 --- /dev/null +++ b/assets/common/items/npc_weapons/shield/shield_1.ron @@ -0,0 +1,13 @@ +Item( + name: "A Tattered Targe", + description: "Should withstand a few more hits, hopefully...", + kind: Tool ( + ( + kind: Shield("BasicShield"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/staff/bone_staff.ron b/assets/common/items/npc_weapons/staff/bone_staff.ron new file mode 100644 index 0000000000..a5675f2690 --- /dev/null +++ b/assets/common/items/npc_weapons/staff/bone_staff.ron @@ -0,0 +1,13 @@ +Item( + name: "Bone Staff", + description: "There's a red gem suspended in the bones.", + kind: Tool( + ( + kind: Staff("BoneStaff"), + stats: ( + equip_time_millis: 300, + power: 0.8, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/staff/cultist_staff.ron b/assets/common/items/npc_weapons/staff/cultist_staff.ron new file mode 100644 index 0000000000..f4ebacea3f --- /dev/null +++ b/assets/common/items/npc_weapons/staff/cultist_staff.ron @@ -0,0 +1,13 @@ +Item( + name: "Cultist Staff", + description: "The fire gives off no heat.", + kind: Tool( + ( + kind: Staff("CultistStaff"), + stats: ( + equip_time_millis: 300, + power: 0.8, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/sword/cultist_purp_2h-0.ron b/assets/common/items/npc_weapons/sword/cultist_purp_2h-0.ron new file mode 100644 index 0000000000..19bcd0369e --- /dev/null +++ b/assets/common/items/npc_weapons/sword/cultist_purp_2h-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Magical Cultist Greatsword", + description: "This belonged to an evil Cult Leader.", + kind: Tool( + ( + kind: Sword("CultPurp0"), + stats: ( + equip_time_millis: 500, + power: 0.5, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/sword/cultist_purp_2h_boss-0.ron b/assets/common/items/npc_weapons/sword/cultist_purp_2h_boss-0.ron new file mode 100644 index 0000000000..085690bc07 --- /dev/null +++ b/assets/common/items/npc_weapons/sword/cultist_purp_2h_boss-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Magical Cultist Greatsword", + description: "This belonged to an evil Cult Leader.", + kind: Tool( + ( + kind: Sword("CultPurp0"), + stats: ( + equip_time_millis: 500, + power: 1.0, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/sword/starter_sword.ron b/assets/common/items/npc_weapons/sword/starter_sword.ron new file mode 100644 index 0000000000..5eef68dca3 --- /dev/null +++ b/assets/common/items/npc_weapons/sword/starter_sword.ron @@ -0,0 +1,13 @@ +Item( + name: "Battered Sword", + description: "Held together by Rust and hope.", + kind: Tool( + ( + kind: Sword("BasicSword"), + stats: ( + equip_time_millis: 300, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/sword/zweihander_sword_0.ron b/assets/common/items/npc_weapons/sword/zweihander_sword_0.ron new file mode 100644 index 0000000000..372932187d --- /dev/null +++ b/assets/common/items/npc_weapons/sword/zweihander_sword_0.ron @@ -0,0 +1,13 @@ +Item( + name: "Sturdy Zweihander", + description: "It's a big sword, and sharp too.", + kind: Tool( + ( + kind: Sword("Zweihander0"), + stats: ( + equip_time_millis: 500, + power: 0.6, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/broom.ron b/assets/common/items/npc_weapons/tool/broom.ron new file mode 100644 index 0000000000..9b62840b7e --- /dev/null +++ b/assets/common/items/npc_weapons/tool/broom.ron @@ -0,0 +1,13 @@ +Item( + name: "Broom", + description: "It's beginning to fall apart.", + kind: Tool ( + ( + kind: Farming("Broom"), + stats: ( + equip_time_millis: 400, + power: 0.5, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/fishing_rod.ron b/assets/common/items/npc_weapons/tool/fishing_rod.ron new file mode 100644 index 0000000000..bf4b3a05c3 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/fishing_rod.ron @@ -0,0 +1,13 @@ +Item( + name: "Fishing Rod", + description: "Smells of fish.", + kind: Tool ( + ( + kind: Farming("FishingRod0"), + stats: ( + equip_time_millis: 400, + power: 0.5, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/hoe.ron b/assets/common/items/npc_weapons/tool/hoe.ron new file mode 100644 index 0000000000..2f0ec0f257 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/hoe.ron @@ -0,0 +1,13 @@ +Item( + name: "Hoe", + description: "It's stained with dirt.", + kind: Tool ( + ( + kind: Farming("Hoe0"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/pickaxe.ron b/assets/common/items/npc_weapons/tool/pickaxe.ron new file mode 100644 index 0000000000..e9ed64a5e4 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/pickaxe.ron @@ -0,0 +1,13 @@ +Item( + name: "Pickaxe", + description: "It has a chipped edge.", + kind: Tool ( + ( + kind: Farming("Pickaxe0"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/pitchfork.ron b/assets/common/items/npc_weapons/tool/pitchfork.ron new file mode 100644 index 0000000000..effc304483 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/pitchfork.ron @@ -0,0 +1,13 @@ +Item( + name: "Pitchfork", + description: "One of the prongs is broken.", + kind: Tool ( + ( + kind: Farming("Pitchfork"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/rake.ron b/assets/common/items/npc_weapons/tool/rake.ron new file mode 100644 index 0000000000..9430056099 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/rake.ron @@ -0,0 +1,13 @@ +Item( + name: "Rake", + description: "Held together with twine.", + kind: Tool ( + ( + kind: Farming("Rake"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/shovel-0.ron b/assets/common/items/npc_weapons/tool/shovel-0.ron new file mode 100644 index 0000000000..8814156245 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/shovel-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Shovel", + description: "It's covered in manure.", + kind: Tool ( + ( + kind: Farming("Shovel0"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/shovel-1.ron b/assets/common/items/npc_weapons/tool/shovel-1.ron new file mode 100644 index 0000000000..01c8bbf3c1 --- /dev/null +++ b/assets/common/items/npc_weapons/tool/shovel-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Shovel", + description: "It's been recently cleaned.", + kind: Tool ( + ( + kind: Farming("Shovel1"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 7e4d6b66d1..5c168ab31a 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -1,5 +1,5 @@ { - "crafting_hammer": (("common.items.crafting_tools.craftsman_hammer", 1),[("common.items.crafting_ing.twigs", 10), ("common.items.crafting_ing.stones", 10)]), + "crafting_hammer": (("common.items.crafting_tools.craftsman_hammer", 1),[("common.items.crafting_ing.twigs", 14), ("common.items.crafting_ing.stones", 12)]), "mortar_pestle": (("common.items.crafting_tools.mortar_pestle", 1), [("common.items.crafting_ing.stones", 6), ("common.items.food.coconut", 2), ("common.items.crafting_tools.craftsman_hammer", 0)]), "velorite_frag": (("common.items.ore.veloritefrag", 2), [("common.items.ore.velorite", 1), ("common.items.crafting_tools.craftsman_hammer", 0)]), "potion_s": (("common.items.consumable.potion_minor", 1), [("common.items.crafting_ing.empty_vial", 1), ("common.items.ore.veloritefrag", 2)]), @@ -11,7 +11,7 @@ "firework_purple": (("common.items.utility.firework_purple", 1), [("common.items.crafting_ing.twigs", 1), ("common.items.crafting_ing.stones", 1), ("common.items.food.coconut", 1), ("common.items.ore.veloritefrag", 1), ("common.items.crafting_tools.mortar_pestle", 0)]), "firework_red": (("common.items.utility.firework_red", 1), [("common.items.crafting_ing.twigs", 1), ("common.items.crafting_ing.stones", 1), ("common.items.food.coconut", 1), ("common.items.ore.veloritefrag", 1), ("common.items.crafting_tools.mortar_pestle", 0)]), "firework_yellow": (("common.items.utility.firework_yellow", 1), [("common.items.crafting_ing.twigs", 1), ("common.items.crafting_ing.stones", 1), ("common.items.food.coconut", 1), ("common.items.ore.veloritefrag", 1), ("common.items.crafting_tools.mortar_pestle", 0)]), - "apple_shroom_curry": (("common.items.food.apple_mushroom_curry", 1), [("common.items.food.mushroom", 10), ("common.items.food.coconut", 1), ("common.items.food.apple", 5), ("common.items.crafting_tools.mortar_pestle", 0)]), - "apples_stick": (("common.items.food.apple_stick", 1),[("common.items.crafting_ing.twigs", 1), ("common.items.food.apple", 3)]), - "mushroom_stick": (("common.items.food.mushroom_stick", 1),[("common.items.crafting_ing.twigs", 1), ("common.items.food.mushroom", 5)]), + "apple_shroom_curry": (("common.items.food.apple_mushroom_curry", 1), [("common.items.food.mushroom", 8), ("common.items.food.coconut", 1), ("common.items.food.apple", 4), ("common.items.crafting_tools.mortar_pestle", 0)]), + "apples_stick": (("common.items.food.apple_stick", 1),[("common.items.crafting_ing.twigs", 2), ("common.items.food.apple", 2)]), + "mushroom_stick": (("common.items.food.mushroom_stick", 1),[("common.items.crafting_ing.twigs", 2), ("common.items.food.mushroom", 3)]), } diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 986ddc57e4..1afc6aa059 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -31,7 +31,8 @@ impl Alignment { (Alignment::Enemy, Alignment::Tame) => true, (Alignment::Wild, Alignment::Enemy) => false, (Alignment::Wild, Alignment::Wild) => false, - (Alignment::Npc, Alignment::Wild) => true, + (Alignment::Npc, Alignment::Wild) => false, + (Alignment::Npc, Alignment::Enemy) => true, (_, Alignment::Enemy) => true, (Alignment::Enemy, _) => true, _ => false, diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 6661bcc766..fd30c24a20 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -179,111 +179,354 @@ impl Body { } } + #[allow(unreachable_patterns)] pub fn base_health(&self) -> u32 { match self { - Body::Humanoid(_) => 520, - Body::QuadrupedSmall(_) => 440, - Body::QuadrupedMedium(_) => 720, - Body::BirdMedium(_) => 360, - Body::FishMedium(_) => 320, - Body::Dragon(_) => 2560, - Body::BirdSmall(_) => 240, - Body::FishSmall(_) => 200, - Body::BipedLarge(_) => 1440, - Body::Object(_) => 1000, - Body::Golem(_) => 1680, - Body::Critter(_) => 320, - Body::QuadrupedLow(_) => 640, + Body::Humanoid(_) => 400, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + quadruped_small::Species::Boar => 180, + quadruped_small::Species::Batfox => 100, + quadruped_small::Species::Dodarock => 320, + quadruped_small::Species::Holladon => 250, + quadruped_small::Species::Hyena => 150, + quadruped_small::Species::Truffler => 180, + _ => 80, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + quadruped_medium::Species::Grolgar => 300, + quadruped_medium::Species::Saber => 200, + quadruped_medium::Species::Tiger => 200, + quadruped_medium::Species::Tuskram => 300, + quadruped_medium::Species::Lion => 400, + quadruped_medium::Species::Tarasque => 600, + quadruped_medium::Species::Wolf => 200, + quadruped_medium::Species::Frostfang => 400, + quadruped_medium::Species::Mouflon => 300, + quadruped_medium::Species::Catoblepas => 500, + quadruped_medium::Species::Bonerattler => 300, + _ => 200, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + bird_medium::Species::Chicken => 50, + bird_medium::Species::Duck => 50, + bird_medium::Species::Goose => 60, + bird_medium::Species::Parrot => 60, + bird_medium::Species::Peacock => 55, + bird_medium::Species::Cockatrice => 110, + bird_medium::Species::Eagle => 110, + _ => 100, + }, + Body::FishMedium(_) => 50, + Body::Dragon(dragon) => match dragon.species { + _ => 5000, + }, + Body::BirdSmall(_) => 50, + Body::FishSmall(_) => 20, + Body::BipedLarge(biped_large) => match biped_large.species { + biped_large::Species::Ogre => 700, + biped_large::Species::Cyclops => 800, + biped_large::Species::Wendigo => 800, + biped_large::Species::Troll => 600, + biped_large::Species::Dullahan => 1200, + _ => 1000, + }, + Body::Object(_) => 10000, + Body::Golem(golem) => match golem.species { + _ => 1500, + }, + Body::Critter(critter) => match critter.species { + _ => 50, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + quadruped_low::Species::Crocodile => 200, + quadruped_low::Species::Alligator => 200, + quadruped_low::Species::Salamander => 100, + quadruped_low::Species::Monitor => 80, + quadruped_low::Species::Asp => 80, + quadruped_low::Species::Tortoise => 200, + quadruped_low::Species::Rocksnapper => 500, + quadruped_low::Species::Pangolin => 60, + quadruped_low::Species::Maneater => 250, + _ => 200, + }, } } + #[allow(unreachable_patterns)] pub fn base_health_increase(&self) -> u32 { match self { Body::Humanoid(_) => 50, - Body::QuadrupedSmall(_) => 40, - Body::QuadrupedMedium(_) => 70, - Body::BirdMedium(_) => 40, - Body::FishMedium(_) => 30, - Body::Dragon(_) => 260, - Body::BirdSmall(_) => 20, - Body::FishSmall(_) => 20, - Body::BipedLarge(_) => 140, - Body::Object(_) => 0, - Body::Golem(_) => 170, - Body::Critter(_) => 30, - Body::QuadrupedLow(_) => 60, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + quadruped_small::Species::Boar => 20, + quadruped_small::Species::Batfox => 10, + quadruped_small::Species::Dodarock => 30, + quadruped_small::Species::Holladon => 30, + quadruped_small::Species::Hyena => 20, + quadruped_small::Species::Truffler => 20, + _ => 10, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + quadruped_medium::Species::Grolgar => 30, + quadruped_medium::Species::Saber => 20, + quadruped_medium::Species::Tiger => 20, + quadruped_medium::Species::Tuskram => 30, + quadruped_medium::Species::Lion => 40, + quadruped_medium::Species::Tarasque => 60, + quadruped_medium::Species::Wolf => 20, + quadruped_medium::Species::Frostfang => 40, + quadruped_medium::Species::Mouflon => 30, + quadruped_medium::Species::Catoblepas => 50, + quadruped_medium::Species::Bonerattler => 30, + _ => 20, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + bird_medium::Species::Chicken => 10, + bird_medium::Species::Duck => 10, + bird_medium::Species::Goose => 10, + bird_medium::Species::Parrot => 10, + bird_medium::Species::Peacock => 10, + bird_medium::Species::Cockatrice => 10, + bird_medium::Species::Eagle => 10, + _ => 10, + }, + Body::FishMedium(_) => 10, + Body::Dragon(dragon) => match dragon.species { + _ => 500, + }, + Body::BirdSmall(_) => 10, + Body::FishSmall(_) => 10, + Body::BipedLarge(biped_large) => match biped_large.species { + biped_large::Species::Ogre => 70, + biped_large::Species::Cyclops => 80, + biped_large::Species::Wendigo => 80, + biped_large::Species::Troll => 60, + biped_large::Species::Dullahan => 120, + _ => 100, + }, + Body::Object(_) => 10, + Body::Golem(golem) => match golem.species { + _ => 150, + }, + Body::Critter(critter) => match critter.species { + _ => 10, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + quadruped_low::Species::Crocodile => 20, + quadruped_low::Species::Alligator => 20, + quadruped_low::Species::Salamander => 10, + quadruped_low::Species::Monitor => 10, + quadruped_low::Species::Asp => 10, + quadruped_low::Species::Tortoise => 20, + quadruped_low::Species::Rocksnapper => 50, + quadruped_low::Species::Pangolin => 10, + quadruped_low::Species::Maneater => 30, + _ => 20, + }, } } + #[allow(unreachable_patterns)] pub fn base_exp(&self) -> u32 { match self { - Body::Humanoid(_) => 15, - Body::QuadrupedSmall(_) => 12, - Body::QuadrupedMedium(_) => 28, - Body::BirdMedium(_) => 10, - Body::FishMedium(_) => 8, - Body::Dragon(_) => 160, - Body::BirdSmall(_) => 5, - Body::FishSmall(_) => 4, - Body::BipedLarge(_) => 75, - Body::Object(_) => 0, - Body::Golem(_) => 75, - Body::Critter(_) => 8, - Body::QuadrupedLow(_) => 24, + Body::Humanoid(_) => 5, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + quadruped_small::Species::Boar => 6, + quadruped_small::Species::Batfox => 6, + quadruped_small::Species::Dodarock => 6, + quadruped_small::Species::Holladon => 8, + quadruped_small::Species::Hyena => 6, + quadruped_small::Species::Truffler => 6, + _ => 4, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + quadruped_medium::Species::Grolgar => 10, + quadruped_medium::Species::Saber => 8, + quadruped_medium::Species::Tiger => 8, + quadruped_medium::Species::Tuskram => 9, + quadruped_medium::Species::Lion => 10, + quadruped_medium::Species::Tarasque => 16, + quadruped_medium::Species::Wolf => 8, + quadruped_medium::Species::Frostfang => 9, + quadruped_medium::Species::Mouflon => 7, + quadruped_medium::Species::Catoblepas => 10, + quadruped_medium::Species::Bonerattler => 10, + _ => 6, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + bird_medium::Species::Chicken => 2, + bird_medium::Species::Duck => 2, + bird_medium::Species::Goose => 4, + bird_medium::Species::Parrot => 4, + bird_medium::Species::Peacock => 5, + _ => 8, + }, + Body::FishMedium(_) => 2, + Body::Dragon(dragon) => match dragon.species { + _ => 1000, + }, + Body::BirdSmall(_) => 2, + Body::FishSmall(_) => 2, + Body::BipedLarge(biped_large) => match biped_large.species { + biped_large::Species::Ogre => 60, + biped_large::Species::Cyclops => 70, + biped_large::Species::Wendigo => 70, + biped_large::Species::Troll => 50, + biped_large::Species::Dullahan => 100, + _ => 100, + }, + Body::Object(_) => 1, + Body::Golem(golem) => match golem.species { + _ => 75, + }, + Body::Critter(critter) => match critter.species { + _ => 2, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + quadruped_low::Species::Crocodile => 10, + quadruped_low::Species::Alligator => 10, + quadruped_low::Species::Salamander => 6, + quadruped_low::Species::Monitor => 4, + quadruped_low::Species::Asp => 4, + quadruped_low::Species::Tortoise => 6, + quadruped_low::Species::Rocksnapper => 12, + quadruped_low::Species::Pangolin => 3, + quadruped_low::Species::Maneater => 14, + _ => 10, + }, } } + #[allow(unreachable_patterns)] pub fn base_exp_increase(&self) -> u32 { match self { - Body::Humanoid(_) => 3, - Body::QuadrupedSmall(_) => 2, - Body::QuadrupedMedium(_) => 6, - Body::BirdMedium(_) => 2, - Body::FishMedium(_) => 2, - Body::Dragon(_) => 32, + Body::Humanoid(_) => 2, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + _ => 1, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + _ => 1, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + _ => 1, + }, + Body::FishMedium(_) => 1, + Body::Dragon(dragon) => match dragon.species { + _ => 32, + }, Body::BirdSmall(_) => 1, Body::FishSmall(_) => 1, - Body::BipedLarge(_) => 15, + Body::BipedLarge(biped_large) => match biped_large.species { + _ => 5, + }, Body::Object(_) => 0, - Body::Golem(_) => 15, - Body::Critter(_) => 2, - Body::QuadrupedLow(_) => 5, + Body::Golem(golem) => match golem.species { + _ => 10, + }, + Body::Critter(critter) => match critter.species { + _ => 1, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + _ => 1, + }, } } + #[allow(unreachable_patterns)] pub fn base_dmg(&self) -> u32 { match self { - Body::Humanoid(_) => 60, - Body::QuadrupedSmall(_) => 80, - Body::QuadrupedMedium(_) => 120, - Body::BirdMedium(_) => 70, - Body::FishMedium(_) => 60, - Body::Dragon(_) => 900, - Body::BirdSmall(_) => 50, - Body::FishSmall(_) => 30, - Body::BipedLarge(_) => 360, + Body::Humanoid(_) => 50, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + quadruped_small::Species::Dodarock => 30, + quadruped_small::Species::Hyena => 40, + _ => 20, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + quadruped_medium::Species::Grolgar => 50, + quadruped_medium::Species::Lion => 60, + quadruped_medium::Species::Tarasque => 70, + quadruped_medium::Species::Mouflon => 30, + quadruped_medium::Species::Catoblepas => 20, + quadruped_medium::Species::Bonerattler => 50, + _ => 40, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + bird_medium::Species::Chicken => 10, + bird_medium::Species::Duck => 10, + bird_medium::Species::Goose => 10, + bird_medium::Species::Parrot => 20, + bird_medium::Species::Peacock => 40, + bird_medium::Species::Cockatrice => 60, + bird_medium::Species::Eagle => 60, + _ => 30, + }, + Body::FishMedium(_) => 10, + Body::Dragon(dragon) => match dragon.species { + _ => 5000, + }, + Body::BirdSmall(_) => 10, + Body::FishSmall(_) => 10, + Body::BipedLarge(biped_large) => match biped_large.species { + biped_large::Species::Ogre => 60, + biped_large::Species::Cyclops => 60, + biped_large::Species::Wendigo => 60, + biped_large::Species::Troll => 60, + biped_large::Species::Dullahan => 80, + _ => 60, + }, Body::Object(_) => 0, - Body::Golem(_) => 360, - Body::Critter(_) => 70, - Body::QuadrupedLow(_) => 110, + Body::Golem(golem) => match golem.species { + _ => 250, + }, + Body::Critter(critter) => match critter.species { + _ => 10, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + quadruped_low::Species::Crocodile => 50, + quadruped_low::Species::Alligator => 50, + quadruped_low::Species::Salamander => 30, + quadruped_low::Species::Monitor => 30, + quadruped_low::Species::Asp => 35, + quadruped_low::Species::Tortoise => 10, + quadruped_low::Species::Rocksnapper => 80, + quadruped_low::Species::Pangolin => 10, + quadruped_low::Species::Maneater => 40, + _ => 20, + }, } } + #[allow(unreachable_patterns)] pub fn base_range(&self) -> f32 { match self { Body::Humanoid(_) => 5.0, - Body::QuadrupedSmall(_) => 4.5, - Body::QuadrupedMedium(_) => 5.5, - Body::BirdMedium(_) => 3.5, + Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { + _ => 4.5, + }, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + _ => 5.5, + }, + Body::BirdMedium(bird_medium) => match bird_medium.species { + _ => 3.5, + }, Body::FishMedium(_) => 3.5, - Body::Dragon(_) => 12.5, + Body::Dragon(dragon) => match dragon.species { + _ => 12.5, + }, Body::BirdSmall(_) => 3.0, Body::FishSmall(_) => 3.0, - Body::BipedLarge(_) => 10.0, + Body::BipedLarge(biped_large) => match biped_large.species { + _ => 10.0, + }, Body::Object(_) => 3.0, - Body::Golem(_) => 7.5, - Body::Critter(_) => 3.0, - Body::QuadrupedLow(_) => 4.5, + Body::Golem(golem) => match golem.species { + _ => 7.5, + }, + Body::Critter(critter) => match critter.species { + _ => 3.0, + }, + Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { + _ => 4.5, + }, } } } diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index a2fed71eb3..16e940f7f9 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -332,7 +332,8 @@ impl<'a> System<'a> for Sys { inputs.move_dir = Vec2::from(bearing) .try_normalized() .unwrap_or(Vec2::zero()) - * speed; + * speed + * 0.6; //Let small/slow animals flee slower than the player inputs.jump.set_state(bearing.z > 1.5); inputs.swimup.set_state(bearing.z > 0.5); inputs.swimdown.set_state(bearing.z < 0.5); diff --git a/server/src/sys/terrain.rs b/server/src/sys/terrain.rs index 65277a7d9a..31a197d1c8 100644 --- a/server/src/sys/terrain.rs +++ b/server/src/sys/terrain.rs @@ -194,25 +194,25 @@ impl<'a> System<'a> for Sys { active_item, second_item: None, shoulder: Some(assets::load_expect_cloned( - "common.items.armor.shoulder.cultist_shoulder_purple", + "common.items.npc_armor.shoulder.cultist_shoulder_purple", )), chest: Some(assets::load_expect_cloned( - "common.items.armor.chest.cultist_chest_purple", + "common.items.npc_armor.chest.cultist_chest_purple", )), belt: Some(assets::load_expect_cloned( - "common.items.armor.belt.cultist_belt", + "common.items.npc_armor.belt.cultist_belt", )), hand: Some(assets::load_expect_cloned( - "common.items.armor.hand.cultist_hands_purple", + "common.items.npc_armor.hand.cultist_hands_purple", )), pants: Some(assets::load_expect_cloned( - "common.items.armor.pants.cultist_legs_purple", + "common.items.npc_armor.pants.cultist_legs_purple", )), foot: Some(assets::load_expect_cloned( - "common.items.armor.foot.cultist_boots", + "common.items.npc_armor.foot.cultist_boots", )), back: Some(assets::load_expect_cloned( - "common.items.armor.back.dungeon_purple-0", + "common.items.npc_armor.back.dungeon_purple-0", )), ring: None, neck: None, @@ -223,6 +223,11 @@ impl<'a> System<'a> for Sys { _ => LoadoutBuilder::animal(entity.body).build(), }; + loadout = match body { + comp::Body::Humanoid(_) => loadout, + _ => LoadoutBuilder::animal(entity.body).build(), + }; + let mut scale = entity.scale; // TODO: Remove this and implement scaling or level depending on stuff like @@ -255,7 +260,7 @@ impl<'a> System<'a> for Sys { loadout = comp::Loadout { active_item: Some(comp::ItemConfig { item: assets::load_expect_cloned( - "common.items.weapons.sword.zweihander_sword_0", + "common.items.npc_weapons.sword.zweihander_sword_0", ), ability1: Some(CharacterAbility::BasicMelee { energy_cost: 0, diff --git a/world/src/layer/mod.rs b/world/src/layer/mod.rs index 19b4b0ee6f..4cc286e2ec 100644 --- a/world/src/layer/mod.rs +++ b/world/src/layer/mod.rs @@ -45,50 +45,50 @@ pub fn apply_scatter_to<'a>( // Flowers (BlueFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.1, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), (PinkFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.2, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), (PurpleFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.3, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), (RedFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.5, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), (WhiteFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.0, 0.3).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), (YellowFlower, false, |c| { ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) + close(c.temp, 0.3, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), + * 0.01, + Some((48.0, 0.2)), ) }), // Herbs and Spices @@ -151,19 +151,19 @@ pub fn apply_scatter_to<'a>( }), (MediumGrass, false, |c| { ( - close(c.temp, 0.0, 0.6).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * 0.05, + close(c.temp, 0.0, 0.5).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * 0.05, Some((48.0, 0.4)), ) }), (LongGrass, false, |c| { ( - close(c.temp, 0.4, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.2)) * 0.05, + close(c.temp, 0.4, 0.5).min(close(c.humidity, CONFIG.forest_hum, 0.2)) * 0.05, Some((48.0, 0.5)), ) }), (WheatGreen, false, |c| { ( - close(c.temp, 0.4, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.1)) + close(c.temp, 0.4, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.1)) * MUSH_FACT * 0.001, None, diff --git a/world/src/lib.rs b/world/src/lib.rs index e4ab5cdd58..9d32ab1442 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -242,12 +242,23 @@ impl World { } else { false }; + let quadmed = comp::Body::QuadrupedMedium(quadruped_medium::Body::random()); // Not all of them are hostile so we have to do the rng here + let quadlow = comp::Body::QuadrupedLow(quadruped_low::Body::random()); // Not all of them are hostile so we have to do the rng here let entity = EntityInfo::at(gen_entity_pos()) .do_if(is_giant, |e| e.into_giant()) .with_body(match rng.gen_range(0, 5) { 0 => { - is_hostile = true; - comp::Body::QuadrupedMedium(quadruped_medium::Body::random()) + match quadmed { + comp::Body::QuadrupedMedium(quadruped_medium) => { + match quadruped_medium.species { + quadruped_medium::Species::Catoblepas => is_hostile = false, + quadruped_medium::Species::Mouflon => is_hostile = false, + _ => is_hostile = true, + } + }, + _ => is_hostile = true, + }; + quadmed }, 1 => { is_hostile = false; @@ -258,8 +269,18 @@ impl World { comp::Body::Critter(critter::Body::random()) }, 3 => { - is_hostile = false; - comp::Body::QuadrupedLow(quadruped_low::Body::random()) + match quadlow { + comp::Body::QuadrupedLow(quadruped_low) => { + match quadruped_low.species { + quadruped_low::Species::Crocodile => is_hostile = true, + quadruped_low::Species::Alligator => is_hostile = true, + quadruped_low::Species::Maneater => is_hostile = true, + _ => is_hostile = false, + } + }, + _ => is_hostile = false, + }; + quadlow }, _ => { is_hostile = false; diff --git a/world/src/site/dungeon/mod.rs b/world/src/site/dungeon/mod.rs index 92fff69a80..732cf06759 100644 --- a/world/src/site/dungeon/mod.rs +++ b/world/src/site/dungeon/mod.rs @@ -472,12 +472,12 @@ impl Floor { .with_body(comp::Body::Humanoid(comp::humanoid::Body::random())) .with_automatic_name() .with_main_tool(assets::load_expect_cloned(match rng.gen_range(0, 6) { - 0 => "common.items.weapons.axe.starter_axe", - 1 => "common.items.weapons.sword.cultist_purp_2h-0", - 2 => "common.items.weapons.sword.short_sword_0", - 3 => "common.items.weapons.hammer.cultist_purp_2h-0", - 4 => "common.items.weapons.staff.cultist_staff", - _ => "common.items.weapons.bow.starter_bow", + 0 => "common.items.npc_weapons.axe.malachite_axe-0", + 1 => "common.items.npc_weapons.sword.cultist_purp_2h-0", + 2 => "common.items.npc_weapons.sword.cultist_purp_2h-0", + 3 => "common.items.npc_weapons.hammer.cultist_purp_2h-0", + 4 => "common.items.npc_weapons.staff.cultist_staff", + _ => "common.items.npc_weapons.bow.horn_longbow-0", })); supplement.add_entity(entity); @@ -509,8 +509,10 @@ impl Floor { )) .with_main_tool(assets::load_expect_cloned( match rng.gen_range(0, 1) { - //Add more possible cult leader weapons here - _ => "common.items.weapons.sword.cultist_purp_2h-0", + //Add more possible cult leader npc_weapons here + _ => { + "common.items.npc_weapons.sword.cultist_purp_2h_boss-0" + }, }, )) .with_loot_drop(match rng.gen_range(0, 20) { diff --git a/world/src/site/settlement/mod.rs b/world/src/site/settlement/mod.rs index 8f6dcf6ed9..196f574bad 100644 --- a/world/src/site/settlement/mod.rs +++ b/world/src/site/settlement/mod.rs @@ -906,14 +906,14 @@ impl Settlement { .do_if(is_human && rng.gen(), |entity| { entity.with_main_tool(assets::load_expect_cloned( match rng.gen_range(0, 7) { - 0 => "common.items.weapons.tool.broom", - 1 => "common.items.weapons.tool.hoe", - 2 => "common.items.weapons.tool.pickaxe", - 3 => "common.items.weapons.tool.pitchfork", - 4 => "common.items.weapons.tool.rake", - 5 => "common.items.weapons.tool.shovel-0", - _ => "common.items.weapons.tool.shovel-1", - //_ => "common.items.weapons.bow.starter_bow", TODO: Re-Add this when we have a better way of distributing weapons here + 0 => "common.items.npc_weapons.tool.broom", + 1 => "common.items.npc_weapons.tool.hoe", + 2 => "common.items.npc_weapons.tool.pickaxe", + 3 => "common.items.npc_weapons.tool.pitchfork", + 4 => "common.items.npc_weapons.tool.rake", + 5 => "common.items.npc_weapons.tool.shovel-0", + _ => "common.items.npc_weapons.tool.shovel-1", + //_ => "common.items.npc_weapons.bow.starter_bow", TODO: Re-Add this when we have a better way of distributing npc_weapons here }, )) })