From 7e2794c23491d810badc37d4402854a1337fa0c1 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 | Bin 0 -> 1344 bytes .../voxel/npc/adlet/male/bow/chest.vox | Bin 0 -> 1696 bytes .../voxel/npc/adlet/male/bow/hand_r.vox | Bin 0 -> 1420 bytes .../voxygen/voxel/npc/adlet/male/bow/head.vox | Bin 0 -> 3384 bytes .../voxel/npc/adlet/male/bow/pants.vox | Bin 0 -> 1888 bytes .../npc/adlet/male/{ => spear}/chest.vox | Bin .../npc/adlet/male/{ => spear}/hand_r.vox | Bin .../voxel/npc/adlet/male/spear/head.vox | Bin 0 -> 3336 bytes .../npc/adlet/male/{ => spear}/pants.vox | Bin 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, 246 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 0000000000000000000000000000000000000000..f6165e68481b8a9619dd895a09b3a872f916a323 GIT binary patch literal 1344 zcmah|YfPI}7=C)CwA{+2rIfW;U{GMIT!axAmP;LM!p4ZrXe$~+yESZHh#^~TNR(-^ zO)|z9;)M`Qnk8;yy5QVGGT;X?5_D$r!ylSuF2=+^{bP(VCXa8KE}KjAB=7f}=bZOE z@8vtkyZ1oBB!JH5jxGUIXn>v$pC=_jWGKW8Vp(DbdVL*#3MNKV;-gOqLYEdovTg~< zX+b0>UxUgJhf3*#O67-29e~Cdgh~^KHi25fj1W{waU^93PZmrUu8TvLF6Y&vmnwRx zGEWIXZxA#H*Dpbl8Gv3Jgu>{D(&&RS(+`b8G>jo=6PW3PRv7|}0VFAfr--&H1hvG~ zsl?PF=rp3G5lyXVCkZA=Y`x^0A^E0DzG(rdQsYpI9uzW%tSdrLLSia>P$>M;kih<3 zEzM9T8URp6G#cgIaj<=Qg@xI_^VjTbE-!Z`ws@)I^Z&FAw}}mbr|3D{MCVLB;n5HS zdSW({STQl96Eq(I%RMEm_!QI)fT<&3));8I0M>LG=OY z+3q~r!VVTi%UC<_W?k4y$7mkQVs;L$cF`OFi{1n)Cc(xh{Vx;l@rYx%&w=NXZ>yUFB)~NpRvQICmCYJ`b*aCfp6qN

2gFhSueZr4=!Lfc> z9|AqLH1_QPhuXkDR;SrrlgF^f!AN&0CxcatK3B)dL#-SSHk0eKv|G~o!Nkj4xcDx= z|LOt)deO7wQObpjp zAJku6UClFfGjvtXvf;#Aw2WA|`Z2iSm#Z6#(dl$@XlRJfwqGGeBFq`g;nnx<|HI)t zxjQx+&%8asriO9$pL&P6eP(`rxtLdd7LFGbu-2Bx4(WZMcKc@k6MhM;-kx<19wJ{G zo#ycL98X@n!S|PL)790(eQzA6@8mi5PsQkVyAy3CbYlFCs@ve5>-Y1!Blqk7_7hL= z=DnYJ>z6nqkqG~OlACe35Zio%|ExWXKW?mT`aZmtaQ-*XZ#lx;`WI+*%{{g!zW57s C0YHZU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..574c20fa6cdd52ccfc185d19ef497ef9fece26ae GIT binary patch literal 1696 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�a_p+iGMx_9qh{lbQq)a)PA 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 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, ));