Add troll, truffler and wendigo npcs

This commit is contained in:
Snowram 2020-07-29 01:09:45 +02:00 committed by jshipsey
parent 9a4415509c
commit 1b7cb8cde6
44 changed files with 310 additions and 2 deletions

View File

@ -453,6 +453,10 @@
"rabbit": {
"keyword": "rabbit",
"generic": "Rabbit"
},
"truffler": {
"keyword": "truffler",
"generic": "Truffler"
}
}
},
@ -513,6 +517,14 @@
"cyclops": {
"keyword": "cyclops",
"generic": "Cyclops"
},
"wendigo": {
"keyword": "wendigo",
"generic": "Wendigo"
},
"troll": {
"keyword": "troll",
"generic": "Troll"
}
}
},

View File

@ -55,4 +55,60 @@
center: ("npc.cyclops.male.torso_lower"),
)
),
(Wendigo, Male): (
head: (
offset: (-15.0, -4.5, -9.5),
center: ("npc.wendigo.male.head"),
),
torso_upper: (
offset: (-6.0, -5.5, -6.5),
center: ("npc.wendigo.male.torso_upper"),
),
torso_lower: (
offset: (-4.0, -2.0, -2.0),
center: ("npc.wendigo.male.torso_lower"),
)
),
(Wendigo, Female): (
head: (
offset: (-15.0, -4.5, -9.5),
center: ("npc.wendigo.male.head"),
),
torso_upper: (
offset: (-6.0, -5.5, -6.5),
center: ("npc.wendigo.male.torso_upper"),
),
torso_lower: (
offset: (-4.0, -2.0, -2.0),
center: ("npc.wendigo.male.torso_lower"),
)
),
(Troll, Male): (
head: (
offset: (-8.0, -8.5, -9.0),
center: ("npc.troll.male.head"),
),
torso_upper: (
offset: (-8.0, -7.5, -11.0),
center: ("npc.troll.male.torso_upper"),
),
torso_lower: (
offset: (-6.0, -3.5, -2.5),
center: ("npc.troll.male.torso_lower"),
)
),
(Troll, Female): (
head: (
offset: (-8.0, -8.5, -9.0),
center: ("npc.troll.male.head"),
),
torso_upper: (
offset: (-8.0, -7.5, -11.0),
center: ("npc.troll.male.torso_upper"),
),
torso_lower: (
offset: (-6.0, -3.5, -2.5),
center: ("npc.troll.male.torso_lower"),
)
),
})

View File

