Adds yeti npc

This commit is contained in:
Snowram 2021-02-20 19:32:12 +01:00 committed by jshipsey
parent 30af3a4493
commit 858fbe1a6c
25 changed files with 220 additions and 5 deletions

View File

@ -0,0 +1,16 @@
ItemDef(
name: "Yeti Hammer",
description: "Placeholder",
kind: Tool(
(
kind: HammerSimple,
stats: (
equip_time_millis: 500,
power: 1.00,
poise_strength: 1.00,
speed: 1.0
),
)
),
quality: Low,
)

View File

@ -849,6 +849,10 @@
tidalwarrior: ( tidalwarrior: (
keyword: "tidalwarrior", keyword: "tidalwarrior",
generic: "Tidal Warrior" generic: "Tidal Warrior"
),
yeti: (
keyword: "yeti",
generic: "Yeti"
) )
) )
), ),

View File

@ -624,4 +624,56 @@
central: ("armor.empty"), central: ("armor.empty"),
) )
), ),
(Yeti, Male): (
head: (
offset: (-5.5, -4.0, -4.0),
central: ("npc.yeti.male.head"),
),
torso_upper: (
offset: (-8.5, -7.5, -8.5),
central: ("npc.yeti.male.torso_upper"),
),
torso_lower: (
offset: (-6.5, -5.0, -6.0),
central: ("npc.yeti.male.torso_lower"),
),
jaw: (
offset: (-6.5, 0.0, -4.5),
central: ("npc.yeti.male.jaw"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
second: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
(Yeti, Female): (
head: (
offset: (-5.5, -4.0, -4.0),
central: ("npc.yeti.male.head"),
),
torso_upper: (
offset: (-8.5, -7.5, -8.5),
central: ("npc.yeti.male.torso_upper"),
),
torso_lower: (
offset: (-6.5, -5.0, -6.0),
central: ("npc.yeti.male.torso_lower"),
),
jaw: (
offset: (-6.5, 0.0, -4.5),
central: ("npc.yeti.male.jaw"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
second: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
}) })

View File

@ -815,4 +815,72 @@
lateral: ("npc.tidalwarrior.male.foot_r"), lateral: ("npc.tidalwarrior.male.foot_r"),
) )
), ),
(Yeti, Male): (
shoulder_l: (
offset: (-3.5, -3.5, -4.5),
lateral: ("npc.yeti.male.shoulder_l"),
),
shoulder_r: (
offset: (-3.5, -3.5, -4.5),
lateral: ("npc.yeti.male.shoulder_r"),
),
hand_l: (
offset: (-4.0, -4.0, -12.0),
lateral: ("npc.yeti.male.hand_l"),
),
hand_r: (
offset: (-4.0, -4.0, -12.0),
lateral: ("npc.yeti.male.hand_r"),
),
leg_l: (
offset: (-2.5, -4.0, -3.5),
lateral: ("npc.yeti.male.leg_l"),
),
leg_r: (
offset: (-2.5, -4.0, -3.5),
lateral: ("npc.yeti.male.leg_r"),
),
foot_l: (
offset: (-3.0, -4.5, -4.0),
lateral: ("npc.yeti.male.foot_l"),
),
foot_r: (
offset: (-3.0, -4.5, -4.0),
lateral: ("npc.yeti.male.foot_r"),
)
),
(Yeti, Female): (
shoulder_l: (
offset: (-3.5, -3.5, -4.5),
lateral: ("npc.yeti.male.shoulder_l"),
),
shoulder_r: (
offset: (-3.5, -3.5, -4.5),
lateral: ("npc.yeti.male.shoulder_r"),
),
hand_l: (
offset: (-4.0, -4.0, -12.0),
lateral: ("npc.yeti.male.hand_l"),
),
hand_r: (
offset: (-4.0, -4.0, -12.0),
lateral: ("npc.yeti.male.hand_r"),
),
leg_l: (
offset: (-2.5, -4.0, -3.5),
lateral: ("npc.yeti.male.leg_l"),
),
leg_r: (
offset: (-2.5, -4.0, -3.5),
lateral: ("npc.yeti.male.leg_r"),
),
foot_l: (
offset: (-3.0, -4.5, -4.0),
lateral: ("npc.yeti.male.foot_l"),
),
foot_r: (
offset: (-3.0, -4.5, -4.0),
lateral: ("npc.yeti.male.foot_r"),
)
),
}) })

