From 7f928d0bc0123622acf89ade8699c1dd7789a259 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sun, 19 Dec 2021 23:49:35 -0500 Subject: [PATCH 1/4] woodengolem, chieftain, icedrake, blowgun --- .../entity/dungeon/tier-0/chieftain.ron | 13 ++++ .../dungeon/tier-0/{staff.ron => logger.ron} | 6 +- .../dungeon/tier-0/{spear.ron => mugger.ron} | 2 +- .../dungeon/tier-0/{bow.ron => stalker.ron} | 4 +- .../biped_small/gnarling/chest/chieftain.ron | 16 +++++ .../chest/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/chest/mugger.ron | 16 +++++ .../biped_small/gnarling/chest/stalker.ron | 16 +++++ .../biped_small/gnarling/foot/chieftain.ron | 16 +++++ .../foot/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/foot/mugger.ron | 16 +++++ .../biped_small/gnarling/foot/stalker.ron | 16 +++++ .../biped_small/gnarling/hand/chieftain.ron | 16 +++++ .../hand/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/hand/mugger.ron | 16 +++++ .../biped_small/gnarling/hand/stalker.ron | 16 +++++ .../biped_small/gnarling/head/chieftain.ron | 16 +++++ .../head/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/head/mugger.ron | 16 +++++ .../biped_small/gnarling/head/stalker.ron | 16 +++++ .../biped_small/gnarling/pants/chieftain.ron | 16 +++++ .../pants/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/pants/mugger.ron | 16 +++++ .../biped_small/gnarling/pants/stalker.ron | 16 +++++ .../biped_small/gnarling/tail/chieftain.ron | 16 +++++ .../tail/{gnarling.ron => logger.ron} | 2 +- .../biped_small/gnarling/tail/mugger.ron | 16 +++++ .../biped_small/gnarling/tail/stalker.ron | 16 +++++ .../biped_small/gnarling/blowgun.ron | 21 ++++++ .../biped_small/gnarling/chieftain_staff.ron | 21 ++++++ .../dungeon/tier-0/gnarling_chieftain.ron | 8 +++ .../tier-0/{gnarling.ron => logger.ron} | 12 ++-- .../common/loadout/dungeon/tier-0/mugger.ron | 8 +++ .../common/loadout/dungeon/tier-0/stalker.ron | 8 +++ assets/common/npc_names.ron | 8 +++ .../biped_small_armor_chest_manifest.ron | 13 +++- .../voxel/biped_small_armor_foot_manifest.ron | 30 +++++++- .../voxel/biped_small_armor_hand_manifest.ron | 30 +++++++- .../voxel/biped_small_armor_head_manifest.ron | 13 +++- .../biped_small_armor_pants_manifest.ron | 13 +++- .../voxel/biped_small_armor_tail_manifest.ron | 13 +++- .../voxygen/voxel/biped_weapon_manifest.ron | 8 +++ .../voxygen/voxel/golem_central_manifest.ron | 36 ++++++++++ .../voxygen/voxel/golem_lateral_manifest.ron | 68 +++++++++++++++++++ .../voxel/npc/gnarling/chieftain/chest.vox | 3 + .../voxel/npc/gnarling/chieftain/foot_r.vox | 3 + .../voxel/npc/gnarling/chieftain/hand_r.vox | 3 + .../voxel/npc/gnarling/chieftain/head.vox | 3 + .../voxel/npc/gnarling/chieftain/pants.vox | 3 + .../voxel/npc/gnarling/chieftain/tail.vox | 3 + .../voxel/npc/gnarling/logger/chest.vox | 3 + .../voxel/npc/gnarling/logger/foot_r.vox | 3 + .../voxel/npc/gnarling/logger/hand_r.vox | 3 + .../voxel/npc/gnarling/logger/head.vox | 3 + .../voxel/npc/gnarling/logger/pants.vox | 3 + .../voxel/npc/gnarling/logger/tail.vox | 3 + .../npc/gnarling/{male => mugger}/chest.vox | 0 .../npc/gnarling/{male => mugger}/dagger.vox | 0 .../npc/gnarling/{male => mugger}/foot_r.vox | 0 .../npc/gnarling/{male => mugger}/hand_r.vox | 0 .../npc/gnarling/{male => mugger}/head.vox | 0 .../gnarling/{male => mugger}/main_hand.vox | 0 .../npc/gnarling/{male => mugger}/pants.vox | 0 .../npc/gnarling/{male => mugger}/tail.vox | 0 .../voxel/npc/gnarling/stalker/chest.vox | 3 + .../voxel/npc/gnarling/stalker/foot_r.vox | 3 + .../voxel/npc/gnarling/stalker/hand_r.vox | 3 + .../voxel/npc/gnarling/stalker/head.vox | 3 + .../voxel/npc/gnarling/stalker/pants.vox | 3 + .../voxel/npc/gnarling/stalker/tail.vox | 3 + .../voxygen/voxel/npc/icedrake/male/chest.vox | 3 + .../voxel/npc/icedrake/male/foot_br.vox | 3 + .../voxel/npc/icedrake/male/foot_fr.vox | 3 + .../voxel/npc/icedrake/male/head_lower.vox | 3 + .../voxel/npc/icedrake/male/head_upper.vox | 3 + .../voxygen/voxel/npc/icedrake/male/jaw.vox | 3 + .../voxel/npc/icedrake/male/tail_front.vox | 3 + .../voxel/npc/icedrake/male/tail_rear.vox | 3 + .../voxel/npc/woodgolem/male/chest_lower.vox | 3 + .../voxel/npc/woodgolem/male/chest_upper.vox | 3 + .../voxel/npc/woodgolem/male/foot_l.vox | 3 + .../voxel/npc/woodgolem/male/foot_r.vox | 3 + .../voxel/npc/woodgolem/male/hand_l.vox | 3 + .../voxel/npc/woodgolem/male/hand_r.vox | 3 + .../voxygen/voxel/npc/woodgolem/male/head.vox | 3 + .../voxel/npc/woodgolem/male/leg_l.vox | 3 + .../voxel/npc/woodgolem/male/leg_r.vox | 3 + .../voxel/npc/woodgolem/male/shoulder_l.vox | 3 + .../voxel/npc/woodgolem/male/shoulder_r.vox | 3 + .../voxel/quadruped_low_central_manifest.ron | 52 ++++++++++++++ .../voxel/quadruped_low_lateral_manifest.ron | 36 ++++++++++ .../voxel/weapon/biped_small/blowgun.vox | 3 + .../biped_small/staff/chieftain_staff.vox | 3 + assets/voxygen/voxel/weapon/gnartlingaxe.vox | 3 + common/src/bin/csv_export/main.rs | 1 + common/src/comp/body/golem.rs | 10 ++- common/src/comp/body/quadruped_low.rs | 6 +- common/src/comp/inventory/item/modular.rs | 4 ++ common/src/comp/inventory/item/tool.rs | 3 + common/src/states/utils.rs | 2 + server/src/persistence/json_models.rs | 1 + server/src/sys/agent.rs | 2 +- voxygen/anim/src/golem/mod.rs | 10 +++ voxygen/anim/src/quadruped_low/mod.rs | 12 +++- voxygen/src/hud/diary.rs | 1 + voxygen/src/hud/util.rs | 1 + world/src/layer/spot.rs | 15 ++-- world/src/site2/plot/dungeon.rs | 6 +- 108 files changed, 871 insertions(+), 46 deletions(-) create mode 100644 assets/common/entity/dungeon/tier-0/chieftain.ron rename assets/common/entity/dungeon/tier-0/{staff.ron => logger.ron} (65%) rename assets/common/entity/dungeon/tier-0/{spear.ron => mugger.ron} (82%) rename assets/common/entity/dungeon/tier-0/{bow.ron => stalker.ron} (75%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/chest/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/chest/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/chest/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/chest/stalker.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/foot/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/foot/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/foot/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/foot/stalker.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/hand/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/hand/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/hand/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/hand/stalker.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/head/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/head/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/head/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/head/stalker.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/pants/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/pants/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/pants/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/pants/stalker.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/tail/chieftain.ron rename assets/common/items/npc_armor/biped_small/gnarling/tail/{gnarling.ron => logger.ron} (90%) create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/tail/mugger.ron create mode 100644 assets/common/items/npc_armor/biped_small/gnarling/tail/stalker.ron create mode 100644 assets/common/items/npc_weapons/biped_small/gnarling/blowgun.ron create mode 100644 assets/common/items/npc_weapons/biped_small/gnarling/chieftain_staff.ron create mode 100644 assets/common/loadout/dungeon/tier-0/gnarling_chieftain.ron rename assets/common/loadout/dungeon/tier-0/{gnarling.ron => logger.ron} (75%) create mode 100644 assets/common/loadout/dungeon/tier-0/mugger.ron create mode 100644 assets/common/loadout/dungeon/tier-0/stalker.ron create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/head.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/chest.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/head.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/pants.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/logger/tail.vox rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/chest.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/dagger.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/foot_r.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/hand_r.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/head.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/main_hand.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/pants.vox (100%) rename assets/voxygen/voxel/npc/gnarling/{male => mugger}/tail.vox (100%) create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/chest.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/head.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/pants.vox create mode 100644 assets/voxygen/voxel/npc/gnarling/stalker/tail.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/head.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox create mode 100644 assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox create mode 100644 assets/voxygen/voxel/weapon/biped_small/blowgun.vox create mode 100644 assets/voxygen/voxel/weapon/biped_small/staff/chieftain_staff.vox create mode 100644 assets/voxygen/voxel/weapon/gnartlingaxe.vox diff --git a/assets/common/entity/dungeon/tier-0/chieftain.ron b/assets/common/entity/dungeon/tier-0/chieftain.ron new file mode 100644 index 0000000000..31ebfc4003 --- /dev/null +++ b/assets/common/entity/dungeon/tier-0/chieftain.ron @@ -0,0 +1,13 @@ +EntityConfig ( + name: Name("Gnarling Chieftain"), + body: RandomWith("gnarling"), + alignment: Alignment(Enemy), + + loot: LootTable("common.loot_tables.dungeon.tier-0.enemy"), + + hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.chieftain_staff")), + + meta: [ + LoadoutAsset("common.loadout.dungeon.tier-0.gnarling_chieftain"), + ], +) diff --git a/assets/common/entity/dungeon/tier-0/staff.ron b/assets/common/entity/dungeon/tier-0/logger.ron similarity index 65% rename from assets/common/entity/dungeon/tier-0/staff.ron rename to assets/common/entity/dungeon/tier-0/logger.ron index cbcd59a973..30025178e1 100644 --- a/assets/common/entity/dungeon/tier-0/staff.ron +++ b/assets/common/entity/dungeon/tier-0/logger.ron @@ -1,13 +1,13 @@ EntityConfig ( - name: Name("Gnarling Shaman"), + name: Name("Gnarling Logger"), body: RandomWith("gnarling"), alignment: Alignment(Enemy), loot: LootTable("common.loot_tables.dungeon.tier-0.enemy"), - hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.gnoll_staff")), + hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.adlet_bow")), meta: [ - LoadoutAsset("common.loadout.dungeon.tier-0.gnarling"), + LoadoutAsset("common.loadout.dungeon.tier-0.logger"), ], ) diff --git a/assets/common/entity/dungeon/tier-0/spear.ron b/assets/common/entity/dungeon/tier-0/mugger.ron similarity index 82% rename from assets/common/entity/dungeon/tier-0/spear.ron rename to assets/common/entity/dungeon/tier-0/mugger.ron index e30541c047..963738eb81 100644 --- a/assets/common/entity/dungeon/tier-0/spear.ron +++ b/assets/common/entity/dungeon/tier-0/mugger.ron @@ -8,6 +8,6 @@ EntityConfig ( hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.wooden_spear")), meta: [ - LoadoutAsset("common.loadout.dungeon.tier-0.gnarling"), + LoadoutAsset("common.loadout.dungeon.tier-0.mugger"), ], ) diff --git a/assets/common/entity/dungeon/tier-0/bow.ron b/assets/common/entity/dungeon/tier-0/stalker.ron similarity index 75% rename from assets/common/entity/dungeon/tier-0/bow.ron rename to assets/common/entity/dungeon/tier-0/stalker.ron index b5520a43db..55476fef90 100644 --- a/assets/common/entity/dungeon/tier-0/bow.ron +++ b/assets/common/entity/dungeon/tier-0/stalker.ron @@ -5,9 +5,9 @@ EntityConfig ( loot: LootTable("common.loot_tables.dungeon.tier-0.enemy"), - hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.adlet_bow")), + hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.blowgun")), meta: [ - LoadoutAsset("common.loadout.dungeon.tier-0.gnarling"), + LoadoutAsset("common.loadout.dungeon.tier-0.stalker"), ], ) diff --git a/assets/common/items/npc_armor/biped_small/gnarling/chest/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/chest/chieftain.ron new file mode 100644 index 0000000000..87f243f870 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/chest/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Chest("GnarlingChieftain"), + stats: ( + protection: Some(Normal(2.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(2.7), + energy_reward: Some(0.027), + crit_power: Some(0.025), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/chest/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/chest/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/chest/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/chest/logger.ron index e8f25a40a0..aaca5ea570 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/chest/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/chest/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members.", kind: Armor(( - kind: Chest("Gnarling"), + kind: Chest("GnarlingLogger"), stats: ( protection: Some(Normal(2.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/chest/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/chest/mugger.ron new file mode 100644 index 0000000000..7e91678eef --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/chest/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Chest("GnarlingMugger"), + stats: ( + protection: Some(Normal(2.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(2.7), + energy_reward: Some(0.027), + crit_power: Some(0.025), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/chest/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/chest/stalker.ron new file mode 100644 index 0000000000..c408a6903b --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/chest/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Chest("GnarlingStalker"), + stats: ( + protection: Some(Normal(2.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(2.7), + energy_reward: Some(0.027), + crit_power: Some(0.025), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/foot/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/foot/chieftain.ron new file mode 100644 index 0000000000..cb6f6aa781 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/foot/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Foot("GnarlingChieftain"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/foot/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/foot/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/foot/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/foot/logger.ron index 262cb89dcd..16dd3f8546 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/foot/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/foot/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members.", kind: Armor(( - kind: Foot("Gnarling"), + kind: Foot("GnarlingLogger"), stats: ( protection: Some(Normal(1.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/foot/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/foot/mugger.ron new file mode 100644 index 0000000000..fbdcd1806d --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/foot/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Foot("GnarlingMugger"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/foot/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/foot/stalker.ron new file mode 100644 index 0000000000..38a874b186 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/foot/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Foot("GnarlingStalker"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/hand/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/hand/chieftain.ron new file mode 100644 index 0000000000..6b78da08c6 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/hand/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Hand("GnarlingChieftain"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/hand/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/hand/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/hand/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/hand/logger.ron index 7368937d83..0f38363d1e 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/hand/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/hand/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members..", kind: Armor(( - kind: Hand("Gnarling"), + kind: Hand("GnarlingLogger"), stats: ( protection: Some(Normal(1.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/hand/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/hand/mugger.ron new file mode 100644 index 0000000000..f577fca1cc --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/hand/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Hand("GnarlingMugger"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/hand/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/hand/stalker.ron new file mode 100644 index 0000000000..eef03b9d07 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/hand/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Hand("GnarlingStalker"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.9), + energy_reward: Some(0.009), + crit_power: Some(0.008), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/head/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/head/chieftain.ron new file mode 100644 index 0000000000..a1c0a4b007 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/head/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Head("GnarlingChieftain"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/head/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/head/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/head/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/head/logger.ron index 3a92f7e714..3eba187a1f 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/head/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/head/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members.", kind: Armor(( - kind: Head("Gnarling"), + kind: Head("GnarlingLogger"), stats: ( protection: Some(Normal(1.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/head/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/head/mugger.ron new file mode 100644 index 0000000000..d63180546d --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/head/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Head("GnarlingMugger"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/head/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/head/stalker.ron new file mode 100644 index 0000000000..9280371fcf --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/head/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Head("GnarlingStalker"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/pants/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/pants/chieftain.ron new file mode 100644 index 0000000000..11333b2efe --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/pants/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Pants("GnarlingChieftain"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/pants/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/pants/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/pants/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/pants/logger.ron index f6c04d502a..729ce1c3e0 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/pants/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/pants/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members..", kind: Armor(( - kind: Pants("Gnarling"), + kind: Pants("GnarlingLogger"), stats: ( protection: Some(Normal(1.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/pants/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/pants/mugger.ron new file mode 100644 index 0000000000..88d0704533 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/pants/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Pants("GnarlingMugger"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/pants/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/pants/stalker.ron new file mode 100644 index 0000000000..98c1e7fb22 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/pants/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Pants("GnarlingStalker"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(1.8), + energy_reward: Some(0.02), + crit_power: Some(0.016), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/tail/chieftain.ron b/assets/common/items/npc_armor/biped_small/gnarling/tail/chieftain.ron new file mode 100644 index 0000000000..07ec9b7c90 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/tail/chieftain.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling Chieftain", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Belt("GnarlingChieftain"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.4), + energy_reward: Some(0.005), + crit_power: Some(0.004), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/tail/gnarling.ron b/assets/common/items/npc_armor/biped_small/gnarling/tail/logger.ron similarity index 90% rename from assets/common/items/npc_armor/biped_small/gnarling/tail/gnarling.ron rename to assets/common/items/npc_armor/biped_small/gnarling/tail/logger.ron index 32eb147102..22b28de875 100644 --- a/assets/common/items/npc_armor/biped_small/gnarling/tail/gnarling.ron +++ b/assets/common/items/npc_armor/biped_small/gnarling/tail/logger.ron @@ -2,7 +2,7 @@ ItemDef( name: "Gnarling", description: "Ceremonial attire used by members.", kind: Armor(( - kind: Belt("Gnarling"), + kind: Belt("GnarlingLogger"), stats: ( protection: Some(Normal(1.0)), poise_resilience: Some(Normal(1.0)), diff --git a/assets/common/items/npc_armor/biped_small/gnarling/tail/mugger.ron b/assets/common/items/npc_armor/biped_small/gnarling/tail/mugger.ron new file mode 100644 index 0000000000..61de0184f9 --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/tail/mugger.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Belt("GnarlingMugger"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.4), + energy_reward: Some(0.005), + crit_power: Some(0.004), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/biped_small/gnarling/tail/stalker.ron b/assets/common/items/npc_armor/biped_small/gnarling/tail/stalker.ron new file mode 100644 index 0000000000..b7c8bcef3d --- /dev/null +++ b/assets/common/items/npc_armor/biped_small/gnarling/tail/stalker.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Gnarling", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Belt("GnarlingStalker"), + stats: ( + protection: Some(Normal(1.0)), + poise_resilience: Some(Normal(1.0)), + energy_max: Some(0.4), + energy_reward: Some(0.005), + crit_power: Some(0.004), + ), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/biped_small/gnarling/blowgun.ron b/assets/common/items/npc_weapons/biped_small/gnarling/blowgun.ron new file mode 100644 index 0000000000..20c9e57a18 --- /dev/null +++ b/assets/common/items/npc_weapons/biped_small/gnarling/blowgun.ron @@ -0,0 +1,21 @@ +ItemDef( + name: "Gnarling Blowgun", + description: "testing123", + kind: Tool(( + kind: Blowgun, + hands: Two, + stats: Direct(( + equip_time_secs: 0.0, + power: 0.3, + effect_power: 0.8, + speed: 0.6, + crit_chance: 0.26764706, + range: 1.0, + energy_efficiency: 1.0, + buff_strength: 1.0, + )), + )), + quality: Low, + tags: [], + ability_spec: None, +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/biped_small/gnarling/chieftain_staff.ron b/assets/common/items/npc_weapons/biped_small/gnarling/chieftain_staff.ron new file mode 100644 index 0000000000..ba7715df47 --- /dev/null +++ b/assets/common/items/npc_weapons/biped_small/gnarling/chieftain_staff.ron @@ -0,0 +1,21 @@ +ItemDef( + name: "Chieftain Staff", + description: "eekum bokum", + kind: Tool(( + kind: Staff, + hands: Two, + stats: Direct(( + equip_time_secs: 0.0, + power: 0.3, + effect_power: 0.8, + speed: 0.6, + crit_chance: 0.26764706, + range: 1.0, + energy_efficiency: 1.0, + buff_strength: 1.0, + )), + )), + quality: Low, + tags: [], + ability_spec: Some(Custom("Staff Simple")), +) \ No newline at end of file diff --git a/assets/common/loadout/dungeon/tier-0/gnarling_chieftain.ron b/assets/common/loadout/dungeon/tier-0/gnarling_chieftain.ron new file mode 100644 index 0000000000..423d3fe796 --- /dev/null +++ b/assets/common/loadout/dungeon/tier-0/gnarling_chieftain.ron @@ -0,0 +1,8 @@ +({ + Armor(Head): Item("common.items.npc_armor.biped_small.gnarling.head.chieftain"), + Armor(Feet): Item("common.items.npc_armor.biped_small.gnarling.foot.chieftain"), + Armor(Hands): Item("common.items.npc_armor.biped_small.gnarling.hand.chieftain"), + Armor(Chest): Item("common.items.npc_armor.biped_small.gnarling.chest.chieftain"), + Armor(Legs): Item("common.items.npc_armor.biped_small.gnarling.pants.chieftain"), + Armor(Belt): Item("common.items.npc_armor.biped_small.gnarling.tail.chieftain"), +}) diff --git a/assets/common/loadout/dungeon/tier-0/gnarling.ron b/assets/common/loadout/dungeon/tier-0/logger.ron similarity index 75% rename from assets/common/loadout/dungeon/tier-0/gnarling.ron rename to assets/common/loadout/dungeon/tier-0/logger.ron index 9d73cdefdb..b9fe5267d7 100644 --- a/assets/common/loadout/dungeon/tier-0/gnarling.ron +++ b/assets/common/loadout/dungeon/tier-0/logger.ron @@ -1,8 +1,8 @@ ({ - Armor(Head): Item("common.items.npc_armor.biped_small.gnarling.head.gnarling"), - Armor(Feet): Item("common.items.npc_armor.biped_small.gnarling.foot.gnarling"), - Armor(Hands): Item("common.items.npc_armor.biped_small.gnarling.hand.gnarling"), - Armor(Chest): Item("common.items.npc_armor.biped_small.gnarling.chest.gnarling"), - Armor(Legs): Item("common.items.npc_armor.biped_small.gnarling.pants.gnarling"), - Armor(Belt): Item("common.items.npc_armor.biped_small.gnarling.tail.gnarling"), + Armor(Head): Item("common.items.npc_armor.biped_small.gnarling.head.logger"), + Armor(Feet): Item("common.items.npc_armor.biped_small.gnarling.foot.logger"), + Armor(Hands): Item("common.items.npc_armor.biped_small.gnarling.hand.logger"), + Armor(Chest): Item("common.items.npc_armor.biped_small.gnarling.chest.logger"), + Armor(Legs): Item("common.items.npc_armor.biped_small.gnarling.pants.logger"), + Armor(Belt): Item("common.items.npc_armor.biped_small.gnarling.tail.logger"), }) diff --git a/assets/common/loadout/dungeon/tier-0/mugger.ron b/assets/common/loadout/dungeon/tier-0/mugger.ron new file mode 100644 index 0000000000..85ff3fdb9f --- /dev/null +++ b/assets/common/loadout/dungeon/tier-0/mugger.ron @@ -0,0 +1,8 @@ +({ + Armor(Head): Item("common.items.npc_armor.biped_small.gnarling.head.mugger"), + Armor(Feet): Item("common.items.npc_armor.biped_small.gnarling.foot.mugger"), + Armor(Hands): Item("common.items.npc_armor.biped_small.gnarling.hand.mugger"), + Armor(Chest): Item("common.items.npc_armor.biped_small.gnarling.chest.mugger"), + Armor(Legs): Item("common.items.npc_armor.biped_small.gnarling.pants.mugger"), + Armor(Belt): Item("common.items.npc_armor.biped_small.gnarling.tail.mugger"), +}) diff --git a/assets/common/loadout/dungeon/tier-0/stalker.ron b/assets/common/loadout/dungeon/tier-0/stalker.ron new file mode 100644 index 0000000000..d24e588899 --- /dev/null +++ b/assets/common/loadout/dungeon/tier-0/stalker.ron @@ -0,0 +1,8 @@ +({ + Armor(Head): Item("common.items.npc_armor.biped_small.gnarling.head.stalker"), + Armor(Feet): Item("common.items.npc_armor.biped_small.gnarling.foot.stalker"), + Armor(Hands): Item("common.items.npc_armor.biped_small.gnarling.hand.stalker"), + Armor(Chest): Item("common.items.npc_armor.biped_small.gnarling.chest.stalker"), + Armor(Legs): Item("common.items.npc_armor.biped_small.gnarling.pants.stalker"), + Armor(Belt): Item("common.items.npc_armor.biped_small.gnarling.tail.stalker"), +}) diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index 2056193f41..a3e79ee384 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -932,6 +932,10 @@ keyword: "treant", generic: "Treant" ), + woodgolem: ( + keyword: "woodgolem", + generic: "Wooden Golem" + ), claygolem: ( keyword: "claygolem", generic: "ClayGolem" @@ -1182,6 +1186,10 @@ keyword: "lavadrake", generic: "Lava Drake" ), + icedrake: ( + keyword: "icedrake", + generic: "Ice Drake" + ), basilisk: ( keyword: "basilisk", generic: "Basilisk" diff --git a/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron index d90c1f02f4..33dcc23a11 100644 --- a/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron @@ -15,8 +15,17 @@ "AdletBow": ( vox_spec: ("npc.adlet.male.bow.chest", (-5.0, -3.5, -2.0)), ), - "Gnarling": ( - vox_spec: ("npc.gnarling.male.chest", (-4.5, -3.5, -2.5)), + "GnarlingMugger": ( + vox_spec: ("npc.gnarling.mugger.chest", (-4.5, -3.5, -2.5)), + ), + "GnarlingStalker": ( + vox_spec: ("npc.gnarling.stalker.chest", (-4.5, -3.5, -2.5)), + ), + "GnarlingLogger": ( + vox_spec: ("npc.gnarling.logger.chest", (-4.5, -3.5, -2.5)), + ), + "GnarlingChieftain": ( + vox_spec: ("npc.gnarling.chieftain.chest", (-4.5, -3.5, -1.0)), ), "Mandragora": ( vox_spec: ("npc.mandragora.male.chest", (-11.0, -11.0, -6.5)), diff --git a/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron b/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron index beeb493969..218da8e0a2 100644 --- a/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron @@ -32,12 +32,36 @@ vox_spec: ("npc.adlet.male.foot_r", (-1.5, -3.0, -7.0)), ) ), - "Gnarling": ( + "GnarlingMugger": ( left: ( - vox_spec: ("npc.gnarling.male.foot_r", (-1.0, -2.0, -5.0)), + vox_spec: ("npc.gnarling.mugger.foot_r", (-1.0, -2.0, -5.0)), ), right: ( - vox_spec: ("npc.gnarling.male.foot_r", (-1.0, -2.0, -5.0)), + vox_spec: ("npc.gnarling.mugger.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "GnarlingStalker": ( + left: ( + vox_spec: ("npc.gnarling.stalker.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.stalker.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "GnarlingLogger": ( + left: ( + vox_spec: ("npc.gnarling.logger.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.logger.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "GnarlingChieftain": ( + left: ( + vox_spec: ("npc.gnarling.chieftain.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.chieftain.foot_r", (-1.0, -2.0, -5.0)), ) ), "Mandragora": ( diff --git a/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron index ce40fb213f..da9f239510 100644 --- a/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron @@ -40,12 +40,36 @@ vox_spec: ("npc.adlet.male.bow.hand_r", (0.0, -2.0, -7.0)), ) ), - "Gnarling": ( + "GnarlingMugger": ( left: ( - vox_spec: ("npc.gnarling.male.hand_r", (-3.0, -1.5, -7.0)), + vox_spec: ("npc.gnarling.mugger.hand_r", (-3.0, -1.5, -7.0)), ), right: ( - vox_spec: ("npc.gnarling.male.hand_r", (0.0, -1.5, -7.0)), + vox_spec: ("npc.gnarling.mugger.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "GnarlingStalker": ( + left: ( + vox_spec: ("npc.gnarling.stalker.hand_r", (-3.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.gnarling.stalker.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "GnarlingLogger": ( + left: ( + vox_spec: ("npc.gnarling.logger.hand_r", (-3.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.gnarling.logger.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "GnarlingChieftain": ( + left: ( + vox_spec: ("npc.gnarling.chieftain.hand_r", (-3.5, -0.5, -8.0)), + ), + right: ( + vox_spec: ("npc.gnarling.chieftain.hand_r", (-0.5, -0.5, -8.0)), ) ), "Mandragora": ( diff --git a/assets/voxygen/voxel/biped_small_armor_head_manifest.ron b/assets/voxygen/voxel/biped_small_armor_head_manifest.ron index 8c98ff367e..053019375b 100644 --- a/assets/voxygen/voxel/biped_small_armor_head_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_head_manifest.ron @@ -15,8 +15,17 @@ "AdletBow": ( vox_spec: ("npc.adlet.male.bow.head", (-7.0, -4.5, -6.0)), ), - "Gnarling": ( - vox_spec: ("npc.gnarling.male.head", (-6.5, -5.5, -4.5)), + "GnarlingMugger": ( + vox_spec: ("npc.gnarling.mugger.head", (-6.5, -5.5, -4.5)), + ), + "GnarlingStalker": ( + vox_spec: ("npc.gnarling.stalker.head", (-6.5, -5.5, -4.5)), + ), + "GnarlingLogger": ( + vox_spec: ("npc.gnarling.logger.head", (-6.5, -5.5, -4.5)), + ), + "GnarlingChieftain": ( + vox_spec: ("npc.gnarling.chieftain.head", (-6.5, -5.5, -4.5)), ), "Mandragora": ( vox_spec: ("npc.mandragora.male.head", (0.0, 0.0, 0.0)), diff --git a/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron index 1d860c4156..be8229dcbb 100644 --- a/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron @@ -15,8 +15,17 @@ "AdletBow": ( vox_spec: ("npc.adlet.male.bow.pants", (-5.0, -4.5, -3.0)), ), - "Gnarling": ( - vox_spec: ("npc.gnarling.male.pants", (-3.5, -3.0, -2.5)), + "GnarlingMugger": ( + vox_spec: ("npc.gnarling.mugger.pants", (-3.5, -3.0, -2.5)), + ), + "GnarlingStalker": ( + vox_spec: ("npc.gnarling.stalker.pants", (-3.5, -3.0, -2.5)), + ), + "GnarlingLogger": ( + vox_spec: ("npc.gnarling.logger.pants", (-3.5, -3.0, -2.5)), + ), + "GnarlingChieftain": ( + vox_spec: ("npc.gnarling.chieftain.pants", (-3.5, -3.0, -3.5)), ), "Mandragora": ( vox_spec: ("npc.mandragora.male.pants", (-3.0, -3.0, -1.0)), diff --git a/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron b/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron index 97f8e3325e..1a4f56d496 100644 --- a/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron @@ -9,8 +9,17 @@ "Adlet": ( vox_spec: ("npc.adlet.male.tail", (-1.0, -5.0, -1.0)), ), - "Gnarling": ( - vox_spec: ("npc.gnarling.male.tail", (-1.5, -13.0, -3.0)), + "GnarlingMugger": ( + vox_spec: ("npc.gnarling.mugger.tail", (-1.5, -13.0, -3.0)), + ), + "GnarlingStalker": ( + vox_spec: ("npc.gnarling.stalker.tail", (-1.5, -13.0, -3.0)), + ), + "GnarlingLogger": ( + vox_spec: ("npc.gnarling.logger.tail", (-1.5, -13.0, -3.0)), + ), + "GnarlingChieftain": ( + vox_spec: ("npc.gnarling.chieftain.tail", (-1.5, -14.0, -3.0)), ), "Kappa": ( vox_spec: ("npc.kappa.male.tail", (-2.5, -10.0, -5.0)), diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 9bf91969d1..a3b9e55766 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -1107,6 +1107,14 @@ vox_spec: ("weapon.biped_small.bow.adlet", (-2.5, -3.0, -5.0)), color: None ), + "common.items.npc_weapons.biped_small.gnarling.chieftain_staff": ( + vox_spec: ("weapon.biped_small.staff.chieftain_staff", (-0.5, -4.0, -4.0)), + color: None + ), + "common.items.npc_weapons.biped_small.gnarling.blowgun": ( + vox_spec: ("weapon.biped_small.blowgun", (-2.5, -2.5, -4.0)), + color: None + ), "common.items.npc_weapons.biped_small.adlet.gnoll_staff": ( vox_spec: ("weapon.biped_small.staff.sahagin", (-0.5, -4.0, -4.0)), color: None diff --git a/assets/voxygen/voxel/golem_central_manifest.ron b/assets/voxygen/voxel/golem_central_manifest.ron index 97e5b4c84f..2d33f6636b 100644 --- a/assets/voxygen/voxel/golem_central_manifest.ron +++ b/assets/voxygen/voxel/golem_central_manifest.ron @@ -107,4 +107,40 @@ central: ("npc.claygolem.male.chest_lower"), ), ), + (WoodGolem, Male): ( + head: ( + offset: (-6.5, -4.5, -3.0), + central: ("npc.woodgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-6.5, -7.0, -4.5), + central: ("npc.woodgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-2.5, -3.5, -7.0), + central: ("npc.woodgolem.male.chest_lower"), + ), + ), + (WoodGolem, Female): ( + head: ( + offset: (-6.5, -4.5, -3.0), + central: ("npc.woodgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-6.5, -7.0, -4.5), + central: ("npc.woodgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-2.5, -3.5, -7.0), + central: ("npc.woodgolem.male.chest_lower"), + ), + ), }) diff --git a/assets/voxygen/voxel/golem_lateral_manifest.ron b/assets/voxygen/voxel/golem_lateral_manifest.ron index 72f3858875..2deae03ae1 100644 --- a/assets/voxygen/voxel/golem_lateral_manifest.ron +++ b/assets/voxygen/voxel/golem_lateral_manifest.ron @@ -203,4 +203,72 @@ lateral: ("npc.claygolem.male.foot_r"), ) ), + (WoodGolem, Male): ( + shoulder_l: ( + offset: (-9.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_r"), + ) + ), + (WoodGolem, Female): ( + shoulder_l: ( + offset: (-9.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_r"), + ) + ), }) diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox new file mode 100644 index 0000000000..9a808c1362 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:903a3e314a37d57f6941ffb442091ba9b07c98c37cd1be37563b65417f38d0d0 +size 2004 diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox new file mode 100644 index 0000000000..379157237b --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bafdd38c6aedaffac1a3382834d294f87cf2e78aad6073f20e97680efcb5e98e +size 1212 diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox new file mode 100644 index 0000000000..556dd2a667 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2c9c070b380093988cd1f4b32d6e1522172e4b6baa1f50e0a393ce02e7e4a1c +size 1308 diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox new file mode 100644 index 0000000000..3af7060f78 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab572c02bf33834b9989de23e20f70ba5f9c2869868b52d0f15d3fd6686d5ff8 +size 4076 diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox new file mode 100644 index 0000000000..16e379fb29 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91d474259a2c4bd4823d1b8e09e79a08c630525f0fe52d3e2a574074d230c3e4 +size 1524 diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox new file mode 100644 index 0000000000..24fdc2c5a5 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d48b63f3a31bec487f02ccf1d1ac84003e666d7f5ee084ff2ec65c480ec5bf8 +size 1484 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/chest.vox b/assets/voxygen/voxel/npc/gnarling/logger/chest.vox new file mode 100644 index 0000000000..f8b656702f --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:693f5f9776ddea1cc2ed2b8b732f8308b49c336b47d9625974c84a8f8f21551e +size 1648 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox new file mode 100644 index 0000000000..355ebf5fcd --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7ed051c2087d89511a8824e117e596ad6c8a935900020ea70da79eb304c57f6 +size 1188 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox new file mode 100644 index 0000000000..f162536f37 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c61fbefd1ee954de990d11adc545ee45c9207c286b829e2d34a1bed905cd41f +size 1264 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/head.vox b/assets/voxygen/voxel/npc/gnarling/logger/head.vox new file mode 100644 index 0000000000..521b8a62a6 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40b269226842c827eb01b8acb395872964865a4d9626fb5c0f5c80f313b81abf +size 2896 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/pants.vox b/assets/voxygen/voxel/npc/gnarling/logger/pants.vox new file mode 100644 index 0000000000..a1bfb89830 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/pants.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2cb026be57ac417457cdfe939cc70cd4acea86ab2f7310016726537d7ff724a +size 1456 diff --git a/assets/voxygen/voxel/npc/gnarling/logger/tail.vox b/assets/voxygen/voxel/npc/gnarling/logger/tail.vox new file mode 100644 index 0000000000..30f1b9b4cc --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/logger/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b68f0aea470943be42517203dc127eb0f542ab13bf145b3a84aaa714b2fd6d23 +size 1308 diff --git a/assets/voxygen/voxel/npc/gnarling/male/chest.vox b/assets/voxygen/voxel/npc/gnarling/mugger/chest.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/chest.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/chest.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/dagger.vox b/assets/voxygen/voxel/npc/gnarling/mugger/dagger.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/dagger.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/dagger.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/mugger/foot_r.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/foot_r.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/foot_r.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/mugger/hand_r.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/hand_r.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/hand_r.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/head.vox b/assets/voxygen/voxel/npc/gnarling/mugger/head.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/head.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/head.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/main_hand.vox b/assets/voxygen/voxel/npc/gnarling/mugger/main_hand.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/main_hand.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/main_hand.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/pants.vox b/assets/voxygen/voxel/npc/gnarling/mugger/pants.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/pants.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/pants.vox diff --git a/assets/voxygen/voxel/npc/gnarling/male/tail.vox b/assets/voxygen/voxel/npc/gnarling/mugger/tail.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/male/tail.vox rename to assets/voxygen/voxel/npc/gnarling/mugger/tail.vox diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox b/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox new file mode 100644 index 0000000000..f61c0c34e8 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb8b57b69f91153446169c19c69559b5e79ad17d71332f7333c595dfad7bd6c3 +size 1648 diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox new file mode 100644 index 0000000000..fc984cf48c --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe3b7c954f6ef3a06fcb0e77489d96ae52a0627ce10a39f5bdc128d049b1b6d +size 1188 diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox new file mode 100644 index 0000000000..f872fd9274 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1219b838e9cb769bf3cf8c0fce2e9095ed99e9749770111d136feb98c2b0d0b5 +size 1264 diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/head.vox b/assets/voxygen/voxel/npc/gnarling/stalker/head.vox new file mode 100644 index 0000000000..3bd3cdc24e --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4deb5baf761ef711cbc1110f0830ae382204029293ba6005fa55872c16644d6 +size 2844 diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox b/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox new file mode 100644 index 0000000000..fc2f486c8c --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58709d29ed23ebf486fbd2e83b046715507148a430c7d981275828d1f7493b1c +size 1456 diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox b/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox new file mode 100644 index 0000000000..5903ec0911 --- /dev/null +++ b/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b2806c2321d3401fd41d8ec518259c8d660684c7b7d3631e0f336e3decc9422 +size 1308 diff --git a/assets/voxygen/voxel/npc/icedrake/male/chest.vox b/assets/voxygen/voxel/npc/icedrake/male/chest.vox new file mode 100644 index 0000000000..0827da7ee4 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:845f80bdc1810877bb76078320075e110890fc2fb34d41d6531bd9f038a6d36c +size 14952 diff --git a/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox b/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox new file mode 100644 index 0000000000..49fa37b625 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99b42ed27433e6b9687074a7264b5ca928da601c17b23b2494658d1a86cad22c +size 2364 diff --git a/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox b/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox new file mode 100644 index 0000000000..bdb1fe93a3 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe5028e0777f107c69ee37ffb812021c4448dc894f58df1cf4865471bae1d584 +size 2852 diff --git a/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox b/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox new file mode 100644 index 0000000000..f83689c337 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99a0a0b520406d24aaa019e3e253590c7e1ef2a606deab9a05f52f7d9f18d0f7 +size 3524 diff --git a/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox b/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox new file mode 100644 index 0000000000..2d9abdfab2 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f02b7f5f32ac71751ceddcad990201fa302913706a993baec0b37a421b7913a +size 2856 diff --git a/assets/voxygen/voxel/npc/icedrake/male/jaw.vox b/assets/voxygen/voxel/npc/icedrake/male/jaw.vox new file mode 100644 index 0000000000..7fba423bde --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4ec5dbbe3f8c48353dbce00f8e8f79e3ae04b7937489e99b244923f37f125ed +size 2276 diff --git a/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox b/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox new file mode 100644 index 0000000000..0b1a2ca1a7 --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfc8a4bf6d59d73e8e2f48b63ab377964697b022b146c9e8ea17726e58378fc1 +size 3724 diff --git a/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox b/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox new file mode 100644 index 0000000000..29cf07840d --- /dev/null +++ b/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6293aad5a0a0e4dc34cc069bfa3b65bf1c8f4976534275010e1ad7ab6766cc28 +size 3060 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox b/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox new file mode 100644 index 0000000000..3669974f7e --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8607f1348227829f5aceb294774791c95b19f763aac971654aef79f5ca4077ef +size 1828 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox b/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox new file mode 100644 index 0000000000..7500c7b49f --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e83f4117e6de2ef7d37ae1af30a7c94a8c10dac3ad51989265270377a411714 +size 5072 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox new file mode 100644 index 0000000000..2ccf01f7e3 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af0b6d293dca112dfc7110bedc4824120286043a2593a045195235cd9c7dd74f +size 2128 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox new file mode 100644 index 0000000000..353ee49d8a --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8ae5b53d9fee25ffb08d5f5dcaf71c30016d87c85b85cb42093f97f52a595b +size 2128 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox new file mode 100644 index 0000000000..189d757ba2 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fb1bee8d0d06d2b9c74c12b2e517b19f4c23ba06399bf3d3fbde4149b4921a1 +size 4164 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox new file mode 100644 index 0000000000..732cedc06e --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63256875d2ddb249b5c132986da9b73effd0269a4fdba1db92b7ddc91973496c +size 4164 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/head.vox b/assets/voxygen/voxel/npc/woodgolem/male/head.vox new file mode 100644 index 0000000000..034cbd15ee --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b272041e9a0b0e8ceb2b27eb7355bb0bba1c3882cae3129e18acb955c9f5ae0 +size 2740 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox new file mode 100644 index 0000000000..37430a4961 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f3fb029c7c3d75adbd9ef2f76b4dbb06018477aae1a6ae2fac185efaaf4bbb +size 1600 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox new file mode 100644 index 0000000000..13d0887fe9 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b81f6209edfcc2bb73d6faf86637ca8741b9db1f57e2ccc2c4ed17320f2fdb22 +size 1600 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox new file mode 100644 index 0000000000..eda8efc9f7 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9f75610a0c768f78a1285088d3a2491ec65e4b09c04eed60f5cf0388a1908ed +size 3480 diff --git a/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox new file mode 100644 index 0000000000..73e1846ce4 --- /dev/null +++ b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8185254c6f8c9e00bcdfa56ddda36ee5d6256a2ca379a8852c8ab52eb5eafaa +size 3480 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 5d7d4b376b..3e6fce9432 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -624,6 +624,58 @@ central: ("npc.lavadrake.male.tail_front"), ), ), + (Icedrake, Male): ( + upper: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.icedrake.male.head_upper"), + ), + lower: ( + offset: (-3.5, -1.0, -5.0), + central: ("npc.icedrake.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.icedrake.male.jaw"), + ), + chest: ( + offset: (-7.5, -11.0, -14.0), + central: ("npc.icedrake.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -20.0, -7.5), + central: ("npc.icedrake.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -12.0, -6.5), + central: ("npc.icedrake.male.tail_front"), + ), + ), + (Icedrake, Female): ( + upper: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.icedrake.male.head_upper"), + ), + lower: ( + offset: (-3.5, -1.0, -5.0), + central: ("npc.icedrake.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.icedrake.male.jaw"), + ), + chest: ( + offset: (-7.5, -11.0, -14.0), + central: ("npc.icedrake.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -20.0, -7.5), + central: ("npc.icedrake.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -12.0, -6.5), + central: ("npc.icedrake.male.tail_front"), + ), + ), (Basilisk, Male): ( upper: ( offset: (-5.5, 0.0, -5.0), diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index bff3549ecd..22a7e6d79a 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -431,6 +431,42 @@ lateral: ("npc.lavadrake.male.foot_br", false), ), ), + (Icedrake, Male): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + ), + (Icedrake, Female): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + ), (Basilisk, Male): ( front_left: ( offset: (-13.0, 0.0, -13.0), diff --git a/assets/voxygen/voxel/weapon/biped_small/blowgun.vox b/assets/voxygen/voxel/weapon/biped_small/blowgun.vox new file mode 100644 index 0000000000..33051d65f7 --- /dev/null +++ b/assets/voxygen/voxel/weapon/biped_small/blowgun.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2960ee860de1468ac05a0d1c9f1b17750dc8d78fe41832d11bd9c02191ea5c7b +size 1388 diff --git a/assets/voxygen/voxel/weapon/biped_small/staff/chieftain_staff.vox b/assets/voxygen/voxel/weapon/biped_small/staff/chieftain_staff.vox new file mode 100644 index 0000000000..030aa25f8d --- /dev/null +++ b/assets/voxygen/voxel/weapon/biped_small/staff/chieftain_staff.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:674acd0d0c5909382fbccea88c9ab788ea4b5c715e31aca529e3fbae361c7854 +size 1928 diff --git a/assets/voxygen/voxel/weapon/gnartlingaxe.vox b/assets/voxygen/voxel/weapon/gnartlingaxe.vox new file mode 100644 index 0000000000..6b3e59b1b8 --- /dev/null +++ b/assets/voxygen/voxel/weapon/gnartlingaxe.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44f4007b2f657b97aaf292d021a4746019abca6422707e6a1ff2abb7c0d47e0a +size 1372 diff --git a/common/src/bin/csv_export/main.rs b/common/src/bin/csv_export/main.rs index e63c91c665..3040e8aa76 100644 --- a/common/src/bin/csv_export/main.rs +++ b/common/src/bin/csv_export/main.rs @@ -164,6 +164,7 @@ fn get_tool_kind(kind: &ToolKind) -> String { ToolKind::Sceptre => "Sceptre".to_string(), ToolKind::Shield => "Shield".to_string(), ToolKind::Spear => "Spear".to_string(), + ToolKind::Blowgun => "Blowgun".to_string(), ToolKind::Debug => "Debug".to_string(), ToolKind::Farming => "Farming".to_string(), ToolKind::Pick => "Pick".to_string(), diff --git a/common/src/comp/body/golem.rs b/common/src/comp/body/golem.rs index a0549a5595..1591a7f41f 100644 --- a/common/src/comp/body/golem.rs +++ b/common/src/comp/body/golem.rs @@ -37,6 +37,7 @@ make_case_elim!( StoneGolem = 0, Treant = 1, ClayGolem = 2, + WoodGolem = 3, } ); @@ -48,6 +49,7 @@ pub struct AllSpecies { pub stonegolem: SpeciesMeta, pub treant: SpeciesMeta, pub claygolem: SpeciesMeta, + pub woodgolem: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -59,11 +61,17 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::StoneGolem => &self.stonegolem, Species::Treant => &self.treant, Species::ClayGolem => &self.claygolem, + Species::WoodGolem => &self.woodgolem, } } } -pub const ALL_SPECIES: [Species; 3] = [Species::StoneGolem, Species::Treant, Species::ClayGolem]; +pub const ALL_SPECIES: [Species; 4] = [ + Species::StoneGolem, + Species::Treant, + Species::ClayGolem, + Species::WoodGolem, +]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { type IntoIter = std::iter::Copied>; diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 5ddd680500..50cacad50f 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -53,6 +53,7 @@ make_case_elim!( Lavadrake = 11, Basilisk = 12, Deadwood = 13, + Icedrake = 14, } ); @@ -75,6 +76,7 @@ pub struct AllSpecies { pub lavadrake: SpeciesMeta, pub basilisk: SpeciesMeta, pub deadwood: SpeciesMeta, + pub icedrake: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -97,11 +99,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Lavadrake => &self.lavadrake, Species::Basilisk => &self.basilisk, Species::Deadwood => &self.deadwood, + Species::Icedrake => &self.icedrake, } } } -pub const ALL_SPECIES: [Species; 14] = [ +pub const ALL_SPECIES: [Species; 15] = [ Species::Crocodile, Species::Alligator, Species::Salamander, @@ -116,6 +119,7 @@ pub const ALL_SPECIES: [Species; 14] = [ Species::Lavadrake, Species::Basilisk, Species::Deadwood, + Species::Icedrake, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/item/modular.rs b/common/src/comp/inventory/item/modular.rs index e6a53d3dd4..066726bc3f 100644 --- a/common/src/comp/inventory/item/modular.rs +++ b/common/src/comp/inventory/item/modular.rs @@ -45,6 +45,7 @@ impl TagExampleInfo for ModularComponentTag { ToolKind::Sceptre => "sceptre head", // TODO: naming ToolKind::Spear => "spear damage component", + ToolKind::Blowgun => "blowgun damage component", ToolKind::Shield => "shield damage component", ToolKind::Debug => "debug damage component", ToolKind::Farming => "farming damage component", @@ -62,6 +63,7 @@ impl TagExampleInfo for ModularComponentTag { ToolKind::Sceptre => "sceptre shaft", // TODO: naming ToolKind::Spear => "spear held component", + ToolKind::Blowgun => "blowgun held component", ToolKind::Shield => "shield held component", ToolKind::Natural => "natural held component", ToolKind::Debug => "debug held component", @@ -84,6 +86,7 @@ impl TagExampleInfo for ModularComponentTag { ToolKind::Sceptre => "common.items.tag_examples.modular.damage.sceptre", ToolKind::Shield => "common.items.tag_examples.modular.damage.shield", ToolKind::Spear => "common.items.tag_examples.modular.damage.spear", + ToolKind::Blowgun => "common.items.tag_examples.modular.damage.blowgun", ToolKind::Natural => "common.items.tag_examples.modular.damage.natural", ToolKind::Debug => "common.items.tag_examples.modular.damage.debug", ToolKind::Farming => "common.items.tag_examples.modular.damage.farming", @@ -100,6 +103,7 @@ impl TagExampleInfo for ModularComponentTag { ToolKind::Sceptre => "common.items.tag_examples.modular.held.sceptre", ToolKind::Shield => "common.items.tag_examples.modular.held.shield", ToolKind::Spear => "common.items.tag_examples.modular.held.spear", + ToolKind::Blowgun => "common.items.tag_examples.modular.held.blowgun", ToolKind::Natural => "common.items.tag_examples.modular.held.natural", ToolKind::Debug => "common.items.tag_examples.modular.held.debug", ToolKind::Farming => "common.items.tag_examples.modular.held.farming", diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index f47cd1eff0..fa64e6ede0 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -25,6 +25,7 @@ pub enum ToolKind { Dagger, Shield, Spear, + Blowgun, // tools Debug, Farming, @@ -47,6 +48,7 @@ impl ToolKind { ToolKind::Dagger => "dagger", ToolKind::Staff => "staff", ToolKind::Spear => "spear", + ToolKind::Blowgun => "blowgun", ToolKind::Sceptre => "sceptre", ToolKind::Shield => "shield", ToolKind::Natural => "natural", @@ -67,6 +69,7 @@ impl ToolKind { | ToolKind::Dagger | ToolKind::Staff | ToolKind::Spear + | ToolKind::Blowgun | ToolKind::Sceptre | ToolKind::Shield ) diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 2492a322a0..1cd9fec9f6 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -123,6 +123,7 @@ impl Body { quadruped_low::Species::Sandshark => 160.0, quadruped_low::Species::Hakulaq => 140.0, quadruped_low::Species::Lavadrake => 100.0, + quadruped_low::Species::Icedrake => 100.0, quadruped_low::Species::Basilisk => 90.0, quadruped_low::Species::Deadwood => 140.0, }, @@ -179,6 +180,7 @@ impl Body { quadruped_low::Species::Tortoise => 1.5, quadruped_low::Species::Rocksnapper => 1.8, quadruped_low::Species::Lavadrake => 1.7, + quadruped_low::Species::Icedrake => 1.7, _ => 2.0, }, Body::Ship(ship) if ship.has_water_thrust() => 0.1, diff --git a/server/src/persistence/json_models.rs b/server/src/persistence/json_models.rs index 3418e87a4b..41e0be70f9 100644 --- a/server/src/persistence/json_models.rs +++ b/server/src/persistence/json_models.rs @@ -77,6 +77,7 @@ pub fn skill_group_to_db_string(skill_group: comp::skillset::SkillGroupKind) -> Weapon(ToolKind::Dagger) | Weapon(ToolKind::Shield) | Weapon(ToolKind::Spear) + | Weapon(ToolKind::Blowgun) | Weapon(ToolKind::Debug) | Weapon(ToolKind::Farming) | Weapon(ToolKind::Empty) diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 2b48d79844..f23860c289 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -1730,7 +1730,7 @@ impl<'a> AgentData<'a> { ToolKind::Staff => Tactic::Staff, ToolKind::Sceptre => Tactic::Sceptre, ToolKind::Hammer => Tactic::Hammer, - ToolKind::Sword | ToolKind::Spear => Tactic::Sword, + ToolKind::Sword | ToolKind::Spear | ToolKind::Blowgun => Tactic::Sword, ToolKind::Axe => Tactic::Axe, _ => Tactic::Melee, }; diff --git a/voxygen/anim/src/golem/mod.rs b/voxygen/anim/src/golem/mod.rs index 6088e64beb..1b3cc3bc97 100644 --- a/voxygen/anim/src/golem/mod.rs +++ b/voxygen/anim/src/golem/mod.rs @@ -136,51 +136,61 @@ impl<'a> From<&'a Body> for SkeletonAttr { (StoneGolem, _) => (0.0, 2.0), (Treant, _) => (18.0, -8.0), (ClayGolem, _) => (-2.0, 7.0), + (WoodGolem, _) => (3.0, 6.0), }, jaw: match (body.species, body.body_type) { (StoneGolem, _) => (0.0, 0.0), (Treant, _) => (-6.5, -1.0), (ClayGolem, _) => (0.0, 0.0), + (WoodGolem, _) => (0.0, 0.0), }, upper_torso: match (body.species, body.body_type) { (StoneGolem, _) => (0.0, 34.5), (Treant, _) => (0.0, 28.5), (ClayGolem, _) => (0.0, 26.5), + (WoodGolem, _) => (0.0, 24.5), }, lower_torso: match (body.species, body.body_type) { (StoneGolem, _) => (0.0, -10.5), (Treant, _) => (0.0, -10.5), (ClayGolem, _) => (0.0, -4.5), + (WoodGolem, _) => (0.0, -4.5), }, shoulder: match (body.species, body.body_type) { (StoneGolem, _) => (8.0, -1.5, 4.0), (Treant, _) => (8.0, 4.5, -3.0), (ClayGolem, _) => (8.0, 2.0, 3.0), + (WoodGolem, _) => (6.0, 2.0, 1.0), }, hand: match (body.species, body.body_type) { (StoneGolem, _) => (12.5, -1.0, -7.0), (Treant, _) => (8.5, -1.0, -7.0), (ClayGolem, _) => (8.5, -1.0, -7.0), + (WoodGolem, _) => (5.5, -1.0, -6.0), }, leg: match (body.species, body.body_type) { (StoneGolem, _) => (4.0, 0.0, -3.5), (Treant, _) => (2.0, 9.5, -1.0), (ClayGolem, _) => (1.0, 0.5, -6.0), + (WoodGolem, _) => (2.0, 0.5, -6.0), }, foot: match (body.species, body.body_type) { (StoneGolem, _) => (3.5, 0.5, -9.5), (Treant, _) => (3.5, -5.0, -8.5), (ClayGolem, _) => (3.5, -1.0, -8.5), + (WoodGolem, _) => (2.5, -1.0, -5.5), }, scaler: match (body.species, body.body_type) { (StoneGolem, _) => 1.5, (Treant, _) => 1.5, (ClayGolem, _) => 1.5, + (WoodGolem, _) => 1.5, }, tempo: match (body.species, body.body_type) { (StoneGolem, _) => 1.0, (Treant, _) => 1.0, (ClayGolem, _) => 1.0, + (WoodGolem, _) => 1.0, }, } } diff --git a/voxygen/anim/src/quadruped_low/mod.rs b/voxygen/anim/src/quadruped_low/mod.rs index 82dc1bab30..46d32dc596 100644 --- a/voxygen/anim/src/quadruped_low/mod.rs +++ b/voxygen/anim/src/quadruped_low/mod.rs @@ -144,6 +144,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (8.5, 0.5), (Hakulaq, _) => (8.0, 10.0), (Lavadrake, _) => (7.0, 8.0), + (Icedrake, _) => (7.0, 8.0), (Basilisk, _) => (5.0, 2.5), (Deadwood, _) => (2.0, -3.0), }, @@ -160,7 +161,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Maneater, _) => (1.0, 4.5), (Sandshark, _) => (13.5, -10.5), (Hakulaq, _) => (10.5, 1.0), - (Lavadrake, _) => (11.5, -6.0), + (Lavadrake, _) => (9.0, -6.0), + (Icedrake, _) => (11.5, -6.0), (Basilisk, _) => (12.5, -5.5), (Deadwood, _) => (0.0, 0.0), }, @@ -178,6 +180,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-8.0, -5.5), (Hakulaq, _) => (-6.5, -4.0), (Lavadrake, _) => (3.0, -5.0), + (Icedrake, _) => (-0.5, -8.0), (Basilisk, _) => (0.5, -3.0), (Deadwood, _) => (-1.0, 4.0), }, @@ -195,6 +198,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (0.0, 20.0), (Hakulaq, _) => (0.0, 13.5), (Lavadrake, _) => (0.0, 16.5), + (Icedrake, _) => (0.0, 16.5), (Basilisk, _) => (0.0, 15.0), (Deadwood, _) => (0.0, 12.0), }, @@ -212,6 +216,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-10.0, 0.5), (Hakulaq, _) => (-9.0, -2.0), (Lavadrake, _) => (-12.0, -2.0), + (Icedrake, _) => (-12.0, 1.0), (Basilisk, _) => (-10.0, -4.0), (Deadwood, _) => (-15.0, 4.0), }, @@ -229,6 +234,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-13.0, -8.0), (Hakulaq, _) => (-6.0, -5.5), (Lavadrake, _) => (-7.0, -4.5), + (Icedrake, _) => (-7.0, -4.5), (Basilisk, _) => (-6.5, -5.5), (Deadwood, _) => (-1.0, 4.0), }, @@ -246,6 +252,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (5.5, 2.0, -8.0), (Hakulaq, _) => (4.5, 2.0, -4.5), (Lavadrake, _) => (4.5, 4.0, -6.5), + (Icedrake, _) => (4.5, 4.0, -6.5), (Basilisk, _) => (6.5, 4.0, -2.0), (Deadwood, _) => (3.5, 4.0, -5.0), }, @@ -263,6 +270,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (3.5, -15.0, -14.0), (Hakulaq, _) => (3.5, -8.0, -4.5), (Lavadrake, _) => (3.5, -8.0, -6.5), + (Icedrake, _) => (3.5, -8.0, -6.5), (Basilisk, _) => (5.5, -6.5, -2.0), (Deadwood, _) => (3.5, -6.0, -5.0), }, @@ -281,6 +289,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Pangolin, _) => (1.05), (Maneater, _) => (1.12), (Lavadrake, _) => (1.12), + (Icedrake, _) => (1.12), (Basilisk, _) => (1.3), _ => (0.9), }, @@ -295,6 +304,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Pangolin, _) => (1.15), (Maneater, _) => (0.9), (Lavadrake, _) => (1.1), + (Icedrake, _) => (1.1), (Basilisk, _) => (0.8), _ => (1.0), }, diff --git a/voxygen/src/hud/diary.rs b/voxygen/src/hud/diary.rs index 60946f1ee1..2eb3c131f7 100644 --- a/voxygen/src/hud/diary.rs +++ b/voxygen/src/hud/diary.rs @@ -2131,6 +2131,7 @@ fn unlock_skill_strings(group: SkillGroupKind, i18n: &Localization) -> (&str, Co ToolKind::Dagger | ToolKind::Shield | ToolKind::Spear + | ToolKind::Blowgun | ToolKind::Debug | ToolKind::Farming | ToolKind::Pick diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs index 53b303f6c2..2f200652bf 100644 --- a/voxygen/src/hud/util.rs +++ b/voxygen/src/hud/util.rs @@ -244,6 +244,7 @@ fn tool_kind<'a>(tool: &Tool, i18n: &'a Localization) -> &'a str { ToolKind::Sceptre => i18n.get("common.weapons.sceptre"), ToolKind::Shield => i18n.get("common.weapons.shield"), ToolKind::Spear => i18n.get("common.weapons.spear"), + ToolKind::Blowgun => i18n.get("common.weapons.blowgun"), ToolKind::Natural => i18n.get("common.weapons.natural"), ToolKind::Debug => i18n.get("common.tool.debug"), ToolKind::Farming => i18n.get("common.tool.farming"), diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index 46b516d5ba..d4207dd92c 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -170,7 +170,7 @@ impl Spot { Self::generate_spots( Spot::GnarlingTotem, world, - 1.0, + 1000.0, |g, c| { g < 0.25 && !c.near_cliffs() @@ -474,18 +474,19 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { base_structures: Some("spots_grasslands.gnarling_totem"), entity_radius: 30.0, entities: &[ - (1..4, "common.entity.dungeon.tier-0.spear"), - (2..5, "common.entity.dungeon.tier-0.bow"), - (1..3, "common.entity.dungeon.tier-0.staff"), + (15..20, "common.entity.dungeon.tier-0.mugger"), + (15..20, "common.entity.dungeon.tier-0.stalker"), + (15..20, "common.entity.dungeon.tier-0.logger"), + (15..20, "common.entity.dungeon.tier-0.chieftain"), ], }, Spot::GnarlingTree => SpotConfig { base_structures: Some("spots_grasslands.gnarling_tree"), entity_radius: 64.0, entities: &[ - (1..5, "common.entity.dungeon.tier-0.spear"), - (2..4, "common.entity.dungeon.tier-0.bow"), - (1..2, "common.entity.dungeon.tier-0.staff"), + (1..5, "common.entity.dungeon.tier-0.mugger"), + (2..4, "common.entity.dungeon.tier-0.stalker"), + (1..2, "common.entity.dungeon.tier-0.logger"), (1..4, "common.entity.wild.aggressive.deadwood"), ], }, diff --git a/world/src/site2/plot/dungeon.rs b/world/src/site2/plot/dungeon.rs index 055dc4387a..b1f6eabe11 100644 --- a/world/src/site2/plot/dungeon.rs +++ b/world/src/site2/plot/dungeon.rs @@ -677,9 +677,9 @@ fn enemy_0(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3) -> Vec entity.with_asset_expect("common.entity.dungeon.tier-0.bow"), - 1 => entity.with_asset_expect("common.entity.dungeon.tier-0.staff"), - _ => entity.with_asset_expect("common.entity.dungeon.tier-0.spear"), + 0 => entity.with_asset_expect("common.entity.dungeon.tier-0.mugger"), + 1 => entity.with_asset_expect("common.entity.dungeon.tier-0.stalker"), + _ => entity.with_asset_expect("common.entity.dungeon.tier-0.logger"), } }); From 1fac6359dec3b36c171a0671f93a8b2d48c20cc9 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Tue, 21 Dec 2021 02:10:39 -0500 Subject: [PATCH 2/4] more gnarling weapons --- .../common/abilities/ability_set_manifest.ron | 18 +++- .../abilities/axesimple/doublestrike.ron | 34 ++++---- assets/common/abilities/blowgun/basic.ron | 15 ++++ .../{axesimple => custom/oni}/dash.ron | 0 .../abilities/custom/oni/doublestrike.ron | 56 ++++++++++++ .../abilities/daggersimple/singlestrike.ron | 34 ++++++++ .../common/entity/dungeon/tier-0/logger.ron | 2 +- .../common/entity/dungeon/tier-0/mugger.ron | 2 +- .../items/npc_weapons/axe/oni_blue_axe.ron | 2 +- .../biped_small/gnarling/adlet_bow.ron | 21 ----- .../gnarling/{wooden_spear.ron => axe.ron} | 6 +- .../gnarling/{gnoll_staff.ron => dagger.ron} | 14 +-- assets/common/npc_names.ron | 4 + .../voxygen/voxel/biped_weapon_manifest.ron | 10 ++- .../voxel/bird_medium_central_manifest.ron | 30 ++++++- .../voxel/bird_medium_lateral_manifest.ron | 36 ++++++++ .../voxygen/voxel/npc/penguin/male/head.vox | 3 + .../voxygen/voxel/npc/penguin/male/leg_r.vox | 3 + .../voxygen/voxel/npc/penguin/male/tail.vox | 3 + .../voxygen/voxel/npc/penguin/male/torso.vox | 3 + .../voxygen/voxel/npc/penguin/male/wing.vox | 3 + .../axe/axe.vox} | 0 .../mugger => weapon/biped_small}/dagger.vox | 0 common/src/comp/body.rs | 2 + common/src/comp/body/bird_medium.rs | 6 +- server/src/rtsim/entity.rs | 13 ++- server/src/sys/agent.rs | 2 +- voxygen/anim/src/biped_small/alpha.rs | 86 +++++++++++++------ voxygen/anim/src/biped_small/shoot.rs | 31 +++++++ voxygen/anim/src/biped_small/wield.rs | 73 ++++++++++++++-- voxygen/anim/src/bird_medium/mod.rs | 6 ++ world/src/layer/spot.rs | 8 +- 32 files changed, 430 insertions(+), 96 deletions(-) create mode 100644 assets/common/abilities/blowgun/basic.ron rename assets/common/abilities/{axesimple => custom/oni}/dash.ron (100%) create mode 100644 assets/common/abilities/custom/oni/doublestrike.ron create mode 100644 assets/common/abilities/daggersimple/singlestrike.ron delete mode 100644 assets/common/items/npc_weapons/biped_small/gnarling/adlet_bow.ron rename assets/common/items/npc_weapons/biped_small/gnarling/{wooden_spear.ron => axe.ron} (79%) rename assets/common/items/npc_weapons/biped_small/gnarling/{gnoll_staff.ron => dagger.ron} (54%) create mode 100644 assets/voxygen/voxel/npc/penguin/male/head.vox create mode 100644 assets/voxygen/voxel/npc/penguin/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/penguin/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/penguin/male/torso.vox create mode 100644 assets/voxygen/voxel/npc/penguin/male/wing.vox rename assets/voxygen/voxel/weapon/{gnartlingaxe.vox => biped_small/axe/axe.vox} (100%) rename assets/voxygen/voxel/{npc/gnarling/mugger => weapon/biped_small}/dagger.vox (100%) diff --git a/assets/common/abilities/ability_set_manifest.ron b/assets/common/abilities/ability_set_manifest.ron index 62cca4443f..bdfd91bf6b 100644 --- a/assets/common/abilities/ability_set_manifest.ron +++ b/assets/common/abilities/ability_set_manifest.ron @@ -65,7 +65,12 @@ ), Custom("Axe Simple"): ( primary: "common.abilities.axesimple.doublestrike", - secondary: "common.abilities.axesimple.dash", + secondary: "common.abilities.axesimple.doublestrike", + abilities: [], + ), + Custom("Dagger Simple"): ( + primary: "common.abilities.daggersimple.singlestrike", + secondary: "common.abilities.daggersimple.singlestrike", abilities: [], ), Custom("Sword Simple"): ( @@ -84,6 +89,12 @@ abilities: [ ], ), + Tool(Blowgun): ( + primary: "common.abilities.blowgun.basic", + secondary: "common.abilities.blowgun.basic", + abilities: [ + ], + ), Tool(Dagger): ( primary: "common.abilities.dagger.tempbasic", secondary: "common.abilities.dagger.tempbasic", @@ -268,6 +279,11 @@ (None, "common.abilities.custom.harvester.explodingpumpkin"), ], ), + Custom("Oni"): ( + primary: "common.abilities.custom.oni.dash", + secondary: "common.abilities.custom.oni.doublestrike", + abilities: [], + ), Custom("Bird Large Breathe"): ( primary: "common.abilities.custom.birdlargebreathe.firebomb", secondary: "common.abilities.custom.birdlargebreathe.triplestrike", diff --git a/assets/common/abilities/axesimple/doublestrike.ron b/assets/common/abilities/axesimple/doublestrike.ron index 3f39a42911..443680ebc8 100644 --- a/assets/common/abilities/axesimple/doublestrike.ron +++ b/assets/common/abilities/axesimple/doublestrike.ron @@ -2,18 +2,18 @@ ComboMelee( stage_data: [ ( stage: 1, - base_damage: 9.0, + base_damage: 8.0, damage_increase: 1.0, - base_poise_damage: 0, + base_poise_damage: 15, poise_damage_increase: 0, - knockback: 4.0, + knockback: 8.0, range: 3.5, angle: 50.0, - base_buildup_duration: 0.6, - base_swing_duration: 0.12, + base_buildup_duration: 0.4, + base_swing_duration: 0.08, hit_timing: 0.5, - base_recover_duration: 0.6, - forward_movement: 3.5, + base_recover_duration: 0.5, + forward_movement: 2.5, damage_kind: Slashing, damage_effect: Some(Buff(( kind: Bleeding, @@ -24,18 +24,18 @@ ComboMelee( ), ( stage: 2, - base_damage: 13.0, + base_damage: 10.0, damage_increase: 1.5, - base_poise_damage: 0, + base_poise_damage: 20, poise_damage_increase: 0, - knockback: 16.0, - range: 5.5, - angle: 15.0, - base_buildup_duration: 0.5, - base_swing_duration: 0.15, + knockback: 12.0, + range: 3.5, + angle: 30.0, + base_buildup_duration: 0.7, + base_swing_duration: 0.1, hit_timing: 0.5, - base_recover_duration: 1.2, - forward_movement: 4.5, + base_recover_duration: 0.7, + forward_movement: 2.0, damage_kind: Slashing, damage_effect: Some(Buff(( kind: Bleeding, @@ -52,5 +52,5 @@ ComboMelee( max_speed_increase: 0.0, scales_from_combo: 0, is_interruptible: false, - ori_modifier: 0.6, + ori_modifier: 0.7, ) diff --git a/assets/common/abilities/blowgun/basic.ron b/assets/common/abilities/blowgun/basic.ron new file mode 100644 index 0000000000..05cd0597f5 --- /dev/null +++ b/assets/common/abilities/blowgun/basic.ron @@ -0,0 +1,15 @@ +BasicRanged( + energy_cost: 0, + buildup_duration: 0.5, + recover_duration: 0.3, + projectile: Arrow( + damage: 3.5, + knockback: 5.0, + energy_regen: 4.0, + ), + projectile_body: Object(Arrow), + projectile_light: None, + projectile_speed: 100.0, + num_projectiles: 1, + projectile_spread: 0.0, +) diff --git a/assets/common/abilities/axesimple/dash.ron b/assets/common/abilities/custom/oni/dash.ron similarity index 100% rename from assets/common/abilities/axesimple/dash.ron rename to assets/common/abilities/custom/oni/dash.ron diff --git a/assets/common/abilities/custom/oni/doublestrike.ron b/assets/common/abilities/custom/oni/doublestrike.ron new file mode 100644 index 0000000000..3f39a42911 --- /dev/null +++ b/assets/common/abilities/custom/oni/doublestrike.ron @@ -0,0 +1,56 @@ +ComboMelee( + stage_data: [ + ( + stage: 1, + base_damage: 9.0, + damage_increase: 1.0, + base_poise_damage: 0, + poise_damage_increase: 0, + knockback: 4.0, + range: 3.5, + angle: 50.0, + base_buildup_duration: 0.6, + base_swing_duration: 0.12, + hit_timing: 0.5, + base_recover_duration: 0.6, + forward_movement: 3.5, + damage_kind: Slashing, + damage_effect: Some(Buff(( + kind: Bleeding, + dur_secs: 10.0, + strength: DamageFraction(0.1), + chance: 0.1, + ))), + ), + ( + stage: 2, + base_damage: 13.0, + damage_increase: 1.5, + base_poise_damage: 0, + poise_damage_increase: 0, + knockback: 16.0, + range: 5.5, + angle: 15.0, + base_buildup_duration: 0.5, + base_swing_duration: 0.15, + hit_timing: 0.5, + base_recover_duration: 1.2, + forward_movement: 4.5, + damage_kind: Slashing, + damage_effect: Some(Buff(( + kind: Bleeding, + dur_secs: 10.0, + strength: DamageFraction(0.1), + chance: 0.1, + ))), + ), + ], + initial_energy_gain: 0, + max_energy_gain: 0, + energy_increase: 0, + speed_increase: 0.0, + max_speed_increase: 0.0, + scales_from_combo: 0, + is_interruptible: false, + ori_modifier: 0.6, +) diff --git a/assets/common/abilities/daggersimple/singlestrike.ron b/assets/common/abilities/daggersimple/singlestrike.ron new file mode 100644 index 0000000000..202617116c --- /dev/null +++ b/assets/common/abilities/daggersimple/singlestrike.ron @@ -0,0 +1,34 @@ +ComboMelee( + stage_data: [ + ( + stage: 1, + base_damage: 2.0, + damage_increase: 1.0, + base_poise_damage: 8, + poise_damage_increase: 0, + knockback: 8.0, + range: 3.5, + angle: 50.0, + base_buildup_duration: 0.1, + base_swing_duration: 0.05, + hit_timing: 0.5, + base_recover_duration: 0.05, + forward_movement: 1.0, + damage_kind: Slashing, + damage_effect: Some(Buff(( + kind: Bleeding, + dur_secs: 10.0, + strength: DamageFraction(0.1), + chance: 0.1, + ))), + ), + ], + initial_energy_gain: 0, + max_energy_gain: 0, + energy_increase: 0, + speed_increase: 0.0, + max_speed_increase: 0.0, + scales_from_combo: 0, + is_interruptible: false, + ori_modifier: 0.7, +) diff --git a/assets/common/entity/dungeon/tier-0/logger.ron b/assets/common/entity/dungeon/tier-0/logger.ron index 30025178e1..57a1d605b4 100644 --- a/assets/common/entity/dungeon/tier-0/logger.ron +++ b/assets/common/entity/dungeon/tier-0/logger.ron @@ -5,7 +5,7 @@ EntityConfig ( loot: LootTable("common.loot_tables.dungeon.tier-0.enemy"), - hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.adlet_bow")), + hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.axe")), meta: [ LoadoutAsset("common.loadout.dungeon.tier-0.logger"), diff --git a/assets/common/entity/dungeon/tier-0/mugger.ron b/assets/common/entity/dungeon/tier-0/mugger.ron index 963738eb81..e861b72bc7 100644 --- a/assets/common/entity/dungeon/tier-0/mugger.ron +++ b/assets/common/entity/dungeon/tier-0/mugger.ron @@ -5,7 +5,7 @@ EntityConfig ( loot: LootTable("common.loot_tables.dungeon.tier-0.enemy"), - hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.wooden_spear")), + hands: TwoHanded(Item("common.items.npc_weapons.biped_small.gnarling.dagger")), meta: [ LoadoutAsset("common.loadout.dungeon.tier-0.mugger"), diff --git a/assets/common/items/npc_weapons/axe/oni_blue_axe.ron b/assets/common/items/npc_weapons/axe/oni_blue_axe.ron index 38aafa359f..2cc97673c7 100644 --- a/assets/common/items/npc_weapons/axe/oni_blue_axe.ron +++ b/assets/common/items/npc_weapons/axe/oni_blue_axe.ron @@ -17,5 +17,5 @@ ItemDef( )), quality: Low, tags: [], - ability_spec: Some(Custom("Axe Simple")), + ability_spec: Some(Custom("Oni")), ) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/biped_small/gnarling/adlet_bow.ron b/assets/common/items/npc_weapons/biped_small/gnarling/adlet_bow.ron deleted file mode 100644 index d927326c31..0000000000 --- a/assets/common/items/npc_weapons/biped_small/gnarling/adlet_bow.ron +++ /dev/null @@ -1,21 +0,0 @@ -ItemDef( - name: "Adlet Bow", - description: "Strips of leather are wrapped around the handle.", - kind: Tool(( - kind: Bow, - hands: Two, - stats: Direct(( - equip_time_secs: 0.0, - power: 0.3, - effect_power: 0.8, - speed: 0.5, - crit_chance: 0.13541667, - range: 1.0, - energy_efficiency: 1.0, - buff_strength: 1.0, - )), - )), - quality: Moderate, - tags: [], - ability_spec: None, -) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/biped_small/gnarling/wooden_spear.ron b/assets/common/items/npc_weapons/biped_small/gnarling/axe.ron similarity index 79% rename from assets/common/items/npc_weapons/biped_small/gnarling/wooden_spear.ron rename to assets/common/items/npc_weapons/biped_small/gnarling/axe.ron index db58f5bacb..d99e5fd64f 100644 --- a/assets/common/items/npc_weapons/biped_small/gnarling/wooden_spear.ron +++ b/assets/common/items/npc_weapons/biped_small/gnarling/axe.ron @@ -1,8 +1,8 @@ ItemDef( - name: "Wooden Spear", + name: "Gnarling Logger Axe", description: "Testing", kind: Tool(( - kind: Spear, + kind: Axe, hands: Two, stats: Direct(( equip_time_secs: 0.0, @@ -17,5 +17,5 @@ ItemDef( )), quality: Low, tags: [], - ability_spec: None, + ability_spec: Some(Custom("Axe Simple")), ) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/biped_small/gnarling/gnoll_staff.ron b/assets/common/items/npc_weapons/biped_small/gnarling/dagger.ron similarity index 54% rename from assets/common/items/npc_weapons/biped_small/gnarling/gnoll_staff.ron rename to assets/common/items/npc_weapons/biped_small/gnarling/dagger.ron index d0e96ded3e..a9c759e1ce 100644 --- a/assets/common/items/npc_weapons/biped_small/gnarling/gnoll_staff.ron +++ b/assets/common/items/npc_weapons/biped_small/gnarling/dagger.ron @@ -1,15 +1,15 @@ ItemDef( - name: "Gnoll Staff", - description: "eekum bokum", + name: "Gnarling Mugger Dagger", + description: "Testing", kind: Tool(( - kind: Staff, + kind: Dagger, hands: Two, stats: Direct(( equip_time_secs: 0.0, power: 0.3, - effect_power: 0.8, - speed: 0.6, - crit_chance: 0.26764706, + effect_power: 1.0, + speed: 1.0, + crit_chance: 0.12037037, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, @@ -17,5 +17,5 @@ ItemDef( )), quality: Low, tags: [], - ability_spec: Some(Custom("Staff Simple")), + ability_spec: Some(Custom("Dagger Simple")), ) \ No newline at end of file diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index a3e79ee384..85291056b7 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -820,6 +820,10 @@ keyword: "parrot", generic: "Parrot" ), + penguin: ( + keyword: "penguin", + generic: "Penguin" + ), ) ), biped_large: ( diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index a3b9e55766..c9a5e1f242 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -1112,7 +1112,15 @@ color: None ), "common.items.npc_weapons.biped_small.gnarling.blowgun": ( - vox_spec: ("weapon.biped_small.blowgun", (-2.5, -2.5, -4.0)), + vox_spec: ("weapon.biped_small.blowgun", (-2.5, -2.5, -1.5)), + color: None + ), + "common.items.npc_weapons.biped_small.gnarling.axe": ( + vox_spec: ("weapon.biped_small.axe.axe", (-0.5, -3.0, -4.0)), + color: None + ), + "common.items.npc_weapons.biped_small.gnarling.dagger": ( + vox_spec: ("weapon.biped_small.dagger", (-0.5, -4.5, -0.0)), color: None ), "common.items.npc_weapons.biped_small.adlet.gnoll_staff": ( diff --git a/assets/voxygen/voxel/bird_medium_central_manifest.ron b/assets/voxygen/voxel/bird_medium_central_manifest.ron index de8da461ad..398040aac0 100644 --- a/assets/voxygen/voxel/bird_medium_central_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_central_manifest.ron @@ -191,8 +191,36 @@ central: ("npc.parrot.male.torso"), ), tail: ( - offset: (-1.5, -4.5, -1.5), + offset: (-2.5, -4.5, -1.5), central: ("npc.parrot.male.tail"), ) ), + (Penguin, Male): ( + head: ( + offset: (-1.5, -2.0, -2.0), + central: ("npc.penguin.male.head"), + ), + torso: ( + offset: (-3.5, -4.0, -5.5), + central: ("npc.penguin.male.torso"), + ), + tail: ( + offset: (-2.5, -4.5, -1.5), + central: ("npc.penguin.male.tail"), + ) + ), + (Penguin, Female): ( + head: ( + offset: (-1.5, -2.0, -2.0), + central: ("npc.penguin.male.head"), + ), + torso: ( + offset: (-3.5, -4.0, -5.5), + central: ("npc.penguin.male.torso"), + ), + tail: ( + offset: (-2.5, -4.5, -1.5), + central: ("npc.penguin.male.tail"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron index 14a20071d7..a6da9b68e8 100644 --- a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron @@ -251,4 +251,40 @@ lateral: ("npc.parrot.male.leg_r"), ) ), + (Penguin, Male): ( + wing_l: ( + offset: (-0.5, -1.5, -8.0), + lateral: ("npc.penguin.male.wing"), + ), + wing_r: ( + offset: (-0.5, -1.5, -8.0), + lateral: ("npc.penguin.male.wing"), + ), + foot_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + foot_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ) + ), + (Penguin, Female): ( + wing_l: ( + offset: (-0.5, -1.5, -8.0), + lateral: ("npc.penguin.male.wing"), + ), + wing_r: ( + offset: (-0.5, -1.5, -8.0), + lateral: ("npc.penguin.male.wing"), + ), + foot_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + foot_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/npc/penguin/male/head.vox b/assets/voxygen/voxel/npc/penguin/male/head.vox new file mode 100644 index 0000000000..6fea439af4 --- /dev/null +++ b/assets/voxygen/voxel/npc/penguin/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:375ef2442b8d91c89c26081cc95249e66822ca3b65555fd35bc1adc6ee4664c2 +size 1488 diff --git a/assets/voxygen/voxel/npc/penguin/male/leg_r.vox b/assets/voxygen/voxel/npc/penguin/male/leg_r.vox new file mode 100644 index 0000000000..bd5b8a680d --- /dev/null +++ b/assets/voxygen/voxel/npc/penguin/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:707e4de3182bd859b14ca95f64d4da41a391ee9628d4e8101ac7bd92e4fd8834 +size 1304 diff --git a/assets/voxygen/voxel/npc/penguin/male/tail.vox b/assets/voxygen/voxel/npc/penguin/male/tail.vox new file mode 100644 index 0000000000..de5280f826 --- /dev/null +++ b/assets/voxygen/voxel/npc/penguin/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75a213d330829e94bd2b046e73f3ca4f9ad8f98acb88f2a925047882ef0c89f5 +size 1240 diff --git a/assets/voxygen/voxel/npc/penguin/male/torso.vox b/assets/voxygen/voxel/npc/penguin/male/torso.vox new file mode 100644 index 0000000000..7ad740ec38 --- /dev/null +++ b/assets/voxygen/voxel/npc/penguin/male/torso.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87e007c03cbe02be088d970baeb9071d220f89b2db48abcef1ee5a5cfe825037 +size 2680 diff --git a/assets/voxygen/voxel/npc/penguin/male/wing.vox b/assets/voxygen/voxel/npc/penguin/male/wing.vox new file mode 100644 index 0000000000..2368c6994b --- /dev/null +++ b/assets/voxygen/voxel/npc/penguin/male/wing.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:818d474e2288e089f50e9e85952af317d3e0c9b9755c6d10e909f9087eeb828d +size 1196 diff --git a/assets/voxygen/voxel/weapon/gnartlingaxe.vox b/assets/voxygen/voxel/weapon/biped_small/axe/axe.vox similarity index 100% rename from assets/voxygen/voxel/weapon/gnartlingaxe.vox rename to assets/voxygen/voxel/weapon/biped_small/axe/axe.vox diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/dagger.vox b/assets/voxygen/voxel/weapon/biped_small/dagger.vox similarity index 100% rename from assets/voxygen/voxel/npc/gnarling/mugger/dagger.vox rename to assets/voxygen/voxel/weapon/biped_small/dagger.vox diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 066e3680d5..8e316eee9d 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -198,6 +198,7 @@ impl Body { bird_medium::Species::Goose => 3.5, // ~✅ Swan geese are 2.8-3.5 kg bird_medium::Species::Owl => 2.0, bird_medium::Species::Parrot => 2.0, + bird_medium::Species::Penguin => 8.0, bird_medium::Species::Peacock => 5.0, }, Body::BirdLarge(_) => 100.0, @@ -692,6 +693,7 @@ impl Body { bird_medium::Species::Duck => 1, bird_medium::Species::Goose => 1, bird_medium::Species::Parrot => 1, + bird_medium::Species::Penguin => 1, bird_medium::Species::Peacock => 1, bird_medium::Species::Eagle => 1, _ => 2, diff --git a/common/src/comp/body/bird_medium.rs b/common/src/comp/body/bird_medium.rs index 5eb7dbee65..7754c4cce3 100644 --- a/common/src/comp/body/bird_medium.rs +++ b/common/src/comp/body/bird_medium.rs @@ -41,6 +41,7 @@ make_case_elim!( Eagle = 4, Owl = 5, Parrot = 6, + Penguin = 7, } ); @@ -56,6 +57,7 @@ pub struct AllSpecies { pub eagle: SpeciesMeta, pub owl: SpeciesMeta, pub parrot: SpeciesMeta, + pub penguin: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -71,11 +73,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Eagle => &self.eagle, Species::Owl => &self.owl, Species::Parrot => &self.parrot, + Species::Penguin => &self.penguin, } } } -pub const ALL_SPECIES: [Species; 7] = [ +pub const ALL_SPECIES: [Species; 8] = [ Species::Duck, Species::Chicken, Species::Goose, @@ -83,6 +86,7 @@ pub const ALL_SPECIES: [Species; 7] = [ Species::Eagle, Species::Owl, Species::Parrot, + Species::Penguin, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/server/src/rtsim/entity.rs b/server/src/rtsim/entity.rs index 228e65431f..062dd7a034 100644 --- a/server/src/rtsim/entity.rs +++ b/server/src/rtsim/entity.rs @@ -34,6 +34,14 @@ pub enum RtSimEntityKind { Merchant, } +const BIRD_MEDIUM_ROSTER: &[comp::bird_medium::Species] = &[ + // Disallows flightless birds + comp::bird_medium::Species::Duck, + comp::bird_medium::Species::Goose, + comp::bird_medium::Species::Parrot, + comp::bird_medium::Species::Eagle, +]; + const BIRD_LARGE_ROSTER: &[comp::bird_large::Species] = &[ // Flame Wyvern not incuded until proper introduction comp::bird_large::Species::Phoenix, @@ -60,7 +68,7 @@ impl Entity { // we want 5% airships, 45% birds, 50% humans x if x < 0.05 => comp::ship::Body::random_with(&mut self.rng(PERM_BODY)).into(), x if x < 0.45 => { - let species = *(&comp::bird_medium::ALL_SPECIES) + let species = *BIRD_MEDIUM_ROSTER .choose(&mut self.rng(PERM_SPECIES)) .unwrap(); comp::bird_medium::Body::random_with(&mut self.rng(PERM_BODY), &species) @@ -782,6 +790,7 @@ fn bird_medium_config(body: comp::bird_medium::Body) -> &'static str { comp::bird_medium::Species::Eagle => "common.entity.wild.peaceful.eagle", comp::bird_medium::Species::Owl => "common.entity.wild.peaceful.owl", comp::bird_medium::Species::Parrot => "common.entity.wild.peaceful.parrot", + _ => unimplemented!(), } } @@ -826,7 +835,7 @@ mod tests { std::mem::drop(EntityInfo::at(dummy_pos).with_asset_expect(male_config)); } // Bird Medium test - for bird_med_species in comp::bird_medium::ALL_SPECIES { + for bird_med_species in BIRD_MEDIUM_ROSTER { let female_body = comp::bird_medium::Body { species: bird_med_species, body_type: comp::bird_medium::BodyType::Female, diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index f23860c289..171b1b44bf 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -1743,7 +1743,7 @@ impl<'a> AgentData<'a> { if let Some(ability_spec) = item.ability_spec() { match ability_spec { AbilitySpec::Custom(spec) => match spec.as_str() { - "Axe Simple" | "Sword Simple" => Tactic::Sword, + "Axe Simple" | "Oni" | "Sword Simple" => Tactic::Sword, "Staff Simple" => Tactic::Staff, "Bow Simple" => Tactic::Bow, "Stone Golem" => Tactic::StoneGolem, diff --git a/voxygen/anim/src/biped_small/alpha.rs b/voxygen/anim/src/biped_small/alpha.rs index db095e6f03..0445a3c4b5 100644 --- a/voxygen/anim/src/biped_small/alpha.rs +++ b/voxygen/anim/src/biped_small/alpha.rs @@ -64,10 +64,15 @@ impl Animation for AlphaAnimation { let subtract = global_time - timer; let check = subtract - subtract.trunc(); let mirror = (check - 0.5).signum(); - let move1 = move1base * pullback * mirror; - let move2 = move2base * pullback * mirror; + let _move1 = move1base * pullback * mirror; let move1abs = move1base * pullback; let move2abs = move2base * pullback; + next.hand_l.position = Vec3::new(s_a.grip.0 * 4.0, 0.0, s_a.grip.2); + next.hand_r.position = Vec3::new(-s_a.grip.0 * 4.0, 0.0, s_a.grip.2); + next.main.position = Vec3::new(0.0, 0.0, 0.0); + next.main.orientation = Quaternion::rotation_x(0.0); + next.hand_l.orientation = Quaternion::rotation_x(0.0); + next.hand_r.orientation = Quaternion::rotation_x(0.0); match active_tool_kind { Some(ToolKind::Spear) => { next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); @@ -82,15 +87,6 @@ impl Animation for AlphaAnimation { next.pants.orientation = Quaternion::rotation_x(move1abs * 0.2 + move2abs * -0.3) * Quaternion::rotation_z(move1abs * -0.2 + move2abs * 0.2); - next.main.position = Vec3::new(0.0, 0.0, 0.0); - next.main.orientation = Quaternion::rotation_x(0.0); - - next.hand_l.position = Vec3::new(s_a.grip.0 * 4.0, 0.0, s_a.grip.2); - next.hand_r.position = Vec3::new(-s_a.grip.0 * 4.0, 0.0, s_a.grip.2); - - next.hand_l.orientation = Quaternion::rotation_x(0.0); - next.hand_r.orientation = Quaternion::rotation_x(0.0); - next.control_l.position = Vec3::new(1.0 - s_a.grip.0 * 2.0, 2.0, -2.0); next.control_r.position = Vec3::new(-1.0 + s_a.grip.0 * 2.0, 2.0, 2.0); @@ -116,24 +112,60 @@ impl Animation for AlphaAnimation { next.tail.orientation = Quaternion::rotation_x(0.05 * fastalt * speednormcancel) * Quaternion::rotation_z(fast * 0.15 * speednormcancel); }, - Some(ToolKind::Natural) => { - next.hand_l.position = Vec3::new( - -s_a.hand.0, - s_a.hand.1 + move1abs * 3.0 + move2abs * 3.0, - s_a.hand.2 + move1abs * 1.5, - ); - next.hand_r.position = Vec3::new( - s_a.hand.0, - s_a.hand.1 + move1abs * 3.0 + move2abs * 3.0, - s_a.hand.2 + move1abs * 1.5, + Some(ToolKind::Axe) => { + next.head.orientation = Quaternion::rotation_z(move1abs * 0.3 + move2abs * -0.6); + next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0); + next.control_r.position = Vec3::new( + 9.0 + move1abs * -10.0 + s_a.grip.0 * 2.0, + -1.0 + move1abs * 2.0, + move1abs * 3.0 - 2.0, ); - next.hand_l.orientation = Quaternion::rotation_x(1.7 + move1 * 1.3 + move2 * -2.4) - * Quaternion::rotation_y(-0.3 + move1abs * -0.35 + move2abs * 0.6); - next.hand_r.orientation = Quaternion::rotation_x(1.7 - move1 * 1.3 + move2 * 2.4) - * Quaternion::rotation_y(0.3 + move1abs * -0.35 + move2abs * 0.6); - next.head.orientation = Quaternion::rotation_x(move1abs * 0.1 + move2abs * -0.2) - * Quaternion::rotation_y(move1 * 0.3 + move2 * -0.4); + next.control.position = Vec3::new( + -5.0 + move1abs * 5.0, + -1.0 + s_a.grip.2, + -1.0 + move1abs * 3.0 + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0, + ); + + next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + move2abs * 1.0) + * Quaternion::rotation_y(-0.0) + * Quaternion::rotation_z(-0.0); + next.control_r.orientation = + Quaternion::rotation_x(0.5 + move1abs * 1.5 + s_a.grip.0 * 0.2) + * Quaternion::rotation_y(0.2 + s_a.grip.0 * 0.2) + * Quaternion::rotation_z(-0.0); + + next.control.orientation = Quaternion::rotation_x(-0.3 + move2abs * -1.0) + * Quaternion::rotation_y(move1abs * -0.9 + move2abs * 2.0) + * Quaternion::rotation_z(-0.3); + }, + Some(ToolKind::Dagger) => { + next.head.orientation = Quaternion::rotation_x(move1abs * 0.15 + move2abs * -0.15) + * Quaternion::rotation_z(move1abs * 0.15 + move2abs * -0.3); + next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0); + next.control_r.position = Vec3::new( + 9.0 + move1abs * -7.0 + s_a.grip.0 * 2.0, + -1.0 + move1abs * 6.0, + -2.0, + ); + + next.control.position = Vec3::new( + -5.0 + move1abs * 5.0 + move2abs * 9.0, + -1.0 + move2abs * -3.0 + s_a.grip.2, + -1.0 + move1abs * 3.0 + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0, + ); + + next.control_l.orientation = Quaternion::rotation_x(PI / 2.0) + * Quaternion::rotation_y(-0.0) + * Quaternion::rotation_z(-0.0); + next.control_r.orientation = + Quaternion::rotation_x(0.5 + move1abs * 1.5 + s_a.grip.0 * 0.2) + * Quaternion::rotation_y(0.2 + s_a.grip.0 * 0.2) + * Quaternion::rotation_z(-0.0); + + next.control.orientation = Quaternion::rotation_x(-0.3 + move2abs * -1.0) + * Quaternion::rotation_y(move1abs * -0.4 + move2abs * 1.0) + * Quaternion::rotation_z(-0.3 + move2abs * -2.2); }, _ => {}, } diff --git a/voxygen/anim/src/biped_small/shoot.rs b/voxygen/anim/src/biped_small/shoot.rs index 6604848f8c..2833cd274c 100644 --- a/voxygen/anim/src/biped_small/shoot.rs +++ b/voxygen/anim/src/biped_small/shoot.rs @@ -110,6 +110,37 @@ impl Animation for ShootAnimation { next.control.orientation = Quaternion::rotation_x(-0.3 + move1abs * 0.4) * Quaternion::rotation_y(0.5 * speednorm); }, + Some(ToolKind::Blowgun) => { + let (move1base, move2base, move3) = match stage_section { + Some(StageSection::Buildup) => (anim_time, 0.0, 0.0), + Some(StageSection::Action) => (1.0, anim_time.powf(0.25), 0.0), + Some(StageSection::Recover) => (1.0, 1.0, anim_time), + _ => (0.0, 0.0, 0.0), + }; + let pullback = 1.0 - move3; + let move1abs = move1base * pullback; + let move2abs = move2base * pullback; + next.head.orientation = Quaternion::rotation_x(move1abs * 0.5 + move2abs * -0.7); + next.control_l.position = Vec3::new(1.0 - s_a.grip.0 * 2.0, 0.0, 3.0); + next.control_r.position = Vec3::new(-1.0 + s_a.grip.0 * 2.0, 0.0, 4.0); + + next.control.position = Vec3::new( + 0.0, + move1abs * -2.0 + move2abs * 1.0 + s_a.grip.2, + move1abs * 3.5 + move2abs * -2.0 + 4.0 - s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0, + ); + + next.control_l.orientation = + Quaternion::rotation_x(3.8 + move1abs * 0.4 + move2abs * -0.5) + * Quaternion::rotation_y(-0.3); + next.control_r.orientation = Quaternion::rotation_x( + 3.5 + move1abs * 0.4 + move2abs * -0.5 + s_a.grip.0 * 0.2, + ) * Quaternion::rotation_y(0.5 + s_a.grip.0 * 0.2); + + next.control.orientation = Quaternion::rotation_x( + -2.2 + move1abs * 0.7 + move2abs * -0.2 + 0.5 * speednorm, + ); + }, Some(ToolKind::Staff) => { let (move1base, _move2base, move3) = match stage_section { Some(StageSection::Buildup) => (anim_time.powf(0.25), 0.0, 0.0), diff --git a/voxygen/anim/src/biped_small/wield.rs b/voxygen/anim/src/biped_small/wield.rs index 8e17934746..8c7b5a087a 100644 --- a/voxygen/anim/src/biped_small/wield.rs +++ b/voxygen/anim/src/biped_small/wield.rs @@ -60,7 +60,7 @@ impl Animation for WieldAnimation { * Quaternion::rotation_z(fast * 0.15 * speednormcancel); next.main.position = Vec3::new(0.0, 0.0, 0.0); - next.main.orientation = Quaternion::rotation_x(0.0); + next.main.orientation = Quaternion::rotation_z(0.0); next.hand_l.position = Vec3::new(s_a.grip.0 * 4.0, 0.0, s_a.grip.2); next.hand_r.position = Vec3::new(-s_a.grip.0 * 4.0, 0.0, s_a.grip.2); @@ -95,7 +95,28 @@ impl Animation for WieldAnimation { next.control.orientation = Quaternion::rotation_x(-1.35 + 0.5 * speednorm); }, + Some(ToolKind::Blowgun) => { + next.control_l.position = Vec3::new(1.0 - s_a.grip.0 * 2.0, 0.0, 3.0); + next.control_r.position = Vec3::new(-1.0 + s_a.grip.0 * 2.0, 0.0, 4.0); + next.control.position = Vec3::new( + 0.0, + s_a.grip.2, + 4.0 - s_a.grip.2 / 2.5 + + s_a.grip.0 * -2.0 + + fastacc * 0.5 + + fastalt * 0.1 * speednormcancel + + speednorm * 4.0, + ); + + next.control_l.orientation = + Quaternion::rotation_x(3.8 + slow * 0.1) * Quaternion::rotation_y(-0.3); + next.control_r.orientation = + Quaternion::rotation_x(3.5 + slow * 0.1 + s_a.grip.0 * 0.2) + * Quaternion::rotation_y(0.5 + slow * 0.0 + s_a.grip.0 * 0.2); + + next.control.orientation = Quaternion::rotation_x(-2.2 + 0.5 * speednorm); + }, Some(ToolKind::Bow) => { next.control_l.position = Vec3::new(1.0 - s_a.grip.0 * 2.0, 0.0, 0.0); next.control_r.position = Vec3::new(-1.0 + s_a.grip.0 * 2.0, 6.0, -2.0); @@ -146,13 +167,51 @@ impl Animation for WieldAnimation { * Quaternion::rotation_y(-0.2 * speednorm) * Quaternion::rotation_z(0.5); }, - Some(ToolKind::Natural) => { - next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2); - next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2); + Some(ToolKind::Axe) => { + next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0); + next.control_r.position = + Vec3::new(9.0 + s_a.grip.0 * 2.0, -1.0, -2.0 + speednorm * -3.0); - next.hand_l.orientation = - Quaternion::rotation_x(1.7) * Quaternion::rotation_y(-0.3); - next.hand_r.orientation = Quaternion::rotation_x(1.7) * Quaternion::rotation_y(0.3); + next.control.position = Vec3::new( + -5.0, + -1.0 + s_a.grip.2, + -1.0 + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0 + speednorm * 2.0, + ); + + next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + slow * 0.1) + * Quaternion::rotation_y(-0.0) + * Quaternion::rotation_z(-0.0); + next.control_r.orientation = + Quaternion::rotation_x(0.5 + slow * 0.1 + s_a.grip.0 * 0.2) + * Quaternion::rotation_y(0.2 + slow * 0.0 + s_a.grip.0 * 0.2) + * Quaternion::rotation_z(-0.0); + + next.control.orientation = Quaternion::rotation_x(-0.3 + 0.2 * speednorm) + * Quaternion::rotation_y(-0.2 * speednorm) + * Quaternion::rotation_z(-0.3); + }, + Some(ToolKind::Dagger) => { + next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0); + next.control_r.position = + Vec3::new(9.0 + s_a.grip.0 * 2.0, -1.0, -2.0 + speednorm * -3.0); + + next.control.position = Vec3::new( + -5.0, + -1.0 + s_a.grip.2, + -1.0 + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0 + speednorm * 2.0, + ); + + next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + slow * 0.1) + * Quaternion::rotation_y(-0.0) + * Quaternion::rotation_z(-0.0); + next.control_r.orientation = + Quaternion::rotation_x(0.5 + slow * 0.1 + s_a.grip.0 * 0.2) + * Quaternion::rotation_y(0.2 + slow * 0.0 + s_a.grip.0 * 0.2) + * Quaternion::rotation_z(-0.0); + + next.control.orientation = Quaternion::rotation_x(-0.3 + 0.2 * speednorm) + * Quaternion::rotation_y(-0.2 * speednorm) + * Quaternion::rotation_z(-0.3); }, _ => {}, } diff --git a/voxygen/anim/src/bird_medium/mod.rs b/voxygen/anim/src/bird_medium/mod.rs index 8e3d8e056d..cb7a995b9b 100644 --- a/voxygen/anim/src/bird_medium/mod.rs +++ b/voxygen/anim/src/bird_medium/mod.rs @@ -111,6 +111,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Owl, Male) => (2.5, 5.0), (Owl, Female) => (2.5, 7.0), (Parrot, _) => (0.5, 4.5), + (Penguin, _) => (1.5, 6.0), }, chest: match (body.species, body.body_type) { (Duck, _) => (0.0, 6.0), @@ -122,6 +123,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Owl, Male) => (0.0, 4.5), (Owl, Female) => (0.0, 4.5), (Parrot, _) => (0.0, 5.0), + (Penguin, _) => (0.0, 8.0), }, tail: match (body.species, body.body_type) { (Duck, _) => (-5.0, 1.0), @@ -133,6 +135,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Owl, Male) => (-6.0, -2.0), (Owl, Female) => (-6.0, -2.5), (Parrot, _) => (-8.0, -2.0), + (Penguin, _) => (-3.0, -4.0), }, wing: match (body.species, body.body_type) { (Duck, _) => (3.5, -0.5, 2.0), @@ -144,6 +147,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Owl, Male) => (3.5, -5.5, 4.0), (Owl, Female) => (3.5, -6.0, 3.5), (Parrot, _) => (2.0, -4.5, 3.0), + (Penguin, _) => (4.0, 0.5, 1.0), }, foot: match (body.species, body.body_type) { (Duck, _) => (2.5, -2.0, 4.0), @@ -155,6 +159,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Owl, Male) => (1.5, -2.5, 7.0), (Owl, Female) => (1.5, -3.0, 6.5), (Parrot, _) => (1.5, -3.0, 3.0), + (Penguin, _) => (2.5, -2.0, 6.0), }, feed: match (body.species, body.body_type) { (Chicken, _) => 1.2, @@ -162,6 +167,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Peacock, _) => 1.6, (Eagle, _) => 1.2, (Parrot, _) => 1.2, + (Penguin, _) => 1.2, _ => 1.0, }, } diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index d4207dd92c..ce20d368ae 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -474,10 +474,10 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { base_structures: Some("spots_grasslands.gnarling_totem"), entity_radius: 30.0, entities: &[ - (15..20, "common.entity.dungeon.tier-0.mugger"), - (15..20, "common.entity.dungeon.tier-0.stalker"), - (15..20, "common.entity.dungeon.tier-0.logger"), - (15..20, "common.entity.dungeon.tier-0.chieftain"), + (2..4, "common.entity.dungeon.tier-0.mugger"), + (2..4, "common.entity.dungeon.tier-0.stalker"), + (2..4, "common.entity.dungeon.tier-0.logger"), + (1..2, "common.entity.dungeon.tier-0.chieftain"), ], }, Spot::GnarlingTree => SpotConfig { From 475fc1631f2c63c8657bf1fceb4a808c4b8bb95b Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sat, 25 Dec 2021 00:57:48 -0500 Subject: [PATCH 3/4] akhlut --- assets/common/npc_names.ron | 4 ++ .../voxygen/voxel/npc/akhlut/male/foot_br.vox | 3 + .../voxygen/voxel/npc/akhlut/male/foot_fr.vox | 3 + assets/voxygen/voxel/npc/akhlut/male/head.vox | 3 + assets/voxygen/voxel/npc/akhlut/male/jaw.vox | 3 + .../voxygen/voxel/npc/akhlut/male/leg_br.vox | 3 + .../voxygen/voxel/npc/akhlut/male/leg_fr.vox | 3 + assets/voxygen/voxel/npc/akhlut/male/neck.vox | 3 + assets/voxygen/voxel/npc/akhlut/male/tail.vox | 3 + .../voxel/npc/akhlut/male/torso_back.vox | 3 + .../voxel/npc/akhlut/male/torso_front.vox | 3 + .../quadruped_medium_central_manifest.ron | 60 ++++++++++++++++ .../quadruped_medium_lateral_manifest.ron | 68 +++++++++++++++++++ common/src/comp/body.rs | 1 + common/src/comp/body/quadruped_medium.rs | 6 +- common/src/states/utils.rs | 1 + voxygen/anim/src/quadruped_medium/mod.rs | 14 ++++ 17 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/npc/akhlut/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/head.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/akhlut/male/torso_front.vox diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index 85291056b7..a68091e6b1 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -563,6 +563,10 @@ keyword: "alpaca", generic: "Alpaca" ), + akhlut: ( + keyword: "akhlut", + generic: "Akhlut" + ), ) ), quadruped_small: ( diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox new file mode 100644 index 0000000000..a5280b72d3 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e81fd2cad7b79b4d7ce894225e2fe9790f3d31a367553ac399ccceb1be4c43 +size 2184 diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox new file mode 100644 index 0000000000..6cfbebad82 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee2b827a15adf2363c84e27d917a3572b82e93d516269dc58486c2218890d958 +size 3040 diff --git a/assets/voxygen/voxel/npc/akhlut/male/head.vox b/assets/voxygen/voxel/npc/akhlut/male/head.vox new file mode 100644 index 0000000000..608c674948 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80d0c29e47eaab3b6710bd277d2c4a14b8632d7d854b22a2c68a2e2b8dda4601 +size 3200 diff --git a/assets/voxygen/voxel/npc/akhlut/male/jaw.vox b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox new file mode 100644 index 0000000000..200acdb990 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72169a6599da4d52e2cf6861ab94a13f940488115b1a13f3093ef0a24cf1de5b +size 4536 diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox new file mode 100644 index 0000000000..9f4aae1fe4 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:256374766aabb2788384ec8a15d8b750c08529b0b83d09d5bb526899577db8f4 +size 2768 diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox new file mode 100644 index 0000000000..acf6681e32 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfe65787c08a75890d5fd9a67542396b45ef399dbe6bb697d5b51a579fd06440 +size 3468 diff --git a/assets/voxygen/voxel/npc/akhlut/male/neck.vox b/assets/voxygen/voxel/npc/akhlut/male/neck.vox new file mode 100644 index 0000000000..d1067354e0 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/neck.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e13d5a0507481b7d7972e69939457392840aca6f59da3f4e7a417bd16076e294 +size 4808 diff --git a/assets/voxygen/voxel/npc/akhlut/male/tail.vox b/assets/voxygen/voxel/npc/akhlut/male/tail.vox new file mode 100644 index 0000000000..80b6002f53 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4814035a9d535d0a04d617d73a6315aa82d55aa5eb2913420104e113d7cfa5a5 +size 4936 diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox new file mode 100644 index 0000000000..332db07dee --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:093f96a4a15aff1619ddceeb1886585f3d1d2fe6bf769a7b408b10c93598e139 +size 7928 diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox new file mode 100644 index 0000000000..da120e97f1 --- /dev/null +++ b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00804e546266903fb1e748a1a29a44d1eff5f2fda3cdf091a0ac02abd998db44 +size 13528 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 8eb2192a7b..57fa352d84 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -2039,4 +2039,64 @@ central: ("npc.alpaca.male.tail"), ), ), + (Akhlut, Male): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), + (Akhlut, Female): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 8e0ff588b2..54da32823b 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -2311,4 +2311,72 @@ lateral: ("npc.alpaca.male.foot_br"), ), ), + (Akhlut, Male): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), + (Akhlut, Female): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), }) diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 8e316eee9d..70c96068ff 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -876,6 +876,7 @@ impl Body { (quadruped_medium::Species::Ngoubou, _) => [0.0, 0.3, 2.0], (quadruped_medium::Species::Llama, _) => [0.0, 0.1, 1.5], (quadruped_medium::Species::Alpaca, _) => [0.0, -0.1, 1.0], + (quadruped_medium::Species::Akhlut, _) => [0.6, 0.6, 2.0], } }, Body::Ship(ship) => match ship { diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index 708c55db9e..e956f50089 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -69,6 +69,7 @@ pub enum Species { Ngoubou = 33, Llama = 34, Alpaca = 35, + Akhlut = 36, } /// Data representing per-species generic data. @@ -110,6 +111,7 @@ pub struct AllSpecies { pub ngoubou: SpeciesMeta, pub llama: SpeciesMeta, pub alpaca: SpeciesMeta, + pub akhlut: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -152,11 +154,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Ngoubou => &self.ngoubou, Species::Llama => &self.llama, Species::Alpaca => &self.alpaca, + Species::Akhlut => &self.akhlut, } } } -pub const ALL_SPECIES: [Species; 34] = [ +pub const ALL_SPECIES: [Species; 35] = [ Species::Grolgar, Species::Saber, Species::Tiger, @@ -191,6 +194,7 @@ pub const ALL_SPECIES: [Species; 34] = [ Species::Ngoubou, Species::Llama, Species::Alpaca, + Species::Akhlut, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 1cd9fec9f6..a620bf20b4 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -86,6 +86,7 @@ impl Body { quadruped_medium::Species::Ngoubou => 170.0, quadruped_medium::Species::Llama => 120.0, quadruped_medium::Species::Alpaca => 110.0, + quadruped_medium::Species::Akhlut => 90.0, }, Body::BipedLarge(body) => match body.species { biped_large::Species::Slysaurok => 100.0, diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 4726b65ae9..aeafe12ccb 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -208,6 +208,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (0.5, -2.5), (Llama, _) => (0.5, 10.0), (Alpaca, _) => (0.5, 7.5), + (Akhlut, _) => (1.0, 3.5), }, neck: match (body.species, body.body_type) { (Grolgar, _) => (1.0, -1.0), @@ -245,6 +246,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (2.0, 1.0), (Llama, _) => (2.5, 4.5), (Alpaca, _) => (-1.5, 3.0), + (Akhlut, _) => (8.5, -1.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 2.0), @@ -283,6 +285,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (8.5, -4.0), (Llama, _) => (4.0, -1.0), (Alpaca, _) => (3.0, -2.5), + (Akhlut, _) => (0.0, -4.5), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), @@ -320,6 +323,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-12.0, 5.5), (Llama, _) => (-9.0, 6.0), (Alpaca, _) => (-8.5, 3.5), + (Akhlut, _) => (-14.0, -2.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), @@ -357,6 +361,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (9.5, 16.5), (Llama, _) => (7.0, 15.0), (Alpaca, _) => (7.0, 11.5), + (Akhlut, _) => (5.5, 14.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), @@ -394,6 +399,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-8.0, -2.0), (Llama, _) => (-8.0, 0.0), (Alpaca, _) => (-6.0, 0.0), + (Akhlut, _) => (-7.0, 1.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), @@ -432,6 +438,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (12.0, -3.0), (Llama, _) => (1.0, 3.5), (Alpaca, _) => (1.0, 2.0), + (Akhlut, _) => (12.0, -3.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), @@ -469,6 +476,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (7.5, -4.0, -1.5), (Llama, _) => (5.0, -1.5, -1.0), (Alpaca, _) => (3.5, -2.5, -0.5), + (Akhlut, _) => (8.0, -2.0, 0.5), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -4.0), @@ -506,6 +514,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (4.5, -9.5, 0.0), (Llama, _) => (5.0, -7.0, -2.0), (Alpaca, _) => (3.5, -7.0, 0.0), + (Akhlut, _) => (6.0, -7.5, -2.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -4.0), @@ -543,6 +552,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (-1.0, 0.5, -6.0), (Llama, _) => (-0.5, 0.5, -6.0), (Alpaca, _) => (0.0, -0.5, -5.0), + (Akhlut, _) => (0.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.5, -1.5, -3.0), @@ -580,6 +590,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Ngoubou, _) => (0.5, 1.0, -5.5), (Llama, _) => (0.5, -1.5, -3.5), (Alpaca, _) => (-0.5, -0.5, -5.5), + (Akhlut, _) => (1.5, -1.0, -4.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.05), @@ -606,6 +617,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowleopard, _) => (0.95), (Mammoth, _) => (3.0), (Ngoubou, _) => (1.0), + (Akhlut, _) => (1.4), _ => (0.9), }, startangle: match (body.species, body.body_type) { @@ -644,6 +656,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Bear, _) => (0.8), (Yak, _) => (0.8), (Camel, _) => (1.8), + (Akhlut, _) => (0.95), _ => (1.0), }, spring: match (body.species, body.body_type) { @@ -723,6 +736,7 @@ fn mount_point(body: &Body) -> Vec3 { (Ngoubou, _) => (0.0, -7.0, 6.0), (Llama, _) => (0.0, -6.0, 5.0), (Alpaca, _) => (0.0, -9.0, 3.0), + (Akhlut, _) => (0.0, -6.0, 4.0), } .into() } From 0e9d50162b1c1ca0777f558a1c3d41fcc3d2065e Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 14 Jan 2022 00:03:53 -0500 Subject: [PATCH 4/4] last fixes --- assets/common/entity/wild/aggressive/akhlut.ron | 11 +++++++++++ assets/common/entity/wild/aggressive/icedrake.ron | 11 +++++++++++ assets/common/entity/wild/peaceful/penguin.ron | 11 +++++++++++ assets/world/wildlife/spawn/tundra/snow.ron | 3 +++ server/src/rtsim/entity.rs | 4 ++-- world/src/layer/spot.rs | 10 +++++----- 6 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 assets/common/entity/wild/aggressive/akhlut.ron create mode 100644 assets/common/entity/wild/aggressive/icedrake.ron create mode 100644 assets/common/entity/wild/peaceful/penguin.ron diff --git a/assets/common/entity/wild/aggressive/akhlut.ron b/assets/common/entity/wild/aggressive/akhlut.ron new file mode 100644 index 0000000000..244b2bb79c --- /dev/null +++ b/assets/common/entity/wild/aggressive/akhlut.ron @@ -0,0 +1,11 @@ +EntityConfig ( + name: Automatic, + body: RandomWith("akhlut"), + alignment: Alignment(Enemy), + + loot: LootTable("common.loot_tables.creature.quad_medium.ice"), + + hands: Uninit, + + meta: [], +) diff --git a/assets/common/entity/wild/aggressive/icedrake.ron b/assets/common/entity/wild/aggressive/icedrake.ron new file mode 100644 index 0000000000..2ee1ec8d3c --- /dev/null +++ b/assets/common/entity/wild/aggressive/icedrake.ron @@ -0,0 +1,11 @@ +EntityConfig ( + name: Automatic, + body: RandomWith("icedrake"), + alignment: Alignment(Enemy), + + loot: LootTable("common.loot_tables.creature.quad_medium.ice"), + + hands: Uninit, + + meta: [], +) diff --git a/assets/common/entity/wild/peaceful/penguin.ron b/assets/common/entity/wild/peaceful/penguin.ron new file mode 100644 index 0000000000..4c8407afce --- /dev/null +++ b/assets/common/entity/wild/peaceful/penguin.ron @@ -0,0 +1,11 @@ +EntityConfig ( + name: Automatic, + body: RandomWith("penguin"), + alignment: Alignment(Wild), + + loot: LootTable("common.loot_tables.creature.quad_medium.gentle"), + + hands: Uninit, + + meta: [], +) diff --git a/assets/world/wildlife/spawn/tundra/snow.ron b/assets/world/wildlife/spawn/tundra/snow.ron index 41fd8a1f3e..a19ca64284 100644 --- a/assets/world/wildlife/spawn/tundra/snow.ron +++ b/assets/world/wildlife/spawn/tundra/snow.ron @@ -5,8 +5,11 @@ SpawnEntry ( Pack( groups: [ (1, (1, 3, "common.entity.wild.aggressive.frostfang")), + (1, (1, 1, "common.entity.wild.aggressive.akhlut")), + (1, (1, 1, "common.entity.wild.aggressive.icedrake")), (1, (1, 3, "common.entity.wild.aggressive.snow_raptor")), (1, (1, 3, "common.entity.wild.aggressive.roshwalr")), + (5, (1, 5, "common.entity.wild.peaceful.penguin")), ], is_underwater: false, day_period: [Night, Morning, Noon, Evening], diff --git a/server/src/rtsim/entity.rs b/server/src/rtsim/entity.rs index 062dd7a034..7c0e29a312 100644 --- a/server/src/rtsim/entity.rs +++ b/server/src/rtsim/entity.rs @@ -837,11 +837,11 @@ mod tests { // Bird Medium test for bird_med_species in BIRD_MEDIUM_ROSTER { let female_body = comp::bird_medium::Body { - species: bird_med_species, + species: *bird_med_species, body_type: comp::bird_medium::BodyType::Female, }; let male_body = comp::bird_medium::Body { - species: bird_med_species, + species: *bird_med_species, body_type: comp::bird_medium::BodyType::Male, }; diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index ce20d368ae..f19d7b922c 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -170,7 +170,7 @@ impl Spot { Self::generate_spots( Spot::GnarlingTotem, world, - 1000.0, + 2.0, |g, c| { g < 0.25 && !c.near_cliffs() @@ -474,10 +474,10 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { base_structures: Some("spots_grasslands.gnarling_totem"), entity_radius: 30.0, entities: &[ - (2..4, "common.entity.dungeon.tier-0.mugger"), - (2..4, "common.entity.dungeon.tier-0.stalker"), - (2..4, "common.entity.dungeon.tier-0.logger"), - (1..2, "common.entity.dungeon.tier-0.chieftain"), + (3..5, "common.entity.dungeon.tier-0.mugger"), + (3..5, "common.entity.dungeon.tier-0.stalker"), + (3..5, "common.entity.dungeon.tier-0.logger"), + (2..4, "common.entity.dungeon.tier-0.chieftain"), ], }, Spot::GnarlingTree => SpotConfig {