@ -135,4 +135,140 @@
lateral: ("npc.cyclops.male.foot_r"),
)
),
(Wendigo, Male): (
shoulder_l: (
offset: (-3.0, -4.0, -5.0),
lateral: ("npc.wendigo.male.shoulder_l"),
),
shoulder_r: (
offset: (-3.0, -4.0, -5.0),
lateral: ("npc.wendigo.male.shoulder_r"),
),
hand_l: (
offset: (-4.0, -3.5, -18.0),
lateral: ("npc.wendigo.male.hand_l"),
),
hand_r: (
offset: (-4.0, -3.5, -18.0),
lateral: ("npc.wendigo.male.hand_r"),
),
leg_l: (
offset: (-4.0, -2.5, -9.0),
lateral: ("npc.wendigo.male.leg_l"),
),
leg_r: (
offset: (0.0, -2.5, -9.0),
lateral: ("npc.wendigo.male.leg_r"),
),
foot_l: (
offset: (-4.0, -5.0, -5.5),
lateral: ("npc.wendigo.male.foot_l"),
),
foot_r: (
offset: (-4.0, -5.0, -5.5),
lateral: ("npc.wendigo.male.foot_r"),
)
),
(Wendigo, Female): (
shoulder_l: (
offset: (-3.0, -4.0, -5.0),
lateral: ("npc.wendigo.male.shoulder_l"),
),
shoulder_r: (
offset: (-3.0, -4.0, -5.0),
lateral: ("npc.wendigo.male.shoulder_r"),
),
hand_l: (
offset: (-4.0, -3.5, -18.0),
lateral: ("npc.wendigo.male.hand_l"),
),
hand_r: (
offset: (-4.0, -3.5, -18.0),
lateral: ("npc.wendigo.male.hand_r"),
),
leg_l: (
offset: (-4.0, -2.5, -9.0),
lateral: ("npc.wendigo.male.leg_l"),
),
leg_r: (
offset: (0.0, -2.5, -9.0),
lateral: ("npc.wendigo.male.leg_r"),
),
foot_l: (
offset: (-4.0, -5.0, -5.5),
lateral: ("npc.wendigo.male.foot_l"),
),
foot_r: (
offset: (-4.0, -5.0, -5.5),
lateral: ("npc.wendigo.male.foot_r"),
)
),
(Troll, Male): (
shoulder_l: (
offset: (-5.0, -4.5, -7.0),
lateral: ("npc.troll.male.shoulder_l"),
),
shoulder_r: (
offset: (-5.0, -4.5, -7.0),
lateral: ("npc.troll.male.shoulder_r"),
),
hand_l: (
offset: (-3.5, -4.0, -15.0),
lateral: ("npc.troll.male.hand_l"),
),
hand_r: (
offset: (-3.5, -4.0, -15.0),
lateral: ("npc.troll.male.hand_r"),
),
leg_l: (
offset: (-3.0, -2.5, -4.5),
lateral: ("npc.troll.male.leg_l"),
),
leg_r: (
offset: (-3.0, -2.5, -4.5),
lateral: ("npc.troll.male.leg_r"),
),
foot_l: (
offset: (-3.0, -5.0, -2.5),
lateral: ("npc.troll.male.foot_l"),
),
foot_r: (
offset: (-3.0, -5.0, -2.5),
lateral: ("npc.troll.male.foot_r"),
)
),
(Troll, Female): (
shoulder_l: (
offset: (-5.0, -4.5, -7.0),
lateral: ("npc.troll.male.shoulder_l"),
),
shoulder_r: (
offset: (-5.0, -4.5, -7.0),
lateral: ("npc.troll.male.shoulder_r"),
),
hand_l: (
offset: (-3.5, -4.0, -15.0),
lateral: ("npc.troll.male.hand_l"),
),
hand_r: (
offset: (-3.5, -4.0, -15.0),
lateral: ("npc.troll.male.hand_r"),
),
leg_l: (
offset: (-3.0, -2.5, -4.5),
lateral: ("npc.troll.male.leg_l"),
),
leg_r: (
offset: (-3.0, -2.5, -4.5),
lateral: ("npc.troll.male.leg_r"),
),
foot_l: (
offset: (-3.0, -5.0, -2.5),
lateral: ("npc.troll.male.foot_l"),
),
foot_r: (
offset: (-3.0, -5.0, -2.5),
lateral: ("npc.troll.male.foot_r"),
)
),
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -406,4 +406,32 @@
central: ("npc.rabbit.male.tail"),
),
),
(Truffler, Male):(
head: (
offset: (-8.5, 0.0, -4.5),
central: ("npc.truffler.male.head"),
),
chest: (
offset: (-10.5, -11.0, -15.0),
central: ("npc.truffler.male.chest"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
),
(Truffler, Female):(
head: (
offset: (-8.5, 0.0, -4.5),
central: ("npc.truffler.male.head"),
),
chest: (
offset: (-10.5, -11.0, -15.0),
central: ("npc.truffler.male.chest"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
),
})

View File

@ -520,4 +520,41 @@
lateral: ("npc.rabbit.male.foot_br"),
),
),
(Truffler, Male): (
left_front: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_fl"),
),
right_front: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_fr"),
),
left_back: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_bl"),
),
right_back: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_br"),
),
),
(Truffler, Female): (
left_front: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_fl"),
),
right_front: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_fr"),
),
left_back: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_bl"),
),
right_back: (
offset: (-2.5, -3.0, -6.5),
lateral: ("npc.truffler.male.foot_br"),
),
),
})

View File

