From cb59c8017e6f20d48ae9dfa9af720711a52f373a Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 12 Feb 2021 20:01:07 -0500 Subject: [PATCH] anim tweaks, more loadout setup --- .../chest/{adlet.ron => adlet/adlet_bow.ron} | 2 +- .../npc_armor/chest/adlet/adlet_spear.ron | 12 +++ .../chest/{ => gnarling}/gnarling.ron | 0 .../npc_armor/chest/{ => haniwa}/haniwa.ron | 0 .../npc_armor/chest/{ => kappa}/kappa.ron | 0 .../chest/{ => myrmidon}/myrmidon.ron | 0 .../npc_armor/chest/{ => sahagin}/sahagin.ron | 0 .../npc_armor/foot/{ => adlet}/adlet.ron | 0 .../foot/{ => gnarling}/gnarling.ron | 0 .../npc_armor/foot/{ => haniwa}/haniwa.ron | 0 .../npc_armor/foot/{ => kappa}/kappa.ron | 0 .../foot/{ => myrmidon}/myrmidon.ron | 0 .../npc_armor/foot/{ => sahagin}/sahagin.ron | 0 .../hand/{adlet.ron => adlet/adlet_bow.ron} | 2 +- .../npc_armor/hand/adlet/adlet_spear.ron | 12 +++ .../hand/{ => gnarling}/gnarling.ron | 0 .../npc_armor/hand/{ => haniwa}/haniwa.ron | 0 .../npc_armor/hand/{ => kappa}/kappa.ron | 0 .../hand/{ => myrmidon}/myrmidon.ron | 0 .../npc_armor/hand/{ => sahagin}/sahagin.ron | 0 assets/common/items/npc_armor/pants/adlet.ron | 12 --- .../items/npc_armor/pants/adlet/adlet_bow.ron | 12 +++ .../npc_armor/pants/adlet/adlet_spear.ron | 12 +++ .../pants/{ => gnarling}/gnarling.ron | 0 .../npc_armor/pants/{ => haniwa}/haniwa.ron | 0 .../npc_armor/pants/{ => kappa}/kappa.ron | 0 .../pants/{ => myrmidon}/myrmidon.ron | 0 .../npc_armor/pants/{ => sahagin}/sahagin.ron | 0 .../biped_small_armor_chest_manifest.ron | 7 +- .../voxel/biped_small_armor_hand_manifest.ron | 14 ++- .../biped_small_armor_pants_manifest.ron | 9 +- .../npc/adlet/male/bow/bow_movelater.vox | 3 + .../voxel/npc/adlet/male/bow/chest.vox | 3 + .../voxel/npc/adlet/male/bow/hand_r.vox | 3 + .../voxygen/voxel/npc/adlet/male/bow/head.vox | 3 + .../voxel/npc/adlet/male/bow/pants.vox | 3 + .../npc/adlet/male/{ => spear}/chest.vox | 0 .../npc/adlet/male/{ => spear}/hand_r.vox | 0 .../voxel/npc/adlet/male/spear/head.vox | 3 + .../npc/adlet/male/{ => spear}/pants.vox | 0 common/src/comp/inventory/loadout_builder.rs | 89 ++++++++++++++----- common/src/states/utils.rs | 14 +-- voxygen/anim/src/biped_large/idle.rs | 14 +-- voxygen/anim/src/biped_large/mod.rs | 2 +- voxygen/anim/src/biped_small/alpha.rs | 20 +++-- voxygen/anim/src/biped_small/shoot.rs | 53 +++++++++-- voxygen/anim/src/quadruped_low/mod.rs | 2 +- voxygen/anim/src/quadruped_low/run.rs | 2 +- voxygen/anim/src/quadruped_medium/mod.rs | 2 +- voxygen/anim/src/quadruped_medium/run.rs | 24 ++--- voxygen/anim/src/quadruped_small/mod.rs | 13 ++- voxygen/anim/src/quadruped_small/run.rs | 17 ++-- voxygen/src/scene/particle.rs | 2 +- 53 files changed, 264 insertions(+), 102 deletions(-) rename assets/common/items/npc_armor/chest/{adlet.ron => adlet/adlet_bow.ron} (87%) create mode 100644 assets/common/items/npc_armor/chest/adlet/adlet_spear.ron rename assets/common/items/npc_armor/chest/{ => gnarling}/gnarling.ron (100%) rename assets/common/items/npc_armor/chest/{ => haniwa}/haniwa.ron (100%) rename assets/common/items/npc_armor/chest/{ => kappa}/kappa.ron (100%) rename assets/common/items/npc_armor/chest/{ => myrmidon}/myrmidon.ron (100%) rename assets/common/items/npc_armor/chest/{ => sahagin}/sahagin.ron (100%) rename assets/common/items/npc_armor/foot/{ => adlet}/adlet.ron (100%) rename assets/common/items/npc_armor/foot/{ => gnarling}/gnarling.ron (100%) rename assets/common/items/npc_armor/foot/{ => haniwa}/haniwa.ron (100%) rename assets/common/items/npc_armor/foot/{ => kappa}/kappa.ron (100%) rename assets/common/items/npc_armor/foot/{ => myrmidon}/myrmidon.ron (100%) rename assets/common/items/npc_armor/foot/{ => sahagin}/sahagin.ron (100%) rename assets/common/items/npc_armor/hand/{adlet.ron => adlet/adlet_bow.ron} (87%) create mode 100644 assets/common/items/npc_armor/hand/adlet/adlet_spear.ron rename assets/common/items/npc_armor/hand/{ => gnarling}/gnarling.ron (100%) rename assets/common/items/npc_armor/hand/{ => haniwa}/haniwa.ron (100%) rename assets/common/items/npc_armor/hand/{ => kappa}/kappa.ron (100%) rename assets/common/items/npc_armor/hand/{ => myrmidon}/myrmidon.ron (100%) rename assets/common/items/npc_armor/hand/{ => sahagin}/sahagin.ron (100%) delete mode 100644 assets/common/items/npc_armor/pants/adlet.ron create mode 100644 assets/common/items/npc_armor/pants/adlet/adlet_bow.ron create mode 100644 assets/common/items/npc_armor/pants/adlet/adlet_spear.ron rename assets/common/items/npc_armor/pants/{ => gnarling}/gnarling.ron (100%) rename assets/common/items/npc_armor/pants/{ => haniwa}/haniwa.ron (100%) rename assets/common/items/npc_armor/pants/{ => kappa}/kappa.ron (100%) rename assets/common/items/npc_armor/pants/{ => myrmidon}/myrmidon.ron (100%) rename assets/common/items/npc_armor/pants/{ => sahagin}/sahagin.ron (100%) create mode 100644 assets/voxygen/voxel/npc/adlet/male/bow/bow_movelater.vox create mode 100644 assets/voxygen/voxel/npc/adlet/male/bow/chest.vox create mode 100644 assets/voxygen/voxel/npc/adlet/male/bow/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/adlet/male/bow/head.vox create mode 100644 assets/voxygen/voxel/npc/adlet/male/bow/pants.vox rename assets/voxygen/voxel/npc/adlet/male/{ => spear}/chest.vox (100%) rename assets/voxygen/voxel/npc/adlet/male/{ => spear}/hand_r.vox (100%) create mode 100644 assets/voxygen/voxel/npc/adlet/male/spear/head.vox rename assets/voxygen/voxel/npc/adlet/male/{ => spear}/pants.vox (100%) diff --git a/assets/common/items/npc_armor/chest/adlet.ron b/assets/common/items/npc_armor/chest/adlet/adlet_bow.ron similarity index 87% rename from assets/common/items/npc_armor/chest/adlet.ron rename to assets/common/items/npc_armor/chest/adlet/adlet_bow.ron index 5b09bab368..8d50e8cd6f 100644 --- a/assets/common/items/npc_armor/chest/adlet.ron +++ b/assets/common/items/npc_armor/chest/adlet/adlet_bow.ron @@ -2,7 +2,7 @@ ItemDef( name: "Adlet", description: "Ceremonial attire used by members.", kind: Armor(( - kind: Chest("Adlet"), + kind: Chest("AdletBow"), stats: ( protection: Normal(2.0), poise_resilience: Normal(1.0), diff --git a/assets/common/items/npc_armor/chest/adlet/adlet_spear.ron b/assets/common/items/npc_armor/chest/adlet/adlet_spear.ron new file mode 100644 index 0000000000..5043c65e01 --- /dev/null +++ b/assets/common/items/npc_armor/chest/adlet/adlet_spear.ron @@ -0,0 +1,12 @@ +ItemDef( + name: "Adlet", + description: "Ceremonial attire used by members.", + kind: Armor(( + kind: Chest("AdletSpear"), + stats: ( + protection: Normal(2.0), + poise_resilience: Normal(1.0), + ), + )), + quality: Low, +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/chest/gnarling.ron b/assets/common/items/npc_armor/chest/gnarling/gnarling.ron similarity index 100% rename from assets/common/items/npc_armor/chest/gnarling.ron rename to assets/common/items/npc_armor/chest/gnarling/gnarling.ron diff --git a/assets/common/items/npc_armor/chest/haniwa.ron b/assets/common/items/npc_armor/chest/haniwa/haniwa.ron similarity index 100% rename from assets/common/items/npc_armor/chest/haniwa.ron rename to assets/common/items/npc_armor/chest/haniwa/haniwa.ron diff --git a/assets/common/items/npc_armor/chest/kappa.ron b/assets/common/items/npc_armor/chest/kappa/kappa.ron similarity index 100% rename from assets/common/items/npc_armor/chest/kappa.ron rename to assets/common/items/npc_armor/chest/kappa/kappa.ron diff --git a/assets/common/items/npc_armor/chest/myrmidon.ron b/assets/common/items/npc_armor/chest/myrmidon/myrmidon.ron similarity index 100% rename from assets/common/items/npc_armor/chest/myrmidon.ron rename to assets/common/items/npc_armor/chest/myrmidon/myrmidon.ron diff --git a/assets/common/items/npc_armor/chest/sahagin.ron b/assets/common/items/npc_armor/chest/sahagin/sahagin.ron similarity index 100% rename from assets/common/items/npc_armor/chest/sahagin.ron rename to assets/common/items/npc_armor/chest/sahagin/sahagin.ron diff --git a/assets/common/items/npc_armor/foot/adlet.ron b/assets/common/items/npc_armor/foot/adlet/adlet.ron similarity index 100% rename from assets/common/items/npc_armor/foot/adlet.ron rename to assets/common/items/npc_armor/foot/adlet/adlet.ron diff --git a/assets/common/items/npc_armor/foot/gnarling.ron b/assets/common/items/npc_armor/foot/gnarling/gnarling.ron similarity index 100% rename from assets/common/items/npc_armor/foot/gnarling.ron rename to assets/common/items/npc_armor/foot/gnarling/gnarling.ron diff --git a/assets/common/items/npc_armor/foot/haniwa.ron b/assets/common/items/npc_armor/foot/haniwa/haniwa.ron similarity index 100% rename from assets/common/items/npc_armor/foot/haniwa.ron rename to assets/common/items/npc_armor/foot/haniwa/haniwa.ron diff --git a/assets/common/items/npc_armor/foot/kappa.ron b/assets/common/items/npc_armor/foot/kappa/kappa.ron similarity index 100% rename from assets/common/items/npc_armor/foot/kappa.ron rename to assets/common/items/npc_armor/foot/kappa/kappa.ron diff --git a/assets/common/items/npc_armor/foot/myrmidon.ron b/assets/common/items/npc_armor/foot/myrmidon/myrmidon.ron similarity index 100% rename from assets/common/items/npc_armor/foot/myrmidon.ron rename to assets/common/items/npc_armor/foot/myrmidon/myrmidon.ron diff --git a/assets/common/items/npc_armor/foot/sahagin.ron b/assets/common/items/npc_armor/foot/sahagin/sahagin.ron similarity index 100% rename from assets/common/items/npc_armor/foot/sahagin.ron rename to assets/common/items/npc_armor/foot/sahagin/sahagin.ron diff --git a/assets/common/items/npc_armor/hand/adlet.ron b/assets/common/items/npc_armor/hand/adlet/adlet_bow.ron similarity index 87% rename from assets/common/items/npc_armor/hand/adlet.ron rename to assets/common/items/npc_armor/hand/adlet/adlet_bow.ron index cd1e73e030..173ea9112f 100644 --- a/assets/common/items/npc_armor/hand/adlet.ron +++ b/assets/common/items/npc_armor/hand/adlet/adlet_bow.ron @@ -2,7 +2,7 @@ ItemDef( name: "Adlet", description: "Ceremonial attire used by members..", kind: Armor(( - kind: Hand("Adlet"), + kind: Hand("AdletBow"), stats: ( protection: Normal(2.0), poise_resilience: Normal(1.0), diff --git a/assets/common/items/npc_armor/hand/adlet/adlet_spear.ron b/assets/common/items/npc_armor/hand/adlet/adlet_spear.ron new file mode 100644 index 0000000000..6193f137b5 --- /dev/null +++ b/assets/common/items/npc_armor/hand/adlet/adlet_spear.ron @@ -0,0 +1,12 @@ +ItemDef( + name: "Adlet", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Hand("AdletSpear"), + stats: ( + protection: Normal(2.0), + poise_resilience: Normal(1.0), + ), + )), + quality: Low, +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/hand/gnarling.ron b/assets/common/items/npc_armor/hand/gnarling/gnarling.ron similarity index 100% rename from assets/common/items/npc_armor/hand/gnarling.ron rename to assets/common/items/npc_armor/hand/gnarling/gnarling.ron diff --git a/assets/common/items/npc_armor/hand/haniwa.ron b/assets/common/items/npc_armor/hand/haniwa/haniwa.ron similarity index 100% rename from assets/common/items/npc_armor/hand/haniwa.ron rename to assets/common/items/npc_armor/hand/haniwa/haniwa.ron diff --git a/assets/common/items/npc_armor/hand/kappa.ron b/assets/common/items/npc_armor/hand/kappa/kappa.ron similarity index 100% rename from assets/common/items/npc_armor/hand/kappa.ron rename to assets/common/items/npc_armor/hand/kappa/kappa.ron diff --git a/assets/common/items/npc_armor/hand/myrmidon.ron b/assets/common/items/npc_armor/hand/myrmidon/myrmidon.ron similarity index 100% rename from assets/common/items/npc_armor/hand/myrmidon.ron rename to assets/common/items/npc_armor/hand/myrmidon/myrmidon.ron diff --git a/assets/common/items/npc_armor/hand/sahagin.ron b/assets/common/items/npc_armor/hand/sahagin/sahagin.ron similarity index 100% rename from assets/common/items/npc_armor/hand/sahagin.ron rename to assets/common/items/npc_armor/hand/sahagin/sahagin.ron diff --git a/assets/common/items/npc_armor/pants/adlet.ron b/assets/common/items/npc_armor/pants/adlet.ron deleted file mode 100644 index b0c1066eed..0000000000 --- a/assets/common/items/npc_armor/pants/adlet.ron +++ /dev/null @@ -1,12 +0,0 @@ -ItemDef( - name: "Haniwa", - description: "Ceremonial attire used by members..", - kind: Armor(( - kind: Pants("Adlet"), - stats: ( - protection: Normal(2.0), - poise_resilience: Normal(1.0), - ), - )), - quality: Low, -) \ No newline at end of file diff --git a/assets/common/items/npc_armor/pants/adlet/adlet_bow.ron b/assets/common/items/npc_armor/pants/adlet/adlet_bow.ron new file mode 100644 index 0000000000..909e590700 --- /dev/null +++ b/assets/common/items/npc_armor/pants/adlet/adlet_bow.ron @@ -0,0 +1,12 @@ +ItemDef( + name: "Adlet", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Pants("AdletBow"), + stats: ( + protection: Normal(2.0), + poise_resilience: Normal(1.0), + ), + )), + quality: Low, +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/pants/adlet/adlet_spear.ron b/assets/common/items/npc_armor/pants/adlet/adlet_spear.ron new file mode 100644 index 0000000000..84568b5788 --- /dev/null +++ b/assets/common/items/npc_armor/pants/adlet/adlet_spear.ron @@ -0,0 +1,12 @@ +ItemDef( + name: "Adlet", + description: "Ceremonial attire used by members..", + kind: Armor(( + kind: Pants("AdletSpear"), + stats: ( + protection: Normal(2.0), + poise_resilience: Normal(1.0), + ), + )), + quality: Low, +) \ No newline at end of file diff --git a/assets/common/items/npc_armor/pants/gnarling.ron b/assets/common/items/npc_armor/pants/gnarling/gnarling.ron similarity index 100% rename from assets/common/items/npc_armor/pants/gnarling.ron rename to assets/common/items/npc_armor/pants/gnarling/gnarling.ron diff --git a/assets/common/items/npc_armor/pants/haniwa.ron b/assets/common/items/npc_armor/pants/haniwa/haniwa.ron similarity index 100% rename from assets/common/items/npc_armor/pants/haniwa.ron rename to assets/common/items/npc_armor/pants/haniwa/haniwa.ron diff --git a/assets/common/items/npc_armor/pants/kappa.ron b/assets/common/items/npc_armor/pants/kappa/kappa.ron similarity index 100% rename from assets/common/items/npc_armor/pants/kappa.ron rename to assets/common/items/npc_armor/pants/kappa/kappa.ron diff --git a/assets/common/items/npc_armor/pants/myrmidon.ron b/assets/common/items/npc_armor/pants/myrmidon/myrmidon.ron similarity index 100% rename from assets/common/items/npc_armor/pants/myrmidon.ron rename to assets/common/items/npc_armor/pants/myrmidon/myrmidon.ron diff --git a/assets/common/items/npc_armor/pants/sahagin.ron b/assets/common/items/npc_armor/pants/sahagin/sahagin.ron similarity index 100% rename from assets/common/items/npc_armor/pants/sahagin.ron rename to assets/common/items/npc_armor/pants/sahagin/sahagin.ron diff --git a/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron index aa13561ac0..196b7038b4 100644 --- a/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron @@ -9,8 +9,11 @@ "Sahagin": ( vox_spec: ("npc.sahagin.male.chest", (-4.5, -8.0, -8.0)), ), - "Adlet": ( - vox_spec: ("npc.adlet.male.chest", (-5.0, -3.5, -2.0)), + "AdletSpear": ( + vox_spec: ("npc.adlet.male.spear.chest", (-5.0, -3.5, -2.0)), + ), + "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)), diff --git a/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron index 9cd86cae28..68b7f72157 100644 --- a/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron @@ -24,12 +24,20 @@ vox_spec: ("npc.sahagin.male.hand_r", (0.0, -4.0, -13.0)), ) ), - "Adlet": ( + "AdletSpear": ( left: ( - vox_spec: ("npc.adlet.male.hand_r", (-4.0, -2.0, -7.0)), + vox_spec: ("npc.adlet.male.spear.hand_r", (-4.0, -2.0, -7.0)), ), right: ( - vox_spec: ("npc.adlet.male.hand_r", (0.0, -2.0, -7.0)), + vox_spec: ("npc.adlet.male.spear.hand_r", (0.0, -2.0, -7.0)), + ) + ), + "AdletBow": ( + left: ( + vox_spec: ("npc.adlet.male.bow.hand_r", (-4.0, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.male.bow.hand_r", (0.0, -2.0, -7.0)), ) ), "Gnarling": ( diff --git a/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron index ea643d8405..bf0419402f 100644 --- a/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron +++ b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron @@ -9,8 +9,11 @@ "Sahagin": ( vox_spec: ("npc.sahagin.male.pants", (-2.5, -3.5, -2.0)), ), - "Adlet": ( - vox_spec: ("npc.adlet.male.pants", (-5.0, -4.5, -3.0)), + "AdletSpear": ( + vox_spec: ("npc.adlet.male.spear.pants", (-5.0, -4.5, -3.0)), + ), + "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)), @@ -31,7 +34,7 @@ vox_spec: ("npc.haniwa.male.pants", (-4.5, -4.5, -1.5)), ), "Myrmidon": ( - vox_spec: ("npc.myrmidon.male.pants", (-4.5, -4.5, -1.5)), + vox_spec: ("npc.myrmidon.male.pants", (-2.5, -4.5, -1.5)), ), }, )) diff --git a/assets/voxygen/voxel/npc/adlet/male/bow/bow_movelater.vox b/assets/voxygen/voxel/npc/adlet/male/bow/bow_movelater.vox new file mode 100644 index 0000000000..208e52cf49 --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/bow/bow_movelater.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef2809ad85372e7662cb5bf787d6054e49b6b749eaf5c2157e12a15649dc3242 +size 1344 diff --git a/assets/voxygen/voxel/npc/adlet/male/bow/chest.vox b/assets/voxygen/voxel/npc/adlet/male/bow/chest.vox new file mode 100644 index 0000000000..27c9b3135d --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/bow/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a4bfa627e7e6029ffe07381dc6cf1e988a48ce1ab2d8573e621600582ce4575 +size 1696 diff --git a/assets/voxygen/voxel/npc/adlet/male/bow/hand_r.vox b/assets/voxygen/voxel/npc/adlet/male/bow/hand_r.vox new file mode 100644 index 0000000000..4061bb6228 --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/bow/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:078af24a2889ed8b7aab36687bae8149eaf71bbbaaec2154cf3a19ddb0030f7f +size 1420 diff --git a/assets/voxygen/voxel/npc/adlet/male/bow/head.vox b/assets/voxygen/voxel/npc/adlet/male/bow/head.vox new file mode 100644 index 0000000000..d4e4579cf3 --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/bow/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38ab461be8fc63fd4dd334bf9a8b4613a779e9d4f910594c2a12b56ef0410578 +size 3384 diff --git a/assets/voxygen/voxel/npc/adlet/male/bow/pants.vox b/assets/voxygen/voxel/npc/adlet/male/bow/pants.vox new file mode 100644 index 0000000000..f432762f32 --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/bow/pants.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf54b7e40ab08b25f57dd934917d958e815f09fd02c5f627a212e705dece20e +size 1888 diff --git a/assets/voxygen/voxel/npc/adlet/male/chest.vox b/assets/voxygen/voxel/npc/adlet/male/spear/chest.vox similarity index 100% rename from assets/voxygen/voxel/npc/adlet/male/chest.vox rename to assets/voxygen/voxel/npc/adlet/male/spear/chest.vox diff --git a/assets/voxygen/voxel/npc/adlet/male/hand_r.vox b/assets/voxygen/voxel/npc/adlet/male/spear/hand_r.vox similarity index 100% rename from assets/voxygen/voxel/npc/adlet/male/hand_r.vox rename to assets/voxygen/voxel/npc/adlet/male/spear/hand_r.vox diff --git a/assets/voxygen/voxel/npc/adlet/male/spear/head.vox b/assets/voxygen/voxel/npc/adlet/male/spear/head.vox new file mode 100644 index 0000000000..26a71c9cec --- /dev/null +++ b/assets/voxygen/voxel/npc/adlet/male/spear/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a936f5a25ab1b9dcc72f7824b00b743ae7866822cfc4764238bfa9419a5d9a0f +size 3336 diff --git a/assets/voxygen/voxel/npc/adlet/male/pants.vox b/assets/voxygen/voxel/npc/adlet/male/spear/pants.vox similarity index 100% rename from assets/voxygen/voxel/npc/adlet/male/pants.vox rename to assets/voxygen/voxel/npc/adlet/male/spear/pants.vox diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 4d853ca1ff..1bc0e59ea7 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -290,16 +290,31 @@ impl LoadoutBuilder { Some(ToolKind::Bow) => LoadoutBuilder::new() .active_item(active_item) .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.hand.adlet", + "common.items.npc_armor.hand.adlet.adlet_bow", ))) .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.foot.adlet", + "common.items.npc_armor.foot.adlet.adlet", ))) .chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.chest.adlet", + "common.items.npc_armor.chest.adlet.adlet_bow", ))) .pants(Some(Item::new_from_asset_expect( - "common.items.npc_armor.pants.adlet", + "common.items.npc_armor.pants.adlet.adlet_bow", + ))) + .build(), + Some(ToolKind::Spear) | Some(ToolKind::Staff) => LoadoutBuilder::new() + .active_item(active_item) + .hands(Some(Item::new_from_asset_expect( + "common.items.npc_armor.hand.adlet.adlet_spear", + ))) + .feet(Some(Item::new_from_asset_expect( + "common.items.npc_armor.foot.adlet.adlet", + ))) + .chest(Some(Item::new_from_asset_expect( + "common.items.npc_armor.chest.adlet.adlet_spear", + ))) + .pants(Some(Item::new_from_asset_expect( + "common.items.npc_armor.pants.adlet.adlet_spear", ))) .build(), _ => LoadoutBuilder::new().active_item(active_item).build(), @@ -308,16 +323,46 @@ impl LoadoutBuilder { Some(ToolKind::Bow) => LoadoutBuilder::new() .active_item(active_item) .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.foot.gnarling", + "common.items.npc_armor.foot.gnarling.gnarling", ))) .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.hand.gnarling", + "common.items.npc_armor.hand.gnarling.gnarling", ))) .chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.chest.gnarling", + "common.items.npc_armor.chest.gnarling.gnarling", ))) .pants(Some(Item::new_from_asset_expect( - "common.items.npc_armor.pants.gnarling", + "common.items.npc_armor.pants.gnarling.gnarling", + ))) + .build(), + Some(ToolKind::Staff) => LoadoutBuilder::new() + .active_item(active_item) + .feet(Some(Item::new_from_asset_expect( + "common.items.npc_armor.foot.gnarling.gnarling", + ))) + .hands(Some(Item::new_from_asset_expect( + "common.items.npc_armor.hand.gnarling.gnarling", + ))) + .chest(Some(Item::new_from_asset_expect( + "common.items.npc_armor.chest.gnarling.gnarling", + ))) + .pants(Some(Item::new_from_asset_expect( + "common.items.npc_armor.pants.gnarling.gnarling", + ))) + .build(), + Some(ToolKind::Spear) => LoadoutBuilder::new() + .active_item(active_item) + .feet(Some(Item::new_from_asset_expect( + "common.items.npc_armor.foot.gnarling.gnarling", + ))) + .hands(Some(Item::new_from_asset_expect( + "common.items.npc_armor.hand.gnarling.gnarling", + ))) + .chest(Some(Item::new_from_asset_expect( + "common.items.npc_armor.chest.gnarling.gnarling", + ))) + .pants(Some(Item::new_from_asset_expect( + "common.items.npc_armor.pants.gnarling.gnarling", ))) .build(), _ => LoadoutBuilder::new().active_item(active_item).build(), @@ -325,46 +370,46 @@ impl LoadoutBuilder { Sahagin => LoadoutBuilder::new() .active_item(active_item) .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.hand.sahagin", + "common.items.npc_armor.hand.sahagin.sahagin", ))) .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.foot.sahagin", + "common.items.npc_armor.foot.sahagin.sahagin", ))) .chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.chest.sahagin", + "common.items.npc_armor.chest.sahagin.sahagin", ))) .pants(Some(Item::new_from_asset_expect( - "common.items.npc_armor.pants.sahagin", + "common.items.npc_armor.pants.sahagin.sahagin", ))) .build(), Haniwa => LoadoutBuilder::new() .active_item(active_item) .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.hand.haniwa", + "common.items.npc_armor.hand.haniwa.haniwa", ))) .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.foot.haniwa", + "common.items.npc_armor.foot.haniwa.haniwa", ))) .chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.chest.haniwa", + "common.items.npc_armor.chest.haniwa.haniwa", ))) .pants(Some(Item::new_from_asset_expect( - "common.items.npc_armor.pants.haniwa", + "common.items.npc_armor.pants.haniwa.haniwa", ))) .build(), Myrmidon => LoadoutBuilder::new() .active_item(active_item) .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.hand.myrmidon", + "common.items.npc_armor.hand.myrmidon.myrmidon", ))) .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.foot.myrmidon", + "common.items.npc_armor.foot.myrmidon.myrmidon", ))) - .hands(Some(Item::new_from_asset_expect( - "common.items.npc_armor.chest.myrmidon", + .chest(Some(Item::new_from_asset_expect( + "common.items.npc_armor.chest.myrmidon.myrmidon", ))) - .feet(Some(Item::new_from_asset_expect( - "common.items.npc_armor.pants.myrmidon", + .pants(Some(Item::new_from_asset_expect( + "common.items.npc_armor.pants.myrmidon.myrmidon", ))) .build(), Guard => LoadoutBuilder::new() diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 5c65194742..32f5d3027d 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -59,13 +59,13 @@ impl Body { quadruped_medium::Species::Antelope => 185.0, quadruped_medium::Species::Kelpie => 180.0, quadruped_medium::Species::Horse => 180.0, - quadruped_medium::Species::Barghest => 180.0, - quadruped_medium::Species::Cattle => 180.0, - quadruped_medium::Species::Darkhound => 180.0, - quadruped_medium::Species::Highland => 180.0, - quadruped_medium::Species::Yak => 180.0, - quadruped_medium::Species::Panda => 180.0, - quadruped_medium::Species::Bear => 180.0, + quadruped_medium::Species::Barghest => 80.0, + quadruped_medium::Species::Cattle => 80.0, + quadruped_medium::Species::Darkhound => 160.0, + quadruped_medium::Species::Highland => 80.0, + quadruped_medium::Species::Yak => 90.0, + quadruped_medium::Species::Panda => 90.0, + quadruped_medium::Species::Bear => 90.0, }, Body::BipedSmall(_) => 80.0, Body::BirdMedium(_) => 80.0, diff --git a/voxygen/anim/src/biped_large/idle.rs b/voxygen/anim/src/biped_large/idle.rs index 459f0628db..ab3566a13b 100644 --- a/voxygen/anim/src/biped_large/idle.rs +++ b/voxygen/anim/src/biped_large/idle.rs @@ -25,10 +25,10 @@ impl Animation for IdleAnimation { let mut next = (*skeleton).clone(); let lab = 1.0; - let torso = (anim_time as f32 * lab as f32 + 1.5 * PI).sin(); + let torso = (anim_time as f32 * lab as f32 + 1.5 * PI).sin() * 1.5; - let slower = (anim_time as f32 * 1.0 + PI).sin(); - let slow = (anim_time as f32 * 3.5 + PI).sin(); + let slower = (anim_time as f32 * 2.0 + PI).sin() * 1.5; + let slow = (anim_time as f32 * 7.0 + PI).sin() * 1.5; let look = Vec2::new( ((global_time + anim_time) as f32 / 8.0) @@ -119,13 +119,13 @@ impl Animation for IdleAnimation { next.shoulder_r.position = Vec3::new(s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); next.shoulder_r.orientation = Quaternion::rotation_x(breathe); - next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2 + torso * 0.6); + next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2 + torso * -0.1); - next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2 + torso * 0.6); + next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2 + torso * -0.1); - next.leg_l.position = Vec3::new(-s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * 0.2); + next.leg_l.position = Vec3::new(-s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * -0.2); - next.leg_r.position = Vec3::new(s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * 0.2); + next.leg_r.position = Vec3::new(s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * -0.2); next.foot_l.position = Vec3::new(-s_a.foot.0, s_a.foot.1, s_a.foot.2); diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index c1341c3d38..8fc9aeb4db 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -241,7 +241,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Troll, _) => (1.0, -10.5), (Dullahan, _) => (0.0, -6.5), (Werewolf, _) => (1.0, -10.0), - (Occultsaurok, _) => (0.0, -6.0), + (Occultsaurok, _) => (0.0, -5.0), (Mightysaurok, _) => (0.0, -5.0), (Slysaurok, _) => (0.0, -6.0), (Mindflayer, _) => (3.5, -19.5), diff --git a/voxygen/anim/src/biped_small/alpha.rs b/voxygen/anim/src/biped_small/alpha.rs index 23e68e4276..73aa1b44bc 100644 --- a/voxygen/anim/src/biped_small/alpha.rs +++ b/voxygen/anim/src/biped_small/alpha.rs @@ -64,14 +64,16 @@ impl Animation for AlphaAnimation { let movement2abs = movement2base * pullback; next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); - next.head.orientation = Quaternion::rotation_x(movement1abs * -0.1 + movement2abs * 0.5) + next.head.orientation = Quaternion::rotation_x(movement1abs * 0.2 + movement2abs * 0.3) * Quaternion::rotation_z(movement1abs * -0.2 + movement2abs * 0.6) * Quaternion::rotation_y(movement1abs * 0.3 + movement2abs * -0.5); next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1) / 13.0; - next.chest.orientation = Quaternion::rotation_z(movement1abs * 0.5 + movement2abs * -0.6); + next.chest.orientation = Quaternion::rotation_x(movement1abs * -0.2 + movement2abs * 0.3) + * Quaternion::rotation_z(movement1abs * 0.5 + movement2abs * -0.6); next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1); - next.pants.orientation = Quaternion::rotation_z(movement1abs * -0.2 + movement2abs * 0.2); + next.pants.orientation = Quaternion::rotation_x(movement1abs * 0.2 + movement2abs * -0.3) + * Quaternion::rotation_z(movement1abs * -0.2 + movement2abs * 0.2); next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.orientation = Quaternion::rotation_x(0.0); @@ -88,20 +90,20 @@ impl Animation for AlphaAnimation { next.control.position = Vec3::new( -3.0 + movement1abs * -3.0 + movement2abs * 5.0, s_a.grip.2 + movement1abs * -12.0 + movement2abs * 17.0, - -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0 + movement2abs * 10.0, + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0 + movement2abs * 5.0, ); next.control_l.orientation = - Quaternion::rotation_x(PI / 1.5 + movement1abs * -1.0 + movement2abs * 3.0) + Quaternion::rotation_x(PI / 1.5 + movement1abs * -1.5 + movement2abs * 2.5) * Quaternion::rotation_y(-0.3); next.control_r.orientation = Quaternion::rotation_x( - PI / 1.5 + s_a.grip.0 * 0.2 + movement1abs * -1.0 + movement2abs * 3.0, + PI / 1.5 + s_a.grip.0 * 0.2 + movement1abs * -1.5 + movement2abs * 2.5, ) * Quaternion::rotation_y(0.5 + s_a.grip.0 * 0.2); next.control.orientation = - Quaternion::rotation_x(-1.35 + movement1abs * -0.3 + movement2abs * 1.0) - * Quaternion::rotation_z(movement1abs * 1.0 + movement2abs * -1.8) - * Quaternion::rotation_y(movement2abs * 0.5); + Quaternion::rotation_x(-1.35 + movement1abs * -0.3 + movement2abs * 0.5) + * Quaternion::rotation_z(movement1abs * 1.0 + movement2abs * -1.0) + * Quaternion::rotation_y(movement2abs * 0.0); next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1); next.tail.orientation = Quaternion::rotation_x(0.05 * fastalt * speednormcancel) diff --git a/voxygen/anim/src/biped_small/shoot.rs b/voxygen/anim/src/biped_small/shoot.rs index 94ab39f3b6..6f04bb3f3e 100644 --- a/voxygen/anim/src/biped_small/shoot.rs +++ b/voxygen/anim/src/biped_small/shoot.rs @@ -84,26 +84,26 @@ impl Animation for ShootAnimation { match active_tool_kind { Some(ToolKind::Bow) => { - let (movement1base, movement2base, movement3) = match stage_section { + let (move1base, move2base, move3) = match stage_section { Some(StageSection::Buildup) => (anim_time as f32, 0.0, 0.0), Some(StageSection::Swing) => (1.0, (anim_time as f32).powf(0.25), 0.0), Some(StageSection::Recover) => (1.0, 1.0, anim_time as f32), _ => (0.0, 0.0, 0.0), }; - let pullback = 1.0 - movement3; - let movement1abs = movement1base * pullback; - let movement2abs = movement2base * pullback; + let pullback = 1.0 - move3; + let move1abs = move1base * pullback; + let move2abs = move2base * pullback; next.control_l.position = Vec3::new( - 1.0 - s_a.grip.0 * 2.0 + movement2abs * -4.0, - movement2abs * -8.0, + 1.0 - s_a.grip.0 * 2.0 + move2abs * -4.0, + move2abs * -8.0, 0.0, ); next.control_r.position = Vec3::new(-1.0 + s_a.grip.0 * 2.0, 6.0, -2.0); next.control.position = Vec3::new( -1.0, - 2.0 + movement1abs * 4.0 + s_a.grip.2, - 3.0 + movement1abs * 8.0 - s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0, + 2.0 + move1abs * 3.0 + s_a.grip.2, + 3.0 + move1abs * 7.0 - s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0, ); next.control_l.orientation = @@ -111,9 +111,44 @@ impl Animation for ShootAnimation { next.control_r.orientation = Quaternion::rotation_x(PI / 2.0 + s_a.grip.0 * 0.2) * Quaternion::rotation_y(0.5 + s_a.grip.0 * 0.2); - next.control.orientation = Quaternion::rotation_x(-0.3 + movement1abs * 0.7) + next.control.orientation = Quaternion::rotation_x(-0.3 + move1abs * 0.4) * Quaternion::rotation_y(0.5 * speednorm); }, + Some(ToolKind::Staff) => { + let (move1base, move2base, move3) = match stage_section { + Some(StageSection::Buildup) => ((anim_time as f32).powf(0.25), 0.0, 0.0), + Some(StageSection::Swing) => (1.0, (anim_time as f32).powf(0.25), 0.0), + Some(StageSection::Recover) => (1.0, 1.0, anim_time as f32), + _ => (0.0, 0.0, 0.0), + }; + let pullback = 1.0 - move3; + let move1abs = move1base * pullback; + let move2abs = move2base * pullback; + next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0); + next.control_r.position = Vec3::new( + 7.0 + s_a.grip.0 * 2.0 + move1abs * -8.0, + -4.0 + move1abs * 4.0, + 3.0, + ); + + next.control.position = Vec3::new( + -5.0, + -1.0 + s_a.grip.2, + -2.0 + -s_a.grip.2 / 2.5 + s_a.grip.0 * -2.0 + move1abs * 5.0, + ); + + next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + move1abs * 0.8) + * Quaternion::rotation_y(-0.3) + * Quaternion::rotation_z(-0.3); + next.control_r.orientation = + Quaternion::rotation_x(PI / 2.0 + s_a.grip.0 * 0.2 + move1abs * 0.8) + * Quaternion::rotation_y(-0.4 + s_a.grip.0 * 0.2 + move1abs * 0.8) + * Quaternion::rotation_z(-0.0); + + next.control.orientation = Quaternion::rotation_x(-0.3 + move1abs * -0.6) + * Quaternion::rotation_y(-0.2 * speednorm) + * Quaternion::rotation_z(0.5 + move1abs * 0.6); + }, _ => {}, } diff --git a/voxygen/anim/src/quadruped_low/mod.rs b/voxygen/anim/src/quadruped_low/mod.rs index 9e3bd5e17e..c353af153b 100644 --- a/voxygen/anim/src/quadruped_low/mod.rs +++ b/voxygen/anim/src/quadruped_low/mod.rs @@ -265,7 +265,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { tempo: match (body.species, body.body_type) { (Crocodile, _) => (0.7), (Alligator, _) => (0.7), - (Salamander, _) => (0.75), + (Salamander, _) => (0.85), (Monitor, _) => (1.4), (Tortoise, _) => (0.7), (Rocksnapper, _) => (0.7), diff --git a/voxygen/anim/src/quadruped_low/run.rs b/voxygen/anim/src/quadruped_low/run.rs index ab6c18e040..2942df30f7 100644 --- a/voxygen/anim/src/quadruped_low/run.rs +++ b/voxygen/anim/src/quadruped_low/run.rs @@ -26,7 +26,7 @@ impl Animation for RunAnimation { let speednorm = (speed / 15.0).powf(0.25); - let lab = 0.7 * s_a.tempo; + let lab = 0.8 * s_a.tempo; let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()).max(-0.7) * speednorm; let short = (((1.0) / (0.72 + 0.28 * ((acc_vel * lab as f32 + PI * 0.25).sin()).powi(2))) diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 4234d19977..e1e3622b73 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -493,7 +493,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Grolgar, _) => (-0.3), (Saber, _) => (-0.2), (Tuskram, _) => (0.3), - (Lion, _) => (0.2), + (Lion, _) => (-0.1), (Tarasque, _) => (-0.5), (Catoblepas, _) => (-0.5), (Bonerattler, _) => (-0.7), diff --git a/voxygen/anim/src/quadruped_medium/run.rs b/voxygen/anim/src/quadruped_medium/run.rs index cf4179e842..5bf4d59a5d 100644 --- a/voxygen/anim/src/quadruped_medium/run.rs +++ b/voxygen/anim/src/quadruped_medium/run.rs @@ -26,11 +26,13 @@ impl Animation for RunAnimation { *rate = 1.0; //let increasefreqtest = (((1.0/speed)*3.0).round()).min(5.0); let lab = 0.72; //0.72 - let amplitude = (speed / 24.0).max(0.125); - let amplitude2 = (speed * 1.4 / 24.0).sqrt().max(0.3); - let amplitude3 = (speed / 24.0).sqrt().max(0.175); + let amplitude = (speed / 24.0).powf(0.4); + let amplitude2 = (speed / 24.0).powf(0.4); + let amplitude3 = (speed / 24.0).powf(0.4); let speedmult = s_a.tempo; - let canceler = (speed / 24.0).sqrt(); + let canceler = (speed / 24.0).powf(0.4); + //println!("{} test", canceler); + let short = (((1.0) / (0.72 + 0.28 @@ -106,24 +108,24 @@ impl Animation for RunAnimation { next.ears.scale = Vec3::one() * 1.02; //Gallop - next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); + next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + shortalt * -0.5); next.head.orientation = Quaternion::rotation_x( - look.y * 0.3 / ((canceler).max(0.5)) + amplitude * short * -0.03 - 0.1, + look.y * 0.3 / ((canceler).max(0.5)) + amplitude * short * 0.05 - 0.1, ) * Quaternion::rotation_z( look.x * 0.3 / ((canceler).max(0.5)) + tilt * -1.2, ) * Quaternion::rotation_y(tilt * 0.8); - next.neck.position = Vec3::new(0.0, s_a.neck.0, s_a.neck.1); + next.neck.position = Vec3::new(0.0, s_a.neck.0, s_a.neck.1 + shortalt * -0.8); next.neck.orientation = Quaternion::rotation_z(tilt * -0.8) - * Quaternion::rotation_x(amplitude * short * -0.05) + * Quaternion::rotation_x(amplitude * short * 0.05) * Quaternion::rotation_y(tilt * 0.3); next.jaw.position = Vec3::new(0.0, s_a.jaw.0, s_a.jaw.1); next.jaw.orientation = Quaternion::rotation_x(0.0); next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1); - next.tail.orientation = - Quaternion::rotation_x(amplitude * shortalt * 0.3) * Quaternion::rotation_z(tilt * 1.5); + next.tail.orientation = Quaternion::rotation_x(amplitude * shortalt * -0.3) + * Quaternion::rotation_z(tilt * 1.5); next.torso_front.position = Vec3::new( 0.0, @@ -145,7 +147,7 @@ impl Animation for RunAnimation { s_a.torso_back.0, s_a.torso_back.1 + amplitude * shortalt * 0.2 - 0.2, ); - next.torso_back.orientation = Quaternion::rotation_x(amplitude * short * -0.1) + next.torso_back.orientation = Quaternion::rotation_x(amplitude * short * -0.07) * Quaternion::rotation_z(tilt * 1.8) * Quaternion::rotation_y(tilt * 0.6); diff --git a/voxygen/anim/src/quadruped_small/mod.rs b/voxygen/anim/src/quadruped_small/mod.rs index eb4bd967dc..2c5637bf2f 100644 --- a/voxygen/anim/src/quadruped_small/mod.rs +++ b/voxygen/anim/src/quadruped_small/mod.rs @@ -68,6 +68,7 @@ pub struct SkeletonAttr { minimize: f32, spring: f32, feed: f32, + lateral: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { type Error = (); @@ -94,6 +95,7 @@ impl Default for SkeletonAttr { minimize: 0.0, spring: 0.0, feed: 0.0, + lateral: 0.0, } } } @@ -239,7 +241,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Axolotl, _) => (-4.0, -1.0), (Gecko, _) => (-4.0, 0.0), (Turtle, _) => (-6.0, -2.0), - (Squirrel, _) => (-5.0, 0.0), + (Squirrel, _) => (-4.0, 0.0), (Fungome, _) => (-4.0, -2.0), (Porcupine, _) => (-6.0, 1.0), (Beaver, _) => (-6.5, -1.0), @@ -263,7 +265,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Axolotl, _) => (0.65), (Gecko, _) => (0.7), (Turtle, _) => (0.9), - (Squirrel, _) => (0.7), + (Squirrel, _) => (0.6), (Fungome, _) => (0.9), (Porcupine, _) => (0.8), (Hare, _) => (0.8), @@ -360,6 +362,13 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, _) => (1.2), _ => (1.0), }, + lateral: match (body.species, body.body_type) { + (Axolotl, _) => (1.0), + (Gecko, _) => (1.0), + (Turtle, _) => (1.0), + (Fungome, _) => (1.0), + _ => (0.0), + }, } } } diff --git a/voxygen/anim/src/quadruped_small/run.rs b/voxygen/anim/src/quadruped_small/run.rs index 7662f62d9d..e76a81e557 100644 --- a/voxygen/anim/src/quadruped_small/run.rs +++ b/voxygen/anim/src/quadruped_small/run.rs @@ -51,16 +51,16 @@ impl Animation for RunAnimation { 0.0 } * 1.3; let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()) * speednorm; - + let vertcancel = 1.0 - s_a.lateral; next.leg_fl.scale = Vec3::one() * 1.02; next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.scale = Vec3::one() * 1.02; next.leg_br.scale = Vec3::one() * 1.02; next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); - next.head.orientation = Quaternion::rotation_x(x_tilt * -0.5 + short * -0.2) + next.head.orientation = Quaternion::rotation_x(x_tilt * -0.5 + vertcancel * short * -0.2) * Quaternion::rotation_y(tilt * 0.8) - * Quaternion::rotation_z(tilt * -1.2); + * Quaternion::rotation_z(s_a.lateral * -short * 0.2 + tilt * -1.2); next.chest.position = Vec3::new( 0.0, @@ -68,9 +68,10 @@ impl Animation for RunAnimation { s_a.chest.1 + 2.0 * speednorm * s_a.spring + shortalt * 3.0 * s_a.spring, ) / 11.0 * s_a.scaler; - next.chest.orientation = Quaternion::rotation_x(short * 0.2 * s_a.spring + x_tilt) - * Quaternion::rotation_y(tilt * 0.8) - * Quaternion::rotation_z(tilt * -1.5); + next.chest.orientation = + Quaternion::rotation_x(vertcancel * short * 0.2 * s_a.spring + x_tilt) + * Quaternion::rotation_y(tilt * 0.8) + * Quaternion::rotation_z(s_a.lateral * short * 0.2 + tilt * -1.5); next.chest.scale = Vec3::one() / 11.0 * s_a.scaler; next.leg_fl.position = Vec3::new( @@ -114,9 +115,9 @@ impl Animation for RunAnimation { * Quaternion::rotation_z(tilt * -1.5); next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1); - next.tail.orientation = Quaternion::rotation_x(short * 0.2 + x_tilt) + next.tail.orientation = Quaternion::rotation_x(vertcancel * short * 0.2 + x_tilt) * Quaternion::rotation_y(tilt * 0.8) - * Quaternion::rotation_z(tilt * 1.5); + * Quaternion::rotation_z(s_a.lateral * -short * 0.2 + tilt * 1.5); next } } diff --git a/voxygen/src/scene/particle.rs b/voxygen/src/scene/particle.rs index 91093ba1be..1ca900113f 100644 --- a/voxygen/src/scene/particle.rs +++ b/voxygen/src/scene/particle.rs @@ -670,7 +670,7 @@ impl ParticleMgr { self.particles.push(Particle::new_directed( Duration::from_secs(2), time, - ParticleMode::FlameThrower, + ParticleMode::GroundShockwave, position_snapped, Vec3::new(0.0, 0.0, 10.0) + position_snapped, ));