View File

@ -63,4 +63,8 @@
vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)), vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)),
color: None color: None
), ),
"common.items.npc_weapons.hammer.yeti_hammer": (
vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)),
color: None
),
}) })

View File

@ -769,4 +769,8 @@
vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)), vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)),
color: None color: None
), ),
"common.items.npc_weapons.hammer.yeti_hammer": (
vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)),
color: None
),
}) })

View File

@ -965,6 +965,10 @@
vox_spec: ("weapon.staff.firestaff_mindflayer", (-5.5, -3.5, -8.0)), vox_spec: ("weapon.staff.firestaff_mindflayer", (-5.5, -3.5, -8.0)),
color: None 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.unique.beast_claws": ( "common.items.npc_weapons.unique.beast_claws": (
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
color: None color: None

BIN
assets/voxygen/voxel/npc/yeti/male/foot_l.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/foot_r.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/hand_l.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/hand_r.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/head.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/jaw.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/leg_l.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/leg_r.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/shoulder_l.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/shoulder_r.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/torso_lower.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/npc/yeti/male/torso_upper.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/weapon/hammer/2hhammer_yeti.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -367,6 +367,7 @@ impl Body {
biped_large::Species::Dullahan => 2000, biped_large::Species::Dullahan => 2000,
biped_large::Species::Mindflayer => 8000, biped_large::Species::Mindflayer => 8000,
biped_large::Species::Tidalwarrior => 2500, biped_large::Species::Tidalwarrior => 2500,
biped_large::Species::Yeti => 2000,
_ => 1000, _ => 1000,
}, },
Body::BipedSmall(_) => 10000, Body::BipedSmall(_) => 10000,
@ -465,6 +466,7 @@ impl Body {
biped_large::Species::Dullahan => 120, biped_large::Species::Dullahan => 120,
biped_large::Species::Mindflayer => 250, biped_large::Species::Mindflayer => 250,
biped_large::Species::Tidalwarrior => 90, biped_large::Species::Tidalwarrior => 90,
biped_large::Species::Yeti => 80,
_ => 100, _ => 100,
}, },
Body::BipedSmall(_) => 10, Body::BipedSmall(_) => 10,

View File

