Add wolf, frostfang and mouflon npcs

This commit is contained in:
Snowram 2020-06-24 02:06:42 +02:00 committed by jshipsey
parent 6416a4cf2f
commit 7ea7629d2c
93 changed files with 445 additions and 1 deletions

@ -266,6 +266,18 @@
"tiger": {
"keyword": "tiger",
"generic": "Tiger"
},
"wolf": {
"keyword": "wolf",
"generic": "Wolf"
},
"frostfang": {
"keyword": "frostfang",
"generic": "Frost Fang"
},
"mouflon": {
"keyword": "mouflon",
"generic": "Mouflon"
}
}
},

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.

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.

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.

@ -359,4 +359,184 @@
central: ("npc.tiger.female.tail"),
),
),
(Wolf, Male): (
upper: (
offset: (-5.0, 0.0, -3.5),
central: ("npc.wolf.male.head_upper"),
),
lower: (
offset: (-5.0, -4.5, -5.0),
central: ("npc.wolf.male.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -1.0),
central: ("npc.wolf.male.jaw"),
),
torso_front: (
offset: (-5.0, -13.0, -5.0),
central: ("npc.wolf.male.torso_front"),
),
torso_back: (
offset: (-4.0, -5.5, -5.0),
central: ("npc.wolf.male.torso_back"),
),
ears: (
offset: (-5.0, -1.0, -2.5),
central: ("npc.wolf.male.ears"),
),
tail: (
offset: (-2.0, -13.0, -3.5),
central: ("npc.wolf.male.tail"),
),
),
(Wolf, Female): (
upper: (
offset: (-5.0, 0.0, -3.5),
central: ("npc.wolf.female.head_upper"),
),
lower: (
offset: (-5.0, -4.5, -5.0),
central: ("npc.wolf.female.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -1.0),
central: ("npc.wolf.female.jaw"),
),
torso_front: (
offset: (-5.0, -13.0, -5.0),
central: ("npc.wolf.female.torso_front"),
),
torso_back: (
offset: (-4.0, -5.5, -5.0),
central: ("npc.wolf.female.torso_back"),
),
ears: (
offset: (-5.0, -1.0, -2.5),
central: ("npc.wolf.female.ears"),
),
tail: (
offset: (-2.0, -13.0, -3.5),
central: ("npc.wolf.female.tail"),
),
),
(Frostfang, Male): (
upper: (
offset: (-4.0, 0.0, -4.5),
central: ("npc.frostfang.male.head_upper"),
),
lower: (
offset: (-3.0, -2.0, -4.0),
central: ("npc.frostfang.male.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -3.5),
central: ("npc.frostfang.male.jaw"),
),
torso_front: (
offset: (-5.0, -11.0, -8.5),
central: ("npc.frostfang.male.torso_front"),
),
torso_back: (
offset: (-3.0, -4.0, -4.5),
central: ("npc.frostfang.male.torso_back"),
),
ears: (
offset: (-4.0, -1.0, -1.5),
central: ("npc.frostfang.male.ears"),
),
tail: (
offset: (-2.0, -13.0, -5.0),
central: ("npc.frostfang.male.tail"),
),
),
(Frostfang, Female): (
upper: (
offset: (-4.0, 0.0, -4.5),
central: ("npc.frostfang.female.head_upper"),
),
lower: (
offset: (-3.0, -2.0, -4.0),
central: ("npc.frostfang.female.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -3.5),
central: ("npc.frostfang.female.jaw"),
),
torso_front: (
offset: (-5.0, -11.0, -8.5),
central: ("npc.frostfang.female.torso_front"),
),
torso_back: (
offset: (-3.0, -4.0, -4.5),
central: ("npc.frostfang.female.torso_back"),
),
ears: (
offset: (-4.0, -1.0, -1.5),
central: ("npc.frostfang.female.ears"),
),
tail: (
offset: (-2.0, -13.0, -5.0),
central: ("npc.frostfang.female.tail"),
),
),
(Mouflon, Male): (
upper: (
offset: (-7.5, 0.0, -4.5),
central: ("npc.mouflon.male.head_upper"),
),
lower: (
offset: (-4.0, -4.0, -4.5),
central: ("npc.mouflon.male.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -1.0),
central: ("npc.mouflon.male.jaw"),
),
torso_front: (
offset: (-4.0, -9.0, -4.5),
central: ("npc.mouflon.male.torso_front"),
),
torso_back: (
offset: (-4.0, -5.5, -5.0),
central: ("npc.mouflon.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-2.0, -1.5, 0.0),
central: ("npc.mouflon.male.tail"),
),
),
(Mouflon, Female): (
upper: (
offset: (-7.5, 0.0, -4.5),
central: ("npc.mouflon.female.head_upper"),
),
lower: (
offset: (-4.0, -4.0, -4.5),
central: ("npc.mouflon.female.head_lower"),
),
jaw: (
offset: (-2.0, 0.0, -1.0),
central: ("npc.mouflon.female.jaw"),
),
torso_front: (
offset: (-4.0, -9.0, -4.5),
central: ("npc.mouflon.female.torso_front"),
),
torso_back: (
offset: (-4.0, -5.5, -5.0),
central: ("npc.mouflon.female.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-2.0, -1.5, 0.0),
central: ("npc.mouflon.female.tail"),
),
),
})

@ -407,4 +407,208 @@
lateral: ("npc.tiger.female.foot_br"),
),
),
(Wolf, Male): (
leg_fl: (
offset: (-2.0, -3.5, -4.0),
lateral: ("npc.wolf.male.leg_fl"),
),
leg_fr: (
offset: (-2.0, -3.5, -4.0),
lateral: ("npc.wolf.male.leg_fr"),
),
leg_bl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.wolf.male.leg_bl"),
),
leg_br: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.wolf.male.leg_br"),
),
foot_fl: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.male.foot_fl"),
),
foot_fr: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.male.foot_fr"),
),
foot_bl: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.male.foot_bl"),
),
foot_br: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.male.foot_br"),
),
),
(Wolf, Female): (
leg_fl: (
offset: (-2.0, -3.5, -4.0),
lateral: ("npc.wolf.female.leg_fl"),
),
leg_fr: (
offset: (-2.0, -3.5, -4.0),
lateral: ("npc.wolf.female.leg_fr"),
),
leg_bl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.wolf.female.leg_bl"),
),
leg_br: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.wolf.female.leg_br"),
),
foot_fl: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.female.foot_fl"),
),
foot_fr: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.female.foot_fr"),
),
foot_bl: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.female.foot_bl"),
),
foot_br: (
offset: (-1.5, -3.0, -9.0),
lateral: ("npc.wolf.female.foot_br"),
),
),
(Frostfang, Male): (
leg_fl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.male.leg_fl"),
),
leg_fr: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.male.leg_fr"),
),
leg_bl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.male.leg_bl"),
),
leg_br: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.male.leg_br"),
),
foot_fl: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.male.foot_fl"),
),
foot_fr: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.male.foot_fr"),
),
foot_bl: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.male.foot_bl"),
),
foot_br: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.male.foot_br"),
),
),
(Frostfang, Female): (
leg_fl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.female.leg_fl"),
),
leg_fr: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.female.leg_fr"),
),
leg_bl: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.female.leg_bl"),
),
leg_br: (
offset: (-1.5, -3.5, -3.5),
lateral: ("npc.frostfang.female.leg_br"),
),
foot_fl: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.female.foot_fl"),
),
foot_fr: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.female.foot_fr"),
),
foot_bl: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.female.foot_bl"),
),
foot_br: (
offset: (-2.5, -3.0, -6.0),
lateral: ("npc.frostfang.female.foot_br"),
),
),
(Mouflon, Male): (
leg_fl: (
offset: (-1.5, -2.5, -2.5),
lateral: ("npc.mouflon.male.leg_fl"),
),
leg_fr: (
offset: (-1.5, -2.5, -2.5),
lateral: ("npc.mouflon.male.leg_fr"),
),
leg_bl: (
offset: (-2.0, -2.5, -3.5),
lateral: ("npc.mouflon.male.leg_bl"),
),
leg_br: (
offset: (-2.0, -2.5, -3.5),
lateral: ("npc.mouflon.male.leg_br"),
),
foot_fl: (
offset: (-1.0, -2.0, -7.0),
lateral: ("npc.mouflon.male.foot_fl"),
),
foot_fr: (
offset: (-1.0, -2.0, -7.0),
lateral: ("npc.mouflon.male.foot_fr"),
),
foot_bl: (
offset: (-1.0, -1.0, -6.0),
lateral: ("npc.mouflon.male.foot_bl"),
),
foot_br: (
offset: (-1.0, -1.0, -6.0),
lateral: ("npc.mouflon.male.foot_br"),
),
),
(Mouflon, Female): (
leg_fl: (
offset: (-1.5, -2.5, -2.5),
lateral: ("npc.mouflon.female.leg_fl"),
),
leg_fr: (
offset: (-1.5, -2.5, -2.5),
lateral: ("npc.mouflon.female.leg_fr"),
),
leg_bl: (
offset: (-2.0, -2.5, -3.5),
lateral: ("npc.mouflon.female.leg_bl"),
),
leg_br: (
offset: (-2.0, -2.5, -3.5),
lateral: ("npc.mouflon.female.leg_br"),
),
foot_fl: (
offset: (-1.0, -2.0, -7.0),
lateral: ("npc.mouflon.female.foot_fl"),
),
foot_fr: (
offset: (-1.0, -2.0, -7.0),
lateral: ("npc.mouflon.female.foot_fr"),
),
foot_bl: (
offset: (-1.0, -1.0, -6.0),
lateral: ("npc.mouflon.female.foot_bl"),
),
foot_br: (
offset: (-1.0, -1.0, -6.0),
lateral: ("npc.mouflon.female.foot_br"),
),
),
})

