mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Adds yeti npc
This commit is contained in:
parent
30af3a4493
commit
858fbe1a6c
16
assets/common/items/npc_weapons/hammer/yeti_hammer.ron
Normal file
16
assets/common/items/npc_weapons/hammer/yeti_hammer.ron
Normal 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,
|
||||
)
|
@ -849,6 +849,10 @@
|
||||
tidalwarrior: (
|
||||
keyword: "tidalwarrior",
|
||||
generic: "Tidal Warrior"
|
||||
),
|
||||
yeti: (
|
||||
keyword: "yeti",
|
||||
generic: "Yeti"
|
||||
)
|
||||
)
|
||||
),
|
||||
|
@ -624,4 +624,56 @@
|
||||
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"),
|
||||
)
|
||||
),
|
||||
})
|
@ -815,4 +815,72 @@
|
||||
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"),
|
||||
)
|
||||
),
|
||||
})
|
@ -63,4 +63,8 @@
|
||||
vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.hammer.yeti_hammer": (
|
||||
vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)),
|
||||
color: None
|
||||
),
|
||||
})
|
||||
|
@ -769,4 +769,8 @@
|
||||
vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.hammer.yeti_hammer": (
|
||||
vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)),
|
||||
color: None
|
||||
),
|
||||
})
|
||||
|
@ -965,6 +965,10 @@
|
||||
vox_spec: ("weapon.staff.firestaff_mindflayer", (-5.5, -3.5, -8.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.unique.beast_claws": (
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
|
BIN
assets/voxygen/voxel/npc/yeti/male/foot_l.vox
(Stored with Git LFS)
Normal file
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
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
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
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
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
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
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
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
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
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
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
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
BIN
assets/voxygen/voxel/weapon/hammer/2hhammer_yeti.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -367,6 +367,7 @@ impl Body {
|
||||
biped_large::Species::Dullahan => 2000,
|
||||
biped_large::Species::Mindflayer => 8000,
|
||||
biped_large::Species::Tidalwarrior => 2500,
|
||||
biped_large::Species::Yeti => 2000,
|
||||
_ => 1000,
|
||||
},
|
||||
Body::BipedSmall(_) => 10000,
|
||||
@ -465,6 +466,7 @@ impl Body {
|
||||
biped_large::Species::Dullahan => 120,
|
||||
biped_large::Species::Mindflayer => 250,
|
||||
biped_large::Species::Tidalwarrior => 90,
|
||||
biped_large::Species::Yeti => 80,
|
||||
_ => 100,
|
||||
},
|
||||
Body::BipedSmall(_) => 10,
|
||||
|
@ -46,6 +46,7 @@ make_case_elim!(
|
||||
Mindflayer = 9,
|
||||
Minotaur = 10,
|
||||
Tidalwarrior = 11,
|
||||
Yeti = 12,
|
||||
}
|
||||
);
|
||||
|
||||
@ -66,6 +67,7 @@ pub struct AllSpecies<SpeciesMeta> {
|
||||
pub mindflayer: SpeciesMeta,
|
||||
pub minotaur: SpeciesMeta,
|
||||
pub tidalwarrior: SpeciesMeta,
|
||||
pub yeti: 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::Minotaur => &self.minotaur,
|
||||
Species::Tidalwarrior => &self.tidalwarrior,
|
||||
Species::Yeti => &self.yeti,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 12] = [
|
||||
pub const ALL_SPECIES: [Species; 13] = [
|
||||
Species::Ogre,
|
||||
Species::Cyclops,
|
||||
Species::Wendigo,
|
||||
@ -103,6 +106,7 @@ pub const ALL_SPECIES: [Species; 12] = [
|
||||
Species::Mindflayer,
|
||||
Species::Minotaur,
|
||||
Species::Tidalwarrior,
|
||||
Species::Yeti,
|
||||
];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
|
@ -251,6 +251,11 @@ impl LoadoutBuilder {
|
||||
"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) => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
|
@ -60,19 +60,19 @@ impl Animation for JumpAnimation {
|
||||
next.second.scale = Vec3::one() * 0.0;
|
||||
|
||||
match active_tool_kind {
|
||||
Some(ToolKind::Bow) => {
|
||||
Some(ToolKind::BowSimple) => {
|
||||
next.main.position = Vec3::new(-2.0, -5.0, -6.0);
|
||||
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.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.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.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
|
||||
},
|
||||
|
@ -206,6 +206,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => (5.0, 5.5),
|
||||
(Minotaur, _) => (6.0, 3.0),
|
||||
(Tidalwarrior, _) => (6.5, 5.0),
|
||||
(Yeti, _) => (8.5, 4.0),
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Ogre, _) => (0.0, 0.0),
|
||||
@ -220,6 +221,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => (0.0, 0.0),
|
||||
(Minotaur, _) => (2.0, -4.0),
|
||||
(Tidalwarrior, _) => (0.0, 0.0),
|
||||
(Yeti, _) => (-5.0, -5.0),
|
||||
},
|
||||
upper_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (0.0, 27.5),
|
||||
@ -235,6 +237,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => (0.0, 30.5),
|
||||
(Minotaur, _) => (-1.0, 31.5),
|
||||
(Tidalwarrior, _) => (-1.0, 25.0),
|
||||
(Yeti, _) => (-1.0, 23.5),
|
||||
},
|
||||
lower_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (1.0, -7.0),
|
||||
@ -250,6 +253,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => (3.5, -19.5),
|
||||
(Minotaur, _) => (1.5, -8.5),
|
||||
(Tidalwarrior, _) => (0.0, -9.5),
|
||||
(Yeti, _) => (0.0, -6.5),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Werewolf, _) => (-5.5, -2.0),
|
||||
@ -273,6 +277,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => (8.0, 0.5, -1.0),
|
||||
(Minotaur, _) => (10.0, 1.0, -1.0),
|
||||
(Tidalwarrior, _) => (14.0, -0.5, 2.0),
|
||||
(Yeti, _) => (10.5, 1.0, -2.5),
|
||||
},
|
||||
hand: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(Minotaur, _) => (12.5, 0.5, -7.0),
|
||||
(Tidalwarrior, _) => (15.5, -0.5, -3.0),
|
||||
(Yeti, _) => (12.0, 1.5, -6.0),
|
||||
},
|
||||
leg: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(Minotaur, _) => (5.0, 0.0, -10.0),
|
||||
(Tidalwarrior, _) => (2.5, 0.0, -5.5),
|
||||
(Yeti, _) => (4.0, 0.0, -5.5),
|
||||
},
|
||||
foot: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(Minotaur, _) => (6.0, 4.5, -17.5),
|
||||
(Tidalwarrior, _) => (3.5, 0.5, -10.5),
|
||||
(Yeti, _) => (4.5, 0.5, -12.5),
|
||||
},
|
||||
scaler: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => 1.4,
|
||||
@ -333,6 +341,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => 1.5,
|
||||
(Minotaur, _) => 2.0,
|
||||
(Tidalwarrior, _) => 2.0,
|
||||
(Yeti, _) => 1.5,
|
||||
},
|
||||
tempo: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => 0.9,
|
||||
@ -357,6 +366,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Mindflayer, _) => 12.0,
|
||||
(Minotaur, _) => 14.0,
|
||||
(Tidalwarrior, _) => 14.0,
|
||||
(Yeti, _) => 12.5,
|
||||
},
|
||||
shl: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(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),
|
||||
(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),
|
||||
},
|
||||
hhr: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(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),
|
||||
},
|
||||
hc: match (body.species, body.body_type) {
|
||||
(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),
|
||||
(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),
|
||||
},
|
||||
sthl: match (body.species, body.body_type) {
|
||||
|
Loading…
Reference in New Issue
Block a user