@ -46,6 +46,7 @@ make_case_elim!(
Mindflayer = 9, Mindflayer = 9,
Minotaur = 10, Minotaur = 10,
Tidalwarrior = 11, Tidalwarrior = 11,
Yeti = 12,
} }
); );
@ -66,6 +67,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub mindflayer: SpeciesMeta, pub mindflayer: SpeciesMeta,
pub minotaur: SpeciesMeta, pub minotaur: SpeciesMeta,
pub tidalwarrior: SpeciesMeta, pub tidalwarrior: SpeciesMeta,
pub yeti: SpeciesMeta,
} }
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -86,11 +88,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Mindflayer => &self.mindflayer, Species::Mindflayer => &self.mindflayer,
Species::Minotaur => &self.minotaur, Species::Minotaur => &self.minotaur,
Species::Tidalwarrior => &self.tidalwarrior, Species::Tidalwarrior => &self.tidalwarrior,
Species::Yeti => &self.yeti,
} }
} }
} }
pub const ALL_SPECIES: [Species; 12] = [ pub const ALL_SPECIES: [Species; 13] = [
Species::Ogre, Species::Ogre,
Species::Cyclops, Species::Cyclops,
Species::Wendigo, Species::Wendigo,
@ -103,6 +106,7 @@ pub const ALL_SPECIES: [Species; 12] = [
Species::Mindflayer, Species::Mindflayer,
Species::Minotaur, Species::Minotaur,
Species::Tidalwarrior, Species::Tidalwarrior,
Species::Yeti,
]; ];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -251,6 +251,11 @@ impl LoadoutBuilder {
"common.items.npc_weapons.unique.tidal_claws", "common.items.npc_weapons.unique.tidal_claws",
)); ));
}, },
(biped_large::Species::Yeti, _) => {
main_tool = Some(Item::new_from_asset_expect(
"common.items.npc_weapons.hammer.yeti_hammer",
));
},
}, },
Body::Object(object::Body::Crossbow) => { Body::Object(object::Body::Crossbow) => {
main_tool = Some(Item::new_from_asset_expect( main_tool = Some(Item::new_from_asset_expect(

View File

@ -60,19 +60,19 @@ impl Animation for JumpAnimation {
next.second.scale = Vec3::one() * 0.0; next.second.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Bow) => { Some(ToolKind::BowSimple) => {
next.main.position = Vec3::new(-2.0, -5.0, -6.0); next.main.position = Vec3::new(-2.0, -5.0, -6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => { Some(ToolKind::StaffSimple) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(-6.0, -5.0, -12.0); next.main.position = Vec3::new(-6.0, -5.0, -12.0);
next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Sword) => { Some(ToolKind::SwordSimple) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Hammer) => { Some(ToolKind::HammerSimple) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },

View File

@ -206,6 +206,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (5.0, 5.5), (Mindflayer, _) => (5.0, 5.5),
(Minotaur, _) => (6.0, 3.0), (Minotaur, _) => (6.0, 3.0),
(Tidalwarrior, _) => (6.5, 5.0), (Tidalwarrior, _) => (6.5, 5.0),
(Yeti, _) => (8.5, 4.0),
}, },
jaw: match (body.species, body.body_type) { jaw: match (body.species, body.body_type) {
(Ogre, _) => (0.0, 0.0), (Ogre, _) => (0.0, 0.0),
@ -220,6 +221,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (0.0, 0.0), (Mindflayer, _) => (0.0, 0.0),
(Minotaur, _) => (2.0, -4.0), (Minotaur, _) => (2.0, -4.0),
(Tidalwarrior, _) => (0.0, 0.0), (Tidalwarrior, _) => (0.0, 0.0),
(Yeti, _) => (-5.0, -5.0),
}, },
upper_torso: match (body.species, body.body_type) { upper_torso: match (body.species, body.body_type) {
(Ogre, Male) => (0.0, 27.5), (Ogre, Male) => (0.0, 27.5),
@ -235,6 +237,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (0.0, 30.5), (Mindflayer, _) => (0.0, 30.5),
(Minotaur, _) => (-1.0, 31.5), (Minotaur, _) => (-1.0, 31.5),
(Tidalwarrior, _) => (-1.0, 25.0), (Tidalwarrior, _) => (-1.0, 25.0),
(Yeti, _) => (-1.0, 23.5),
}, },
lower_torso: match (body.species, body.body_type) { lower_torso: match (body.species, body.body_type) {
(Ogre, Male) => (1.0, -7.0), (Ogre, Male) => (1.0, -7.0),
@ -250,6 +253,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (3.5, -19.5), (Mindflayer, _) => (3.5, -19.5),
(Minotaur, _) => (1.5, -8.5), (Minotaur, _) => (1.5, -8.5),
(Tidalwarrior, _) => (0.0, -9.5), (Tidalwarrior, _) => (0.0, -9.5),
(Yeti, _) => (0.0, -6.5),
}, },
tail: match (body.species, body.body_type) { tail: match (body.species, body.body_type) {
(Werewolf, _) => (-5.5, -2.0), (Werewolf, _) => (-5.5, -2.0),
@ -273,6 +277,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (8.0, 0.5, -1.0), (Mindflayer, _) => (8.0, 0.5, -1.0),
(Minotaur, _) => (10.0, 1.0, -1.0), (Minotaur, _) => (10.0, 1.0, -1.0),
(Tidalwarrior, _) => (14.0, -0.5, 2.0), (Tidalwarrior, _) => (14.0, -0.5, 2.0),
(Yeti, _) => (10.5, 1.0, -2.5),
}, },
hand: match (body.species, body.body_type) { hand: match (body.species, body.body_type) {
(Ogre, Male) => (14.5, 0.0, -4.0), (Ogre, Male) => (14.5, 0.0, -4.0),
@ -288,6 +293,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (9.0, 0.5, -4.5), (Mindflayer, _) => (9.0, 0.5, -4.5),
(Minotaur, _) => (12.5, 0.5, -7.0), (Minotaur, _) => (12.5, 0.5, -7.0),
(Tidalwarrior, _) => (15.5, -0.5, -3.0), (Tidalwarrior, _) => (15.5, -0.5, -3.0),
(Yeti, _) => (12.0, 1.5, -6.0),
}, },
leg: match (body.species, body.body_type) { leg: match (body.species, body.body_type) {
(Ogre, Male) => (0.0, 0.0, -4.0), (Ogre, Male) => (0.0, 0.0, -4.0),
@ -303,6 +309,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (6.0, -2.0, 6.5), (Mindflayer, _) => (6.0, -2.0, 6.5),
(Minotaur, _) => (5.0, 0.0, -10.0), (Minotaur, _) => (5.0, 0.0, -10.0),
(Tidalwarrior, _) => (2.5, 0.0, -5.5), (Tidalwarrior, _) => (2.5, 0.0, -5.5),
(Yeti, _) => (4.0, 0.0, -5.5),
}, },
foot: match (body.species, body.body_type) { foot: match (body.species, body.body_type) {
(Ogre, Male) => (4.0, 1.0, -12.0), (Ogre, Male) => (4.0, 1.0, -12.0),
@ -318,6 +325,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => (4.5, 1.5, -7.0), (Mindflayer, _) => (4.5, 1.5, -7.0),
(Minotaur, _) => (6.0, 4.5, -17.5), (Minotaur, _) => (6.0, 4.5, -17.5),
(Tidalwarrior, _) => (3.5, 0.5, -10.5), (Tidalwarrior, _) => (3.5, 0.5, -10.5),
(Yeti, _) => (4.5, 0.5, -12.5),
}, },
scaler: match (body.species, body.body_type) { scaler: match (body.species, body.body_type) {
(Ogre, Male) => 1.4, (Ogre, Male) => 1.4,
@ -333,6 +341,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => 1.5, (Mindflayer, _) => 1.5,
(Minotaur, _) => 2.0, (Minotaur, _) => 2.0,
(Tidalwarrior, _) => 2.0, (Tidalwarrior, _) => 2.0,
(Yeti, _) => 1.5,
}, },
tempo: match (body.species, body.body_type) { tempo: match (body.species, body.body_type) {
(Ogre, Male) => 0.9, (Ogre, Male) => 0.9,
@ -357,6 +366,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Mindflayer, _) => 12.0, (Mindflayer, _) => 12.0,
(Minotaur, _) => 14.0, (Minotaur, _) => 14.0,
(Tidalwarrior, _) => 14.0, (Tidalwarrior, _) => 14.0,
(Yeti, _) => 12.5,
}, },
shl: match (body.species, body.body_type) { shl: match (body.species, body.body_type) {
(Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0), (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),
@ -377,18 +387,21 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Ogre, Male) => (-9.0, -10.0, 23.0, 1.57, -0.57, 0.0), (Ogre, Male) => (-9.0, -10.0, 23.0, 1.57, -0.57, 0.0),
(Cyclops, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), (Cyclops, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
(Troll, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), (Troll, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
(Yeti, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
_ => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), _ => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0),
}, },
hhr: match (body.species, body.body_type) { hhr: match (body.species, body.body_type) {
(Ogre, Male) => (-5.0, -13.0, 0.0, 1.57, -0.57, 0.0), (Ogre, Male) => (-5.0, -13.0, 0.0, 1.57, -0.57, 0.0),
(Cyclops, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), (Cyclops, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
(Troll, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), (Troll, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
(Yeti, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
_ => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), _ => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0),
}, },
hc: match (body.species, body.body_type) { hc: match (body.species, body.body_type) {
(Ogre, Male) => (11.5, 9.0, -13.0, -0.57, -1.57, 1.0), (Ogre, Male) => (11.5, 9.0, -13.0, -0.57, -1.57, 1.0),
(Cyclops, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), (Cyclops, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
(Troll, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), (Troll, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
(Yeti, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
_ => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), _ => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0),
}, },
sthl: match (body.species, body.body_type) { sthl: match (body.species, body.body_type) {