From 17112926e7feafa7a3b8b743e994846ae62eeb8c Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 25 Feb 2021 00:12:31 +0100 Subject: [PATCH] Adds harvester npc --- .../npc_weapons/hammer/harvester_scythe.ron | 18 +++++ assets/common/npc_names.ron | 4 ++ .../voxel/biped_large_central_manifest.ron | 52 ++++++++++++++ .../voxel/biped_large_lateral_manifest.ron | 68 +++++++++++++++++++ .../voxygen/voxel/biped_weapon_manifest.ron | 6 +- .../voxel/npc/harvester/male/foot_l.vox | 3 + .../voxel/npc/harvester/male/foot_r.vox | 3 + .../voxel/npc/harvester/male/hand_l.vox | 3 + .../voxel/npc/harvester/male/hand_r.vox | 3 + .../voxygen/voxel/npc/harvester/male/head.vox | 3 + .../voxygen/voxel/npc/harvester/male/jaw.vox | 3 + .../voxel/npc/harvester/male/leg_l.vox | 3 + .../voxel/npc/harvester/male/leg_r.vox | 3 + .../voxel/npc/harvester/male/shoulder_l.vox | 3 + .../voxel/npc/harvester/male/shoulder_r.vox | 3 + .../voxel/npc/harvester/male/torso_lower.vox | 3 + .../voxel/npc/harvester/male/torso_upper.vox | 3 + .../voxel/weapon/axe/2haxe_harvester.vox | 3 + .../{minotaur_axe.vox => 2haxe_minotaur.vox} | 0 .../weapon/hammer/2hhammer_harvester.vox | 3 + common/src/comp/body.rs | 2 + common/src/comp/body/biped_large.rs | 6 +- common/src/comp/inventory/loadout_builder.rs | 5 ++ voxygen/anim/src/biped_large/mod.rs | 10 +++ 24 files changed, 211 insertions(+), 2 deletions(-) create mode 100644 assets/common/items/npc_weapons/hammer/harvester_scythe.ron create mode 100644 assets/voxygen/voxel/npc/harvester/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/head.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/torso_lower.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/torso_upper.vox create mode 100644 assets/voxygen/voxel/weapon/axe/2haxe_harvester.vox rename assets/voxygen/voxel/weapon/axe/{minotaur_axe.vox => 2haxe_minotaur.vox} (100%) create mode 100644 assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox diff --git a/assets/common/items/npc_weapons/hammer/harvester_scythe.ron b/assets/common/items/npc_weapons/hammer/harvester_scythe.ron new file mode 100644 index 0000000000..d048830d32 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/harvester_scythe.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Harvester Sythe", + description: "Placeholder", + kind: Tool( + ( + kind: HammerSimple, + hands: Two, + stats: ( + equip_time_millis: 500, + power: 1.00, + poise_strength: 1.00, + speed: 1.0 + ), + ) + ), + quality: Low, + tags: [], +) diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index d39ab78c06..d8cda5f0bc 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -853,6 +853,10 @@ yeti: ( keyword: "yeti", generic: "Yeti" + ), + harvester: ( + keyword: "harvester", + generic: "Harvester" ) ) ), diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index 53b125df98..fda5200e91 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -676,4 +676,56 @@ central: ("armor.empty"), ) ), + (Harvester, Male): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Harvester, Female): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + 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 04d18e2da5..947200d5c3 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -883,4 +883,72 @@ lateral: ("npc.yeti.male.foot_r"), ) ), + (Harvester, Male): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), + (Harvester, Female): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 0be85c1c27..05959366fc 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -755,13 +755,17 @@ color: None ), "common.items.npc_weapons.axe.minotaur_axe": ( - vox_spec: ("weapon.axe.minotaur_axe", (-2.5, -9.0, -6.0)), + vox_spec: ("weapon.axe.2haxe_minotaur", (-2.5, -9.0, -6.0)), color: None ), "common.items.npc_weapons.hammer.yeti_hammer": ( vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)), color: None ), + "common.items.npc_weapons.hammer.harvester_scythe": ( + vox_spec: ("weapon.hammer.2hhammer_harvester", (-1.5, -7.5, -6.0)), + color: None + ), //BIPEDSMALL "common.items.npc_weapons.biped_small.adlet.adlet_bow": ( vox_spec: ("weapon.biped_small.bow.adlet", (-1.5, -3.0, -5.0)), diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_l.vox b/assets/voxygen/voxel/npc/harvester/male/foot_l.vox new file mode 100644 index 0000000000..ceadedce98 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c62818da575ee679d8b412020acd0712db4ead0d536fbd859ed136ccb96c45 +size 1520 diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_r.vox b/assets/voxygen/voxel/npc/harvester/male/foot_r.vox new file mode 100644 index 0000000000..d8cb72195e --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29b5ebd1f01b0a81bdc7e6a9daff04733bb458484764f3ded6d24e69498c8674 +size 1520 diff --git a/assets/voxygen/voxel/npc/harvester/male/hand_l.vox b/assets/voxygen/voxel/npc/harvester/male/hand_l.vox new file mode 100644 index 0000000000..3c5347d95b --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92288a2ef56814da9561017357e842fac00a81bc7cacb701c44374544877e235 +size 1532 diff --git a/assets/voxygen/voxel/npc/harvester/male/hand_r.vox b/assets/voxygen/voxel/npc/harvester/male/hand_r.vox new file mode 100644 index 0000000000..f885947f16 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b70eadf22fb6ccdd0af18bd4651b20e2af256a8d0f8453d77d1619bdcc546ec1 +size 1528 diff --git a/assets/voxygen/voxel/npc/harvester/male/head.vox b/assets/voxygen/voxel/npc/harvester/male/head.vox new file mode 100644 index 0000000000..012839b8c0 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f823d38356d788cfbc48e55149240ebe2ee701113439165b0ecf36e8d621ed14 +size 4456 diff --git a/assets/voxygen/voxel/npc/harvester/male/jaw.vox b/assets/voxygen/voxel/npc/harvester/male/jaw.vox new file mode 100644 index 0000000000..8e07bb596b --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44df94e3b9d45a47cc6070f29f768a0ec61b091e31770063b69543650da1d76f +size 1432 diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_l.vox b/assets/voxygen/voxel/npc/harvester/male/leg_l.vox new file mode 100644 index 0000000000..29d6e42117 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d333126dc845dd4be5e998b796014f031cdf6a96fe9c7e40f6d019073668955 +size 1344 diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_r.vox b/assets/voxygen/voxel/npc/harvester/male/leg_r.vox new file mode 100644 index 0000000000..c70e33118b --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89302f1e2b333840284ab72803046896d25635cdb17fa931a8ae4e188b922626 +size 1344 diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox new file mode 100644 index 0000000000..9a652f07e9 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f28ee288aa9569e16ab618c510a09ac2f19cbd53258d29a1e670e59afc150d9 +size 1536 diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox new file mode 100644 index 0000000000..aea540cf10 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b18c8ae695a4de75f9b6bf0f5bb0e237406c93ff4f00032119ed433b54c30efc +size 1536 diff --git a/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox b/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox new file mode 100644 index 0000000000..9d55e81964 --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1101f6cba8a5f5dd723a4d9fc7e63e98e5c8926febd871a9264623804c413e31 +size 1796 diff --git a/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox b/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox new file mode 100644 index 0000000000..d5add8c65c --- /dev/null +++ b/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631efe29bed08671214a1e220e0a527ffae85480a0934ce587f2f518c6690f79 +size 3664 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_harvester.vox b/assets/voxygen/voxel/weapon/axe/2haxe_harvester.vox new file mode 100644 index 0000000000..c907ecb366 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_harvester.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b596bf9dd399b158bf996e12d75b15846be3adb2d07bb3467131d8dc7d2766b7 +size 1788 diff --git a/assets/voxygen/voxel/weapon/axe/minotaur_axe.vox b/assets/voxygen/voxel/weapon/axe/2haxe_minotaur.vox similarity index 100% rename from assets/voxygen/voxel/weapon/axe/minotaur_axe.vox rename to assets/voxygen/voxel/weapon/axe/2haxe_minotaur.vox diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox new file mode 100644 index 0000000000..c907ecb366 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b596bf9dd399b158bf996e12d75b15846be3adb2d07bb3467131d8dc7d2766b7 +size 1788 diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 9028eb536e..8aa0853c95 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -369,6 +369,7 @@ impl Body { biped_large::Species::Tidalwarrior => 2500, biped_large::Species::Yeti => 2000, biped_large::Species::Minotaur => 5000, + biped_large::Species::Harvester => 2000, _ => 1000, }, Body::BipedSmall(biped_small) => match biped_small.species { @@ -480,6 +481,7 @@ impl Body { biped_large::Species::Mindflayer => 250, biped_large::Species::Tidalwarrior => 90, biped_large::Species::Yeti => 80, + biped_large::Species::Harvester => 80, _ => 100, }, Body::BipedSmall(_) => 10, diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 81f8eedc3b..1208021085 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -47,6 +47,7 @@ make_case_elim!( Minotaur = 10, Tidalwarrior = 11, Yeti = 12, + Harvester = 13, } ); @@ -68,6 +69,7 @@ pub struct AllSpecies { pub minotaur: SpeciesMeta, pub tidalwarrior: SpeciesMeta, pub yeti: SpeciesMeta, + pub harvester: 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::Minotaur => &self.minotaur, Species::Tidalwarrior => &self.tidalwarrior, Species::Yeti => &self.yeti, + Species::Harvester => &self.harvester, } } } -pub const ALL_SPECIES: [Species; 13] = [ +pub const ALL_SPECIES: [Species; 14] = [ Species::Ogre, Species::Cyclops, Species::Wendigo, @@ -107,6 +110,7 @@ pub const ALL_SPECIES: [Species; 13] = [ Species::Minotaur, Species::Tidalwarrior, Species::Yeti, + Species::Harvester, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 18e3d1b250..7131840b60 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -261,6 +261,11 @@ impl LoadoutBuilder { "common.items.npc_weapons.hammer.yeti_hammer", )); }, + (biped_large::Species::Harvester, _) => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.hammer.harvester_scythe", + )); + }, }, Body::Object(object::Body::Crossbow) => { main_tool = Some(Item::new_from_asset_expect( diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 250479dfcd..47a46ba1a7 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -207,6 +207,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (6.0, 3.0), (Tidalwarrior, _) => (6.5, 5.0), (Yeti, _) => (8.5, 4.0), + (Harvester, _) => (6.0, 11.0), }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), @@ -222,6 +223,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (2.0, -4.0), (Tidalwarrior, _) => (0.0, 0.0), (Yeti, _) => (-5.0, -5.0), + (Harvester, _) => (-2.0, -7.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), @@ -238,6 +240,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (-1.0, 31.5), (Tidalwarrior, _) => (-1.0, 25.0), (Yeti, _) => (-1.0, 23.5), + (Harvester, _) => (-1.0, 18.0), }, lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), @@ -254,6 +257,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (1.5, -8.5), (Tidalwarrior, _) => (0.0, -9.5), (Yeti, _) => (0.0, -6.5), + (Harvester, _) => (-1.0, -4.5), }, tail: match (body.species, body.body_type) { (Werewolf, _) => (-5.5, -2.0), @@ -278,6 +282,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (10.0, 1.0, -1.0), (Tidalwarrior, _) => (14.0, -0.5, 2.0), (Yeti, _) => (10.5, 1.0, -2.5), + (Harvester, _) => (8.0, 1.0, -1.5), }, hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), @@ -294,6 +299,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (12.5, 0.5, -7.0), (Tidalwarrior, _) => (15.5, -0.5, -3.0), (Yeti, _) => (12.0, 1.5, -6.0), + (Harvester, _) => (11.5, 1.5, -5.5), }, leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), @@ -310,6 +316,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (5.0, 0.0, -10.0), (Tidalwarrior, _) => (2.5, 0.0, -5.5), (Yeti, _) => (4.0, 0.0, -5.5), + (Harvester, _) => (3.5, 1.0, -4.0), }, foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), @@ -326,6 +333,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (6.0, 4.5, -17.5), (Tidalwarrior, _) => (3.5, 0.5, -10.5), (Yeti, _) => (4.5, 0.5, -12.5), + (Harvester, _) => (4.5, 0.5, -9.5), }, scaler: match (body.species, body.body_type) { (Ogre, Male) => 1.4, @@ -342,6 +350,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => 2.0, (Tidalwarrior, _) => 2.0, (Yeti, _) => 1.5, + (Harvester, _) => 1.5, }, tempo: match (body.species, body.body_type) { (Ogre, Male) => 0.9, @@ -367,6 +376,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => 14.0, (Tidalwarrior, _) => 14.0, (Yeti, _) => 12.5, + (Harvester, _) => 7.5, }, shl: match (body.species, body.body_type) { (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),