Adds new species

This commit is contained in:
Snowram 2021-06-14 01:39:43 +02:00
parent e3bf77298b
commit 87ca00fac0
56 changed files with 587 additions and 49 deletions

View File

@ -546,7 +546,15 @@
snowleopard: (
keyword: "snowleopard",
generic: "Snow Leopard"
)
),
mammoth: (
keyword: "mammoth",
generic: "Mammoth"
),
ngoubou: (
keyword: "ngoubou",
generic: "Ngoubou"
),
)
),
quadruped_small: (
@ -886,6 +894,10 @@
keyword: "oni_red",
generic: "Red Oni"
),
cultist_warlord: (
keyword: "cultist_warlord",
generic: "Cultist Warlord"
),
)
),
golem: (

View File

@ -936,4 +936,56 @@
central: ("armor.empty"),
)
),
(Cultistwarlord, Male): (
head: (
offset: (-10.0, -6.0, -9.0),
central: ("npc.cultist_warlord.male.head"),
),
torso_upper: (
offset: (-8.0, -6.0, -6.0),
central: ("npc.cultist_warlord.male.torso_upper"),
),
torso_lower: (
offset: (-7.0, -5.0, -9.0),
central: ("npc.cultist_warlord.male.torso_lower"),
),
jaw: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
second: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
(Cultistwarlord, Female): (
head: (
offset: (-10.0, -6.0, -9.0),
central: ("npc.cultist_warlord.male.head"),
),
torso_upper: (
offset: (-8.0, -6.0, -6.0),
central: ("npc.cultist_warlord.male.torso_upper"),
),
torso_lower: (
offset: (-7.0, -5.0, -9.0),
central: ("npc.cultist_warlord.male.torso_lower"),
),
jaw: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
second: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
)
),
})

View File

@ -1223,4 +1223,72 @@
lateral: ("npc.oni_red.male.foot_r"),
)
),
(Cultistwarlord, Male): (
shoulder_l: (
offset: (-6.0, -5.5, -6.0),
lateral: ("npc.cultist_warlord.male.shoulder_l"),
),
shoulder_r: (
offset: (-6.0, -5.5, -6.0),
lateral: ("npc.cultist_warlord.male.shoulder_r"),
),
hand_l: (
offset: (-3.5, -3.5, -10.0),
lateral: ("npc.cultist_warlord.male.hand_l"),
),
hand_r: (
offset: (-3.5, -3.5, -10.0),
lateral: ("npc.cultist_warlord.male.hand_r"),
),
leg_l: (
offset: (-1.5, -2.0, -2.5),
lateral: ("npc.cultist_warlord.male.leg_l"),
),
leg_r: (
offset: (-1.5, -2.0, -2.5),
lateral: ("npc.cultist_warlord.male.leg_r"),
),
foot_l: (
offset: (-2.5, -4.0, -4.0),
lateral: ("npc.cultist_warlord.male.foot_l"),
),
foot_r: (
offset: (-2.5, -4.0, -4.0),
lateral: ("npc.cultist_warlord.male.foot_r"),
)
),
(Cultistwarlord, Female): (
shoulder_l: (
offset: (-6.0, -5.5, -6.0),
lateral: ("npc.cultist_warlord.male.shoulder_l"),
),
shoulder_r: (
offset: (-6.0, -5.5, -6.0),
lateral: ("npc.cultist_warlord.male.shoulder_r"),
),
hand_l: (
offset: (-3.5, -3.5, -10.0),
lateral: ("npc.cultist_warlord.male.hand_l"),
),
hand_r: (
offset: (-3.5, -3.5, -10.0),
lateral: ("npc.cultist_warlord.male.hand_r"),
),
leg_l: (
offset: (-1.5, -2.0, -2.5),
lateral: ("npc.cultist_warlord.male.leg_l"),
),
leg_r: (
offset: (-1.5, -2.0, -2.5),
lateral: ("npc.cultist_warlord.male.leg_r"),
),
foot_l: (
offset: (-2.5, -4.0, -4.0),
lateral: ("npc.cultist_warlord.male.foot_l"),
),
foot_r: (
offset: (-2.5, -4.0, -4.0),
lateral: ("npc.cultist_warlord.male.foot_r"),
)
),
})

View File