@ -30,6 +30,8 @@ impl From<Body> for super::Body {
pub enum Species {
Ogre = 0,
Cyclops = 1,
Wendigo = 2,
Troll = 3,
}
/// Data representing per-species generic data.
@ -39,6 +41,8 @@ pub enum Species {
pub struct AllSpecies<SpeciesMeta> {
pub ogre: SpeciesMeta,
pub cyclops: SpeciesMeta,
pub wendigo: SpeciesMeta,
pub troll: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -49,11 +53,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
match index {
Species::Ogre => &self.ogre,
Species::Cyclops => &self.cyclops,
Species::Wendigo => &self.wendigo,
Species::Troll => &self.troll,
}
}
}
pub const ALL_SPECIES: [Species; 2] = [Species::Ogre, Species::Cyclops];
pub const ALL_SPECIES: [Species; 4] = [
Species::Ogre,
Species::Cyclops,
Species::Wendigo,
Species::Troll,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
type IntoIter = std::iter::Copied<std::slice::Iter<'static, Self::Item>>;

View File

@ -42,6 +42,7 @@ pub enum Species {
Holladon = 11,
Hyena = 12,
Rabbit = 13,
Truffler = 14,
}
/// Data representing per-species generic data.
@ -63,6 +64,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub holladon: SpeciesMeta,
pub hyena: SpeciesMeta,
pub rabbit: SpeciesMeta,
pub truffler: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -85,11 +87,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Holladon => &self.holladon,
Species::Hyena => &self.hyena,
Species::Rabbit => &self.rabbit,
Species::Truffler => &self.truffler,
}
}
}
pub const ALL_SPECIES: [Species; 14] = [
pub const ALL_SPECIES: [Species; 15] = [
Species::Pig,
Species::Fox,
Species::Sheep,
@ -104,6 +107,7 @@ pub const ALL_SPECIES: [Species; 14] = [
Species::Holladon,
Species::Hyena,
Species::Rabbit,
Species::Truffler,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -132,30 +132,44 @@ impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr {
head: match (body.species, body.body_type) {
(Ogre, _) => (3.0, 6.0),
(Cyclops, _) => (3.0, 9.0),
(Wendigo, _) => (3.0, 13.5),
(Troll, _) => (6.0, 10.0),
},
upper_torso: match (body.species, body.body_type) {
(Ogre, _) => (0.0, 19.0),
(Cyclops, _) => (-1.0, 27.0),
(Wendigo, _) => (-1.0, 27.0),
(Troll, _) => (-1.0, 25.5),
},
lower_torso: match (body.species, body.body_type) {
(Ogre, _) => (1.0, -9.5),
(Cyclops, _) => (1.0, -10.5),
(Wendigo, _) => (-1.5, -8.0),
(Troll, _) => (1.0, -12.5),
},
shoulder: match (body.species, body.body_type) {
(Ogre, _) => (6.1, 0.5, 2.5),
(Cyclops, _) => (9.5, 0.5, 2.5),
(Wendigo, _) => (9.0, 0.5, -0.5),
(Troll, _) => (11.0, 0.5, -2.5),
},
hand: match (body.species, body.body_type) {
(Ogre, _) => (10.5, -1.0, -0.5),
(Cyclops, _) => (10.5, 0.0, -0.5),
(Wendigo, _) => (12.0, 0.0, -0.5),
(Troll, _) => (11.5, 0.0, -1.5),
},
leg: match (body.species, body.body_type) {
(Ogre, _) => (0.0, 0.0, -6.0),
(Cyclops, _) => (0.0, 0.0, -9.0),
(Wendigo, _) => (2.0, 0.0, -8.5),
(Troll, _) => (5.0, 0.0, -16.0),
},
foot: match (body.species, body.body_type) {
(Ogre, _) => (4.0, 0.5, 5.5),
(Cyclops, _) => (4.0, 0.5, 5.0),
(Wendigo, _) => (5.0, 0.5, 5.5),
(Troll, _) => (6.0, 0.5, 3.0),
},
}
}

View File

@ -128,6 +128,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (7.0, 1.0),
(Hyena, _) => (7.5, 2.0),
(Rabbit, _) => (4.0, 3.0),
(Truffler, _) => (7.5, -9.0),
},
chest: match (body.species, body.body_type) {
(Pig, _) => (0.0, 7.0),
@ -144,6 +145,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (-2.0, 9.0),
(Hyena, _) => (-2.0, 9.0),
(Rabbit, _) => (-2.0, 6.0),
(Truffler, _) => (-2.0, 16.0),
},
feet_f: match (body.species, body.body_type) {
(Pig, _) => (4.5, 3.0, -2.0),
@ -160,6 +162,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (5.0, 4.0, -2.5),
(Hyena, _) => (2.5, 5.0, -4.0),
(Rabbit, _) => (3.0, 3.0, -3.0),
(Truffler, _) => (2.5, 5.0, -9.0),
},
feet_b: match (body.species, body.body_type) {
(Pig, _) => (3.5, -2.0, -1.5),
@ -176,6 +179,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (4.0, -2.0, -3.0),
(Hyena, _) => (3.0, -5.0, -2.5),
(Rabbit, _) => (3.5, -2.0, -1.0),
(Truffler, _) => (3.0, -5.0, -9.5),
},
tail: match (body.species, body.body_type) {
(Pig, _) => (-4.5, 2.5),
@ -192,6 +196,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (-1.0, 4.0),
(Hyena, _) => (-7.0, 0.0),
(Rabbit, _) => (-4.0, -0.0),
(Truffler, _) => (-7.0, 0.0),
},
scaler: match (body.species, body.body_type) {
(Pig, _) => (0.9),
@ -208,6 +213,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (1.4),
(Hyena, _) => (1.0),
(Rabbit, _) => (0.7),
(Truffler, _) => (1.0),
},
tempo: match (body.species, body.body_type) {
(Pig, _) => (1.0),
@ -224,6 +230,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (1.0),
(Hyena, _) => (1.1),
(Rabbit, _) => (1.15),
(Truffler, _) => (1.0),
},
maximize: match (body.species, body.body_type) {
(Pig, _) => (1.0),
@ -240,6 +247,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (1.0),
(Hyena, _) => (1.4),
(Rabbit, _) => (1.3),
(Truffler, _) => (1.0),
},
minimize: match (body.species, body.body_type) {
(Pig, _) => (0.6),
@ -256,6 +264,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (0.7),
(Hyena, _) => (1.4),
(Rabbit, _) => (0.8),
(Truffler, _) => (1.0),
},
spring: match (body.species, body.body_type) {
(Pig, _) => (1.0),
@ -272,6 +281,7 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr {
(Holladon, _) => (0.7),
(Hyena, _) => (1.4),
(Rabbit, _) => (2.5),
(Truffler, _) => (0.8),
},
}
}