@ -33,6 +33,9 @@ pub enum Species {
Tuskram = 3,
Lion = 6,
Tarasque = 7,
Wolf = 8,
Frostfang = 9,
Mouflon = 10,
}
/// Data representing per-species generic data.
@ -46,6 +49,9 @@ pub struct AllSpecies<SpeciesMeta> {
pub tuskram: SpeciesMeta,
pub lion: SpeciesMeta,
pub tarasque: SpeciesMeta,
pub wolf: SpeciesMeta,
pub frostfang: SpeciesMeta,
pub mouflon: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -60,17 +66,23 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Tuskram => &self.tuskram,
Species::Lion => &self.lion,
Species::Tarasque => &self.tarasque,
Species::Wolf => &self.wolf,
Species::Frostfang => &self.frostfang,
Species::Mouflon => &self.mouflon,
}
}
}
pub const ALL_SPECIES: [Species; 6] = [
pub const ALL_SPECIES: [Species; 9] = [
Species::Grolgar,
Species::Saber,
Species::Tiger,
Species::Tuskram,
Species::Lion,
Species::Tarasque,
Species::Wolf,
Species::Frostfang,
Species::Mouflon,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

@ -150,6 +150,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (12.0, 2.0),
(Tarasque, _) => (5.5, 3.5),
(Tiger, _) => (2.0, 1.0),
(Wolf, _) => (-0.5, 3.0),
(Frostfang, _) => (1.0, -2.0),
(Mouflon, _) => (-5.5, 6.0),
},
head_lower: match (body.species, body.body_type) {
(Grolgar, _) => (3.5, -3.0),
@ -158,6 +161,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (0.5, 1.0),
(Tarasque, _) => (0.5, -4.0),
(Tiger, _) => (-5.0, -6.0),
(Wolf, _) => (-4.5, 2.0),
(Frostfang, _) => (2.0, 1.5),
(Mouflon, _) => (-1.0, 0.5),
},
jaw: match (body.species, body.body_type) {
(Grolgar, _) => (-2.5, 0.5),
@ -166,6 +172,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (0.0, -4.5),
(Tarasque, _) => (9.0, -10.0),
(Tiger, _) => (7.0, -4.0),
(Wolf, _) => (5.0, -3.0),
(Frostfang, _) => (5.0, -3.0),
(Mouflon, _) => (10.5, -4.0),
},
tail: match (body.species, body.body_type) {
(Grolgar, _) => (-5.5, -0.5),
@ -174,6 +183,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (-6.0, 1.0),
(Tarasque, _) => (2.0, 0.0),
(Tiger, _) => (-6.5, -7.0),
(Wolf, _) => (-5.0, 0.0),
(Frostfang, _) => (-4.0, -3.5),
(Mouflon, _) => (-5.0, -3.5),
},
torso_front: match (body.species, body.body_type) {
(Grolgar, _) => (10.0, 11.0),
@ -182,6 +194,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (10.0, 13.0),
(Tarasque, _) => (11.5, 18.5),
(Tiger, _) => (10.0, 12.0),
(Wolf, _) => (12.0, 13.0),
(Frostfang, _) => (9.0, 11.5),
(Mouflon, _) => (11.0, 13.5),
},
torso_back: match (body.species, body.body_type) {
(Grolgar, _) => (-20.0, 1.5),
@ -190,6 +205,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (-19.0, -1.0),
(Tarasque, _) => (-26.0, -1.0),
(Tiger, _) => (-19.0, 0.0),
(Wolf, _) => (-18.5, 1.0),
(Frostfang, _) => (-15.0, 0.0),
(Mouflon, _) => (-14.5, -0.5),
},
ears: match (body.species, body.body_type) {
(Grolgar, _) => (5.0, 9.5),
@ -198,6 +216,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (-8.0, 4.5),
(Tarasque, _) => (3.0, 1.0),
(Tiger, _) => (2.5, 5.0),
(Wolf, _) => (3.0, 5.0),
(Frostfang, _) => (2.0, 5.0),
(Mouflon, _) => (2.5, 5.0),
},
leg_f: match (body.species, body.body_type) {
(Grolgar, _) => (-7.0, -5.0, -2.0),
@ -206,6 +227,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (7.5, -4.5, -6.0),
(Tarasque, _) => (7.0, -8.0, -6.0),
(Tiger, _) => (7.0, -2.0, -1.0),
(Wolf, _) => (4.0, -6.5, -1.0),
(Frostfang, _) => (5.5, -5.5, -2.0),
(Mouflon, _) => (3.5, -5.5, -5.0),
},
leg_b: match (body.species, body.body_type) {
(Grolgar, _) => (6.0, -0.5, -5.5),
@ -214,6 +238,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (6.0, 0.0, -2.0),
(Tarasque, _) => (6.0, 7.5, -6.5),
(Tiger, _) => (7.0, -2.0, -1.0),
(Wolf, _) => (4.5, 0.0, -2.5),
(Frostfang, _) => (3.5, -0.5, -2.0),
(Mouflon, _) => (3.5, -2.0, -4.5),
},
feet_f: match (body.species, body.body_type) {
(Grolgar, _) => (0.0, 1.0, -6.0),
@ -222,6 +249,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (0.0, 2.0, -4.5),
(Tarasque, _) => (1.0, 0.0, -3.0),
(Tiger, _) => (1.0, 0.0, -5.0),
(Wolf, _) => (0.5, 0.5, -3.0),
(Frostfang, _) => (0.5, 2.5, -3.5),
(Mouflon, _) => (-0.5, 0.5, -1.5),
},
feet_b: match (body.species, body.body_type) {
(Grolgar, _) => (0.0, 0.0, -5.0),
@ -230,6 +260,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (0.5, 0.5, -4.0),
(Tarasque, _) => (1.5, -2.5, -2.5),
(Tiger, _) => (1.0, 0.5, -4.0),
(Wolf, _) => (0.0, -0.5, -2.5),
(Frostfang, _) => (0.0, -0.5, -3.5),
(Mouflon, _) => (-1.0, -2.5, -2.5),
},
height: match (body.species, body.body_type) {
(Grolgar, _) => (1.2),
@ -238,6 +271,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr {
(Lion, _) => (1.4),
(Tarasque, _) => (1.1),
(Tiger, _) => (1.0),
(Wolf, _) => (1.0),
(Frostfang, _) => (1.0),
(Mouflon, _) => (1.0),
},
}
}