@ -1,30 +1,30 @@
({
(Duck, Male): (
head: (
offset: (-1.5, -2.0, -1.5),
offset: (-2.0, -1.5, -2.5),
central: ("npc.duck.male.head"),
),
torso: (
offset: (-2.5, -3.0, -2.0),
offset: (-3.0, -4.5, -3.0),
central: ("npc.duck.male.torso"),
),
tail: (
offset: (-1.5, -0.5, -2.5),
offset: (-2.0, -1.5, -3.0),
central: ("npc.duck.male.tail"),
)
),
(Duck, Female): (
head: (
offset: (-1.5, -2.0, -1.5),
central: ("npc.duck.female.head"),
offset: (-2.0, -1.5, -2.5),
central: ("npc.duck.male.head"),
),
torso: (
offset: (-2.5, -3.0, -2.0),
central: ("npc.duck.female.torso"),
offset: (-3.0, -4.5, -3.0),
central: ("npc.duck.male.torso"),
),
tail: (
offset: (-1.5, -0.5, -2.5),
central: ("npc.duck.female.tail"),
offset: (-2.0, -1.5, -3.0),
central: ("npc.duck.male.tail"),
)
),
(Chicken, Male): (

View File

@ -1,37 +1,37 @@
({
(Duck, Male): (
wing_l: (
offset: (-0.5, -2.5, -3.0),
offset: (-0.5, -4.0, -4.0),
lateral: ("npc.duck.male.wing"),
),
wing_r: (
offset: (-0.5, -2.5, -3.0),
offset: (-0.5, -4.0, -4.0),
lateral: ("npc.duck.male.wing"),
),
foot_l: (
offset: (-1.0, 0.0, -4.0),
offset: (-1.5, -1.5, -4.0),
lateral: ("npc.duck.male.leg_r"),
),
foot_r: (
offset: (-1.0, 0.0, -4.0),
offset: (-1.5, -1.5, -4.0),
lateral: ("npc.duck.male.leg_r"),
)
),
(Duck, Female): (
wing_l: (
offset: (-0.5, -2.5, -3.0),
offset: (-0.5, -4.0, -4.0),
lateral: ("npc.duck.female.wing"),
),
wing_r: (
offset: (-0.5, -2.5, -3.0),
offset: (-0.5, -4.0, -4.0),
lateral: ("npc.duck.female.wing"),
),
foot_l: (
offset: (-1.0, 0.0, -4.0),
offset: (-1.5, -1.5, -4.0),
lateral: ("npc.duck.female.leg_r"),
),
foot_r: (
offset: (-1.0, 0.0, -4.0),
offset: (-1.5, -1.5, -4.0),
lateral: ("npc.duck.female.leg_r"),
)
),

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

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.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

View File

@ -1799,4 +1799,124 @@
central: ("npc.snowleopard.male.tail"),
),
),
(Mammoth, Male): (
head: (
offset: (-13.0, 0.0, -11.0),
central: ("npc.mammoth.male.head"),
),
neck: (
offset: (-6.0, -3.5, -11.5),
central: ("npc.mammoth.male.neck"),
),
jaw: (
offset: (-3.0, 0.0, -13.0),
central: ("npc.mammoth.male.jaw"),
),
torso_front: (
offset: (-9.0, -14.0, -15.0),
central: ("npc.mammoth.male.torso_front"),
),
torso_back: (
offset: (-8.0, -14.0, -12.5),
central: ("npc.mammoth.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-2.0, -6.0, -15.0),
central: ("npc.mammoth.male.tail"),
),
),
(Mammoth, Female): (
head: (
offset: (-13.0, 0.0, -11.0),
central: ("npc.mammoth.male.head"),
),
neck: (
offset: (-6.0, -3.5, -11.5),
central: ("npc.mammoth.male.neck"),
),
jaw: (
offset: (-3.0, 0.0, -13.0),
central: ("npc.mammoth.male.jaw"),
),
torso_front: (
offset: (-9.0, -14.0, -15.0),
central: ("npc.mammoth.male.torso_front"),
),
torso_back: (
offset: (-8.0, -14.0, -12.5),
central: ("npc.mammoth.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-2.0, -6.0, -15.0),
central: ("npc.mammoth.male.tail"),
),
),
(Ngoubou, Male): (
head: (
offset: (-9.5, 0.0, -9.0),
central: ("npc.ngoubou.male.head"),
),
neck: (
offset: (-4.5, -3.0, -7.5),
central: ("npc.ngoubou.male.neck"),
),
jaw: (
offset: (-2.5, 0.0, -3.0),
central: ("npc.ngoubou.male.jaw"),
),
torso_front: (
offset: (-5.5, -9.0, -9.5),
central: ("npc.ngoubou.male.torso_front"),
),
torso_back: (
offset: (-5.5, -13.0, -7.5),
central: ("npc.ngoubou.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-1.5, -8.0, -14.0),
central: ("npc.ngoubou.male.tail"),
),
),
(Ngoubou, Female): (
head: (
offset: (-9.5, 0.0, -9.0),
central: ("npc.ngoubou.male.head"),
),
neck: (
offset: (-4.5, -3.0, -7.5),
central: ("npc.ngoubou.male.neck"),
),
jaw: (
offset: (-2.5, 0.0, -3.0),
central: ("npc.ngoubou.male.jaw"),
),
torso_front: (
offset: (-5.5, -9.0, -9.5),
central: ("npc.ngoubou.male.torso_front"),
),
torso_back: (
offset: (-5.5, -13.0, -7.5),
central: ("npc.ngoubou.male.torso_back"),
),
ears: (
offset: (0.0, 0.0, 0.0),
central: ("armor.empty"),
),
tail: (
offset: (-1.5, -8.0, -14.0),
central: ("npc.ngoubou.male.tail"),
),
),
})

View File

@ -2039,4 +2039,140 @@
lateral: ("npc.snowleopard.male.foot_br"),
),
),
(Mammoth, Male): (
leg_fl: (
offset: (-4.0, -5.0, -6.0),
lateral: ("npc.mammoth.male.leg_fr"),
),
leg_fr: (
offset: (-4.0, -5.0, -6.0),
lateral: ("npc.mammoth.male.leg_fr"),
),
leg_bl: (
offset: (-3.5, -5.0, -5.5),
lateral: ("npc.mammoth.male.leg_br"),
),
leg_br: (
offset: (-3.5, -5.0, -5.5),
lateral: ("npc.mammoth.male.leg_br"),
),
foot_fl: (
offset: (-3.5, -4.5, -10.0),
lateral: ("npc.mammoth.male.foot_fr"),
),
foot_fr: (
offset: (-3.5, -4.5, -10.0),
lateral: ("npc.mammoth.male.foot_fr"),
),
foot_bl: (
offset: (-3.0, -4.5, -9.0),
lateral: ("npc.mammoth.male.foot_br"),
),
foot_br: (
offset: (-3.0, -4.5, -9.0),
lateral: ("npc.mammoth.male.foot_br"),
),
),
(Mammoth, Female): (
leg_fl: (
offset: (-4.0, -5.0, -6.0),
lateral: ("npc.mammoth.male.leg_fr"),
),
leg_fr: (
offset: (-4.0, -5.0, -6.0),
lateral: ("npc.mammoth.male.leg_fr"),
),
leg_bl: (
offset: (-3.5, -5.0, -5.5),
lateral: ("npc.mammoth.male.leg_br"),
),
leg_br: (
offset: (-3.5, -5.0, -5.5),
lateral: ("npc.mammoth.male.leg_br"),
),
foot_fl: (
offset: (-3.5, -4.5, -10.0),
lateral: ("npc.mammoth.male.foot_fr"),
),
foot_fr: (
offset: (-3.5, -4.5, -10.0),
lateral: ("npc.mammoth.male.foot_fr"),
),
foot_bl: (
offset: (-3.0, -4.5, -9.0),
lateral: ("npc.mammoth.male.foot_br"),
),
foot_br: (
offset: (-3.0, -4.5, -9.0),
lateral: ("npc.mammoth.male.foot_br"),
),
),
(Ngoubou, Male): (
leg_fl: (
offset: (-2.5, -4.0, -7.0),
lateral: ("npc.ngoubou.male.leg_fr"),
),
leg_fr: (
offset: (-2.5, -4.0, -7.0),
lateral: ("npc.ngoubou.male.leg_fr"),
),
leg_bl: (
offset: (-3.0, -4.5, -5.5),
lateral: ("npc.ngoubou.male.leg_br"),
),
leg_br: (
offset: (-3.0, -4.5, -5.5),
lateral: ("npc.ngoubou.male.leg_br"),
),
foot_fl: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_fr"),
),
foot_fr: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_fr"),
),
foot_bl: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_br"),
),
foot_br: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_br"),
),
),
(Ngoubou, Female): (
leg_fl: (
offset: (-2.5, -4.0, -7.0),
lateral: ("npc.ngoubou.male.leg_fr"),
),
leg_fr: (
offset: (-2.5, -4.0, -7.0),
lateral: ("npc.ngoubou.male.leg_fr"),
),
leg_bl: (
offset: (-3.0, -4.5, -5.5),
lateral: ("npc.ngoubou.male.leg_br"),
),
leg_br: (
offset: (-3.0, -4.5, -5.5),
lateral: ("npc.ngoubou.male.leg_br"),
),
foot_fl: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_fr"),
),
foot_fr: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_fr"),
),
foot_bl: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_br"),
),
foot_br: (
offset: (-2.5, -3.5, -9.0),
lateral: ("npc.ngoubou.male.foot_br"),
),
),
})

