diff --git a/assets/common/abilities/unique/quadlowbeam/healingbeam.ron b/assets/common/abilities/unique/quadlowbeam/healingbeam.ron new file mode 100644 index 0000000000..3c5822dbb2 --- /dev/null +++ b/assets/common/abilities/unique/quadlowbeam/healingbeam.ron @@ -0,0 +1,14 @@ +BasicBeam( + buildup_duration: 0.25, + recover_duration: 0.25, + beam_duration: 1.0, + base_hps: 60, + base_dps: 60, + tick_rate: 2.0, + range: 25.0, + max_angle: 1.0, + lifesteal_eff: 0.15, + energy_regen: 25, + energy_cost: 50, + energy_drain: 0, +) \ No newline at end of file diff --git a/assets/common/abilities/unique/tidalclaws/bubbles.ron b/assets/common/abilities/unique/tidalclaws/bubbles.ron new file mode 100644 index 0000000000..f8df4454c5 --- /dev/null +++ b/assets/common/abilities/unique/tidalclaws/bubbles.ron @@ -0,0 +1,14 @@ +BasicBeam( + buildup_duration: 0.4, + recover_duration: 0.25, + beam_duration: 0.5, + base_hps: 0, + base_dps: 150, + tick_rate: 3.0, + range: 15.0, + max_angle: 22.5, + lifesteal_eff: 0.0, + energy_regen: 0, + energy_cost: 0, + energy_drain: 0, +) \ No newline at end of file diff --git a/assets/common/abilities/weapon_ability_manifest.ron b/assets/common/abilities/weapon_ability_manifest.ron index 91b8b12126..18f045cb85 100644 --- a/assets/common/abilities/weapon_ability_manifest.ron +++ b/assets/common/abilities/weapon_ability_manifest.ron @@ -97,6 +97,11 @@ secondary: "common.abilities.unique.wendigomagic.singlestrike", skills: [], ), + Unique(TidalClaws): ( + primary: "common.abilities.staff.flamethrower", + secondary: "common.abilities.unique.wendigomagic.singlestrike", + skills: [], + ), Unique(QuadMedQuick): ( primary: "common.abilities.unique.quadmedquick.triplestrike", secondary: "common.abilities.unique.quadmedquick.dash", @@ -151,6 +156,13 @@ secondary: "common.abilities.unique.quadlowbasic.singlestrike", abilities: [], ), + Unique(QuadLowBeam): ( + primary: "common.abilities.unique.quadlowbeam.healingbeam", + secondary: "common.abilities.unique.quadlowbreathe.triplestrike", + skills: [ + "common.abilities.unique.quadlowbreathe.dash", + ], + ), Unique(QuadSmallBasic): ( primary: "common.abilities.unique.quadsmallbasic.singlestrike", secondary: "common.abilities.unique.quadsmallbasic.singlestrike", diff --git a/assets/common/items/npc_weapons/unique/quadlowbeam.ron b/assets/common/items/npc_weapons/unique/quadlowbeam.ron new file mode 100644 index 0000000000..cd8b3bfcc3 --- /dev/null +++ b/assets/common/items/npc_weapons/unique/quadlowbeam.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Quad Small Beam", + description: "testing123", + kind: Tool( + ( + kind: Unique(QuadLowBeam), + stats: ( + equip_time_millis: 10, + power: 1.00, + poise_strength: 1.00, + speed: 1.00, + ), + ) + ), + quality: Low, +) diff --git a/assets/common/items/npc_weapons/unique/tidal_claws.ron b/assets/common/items/npc_weapons/unique/tidal_claws.ron new file mode 100644 index 0000000000..3fff46aa26 --- /dev/null +++ b/assets/common/items/npc_weapons/unique/tidal_claws.ron @@ -0,0 +1,16 @@ +ItemDef( + name: "Tidal Claws", + description: "Snip snap", + kind: Tool( + ( + kind: Unique(TidalClaws), + stats: ( + equip_time_millis: 500, + power: 1.00, + poise_strength: 1.00, + speed: 1.0, + ), + ) + ), + quality: Low, +) diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index 86fc867bd4..d8ce61a1a7 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -845,6 +845,10 @@ minotaur: ( keyword: "minotaur", generic: "Minotaur" + ), + tidalwarrior: ( + keyword: "tidalwarrior", + generic: "Tidal Warrior" ) ) ), @@ -982,6 +986,10 @@ clownfish: ( keyword: "clownfish", generic: "Clownfish" + ), + piranha: ( + keyword: "piranha", + generic: "Piranha" ) ) ), @@ -1065,7 +1073,11 @@ basilisk: ( keyword: "basilisk", generic: "Basilisk" - ) + ), + deadwood: ( + keyword: "deadwood", + generic: "Deadwood" + ), ) ) ) diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index 884c1e6b83..665080faac 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -572,4 +572,56 @@ central: ("armor.empty"), ) ), + (Tidalwarrior, Male): ( + head: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.tidalwarrior.male.head"), + ), + torso_upper: ( + offset: (-9.0, -8.0, -10.5), + central: ("npc.tidalwarrior.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -8.0), + central: ("npc.tidalwarrior.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Tidalwarrior, Female): ( + head: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.tidalwarrior.male.head"), + ), + torso_upper: ( + offset: (-9.0, -8.0, -10.5), + central: ("npc.tidalwarrior.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -8.0), + central: ("npc.tidalwarrior.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index cf2759fb4c..0d02c6dd17 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -747,4 +747,72 @@ lateral: ("npc.minotaur.male.foot_r"), ) ), + (Tidalwarrior, Male): ( + shoulder_l: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_r"), + ) + ), + (Tidalwarrior, Female): ( + shoulder_l: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_large_weapon_manifest.ron b/assets/voxygen/voxel/biped_large_weapon_manifest.ron index 18763ebf10..57b298a8c1 100644 --- a/assets/voxygen/voxel/biped_large_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_large_weapon_manifest.ron @@ -43,6 +43,10 @@ vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), color: None ), + "common.items.npc_weapons.unique.tidal_claws": ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), "common.items.npc_weapons.spear.wooden_spear": ( vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)), color: None diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 7d2bb18bbf..8743711764 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -749,6 +749,10 @@ vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), color: None ), + "common.items.npc_weapons.unique.tidal_claws": ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), "common.items.npc_weapons.spear.wooden_spear": ( vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)), color: None diff --git a/assets/voxygen/voxel/fish_small_central_manifest.ron b/assets/voxygen/voxel/fish_small_central_manifest.ron index cd6a16b8f8..eee61b035c 100644 --- a/assets/voxygen/voxel/fish_small_central_manifest.ron +++ b/assets/voxygen/voxel/fish_small_central_manifest.ron @@ -19,4 +19,24 @@ central: ("npc.clownfish.male.tail"), ), ), + (Piranha, Male): ( + chest: ( + offset: (-1.5, -5.5, -5.5), + central: ("npc.piranha.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -3.5), + central: ("npc.piranha.male.tail"), + ), + ), + (Piranha, Female): ( + chest: ( + offset: (-1.5, -5.5, -5.5), + central: ("npc.piranha.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -3.5), + central: ("npc.piranha.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/fish_small_lateral_manifest.ron b/assets/voxygen/voxel/fish_small_lateral_manifest.ron index 40f3db28b4..05149d8471 100644 --- a/assets/voxygen/voxel/fish_small_lateral_manifest.ron +++ b/assets/voxygen/voxel/fish_small_lateral_manifest.ron @@ -2,21 +2,41 @@ (Clownfish, Male): ( fin_l: ( offset: (-0.5, -3.0, -4.0), - lateral: ("npc.clownfish.male.fin_r"), + lateral: ("npc.clownfish.male.fin"), ), fin_r: ( offset: (-0.5, -3.0, -4.0), - lateral: ("npc.clownfish.male.fin_r"), + lateral: ("npc.clownfish.male.fin"), ), ), (Clownfish, Female): ( fin_l: ( offset: (-0.5, -3.0, -4.0), - lateral: ("npc.clownfish.male.fin_r"), + lateral: ("npc.clownfish.male.fin"), ), fin_r: ( offset: (-0.5, -3.0, -4.0), - lateral: ("npc.clownfish.male.fin_r"), + lateral: ("npc.clownfish.male.fin"), + ), + ), + (Piranha, Male): ( + fin_l: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + fin_r: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + ), + (Piranha, Female): ( + fin_l: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + fin_r: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), ), ), }) diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron index 52ebbb4b71..9af474d6cc 100644 --- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron +++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron @@ -973,6 +973,10 @@ vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), color: None ), + "common.items.npc_weapons.unique.tidal_claws": ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), //BIPEDSMALL "common.items.npc_weapons.spear.wooden_spear": ( vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)), diff --git a/assets/voxygen/voxel/npc/clownfish/male/fin_r.vox b/assets/voxygen/voxel/npc/clownfish/male/fin.vox similarity index 100% rename from assets/voxygen/voxel/npc/clownfish/male/fin_r.vox rename to assets/voxygen/voxel/npc/clownfish/male/fin.vox diff --git a/assets/voxygen/voxel/npc/deadwood/male/chest.vox b/assets/voxygen/voxel/npc/deadwood/male/chest.vox new file mode 100644 index 0000000000..abea5823be --- /dev/null +++ b/assets/voxygen/voxel/npc/deadwood/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a712a0a561ce5f25e55c8409517882ac806bc6d7e1c0cf42015ebf6b0b0db74 +size 7596 diff --git a/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox b/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox new file mode 100644 index 0000000000..1c48fd8aaf --- /dev/null +++ b/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72ffc711689ed563783a9ae8a76c8e831bb3e1fad6a73862d68aa9079f683761 +size 1296 diff --git a/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox b/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox new file mode 100644 index 0000000000..426f7b1b57 --- /dev/null +++ b/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:323fda85b3973ed454299ee4b45795b17a55882a6399e551dd6fabf9c22f0390 +size 1296 diff --git a/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox b/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox new file mode 100644 index 0000000000..77240cb1c2 --- /dev/null +++ b/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b421ad35a8cb9ed14c526c68fd5c30a1757c2e9e2d4f73e78eb0256b139bccc2 +size 2024 diff --git a/assets/voxygen/voxel/npc/piranha/male/chest.vox b/assets/voxygen/voxel/npc/piranha/male/chest.vox new file mode 100644 index 0000000000..fa4a2ca4cf --- /dev/null +++ b/assets/voxygen/voxel/npc/piranha/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2ff496a396db0b9a079bbc9788efd65a5c89b29e0a75a0ea7a41ba577055e2e +size 1948 diff --git a/assets/voxygen/voxel/npc/piranha/male/fin.vox b/assets/voxygen/voxel/npc/piranha/male/fin.vox new file mode 100644 index 0000000000..c379d73970 --- /dev/null +++ b/assets/voxygen/voxel/npc/piranha/male/fin.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fd2c269ba5b0f243b4826158dba749b94985b739ff5f55d505c4b2e9d539938 +size 1136 diff --git a/assets/voxygen/voxel/npc/piranha/male/tail.vox b/assets/voxygen/voxel/npc/piranha/male/tail.vox new file mode 100644 index 0000000000..fc95c03b14 --- /dev/null +++ b/assets/voxygen/voxel/npc/piranha/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d36c1ec0aa899ffdfddfb33a85ceb49a90276fbe7679bbadc6e0cab434ff57d +size 1184 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox new file mode 100644 index 0000000000..b1c401c08b --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12f5b4f4bf4d9262add8a193127385d65b71778ba3c1f5591dbd1eaf0280a76c +size 1596 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox new file mode 100644 index 0000000000..d6095970a2 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df24149d1597ced0905f0a371d7b09d6434f79663d137e0f7c019ffea4a13d12 +size 1596 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox new file mode 100644 index 0000000000..4157ecec16 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9f53b0ec2b560e434d552cc6acc0d7fd9852db2fa1f1cbe6df329ec20f75a2a +size 2868 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox new file mode 100644 index 0000000000..1880bff9f7 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d319413b6d3f9d5bbad064450f5afb7edea68403192c5733a44cc5973dd0cc +size 2868 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox new file mode 100644 index 0000000000..58d1812e2e --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7c9cc6282e1074a576f4b47c02f526f0b11ebbdc8426361d47be683708d5a16 +size 3208 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox new file mode 100644 index 0000000000..40d0cbfdf5 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01a38ce3ab8eaf09461e0a0e838bc2115e7c2e067e563238927894c25d11aaa4 +size 1544 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox new file mode 100644 index 0000000000..203f1a5004 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f17a32a4eaa9110b6cd8f614ebed1f53da9287f7647f29a07ec1d41bb78cdb26 +size 1544 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox new file mode 100644 index 0000000000..9a93c6e193 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e1fa059a0dea7e03cd0ba8e3ad05c25bb692b1dc6524a611e71ebd82a9dc811 +size 3212 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox new file mode 100644 index 0000000000..2f52d43eb7 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5545474a88fab33102220dd07f77ff3131db873b5f7504120d22016a9c5152e +size 3212 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox new file mode 100644 index 0000000000..970a9ede47 --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b6229161e3ea93f6624294185ad21b53a65f228ae33ab74ad123380c9e59dc3 +size 2904 diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox new file mode 100644 index 0000000000..43fa9397fb --- /dev/null +++ b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc681671f33e18cc4aeffd989f461f57d30cb7aecaed64e0903ad986721f89e1 +size 11440 diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox index 7b68f3b280..be7779f086 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c47e6b396fed4b4875e11f10c00240c9e97b5e2765feca0edcaf7b6c423aa846 +oid sha256:277a7c1d4c6d0eef4899a4e322d55d00e0f29fa52e8484786d588c8a310d6db4 size 1412 diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox index ce7982ae96..74821521c3 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b7b14cb13d878d073b982801179873c65d19880975f86d1734ac8729a57ea309 -size 1500 +oid sha256:73b1640d83ec0c42b94f8e09d2957addcadb8a7fee9d19ed122260f3ed3d1e43 +size 1680 diff --git a/assets/voxygen/voxel/npc/tuskram/male/head.vox b/assets/voxygen/voxel/npc/tuskram/male/head.vox index abb51582e5..9e0b4093c3 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/head.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:698bfe87d0c9f6c07a486e0b6b5496f75b748cbd7e0c6f0039b6adb785b6f48c -size 4360 +oid sha256:cfa53f86f7ea69fe0d5b4c1ffb76953d5eed6a8f93750af40c97a305a902246d +size 7360 diff --git a/assets/voxygen/voxel/npc/tuskram/male/jaw.vox b/assets/voxygen/voxel/npc/tuskram/male/jaw.vox index f2d35078a7..e35dd869d0 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/jaw.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/jaw.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:647ef383113a4dc8aa0fddd99ddd0f9881068ac8e2701eb9cc1d190af07ca861 -size 1248 +oid sha256:7e7a9fcb22a4752b78740269ffb52f15b40db063f7eea749aabc1c157a64ad86 +size 1656 diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox index 1afa6ac8f9..66ce833749 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f03f866f9d6a001ac1969d6eb4883f49cb6d6e0e6a648964ca10c591ef82c91 -size 1460 +oid sha256:f1319447b4bd7985593853ac4098aa74b8597f3ae87317f22859488366b07b26 +size 1492 diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox index 3b7f0d803f..003087c9d2 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f4f35838fa43f23662a44c21eb2d6ef17a26e49ee76a18d187bf0b78c2d6a14 -size 1432 +oid sha256:2829046541f673e04afb6c06c1aad3bcb54c70665d353102e2423d7a8a562250 +size 2048 diff --git a/assets/voxygen/voxel/npc/tuskram/male/neck.vox b/assets/voxygen/voxel/npc/tuskram/male/neck.vox index 860561f6ab..98febc72c4 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/neck.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/neck.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e6786377fa59115afdfa3ceb5bd03842501500eb981a78afa010c59d578f4a4 -size 2072 +oid sha256:8ad70fd5ee3ee7be7ed8112dbfd55d3743a5d1cc4a4089da6e745b9b66204727 +size 2756 diff --git a/assets/voxygen/voxel/npc/tuskram/male/tail.vox b/assets/voxygen/voxel/npc/tuskram/male/tail.vox index bfa7174326..fd32b6d22e 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/tail.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d592fa6c1a379566811b417cb6962d5cca18367fb9e52d0ae93408c58cd56e52 -size 1904 +oid sha256:1a3bcd5389cbf08b8575246ca2c3b07fe83adf4be15633baae60394d75f00694 +size 1744 diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox index 9e70367339..9a031106d9 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0bce2157ba7b3792b80777dbd36a1b207d062153f79518a62865a138736a3ce -size 2956 +oid sha256:f23be927e2dc7425f2180350db89103da00103ba8726a79c92d806548de50834 +size 4104 diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox index ab7cd73ac8..eac0c834d4 100644 --- a/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox +++ b/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfff23a60496a1738f161bd94c2a4b0fd3f55e8da86e49c25bee8994bbe597d6 -size 5572 +oid sha256:7e20498bd84c5e33217e9ef2b4a7e3ff3033a7a3167f55e2abe700e57e9d3e47 +size 8796 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 8ece2226a5..1ba0cb245e 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -676,4 +676,56 @@ central: ("npc.basilisk.male.tail_front"), ), ), + (Deadwood, Male): ( + upper: ( + offset: (-3.5, -3.5, -4.0), + central: ("npc.deadwood.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-12.5, -11.0, -9.0), + central: ("npc.deadwood.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Deadwood, Female): ( + upper: ( + offset: (-3.5, -3.5, -4.0), + central: ("npc.deadwood.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-12.5, -11.0, -9.0), + central: ("npc.deadwood.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 46e13be409..8ea1f198f9 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -467,4 +467,40 @@ lateral: ("npc.basilisk.male.foot_br"), ), ), + (Deadwood, Male): ( + front_left: ( + offset: (-5.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr"), + ), + front_right: ( + offset: (0.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr"), + ), + back_left: ( + offset: (-5.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br"), + ), + back_right: ( + offset: (0.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br"), + ), + ), + (Deadwood, Female): ( + front_left: ( + offset: (-5.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr"), + ), + front_right: ( + offset: (0.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr"), + ), + back_left: ( + offset: (-5.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br"), + ), + back_right: ( + offset: (0.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 809e0e5947..911f175dec 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -121,61 +121,61 @@ ), (Tuskram, Male): ( head: ( - offset: (-10.0, -2.0, -6.5), + offset: (-15.0, -2.0, -10.0), central: ("npc.tuskram.male.head"), ), neck: ( - offset: (-4.0, -2.0, -3.5), + offset: (-4.0, -3.0, -6.0), central: ("npc.tuskram.male.neck"), ), jaw: ( - offset: (-2.0, 0.0, -1.5), + offset: (-5.0, 0.0, -8.0), central: ("npc.tuskram.male.jaw"), ), torso_front: ( - offset: (-6.0, -15.0, -6.5), + offset: (-7.0, -14.0, -8.0), central: ("npc.tuskram.male.torso_front"), ), torso_back: ( - offset: (-4.0, -10.0, -4.5), + offset: (-5.0, -10.0, -5.5), central: ("npc.tuskram.male.torso_back"), ), ears: ( - offset: (-0.5, -0.5, 0.0), + offset: (0.0, 0.0, 0.0), central: ("armor.empty"), ), tail: ( - offset: (-3.0, -7.0, -8.0), + offset: (-3.0, -6.0, -8.0), central: ("npc.tuskram.male.tail"), ), ), (Tuskram, Female): ( head: ( - offset: (-10.0, -2.0, -6.5), + offset: (-15.0, -2.0, -10.0), central: ("npc.tuskram.male.head"), ), neck: ( - offset: (-4.0, -2.0, -3.5), + offset: (-4.0, -3.0, -6.0), central: ("npc.tuskram.male.neck"), ), jaw: ( - offset: (-2.0, 0.0, -1.5), + offset: (-5.0, 0.0, -1.5), central: ("npc.tuskram.male.jaw"), ), torso_front: ( - offset: (-6.0, -15.0, -6.5), + offset: (-7.0, -14.0, -8.0), central: ("npc.tuskram.male.torso_front"), ), torso_back: ( - offset: (-4.0, -10.0, -4.5), + offset: (-5.0, -10.0, -5.5), central: ("npc.tuskram.male.torso_back"), ), ears: ( - offset: (-0.5, -0.5, -0.0), + offset: (0.0, 0.0, 0.0), central: ("armor.empty"), ), tail: ( - offset: (-3.0, -7.0, -8.0), + offset: (-3.0, -6.0, -8.0), central: ("npc.tuskram.male.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 267c99e886..888954e321 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -137,11 +137,11 @@ ), (Tuskram, Male): ( leg_fl: ( - offset: (-2.0, -2.5, -3.0), + offset: (-2.5, -4.5, -5.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_fr: ( - offset: (-2.0, -2.5, -3.0), + offset: (-2.5, -4.5, -5.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_bl: ( @@ -171,11 +171,11 @@ ), (Tuskram, Female): ( leg_fl: ( - offset: (-2.0, -2.5, -3.0), + offset: (-2.5, -4.5, -5.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_fr: ( - offset: (-2.0, -2.5, -3.0), + offset: (-2.5, -4.5, -5.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_bl: ( diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 3260c6c09c..ab301d925f 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -25,6 +25,7 @@ pub enum Tactic { TailSlap, QuadLowQuick, QuadLowBasic, + QuadLowBeam, QuadMedJump, QuadMedBasic, Lavadrake, diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 5cf3ccfc72..b813efab29 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -188,6 +188,7 @@ impl Body { quadruped_low::Species::Salamander => 2.4, quadruped_low::Species::Pangolin => 2.0, quadruped_low::Species::Lavadrake => 2.5, + quadruped_low::Species::Deadwood => 0.5, _ => 1.6, }, Body::Theropod(body) => match body.species { @@ -365,6 +366,7 @@ impl Body { biped_large::Species::Troll => 1500, biped_large::Species::Dullahan => 2000, biped_large::Species::Mindflayer => 8000, + biped_large::Species::Tidalwarrior => 2500, _ => 1000, }, Body::BipedSmall(_) => 10000, @@ -392,6 +394,7 @@ impl Body { quadruped_low::Species::Sandshark => 600, quadruped_low::Species::Hakulaq => 400, quadruped_low::Species::Lavadrake => 900, + quadruped_low::Species::Deadwood => 600, _ => 200, }, @@ -461,6 +464,7 @@ impl Body { biped_large::Species::Troll => 60, biped_large::Species::Dullahan => 120, biped_large::Species::Mindflayer => 250, + biped_large::Species::Tidalwarrior => 90, _ => 100, }, Body::BipedSmall(_) => 10, @@ -479,6 +483,7 @@ impl Body { quadruped_low::Species::Maneater => 30, quadruped_low::Species::Sandshark => 40, quadruped_low::Species::Hakulaq => 10, + quadruped_low::Species::Deadwood => 30, _ => 20, }, } diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 737ef7bd62..704c40cfae 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -45,6 +45,7 @@ make_case_elim!( Slysaurok = 8, Mindflayer = 9, Minotaur = 10, + Tidalwarrior = 11, } ); @@ -64,6 +65,7 @@ pub struct AllSpecies { pub saurok_sly: SpeciesMeta, pub mindflayer: SpeciesMeta, pub minotaur: SpeciesMeta, + pub tidalwarrior: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -83,11 +85,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Slysaurok => &self.saurok_sly, Species::Mindflayer => &self.mindflayer, Species::Minotaur => &self.minotaur, + Species::Tidalwarrior => &self.tidalwarrior, } } } -pub const ALL_SPECIES: [Species; 11] = [ +pub const ALL_SPECIES: [Species; 12] = [ Species::Ogre, Species::Cyclops, Species::Wendigo, @@ -99,6 +102,7 @@ pub const ALL_SPECIES: [Species; 11] = [ Species::Slysaurok, Species::Mindflayer, Species::Minotaur, + Species::Tidalwarrior, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/fish_small.rs b/common/src/comp/body/fish_small.rs index 90c7597436..952a3f5412 100644 --- a/common/src/comp/body/fish_small.rs +++ b/common/src/comp/body/fish_small.rs @@ -35,6 +35,7 @@ make_case_elim!( #[repr(u32)] pub enum Species { Clownfish = 0, + Piranha = 1, } ); @@ -44,6 +45,7 @@ make_case_elim!( #[derive(Clone, Debug, Deserialize)] pub struct AllSpecies { pub clownfish: SpeciesMeta, + pub piranha: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -53,11 +55,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies fn index(&self, &index: &'a Species) -> &Self::Output { match index { Species::Clownfish => &self.clownfish, + Species::Piranha => &self.piranha, } } } -pub const ALL_SPECIES: [Species; 1] = [Species::Clownfish]; +pub const ALL_SPECIES: [Species; 2] = [Species::Clownfish, Species::Piranha]; 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 1d2d62367a..f2c14091e2 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -47,6 +47,7 @@ make_case_elim!( Hakulaq = 10, Lavadrake = 11, Basilisk = 12, + Deadwood = 13, } ); @@ -68,6 +69,7 @@ pub struct AllSpecies { pub hakulaq: SpeciesMeta, pub lavadrake: SpeciesMeta, pub basilisk: SpeciesMeta, + pub deadwood: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -89,11 +91,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Hakulaq => &self.hakulaq, Species::Lavadrake => &self.lavadrake, Species::Basilisk => &self.basilisk, + Species::Deadwood => &self.deadwood, } } } -pub const ALL_SPECIES: [Species; 13] = [ +pub const ALL_SPECIES: [Species; 14] = [ Species::Crocodile, Species::Alligator, Species::Salamander, @@ -107,6 +110,7 @@ pub const ALL_SPECIES: [Species; 13] = [ Species::Hakulaq, Species::Lavadrake, Species::Basilisk, + Species::Deadwood, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index 865b11d3b4..91c7ce97da 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -375,6 +375,7 @@ pub enum UniqueKind { StoneGolemFist, BeastClaws, WendigoMagic, + TidalClaws, QuadMedQuick, QuadMedJump, QuadMedHoof, @@ -385,6 +386,7 @@ pub enum UniqueKind { QuadLowTail, QuadLowQuick, QuadLowBasic, + QuadLowBeam, QuadSmallBasic, TheropodBasic, TheropodBird, diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 668a9e1faf..8f37d268f5 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -154,6 +154,11 @@ impl LoadoutBuilder { "common.items.npc_weapons.unique.quadlowbreathe", )); }, + quadruped_low::Species::Deadwood => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.unique.quadlowbeam", + )); + }, _ => { main_tool = Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.quadlowbasic", @@ -241,6 +246,11 @@ impl LoadoutBuilder { "common.items.npc_weapons.hammer.cyclops_hammer", )); }, + (biped_large::Species::Tidalwarrior, _) => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.unique.tidal_claws", + )); + }, }, Body::Object(object::Body::Crossbow) => { main_tool = Some(Item::new_from_asset_expect( diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 32f5d3027d..d8635e3eb3 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -91,6 +91,7 @@ impl Body { quadruped_low::Species::Hakulaq => 140.0, quadruped_low::Species::Lavadrake => 100.0, quadruped_low::Species::Basilisk => 120.0, + quadruped_low::Species::Deadwood => 140.0, }, } } diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 28cccfd9e2..49e1a7151e 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -531,6 +531,7 @@ impl<'a> System<'a> for Sys { Tactic::QuadLowBasic }, Some(ToolKind::Unique(UniqueKind::QuadLowBreathe)) => Tactic::Lavadrake, + Some(ToolKind::Unique(UniqueKind::QuadLowBeam)) => Tactic::Lavadrake, Some(ToolKind::Unique(UniqueKind::TheropodBasic)) => Tactic::Theropod, Some(ToolKind::Unique(UniqueKind::TheropodBird)) => Tactic::Theropod, Some(ToolKind::Unique(UniqueKind::ObjectTurret)) => Tactic::Turret, @@ -1349,7 +1350,7 @@ impl<'a> System<'a> for Sys { do_idle = true; } }, - Tactic::Lavadrake => { + Tactic::Lavadrake | Tactic::QuadLowBeam => { if dist_sqrd < (2.5 * min_attack_dist * scale).powi(2) { inputs.move_dir = Vec2::zero(); inputs.secondary.set_state(true); diff --git a/voxygen/anim/src/biped_large/alpha.rs b/voxygen/anim/src/biped_large/alpha.rs index 058eeedb26..5075d295c0 100644 --- a/voxygen/anim/src/biped_large/alpha.rs +++ b/voxygen/anim/src/biped_large/alpha.rs @@ -154,6 +154,31 @@ impl Animation for AlphaAnimation { * Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6); next.head.orientation = Quaternion::rotation_x(move1 * 0.3); }, + Some(ToolKind::Unique(UniqueKind::TidalClaws)) => { + next.torso.position = Vec3::new(0.0, 0.0, move1 * -0.3); + next.upper_torso.orientation = Quaternion::rotation_x(move1 * -0.5 + move2 * -0.4); + next.lower_torso.orientation = Quaternion::rotation_x(move1 * 0.5 + move2 * 0.4); + + next.shoulder_l.orientation = Quaternion::rotation_x( + move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm, + ); + next.shoulder_r.orientation = Quaternion::rotation_x( + move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm, + ); + + next.control_l.position = + Vec3::new(-14.0 + move2 * 9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0); + next.control_r.position = + Vec3::new(14.0 + move2 * -9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0); + + next.control_l.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5) + * Quaternion::rotation_y(-0.15) + * Quaternion::rotation_z(move1 * 0.5 + move2 * -0.6); + next.control_r.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5) + * Quaternion::rotation_y(0.15) + * Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6); + next.head.orientation = Quaternion::rotation_x(move1 * 0.3); + }, _ => {}, } next diff --git a/voxygen/anim/src/biped_large/beta.rs b/voxygen/anim/src/biped_large/beta.rs index 84e6b3be81..aa5664d150 100644 --- a/voxygen/anim/src/biped_large/beta.rs +++ b/voxygen/anim/src/biped_large/beta.rs @@ -153,6 +153,31 @@ impl Animation for BetaAnimation { * Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6); next.head.orientation = Quaternion::rotation_x(move1 * 0.3); }, + Some(ToolKind::Unique(UniqueKind::TidalClaws)) => { + next.torso.position = Vec3::new(0.0, 0.0, move1 * -0.3); + next.upper_torso.orientation = Quaternion::rotation_x(move1 * -0.5 + move2 * -0.4); + next.lower_torso.orientation = Quaternion::rotation_x(move1 * 0.5 + move2 * 0.4); + + next.shoulder_l.orientation = Quaternion::rotation_x( + move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm, + ); + next.shoulder_r.orientation = Quaternion::rotation_x( + move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm, + ); + + next.control_l.position = + Vec3::new(-14.0 + move2 * 9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0); + next.control_r.position = + Vec3::new(14.0 + move2 * -9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0); + + next.control_l.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5) + * Quaternion::rotation_y(-0.15) + * Quaternion::rotation_z(move1 * 0.5 + move2 * -0.6); + next.control_r.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5) + * Quaternion::rotation_y(0.15) + * Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6); + next.head.orientation = Quaternion::rotation_x(move1 * 0.3); + }, _ => {}, } next diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 5e4fdfde83..b6d4093dde 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -205,6 +205,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (6.0, 3.5), (Mindflayer, _) => (5.0, 5.5), (Minotaur, _) => (6.0, 3.0), + (Tidalwarrior, _) => (6.5, 5.0), }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), @@ -218,6 +219,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (1.0, -2.5), (Mindflayer, _) => (0.0, 0.0), (Minotaur, _) => (2.0, -4.0), + (Tidalwarrior, _) => (0.0, 0.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), @@ -232,6 +234,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (3.0, 24.0), (Mindflayer, _) => (0.0, 30.5), (Minotaur, _) => (-1.0, 31.5), + (Tidalwarrior, _) => (-1.0, 25.0), }, lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), @@ -246,6 +249,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (0.0, -6.0), (Mindflayer, _) => (3.5, -19.5), (Minotaur, _) => (1.5, -8.5), + (Tidalwarrior, _) => (0.0, -9.5), }, tail: match (body.species, body.body_type) { (Werewolf, _) => (-5.5, -2.0), @@ -268,6 +272,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (7.5, 1.0, 1.5), (Mindflayer, _) => (8.0, 0.5, -1.0), (Minotaur, _) => (10.0, 1.0, -1.0), + (Tidalwarrior, _) => (14.0, -0.5, 2.0), }, hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), @@ -282,6 +287,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (8.0, 1.5, -5.5), (Mindflayer, _) => (9.0, 0.5, -4.5), (Minotaur, _) => (12.5, 0.5, -7.0), + (Tidalwarrior, _) => (15.5, -0.5, -3.0), }, leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), @@ -296,6 +302,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (3.0, 0.5, -4.0), (Mindflayer, _) => (6.0, -2.0, 6.5), (Minotaur, _) => (5.0, 0.0, -10.0), + (Tidalwarrior, _) => (2.5, 0.0, -5.5), }, foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), @@ -310,6 +317,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => (3.5, 3.5, -10.0), (Mindflayer, _) => (4.5, 1.5, -7.0), (Minotaur, _) => (6.0, 4.5, -17.5), + (Tidalwarrior, _) => (3.5, 0.5, -10.5), }, scaler: match (body.species, body.body_type) { (Ogre, Male) => 1.4, @@ -324,20 +332,16 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => 1.2, (Mindflayer, _) => 1.5, (Minotaur, _) => 2.0, + (Tidalwarrior, _) => 2.0, }, tempo: match (body.species, body.body_type) { (Ogre, Male) => 0.9, (Ogre, Female) => 0.9, (Cyclops, _) => 0.8, - (Wendigo, _) => 1.0, (Troll, _) => 0.9, (Dullahan, _) => 0.8, - (Werewolf, _) => 1.0, - (Occultsaurok, _) => 1.0, - (Mightysaurok, _) => 1.0, - (Slysaurok, _) => 1.0, - (Mindflayer, _) => 1.0, (Minotaur, _) => 0.8, + _ => 1.0, }, grip: match (body.species, body.body_type) { (Ogre, Male) => 13.0, @@ -352,6 +356,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Slysaurok, _) => 10.0, (Mindflayer, _) => 12.0, (Minotaur, _) => 14.0, + (Tidalwarrior, _) => 14.0, }, shl: match (body.species, body.body_type) { (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0), diff --git a/voxygen/anim/src/biped_large/wield.rs b/voxygen/anim/src/biped_large/wield.rs index ab186afc98..8a4ddc0f3f 100644 --- a/voxygen/anim/src/biped_large/wield.rs +++ b/voxygen/anim/src/biped_large/wield.rs @@ -240,6 +240,15 @@ impl Animation for WieldAnimation { next.control_r.orientation = Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(0.15); }, + Some(ToolKind::Unique(UniqueKind::TidalClaws)) => { + next.control_l.position = Vec3::new(-14.0, 12.0, -12.0); + next.control_r.position = Vec3::new(14.0, 12.0, -12.0); + + next.control_l.orientation = + Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(-0.15); + next.control_r.orientation = + Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(0.15); + }, Some(ToolKind::Unique(UniqueKind::BeastClaws)) => { next.shoulder_l.position = Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); diff --git a/voxygen/anim/src/fish_small/mod.rs b/voxygen/anim/src/fish_small/mod.rs index ccd2d5be42..0a644da947 100644 --- a/voxygen/anim/src/fish_small/mod.rs +++ b/voxygen/anim/src/fish_small/mod.rs @@ -80,18 +80,23 @@ impl<'a> From<&'a Body> for SkeletonAttr { Self { chest: match (body.species, body.body_type) { (Clownfish, _) => (0.0, 5.0), + (Piranha, _) => (0.0, 5.0), }, tail: match (body.species, body.body_type) { (Clownfish, _) => (-7.5, -0.5), + (Piranha, _) => (-5.5, -0.5), }, fin: match (body.species, body.body_type) { (Clownfish, _) => (2.0, 0.5, 1.0), + (Piranha, _) => (2.0, 0.5, -0.5), }, tempo: match (body.species, body.body_type) { (Clownfish, _) => 5.0, + (Piranha, _) => 5.0, }, amplitude: match (body.species, body.body_type) { (Clownfish, _) => 4.0, + (Piranha, _) => 4.0, }, } } diff --git a/voxygen/anim/src/quadruped_low/mod.rs b/voxygen/anim/src/quadruped_low/mod.rs index 0a9adfa1b9..1476a30a1b 100644 --- a/voxygen/anim/src/quadruped_low/mod.rs +++ b/voxygen/anim/src/quadruped_low/mod.rs @@ -132,6 +132,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (8.0, 10.0), (Lavadrake, _) => (7.0, 8.0), (Basilisk, _) => (11.0, 13.5), + (Deadwood, _) => (2.0, -3.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -148,6 +149,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (10.5, 1.0), (Lavadrake, _) => (11.5, -6.0), (Basilisk, _) => (8.5, -6.5), + (Deadwood, _) => (0.0, 0.0), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (2.5, -3.0), @@ -164,6 +166,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (-6.5, -4.0), (Lavadrake, _) => (3.0, -5.0), (Basilisk, _) => (1.5, 1.0), + (Deadwood, _) => (-1.0, 4.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -180,6 +183,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (0.0, 13.5), (Lavadrake, _) => (0.0, 16.5), (Basilisk, _) => (0.0, 16.5), + (Deadwood, _) => (0.0, 12.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -196,6 +200,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (-9.0, -2.0), (Lavadrake, _) => (-12.0, -2.0), (Basilisk, _) => (-10.0, -3.0), + (Deadwood, _) => (-15.0, 4.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -212,6 +217,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (-6.0, -5.5), (Lavadrake, _) => (-7.0, -4.5), (Basilisk, _) => (-2.5, -4.5), + (Deadwood, _) => (-1.0, 4.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (3.5, 6.0, -1.0), @@ -228,6 +234,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (4.5, 2.0, -4.5), (Lavadrake, _) => (4.5, 4.0, -6.5), (Basilisk, _) => (6.5, 4.0, -7.5), + (Deadwood, _) => (3.5, 4.0, -5.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (3.5, -6.0, -1.0), @@ -244,6 +251,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hakulaq, _) => (3.5, -8.0, -4.5), (Lavadrake, _) => (3.5, -8.0, -6.5), (Basilisk, _) => (4.5, -13.0, -7.5), + (Deadwood, _) => (3.5, -6.0, -5.0), }, lean: match (body.species, body.body_type) { (Pangolin, _) => (0.4, 0.0), diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 00cf3170f7..c3e217f119 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -144,7 +144,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { head: match (body.species, body.body_type) { (Grolgar, _) => (0.0, -1.0), (Saber, _) => (5.0, -3.0), - (Tuskram, _) => (2.0, 1.0), + (Tuskram, _) => (0.0, 0.0), (Lion, _) => (4.5, 2.0), (Tarasque, _) => (-4.0, 3.5), (Tiger, _) => (2.0, 1.0), @@ -205,7 +205,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 2.0), (Saber, _) => (2.5, -2.0), - (Tuskram, _) => (7.5, -3.5), + (Tuskram, _) => (4.0, -5.0), (Lion, _) => (3.5, -4.0), (Tarasque, _) => (9.0, -9.5), (Tiger, _) => (3.0, -3.5), @@ -235,7 +235,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), (Saber, _) => (-11.0, 0.0), - (Tuskram, _) => (-9.0, 2.0), + (Tuskram, _) => (-8.0, 2.0), (Lion, _) => (-11.0, 1.0), (Tarasque, _) => (-11.0, 0.0), (Tiger, _) => (-13.5, 3.0), @@ -265,7 +265,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), (Saber, _) => (14.0, 13.0), - (Tuskram, _) => (10.0, 14.5), + (Tuskram, _) => (10.0, 16.0), (Lion, _) => (10.0, 12.5), (Tarasque, _) => (11.5, 17.5), (Tiger, _) => (10.0, 13.0), @@ -295,7 +295,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), (Saber, _) => (-13.5, 0.0), - (Tuskram, _) => (-12.5, -2.0), + (Tuskram, _) => (-12.0, -2.5), (Lion, _) => (-12.0, -0.5), (Tarasque, _) => (-14.0, -1.0), (Tiger, _) => (-13.0, -0.5), @@ -325,7 +325,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), (Saber, _) => (3.0, 5.5), - (Tuskram, _) => (5.5, 12.0), + (Tuskram, _) => (0.0, 0.0), (Lion, _) => (2.0, 3.5), (Tarasque, _) => (12.0, -3.0), (Tiger, _) => (2.5, 4.0), @@ -355,7 +355,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), (Saber, _) => (7.0, -4.0, -2.5), - (Tuskram, _) => (6.0, -6.5, -4.0), + (Tuskram, _) => (8.5, -4.5, -2.0), (Lion, _) => (6.5, -6.5, -1.5), (Tarasque, _) => (7.0, -8.0, -6.0), (Tiger, _) => (6.0, -6.0, -1.5), @@ -385,7 +385,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -4.0), (Saber, _) => (6.0, -7.0, -3.5), - (Tuskram, _) => (5.0, -4.5, -2.5), + (Tuskram, _) => (6.0, -5.5, -2.5), (Lion, _) => (6.0, -5.0, -1.5), (Tarasque, _) => (6.0, -6.5, -6.5), (Tiger, _) => (6.0, -7.0, -1.0), @@ -415,7 +415,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -4.0), (Saber, _) => (1.0, -3.5, -2.5), - (Tuskram, _) => (0.5, 0.5, -3.0), + (Tuskram, _) => (-1.0, -1.5, -6.0), (Lion, _) => (0.5, 0.5, -3.5), (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (0.5, 0.0, -4.5), @@ -445,7 +445,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.5, -1.5, -3.0), (Saber, _) => (1.0, -1.0, -1.0), - (Tuskram, _) => (0.5, -1.0, -2.5), + (Tuskram, _) => (0.5, -1.0, -3.0), (Lion, _) => (0.5, -1.0, -3.0), (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (0.5, -1.0, -4.0), diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index 2a81604fed..dc083afe85 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -160,7 +160,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..5) { + .with_body(match rng.gen_range(0..4) { 0 => { bird_medium::Body::random_with(rng, &bird_medium::Species::Eagle).into() }, @@ -202,7 +202,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..3) { + .with_body(match rng.gen_range(0..5) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Tarasque, @@ -216,6 +216,10 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( 2 => { theropod::Body::random_with(rng, &theropod::Species::Woodraptor).into() }, + 3 => { + quadruped_low::Body::random_with(rng, &quadruped_low::Species::Deadwood) + .into() + }, _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Saber, @@ -665,7 +669,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..4) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Bonerattler, @@ -806,9 +810,12 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..3) { 0 => fish_medium::Body::random_with(rng, &fish_medium::Species::Marlin) .into(), + 1 => { + fish_small::Body::random_with(rng, &fish_small::Species::Piranha).into() + }, _ => fish_small::Body::random_with(rng, &fish_small::Species::Clownfish) .into(), })