View File

@ -358,6 +358,8 @@ impl Body {
quadruped_medium::Species::Saber => Vec3::new(2.0, 3.0, 2.0),
quadruped_medium::Species::Tarasque => Vec3::new(2.0, 4.0, 2.6),
quadruped_medium::Species::Yak => Vec3::new(2.0, 3.6, 3.0),
quadruped_medium::Species::Mammoth => Vec3::new(5.0, 7.0, 8.0),
quadruped_medium::Species::Ngoubou => Vec3::new(2.0, 3.2, 2.4),
_ => Vec3::new(2.0, 3.0, 2.0),
},
Body::QuadrupedSmall(body) => match body.species {
@ -460,6 +462,8 @@ impl Body {
quadruped_medium::Species::Bear => 900,
quadruped_medium::Species::Moose => 800,
quadruped_medium::Species::Dreadhorn => 1100,
quadruped_medium::Species::Mammoth => 1700,
quadruped_medium::Species::Ngoubou => 1500,
_ => 700,
},
Body::BirdMedium(bird_medium) => match bird_medium.species {
@ -583,6 +587,8 @@ impl Body {
quadruped_medium::Species::Bear => 40,
quadruped_medium::Species::Moose => 30,
quadruped_medium::Species::Dreadhorn => 50,
quadruped_medium::Species::Mammoth => 70,
quadruped_medium::Species::Ngoubou => 50,
_ => 20,
},
Body::BirdMedium(bird_medium) => match bird_medium.species {

View File

@ -52,6 +52,7 @@ make_case_elim!(
Harvester = 15,
Blueoni = 16,
Redoni = 17,
Cultistwarlord = 18,
}
);
@ -78,6 +79,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub harvester: SpeciesMeta,
pub oni_blue: SpeciesMeta,
pub oni_red: SpeciesMeta,
pub cultist_warlord: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -104,11 +106,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Harvester => &self.harvester,
Species::Blueoni => &self.oni_blue,
Species::Redoni => &self.oni_red,
Species::Cultistwarlord => &self.cultist_warlord,
}
}
}
pub const ALL_SPECIES: [Species; 18] = [
pub const ALL_SPECIES: [Species; 19] = [
Species::Ogre,
Species::Cyclops,
Species::Wendigo,
@ -127,6 +130,7 @@ pub const ALL_SPECIES: [Species; 18] = [
Species::Harvester,
Species::Blueoni,
Species::Redoni,
Species::Cultistwarlord,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -62,6 +62,8 @@ pub enum Species {
Dreadhorn = 29,
Moose = 30,
Snowleopard = 31,
Mammoth = 32,
Ngoubou = 33,
}
/// Data representing per-species generic data.
@ -99,6 +101,8 @@ pub struct AllSpecies<SpeciesMeta> {
pub dreadhorn: SpeciesMeta,
pub moose: SpeciesMeta,
pub snowleopard: SpeciesMeta,
pub mammoth: SpeciesMeta,
pub ngoubou: SpeciesMeta,
}
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -137,11 +141,13 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Dreadhorn => &self.dreadhorn,
Species::Moose => &self.moose,
Species::Snowleopard => &self.snowleopard,
Species::Mammoth => &self.mammoth,
Species::Ngoubou => &self.ngoubou,
}
}
}
pub const ALL_SPECIES: [Species; 30] = [
pub const ALL_SPECIES: [Species; 32] = [
Species::Grolgar,
Species::Saber,
Species::Tiger,
@ -172,6 +178,8 @@ pub const ALL_SPECIES: [Species; 30] = [
Species::Dreadhorn,
Species::Moose,
Species::Snowleopard,
Species::Mammoth,
Species::Ngoubou,
];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -184,7 +184,9 @@ fn default_main_tool(body: &Body) -> Item {
quadruped_medium::Species::Tuskram
| quadruped_medium::Species::Roshwalr
| quadruped_medium::Species::Moose
| quadruped_medium::Species::Dreadhorn => Some(Item::new_from_asset_expect(
| quadruped_medium::Species::Dreadhorn
| quadruped_medium::Species::Mammoth
| quadruped_medium::Species::Ngoubou => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadmedcharge",
)),
quadruped_medium::Species::Highland
@ -294,9 +296,9 @@ fn default_main_tool(body: &Body) -> Item {
(biped_large::Species::Blueoni, _) => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.axe.oni_blue_axe",
)),
(biped_large::Species::Redoni, _) => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.hammer.oni_red_hammer",
)),
(biped_large::Species::Redoni | biped_large::Species::Cultistwarlord, _) => Some(
Item::new_from_asset_expect("common.items.npc_weapons.hammer.oni_red_hammer"),
),
},
Body::Object(body) => match body {
object::Body::Crossbow => Some(Item::new_from_asset_expect(

View File

@ -68,6 +68,8 @@ impl Body {
quadruped_medium::Species::Dreadhorn => 140.0,
quadruped_medium::Species::Moose => 130.0,
quadruped_medium::Species::Snowleopard => 160.0,
quadruped_medium::Species::Mammoth => 180.0,
quadruped_medium::Species::Ngoubou => 170.0,
},
Body::BipedLarge(body) => match body.species {
biped_large::Species::Slysaurok => 100.0,

View File

@ -227,6 +227,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (6.0, 11.0),
(Blueoni, _) => (10.5, -3.0),
(Redoni, _) => (10.5, -3.0),
(Cultistwarlord, _) => (0.5, 14.5),
},
jaw: match (body.species, body.body_type) {
(Ogre, _) => (0.0, 0.0),
@ -247,6 +248,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (-2.0, -7.0),
(Blueoni, _) => (0.0, 3.5),
(Redoni, _) => (0.0, 3.5),
(Cultistwarlord, _) => (0.0, 3.5),
},
upper_torso: match (body.species, body.body_type) {
(Ogre, Male) => (0.0, 27.5),
@ -268,6 +270,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (-1.0, 18.0),
(Blueoni, _) => (-1.0, 26.5),
(Redoni, _) => (-1.0, 26.5),
(Cultistwarlord, _) => (-1.0, 18.5),
},
lower_torso: match (body.species, body.body_type) {
(Ogre, Male) => (1.0, -7.0),
@ -289,6 +292,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (-1.0, -4.5),
(Blueoni, _) => (0.0, -8.5),
(Redoni, _) => (0.0, -8.5),
(Cultistwarlord, _) => (0.0, -1.5),
},
tail: match (body.species, body.body_type) {
(Werewolf, _) => (-5.5, -2.0),
@ -318,6 +322,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (8.0, 1.0, -1.5),
(Blueoni, _) => (11.0, 2.0, -5.5),
(Redoni, _) => (11.0, 2.0, -5.5),
(Cultistwarlord, _) => (11.5, -1.0, 4.5),
},
hand: match (body.species, body.body_type) {
(Ogre, Male) => (14.5, 0.0, -4.0),
@ -339,6 +344,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (11.5, 1.5, -5.5),
(Blueoni, _) => (13.5, 0.5, -8.0),
(Redoni, _) => (13.5, 0.5, -8.0),
(Cultistwarlord, _) => (11.5, -1.0, -1.0),
},
leg: match (body.species, body.body_type) {
(Ogre, Male) => (0.0, 0.0, -4.0),
@ -360,6 +366,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (3.5, 1.0, -4.0),
(Blueoni, _) => (4.5, 2.0, -5.5),
(Redoni, _) => (4.5, 2.0, -5.5),
(Cultistwarlord, _) => (3.5, -1.0, -8.5),
},
foot: match (body.species, body.body_type) {
(Ogre, Male) => (4.0, 1.0, -12.0),
@ -381,6 +388,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (4.5, 0.5, -9.5),
(Blueoni, _) => (5.0, 5.0, -12.5),
(Redoni, _) => (5.0, 5.0, -12.5),
(Cultistwarlord, _) => (3.5, 0.0, -12.5),
},
scaler: match (body.species, body.body_type) {
(Ogre, Male) => 1.12,
@ -402,6 +410,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => 1.2,
(Blueoni, _) => 1.2,
(Redoni, _) => 1.2,
(Cultistwarlord, _) => 1.0,
},
tempo: match (body.species, body.body_type) {
(Ogre, Male) => 0.9,
@ -434,6 +443,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Harvester, _) => (7.5, 0.0),
(Blueoni, _) => (12.5, 0.0),
(Redoni, _) => (12.5, 0.0),
(Cultistwarlord, _) => (12.5, 0.0),
},
shl: match (body.species, body.body_type) {
(Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),

View File

@ -90,7 +90,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
use comp::bird_medium::{BodyType::*, Species::*};
Self {
head: match (body.species, body.body_type) {
(Duck, _) => (4.0, 3.0),
(Duck, _) => (2.0, 5.5),
(Chicken, Male) => (3.0, 4.5),
(Chicken, Female) => (3.0, 6.0),
(Goose, _) => (5.0, 2.5),
@ -101,7 +101,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Parrot, _) => (0.5, 4.5),
},
chest: match (body.species, body.body_type) {
(Duck, _) => (0.0, 5.0),
(Duck, _) => (0.0, 6.0),
(Chicken, Male) => (0.0, 6.5),
(Chicken, Female) => (0.0, 6.5),
(Goose, _) => (0.0, 8.0),
@ -112,7 +112,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Parrot, _) => (0.0, 5.0),
},
tail: match (body.species, body.body_type) {
(Duck, _) => (-3.0, 1.5),
(Duck, _) => (-5.0, 1.0),
(Chicken, Male) => (-7.5, 3.5),
(Chicken, Female) => (-4.5, 3.0),
(Goose, _) => (-5.0, 3.0),
@ -123,7 +123,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Parrot, _) => (-8.0, -2.0),
},
wing: match (body.species, body.body_type) {
(Duck, _) => (2.75, 0.0, 1.0),
(Duck, _) => (3.5, -0.5, 2.0),
(Chicken, Male) => (3.0, -1.0, 2.5),
(Chicken, Female) => (3.0, -1.5, 2.5),
(Goose, _) => (3.75, -1.0, 2.0),
@ -134,7 +134,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Parrot, _) => (2.0, -4.5, 3.0),
},
foot: match (body.species, body.body_type) {
(Duck, _) => (2.0, -1.5, 4.0),
(Duck, _) => (2.5, -2.0, 4.0),
(Chicken, Male) => (2.0, 0.0, 6.0),
(Chicken, Female) => (2.0, 0.0, 6.0),
(Goose, _) => (2.0, -1.5, 7.0),

View File

@ -175,6 +175,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Moose, Male) => (-0.5, 5.0),
(Moose, Female) => (3.5, 0.5),
(Snowleopard, _) => (1.5, 0.5),
(Mammoth, _) => (0.5, -1.5),
(Ngoubou, _) => (0.5, -2.5),
},
neck: match (body.species, body.body_type) {
(Grolgar, _) => (1.0, -1.0),
@ -208,6 +210,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (0.5, 0.0),
(Moose, _) => (-0.5, 0.5),
(Snowleopard, _) => (0.0, 1.5),
(Mammoth, _) => (0.5, -0.5),
(Ngoubou, _) => (2.0, 1.0),
},
jaw: match (body.species, body.body_type) {
(Grolgar, _) => (7.0, 2.0),
@ -242,6 +246,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Moose, Male) => (10.0, -7.0),
(Moose, Female) => (6.0, -2.5),
(Snowleopard, _) => (3.0, -3.0),
(Mammoth, _) => (4.5, -3.0),
(Ngoubou, _) => (4.5, -4.0),
},
tail: match (body.species, body.body_type) {
(Grolgar, _) => (-11.5, -0.5),
@ -275,6 +281,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (-5.5, 1.5),
(Moose, _) => (-12.5, 3.5),
(Snowleopard, _) => (-10.5, 3.0),
(Mammoth, _) => (-13.0, -1.5),
(Ngoubou, _) => (-12.0, 5.5),
},
torso_front: match (body.species, body.body_type) {
(Grolgar, _) => (10.0, 13.0),
@ -308,6 +316,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (1.5, 15.5),
(Moose, _) => (1.5, 19.5),
(Snowleopard, _) => (1.5, 13.0),
(Mammoth, _) => (11.5, 20.5),
(Ngoubou, _) => (9.5, 16.5),
},
torso_back: match (body.species, body.body_type) {
(Grolgar, _) => (-10.0, 1.5),
@ -341,6 +351,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (-20.0, -1.0),
(Moose, _) => (-10.0, -1.0),
(Snowleopard, _) => (-11.0, 0.0),
(Mammoth, _) => (-13.0, -2.5),
(Ngoubou, _) => (-8.0, -2.0),
},
ears: match (body.species, body.body_type) {
(Grolgar, _) => (5.0, 8.0),
@ -375,6 +387,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Moose, Male) => (6.0, 1.0),
(Moose, Female) => (2.0, 4.5),
(Snowleopard, _) => (1.5, 3.0),
(Mammoth, _) => (12.0, -3.0),
(Ngoubou, _) => (12.0, -3.0),
},
leg_f: match (body.species, body.body_type) {
(Grolgar, _) => (7.5, -5.5, -1.0),
@ -408,6 +422,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (8.5, -7.0, -0.5),
(Moose, _) => (5.5, -4.0, 1.0),
(Snowleopard, _) => (6.5, -4.0, -2.5),
(Mammoth, _) => (10.0, -5.0, -5.0),
(Ngoubou, _) => (7.5, -4.0, -1.5),
},
leg_b: match (body.species, body.body_type) {
(Grolgar, _) => (6.0, -6.5, -4.0),
@ -441,6 +457,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (6.0, 0.0, -3.0),
(Moose, _) => (4.5, -10.0, -2.0),
(Snowleopard, _) => (5.5, -5.0, -1.5),
(Mammoth, _) => (7.5, -7.0, -5.0),
(Ngoubou, _) => (4.5, -9.5, 0.0),
},
feet_f: match (body.species, body.body_type) {
(Grolgar, _) => (0.0, 0.0, -4.0),
@ -474,6 +492,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (-0.5, 0.5, -5.0),
(Moose, _) => (-1.0, 1.5, -9.5),
(Snowleopard, _) => (0.5, 0.5, -4.5),
(Mammoth, _) => (-0.5, -0.5, -6.0),
(Ngoubou, _) => (-1.0, 0.5, -6.0),
},
feet_b: match (body.species, body.body_type) {
(Grolgar, _) => (0.5, -1.5, -3.0),
@ -507,6 +527,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (-0.5, 0.5, -3.5),
(Moose, _) => (-1.0, 0.0, -6.5),
(Snowleopard, _) => (0.5, 0.5, -5.5),
(Mammoth, _) => (0.5, -0.5, -4.5),
(Ngoubou, _) => (0.5, 1.0, -5.5),
},
scaler: match (body.species, body.body_type) {
(Grolgar, _) => (1.05),
@ -531,6 +553,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Dreadhorn, _) => (1.6),
(Moose, _) => (0.95),
(Snowleopard, _) => (0.95),
(Mammoth, _) => (3.0),
(Ngoubou, _) => (1.0),
_ => (0.9),
},
startangle: match (body.species, body.body_type) {
@ -594,6 +618,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
_ => (1.0),
},
feed: match (body.species, body.body_type) {
// TODO: Rework some species to allow for feed anim
(Tuskram, _) => (true, 0.5),
(Mouflon, _) => (true, 0.7),
(Deer, _) => (true, 1.0),