Moss Drake

This commit is contained in:
flo 2022-11-12 13:00:42 +00:00 committed by Justin Shipsey
parent c252f84bdf
commit 0351bf1d63
20 changed files with 157 additions and 1 deletions

View File

@ -0,0 +1,11 @@
#![enable(implicit_some)]
(
name: Automatic,
body: RandomWith("mossdrake"),
alignment: Alignment(Enemy),
loot: LootTable("common.loot_tables.creature.quad_low.moss"),
inventory: (
loadout: FromBody,
),
meta: [],
)

View File

@ -0,0 +1,6 @@
[
(1.0, Item("common.items.crafting_ing.hide.animal_hide")),
(1.0, Item("common.items.crafting_ing.resin")),
(1.0, Item("common.items.log.hardwood")),
(1.0, Item("common.items.flowers.plant_fiber")),
]

View File

@ -1253,6 +1253,10 @@
keyword: "deadwood", keyword: "deadwood",
generic: "Deadwood" generic: "Deadwood"
), ),
mossdrake: (
keyword: "mossdrake",
generic: "Moss Drake"
),
) )
), ),
arthropod: ( arthropod: (

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

View File

@ -1040,4 +1040,56 @@
central: ("armor.empty"), central: ("armor.empty"),
), ),
), ),
(Mossdrake, Male): (
upper: (
offset: (-6.5, -2.0, -5.5),
central: ("npc.mossdrake.male.head_upper"),
),
lower: (
offset: (-6.5, -1.0, -3.0),
central: ("npc.mossdrake.male.head_lower"),
),
jaw: (
offset: (-3.5, -2.0, -5.0),
central: ("npc.mossdrake.male.jaw"),
),
chest: (
offset: (-13.5, -11.5, -12.5),
central: ("npc.mossdrake.male.chest"),
),
tail_rear: (
offset: (-6.5, -24.0, -3.5),
central: ("npc.mossdrake.male.tail_rear"),
),
tail_front: (
offset: (-5.5, -12.0, -6.5),
central: ("npc.mossdrake.male.tail_front"),
),
),
(Mossdrake, Female): (
upper: (
offset: (-6.5, -2.0, -5.5),
central: ("npc.mossdrake.male.head_upper"),
),
lower: (
offset: (-6.5, -1.0, -3.0),
central: ("npc.mossdrake.male.head_lower"),
),
jaw: (
offset: (-3.5, -2.0, -5.0),
central: ("npc.mossdrake.male.jaw"),
),
chest: (
offset: (-13.5, -11.5, -12.5),
central: ("npc.mossdrake.male.chest"),
),
tail_rear: (
offset: (-6.5, -24.0, -3.5),
central: ("npc.mossdrake.male.tail_rear"),
),
tail_front: (
offset: (-5.5, -12.0, -6.5),
central: ("npc.mossdrake.male.tail_front"),
),
),
}) })

View File

@ -719,4 +719,40 @@
lateral: ("npc.deadwood.male.foot_br", false), lateral: ("npc.deadwood.male.foot_br", false),
), ),
), ),
(Mossdrake, Male): (
front_left: (
offset: (-14.0, -1.0, -10.0),
lateral: ("npc.mossdrake.male.foot_fr", false),
),
front_right: (
offset: (0.0, -1.0, -10.0),
lateral: ("npc.mossdrake.male.foot_fr", false),
),
back_left: (
offset: (-14.0, -7.5, -10.0),
lateral: ("npc.mossdrake.male.foot_br", false),
),
back_right: (
offset: (0.0, -7.5, -10.0),
lateral: ("npc.mossdrake.male.foot_br", false),
),
),
(Mossdrake, Female): (
front_left: (
offset: (-14.0, -1.0, -10.0),
lateral: ("npc.mossdrake.male.foot_fr", false),
),
front_right: (
offset: (0.0, -1.0, -10.0),
lateral: ("npc.mossdrake.male.foot_fr", false),
),
back_left: (
offset: (-14.0, -7.5, -10.0),
lateral: ("npc.mossdrake.male.foot_br", false),
),
back_right: (
offset: (0.0, -7.5, -10.0),
lateral: ("npc.mossdrake.male.foot_br", false),
),
),
}) })

View File

@ -14,6 +14,7 @@ SpawnEntry (
(1, (1, 1, "common.entity.wild.aggressive.stag_beetle")), (1, (1, 1, "common.entity.wild.aggressive.stag_beetle")),
(1, (1, 1, "common.entity.wild.peaceful.crawler_moss")), (1, (1, 1, "common.entity.wild.peaceful.crawler_moss")),
(1, (1, 1, "common.entity.wild.aggressive.rootsnapper")), (1, (1, 1, "common.entity.wild.aggressive.rootsnapper")),
(1, (1, 1, "common.entity.wild.aggressive.mossdrake")),
], ],
spawn_mode: Land, spawn_mode: Land,
day_period: [Morning, Noon, Evening], day_period: [Morning, Noon, Evening],

View File

@ -7,6 +7,7 @@ SpawnEntry (
(1, (1, 1, "common.entity.wild.aggressive.ogre")), (1, (1, 1, "common.entity.wild.aggressive.ogre")),
(1, (1, 1, "common.entity.wild.aggressive.swamp_troll")), (1, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
(1, (1, 1, "common.entity.wild.aggressive.cyclops")), (1, (1, 1, "common.entity.wild.aggressive.cyclops")),
(1, (1, 1, "common.entity.wild.aggressive.mossdrake")),
], ],
spawn_mode: Land, spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening], day_period: [Night, Morning, Noon, Evening],

View File

@ -6,6 +6,7 @@ SpawnEntry (
groups: [ groups: [
(1, (1, 2, "common.entity.wild.aggressive.male_lion")), (1, (1, 2, "common.entity.wild.aggressive.male_lion")),
(1, (1, 3, "common.entity.wild.aggressive.hyena")), (1, (1, 3, "common.entity.wild.aggressive.hyena")),
(1, (1, 1, "common.entity.wild.aggressive.mossdrake")),
], ],
spawn_mode: Land, spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening], day_period: [Night, Morning, Noon, Evening],

View File

@ -326,6 +326,7 @@ impl Body {
quadruped_low::Species::Salamander => 65.0, quadruped_low::Species::Salamander => 65.0,
quadruped_low::Species::Elbst => 65.0, quadruped_low::Species::Elbst => 65.0,
quadruped_low::Species::Tortoise => 200.0, quadruped_low::Species::Tortoise => 200.0,
quadruped_low::Species::Mossdrake => 500.0,
_ => 200.0, _ => 200.0,
}, },
Body::QuadrupedMedium(body) => match body.species { Body::QuadrupedMedium(body) => match body.species {
@ -496,6 +497,7 @@ impl Body {
quadruped_low::Species::Salamander => Vec3::new(1.7, 4.0, 1.3), quadruped_low::Species::Salamander => Vec3::new(1.7, 4.0, 1.3),
quadruped_low::Species::Elbst => Vec3::new(1.7, 4.0, 1.3), quadruped_low::Species::Elbst => Vec3::new(1.7, 4.0, 1.3),
quadruped_low::Species::Tortoise => Vec3::new(1.7, 2.7, 1.5), quadruped_low::Species::Tortoise => Vec3::new(1.7, 2.7, 1.5),
quadruped_low::Species::Mossdrake => Vec3::new(2.0, 4.7, 2.5),
_ => Vec3::new(1.0, 1.6, 1.3), _ => Vec3::new(1.0, 1.6, 1.3),
}, },
Body::Ship(ship) => ship.dimensions(), Body::Ship(ship) => ship.dimensions(),
@ -796,6 +798,7 @@ impl Body {
quadruped_low::Species::Lavadrake => 160, quadruped_low::Species::Lavadrake => 160,
quadruped_low::Species::Basilisk => 200, quadruped_low::Species::Basilisk => 200,
quadruped_low::Species::Deadwood => 120, quadruped_low::Species::Deadwood => 120,
quadruped_low::Species::Mossdrake => 160,
_ => 70, _ => 70,
}, },
Body::Arthropod(arthropod) => match arthropod.species { Body::Arthropod(arthropod) => match arthropod.species {

View File

@ -59,6 +59,7 @@ make_case_elim!(
Rootsnapper = 17, Rootsnapper = 17,
Reefsnapper = 18, Reefsnapper = 18,
Elbst = 19, Elbst = 19,
Mossdrake = 20,
} }
); );
@ -87,6 +88,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub basilisk: SpeciesMeta, pub basilisk: SpeciesMeta,
pub deadwood: SpeciesMeta, pub deadwood: SpeciesMeta,
pub icedrake: SpeciesMeta, pub icedrake: SpeciesMeta,
pub mossdrake: SpeciesMeta,
} }
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
@ -115,11 +117,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::Basilisk => &self.basilisk, Species::Basilisk => &self.basilisk,
Species::Deadwood => &self.deadwood, Species::Deadwood => &self.deadwood,
Species::Icedrake => &self.icedrake, Species::Icedrake => &self.icedrake,
Species::Mossdrake => &self.mossdrake,
} }
} }
} }
pub const ALL_SPECIES: [Species; 20] = [ pub const ALL_SPECIES: [Species; 21] = [
Species::Crocodile, Species::Crocodile,
Species::SeaCrocodile, Species::SeaCrocodile,
Species::Alligator, Species::Alligator,
@ -140,6 +143,7 @@ pub const ALL_SPECIES: [Species; 20] = [
Species::Basilisk, Species::Basilisk,
Species::Deadwood, Species::Deadwood,
Species::Icedrake, Species::Icedrake,
Species::Mossdrake,
]; ];
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> { impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {

View File

@ -135,6 +135,7 @@ impl Body {
quadruped_low::Species::Icedrake => 100.0, quadruped_low::Species::Icedrake => 100.0,
quadruped_low::Species::Basilisk => 90.0, quadruped_low::Species::Basilisk => 90.0,
quadruped_low::Species::Deadwood => 140.0, quadruped_low::Species::Deadwood => 140.0,
quadruped_low::Species::Mossdrake => 100.0,
}, },
Body::Ship(_) => 0.0, Body::Ship(_) => 0.0,
Body::Arthropod(arthropod) => match arthropod.species { Body::Arthropod(arthropod) => match arthropod.species {
@ -206,6 +207,7 @@ impl Body {
quadruped_low::Species::Rootsnapper => 1.8, quadruped_low::Species::Rootsnapper => 1.8,
quadruped_low::Species::Lavadrake => 1.7, quadruped_low::Species::Lavadrake => 1.7,
quadruped_low::Species::Icedrake => 1.7, quadruped_low::Species::Icedrake => 1.7,
quadruped_low::Species::Mossdrake => 1.7,
_ => 2.0, _ => 2.0,
}, },
Body::Ship(ship) if ship.has_water_thrust() => 0.1, Body::Ship(ship) if ship.has_water_thrust() => 0.1,

View File

@ -171,6 +171,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (7.0, 8.0), (Icedrake, _) => (7.0, 8.0),
(Basilisk, _) => (5.0, 2.5), (Basilisk, _) => (5.0, 2.5),
(Deadwood, _) => (2.0, -3.0), (Deadwood, _) => (2.0, -3.0),
(Mossdrake, _) => (7.0, 8.0),
}, },
head_lower: match (body.species, body.body_type) { head_lower: match (body.species, body.body_type) {
(Crocodile, _) => (8.0, 0.0), (Crocodile, _) => (8.0, 0.0),
@ -193,6 +194,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (11.5, -6.0), (Icedrake, _) => (11.5, -6.0),
(Basilisk, _) => (12.5, -5.5), (Basilisk, _) => (12.5, -5.5),
(Deadwood, _) => (0.0, 0.0), (Deadwood, _) => (0.0, 0.0),
(Mossdrake, _) => (9.0, -6.0),
}, },
jaw: match (body.species, body.body_type) { jaw: match (body.species, body.body_type) {
(Crocodile, _) => (2.5, -3.0), (Crocodile, _) => (2.5, -3.0),
@ -215,6 +217,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-0.5, -8.0), (Icedrake, _) => (-0.5, -8.0),
(Basilisk, _) => (0.5, -3.0), (Basilisk, _) => (0.5, -3.0),
(Deadwood, _) => (-1.0, 4.0), (Deadwood, _) => (-1.0, 4.0),
(Mossdrake, _) => (3.0, -5.0),
}, },
chest: match (body.species, body.body_type) { chest: match (body.species, body.body_type) {
(Crocodile, _) => (0.0, 5.0), (Crocodile, _) => (0.0, 5.0),
@ -237,6 +240,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (0.0, 16.5), (Icedrake, _) => (0.0, 16.5),
(Basilisk, _) => (0.0, 15.0), (Basilisk, _) => (0.0, 15.0),
(Deadwood, _) => (0.0, 12.0), (Deadwood, _) => (0.0, 12.0),
(Mossdrake, _) => (0.0, 16.5),
}, },
tail_rear: match (body.species, body.body_type) { tail_rear: match (body.species, body.body_type) {
(Crocodile, _) => (-12.5, -1.0), (Crocodile, _) => (-12.5, -1.0),
@ -259,6 +263,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-12.0, 1.0), (Icedrake, _) => (-12.0, 1.0),
(Basilisk, _) => (-10.0, -4.0), (Basilisk, _) => (-10.0, -4.0),
(Deadwood, _) => (-15.0, 4.0), (Deadwood, _) => (-15.0, 4.0),
(Mossdrake, _) => (-12.0, -2.0),
}, },
tail_front: match (body.species, body.body_type) { tail_front: match (body.species, body.body_type) {
(Crocodile, _) => (-6.0, 0.0), (Crocodile, _) => (-6.0, 0.0),
@ -281,6 +286,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-7.0, -4.5), (Icedrake, _) => (-7.0, -4.5),
(Basilisk, _) => (-6.5, -5.5), (Basilisk, _) => (-6.5, -5.5),
(Deadwood, _) => (-1.0, 4.0), (Deadwood, _) => (-1.0, 4.0),
(Mossdrake, _) => (-7.0, -4.5),
}, },
feet_f: match (body.species, body.body_type) { feet_f: match (body.species, body.body_type) {
(Crocodile, _) => (3.5, 6.0, -1.0), (Crocodile, _) => (3.5, 6.0, -1.0),
@ -303,6 +309,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (4.5, 4.0, -6.5), (Icedrake, _) => (4.5, 4.0, -6.5),
(Basilisk, _) => (6.5, 4.0, -2.0), (Basilisk, _) => (6.5, 4.0, -2.0),
(Deadwood, _) => (3.5, 4.0, -5.0), (Deadwood, _) => (3.5, 4.0, -5.0),
(Mossdrake, _) => (4.5, 4.0, -6.5),
}, },
feet_b: match (body.species, body.body_type) { feet_b: match (body.species, body.body_type) {
(Crocodile, _) => (3.5, -6.0, -1.0), (Crocodile, _) => (3.5, -6.0, -1.0),
@ -325,6 +332,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (3.5, -8.0, -6.5), (Icedrake, _) => (3.5, -8.0, -6.5),
(Basilisk, _) => (5.5, -6.5, -2.0), (Basilisk, _) => (5.5, -6.5, -2.0),
(Deadwood, _) => (3.5, -6.0, -5.0), (Deadwood, _) => (3.5, -6.0, -5.0),
(Mossdrake, _) => (3.5, -8.0, -6.5),
}, },
lean: match (body.species, body.body_type) { lean: match (body.species, body.body_type) {
(Pangolin, _) => (0.4, 0.0), (Pangolin, _) => (0.4, 0.0),
@ -348,6 +356,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Lavadrake, _) => 1.12, (Lavadrake, _) => 1.12,
(Icedrake, _) => 1.12, (Icedrake, _) => 1.12,
(Basilisk, _) => 1.3, (Basilisk, _) => 1.3,
(Mossdrake, _) => 1.12,
_ => 0.9, _ => 0.9,
}, },
tempo: match (body.species, body.body_type) { tempo: match (body.species, body.body_type) {
@ -368,6 +377,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Lavadrake, _) => 1.1, (Lavadrake, _) => 1.1,
(Icedrake, _) => 1.1, (Icedrake, _) => 1.1,
(Basilisk, _) => 0.8, (Basilisk, _) => 0.8,
(Mossdrake, _) => 1.1,
_ => 1.0, _ => 1.0,
}, },
} }
@ -396,6 +406,7 @@ fn mount_point(body: &Body) -> Vec3<f32> {
(Icedrake, _) => (0.0, -8.0, 2.5), (Icedrake, _) => (0.0, -8.0, 2.5),
(Basilisk, _) => (0.0, -2.0, 2.0), (Basilisk, _) => (0.0, -2.0, 2.0),
(Deadwood, _) => (0.0, -2.0, -3.0), (Deadwood, _) => (0.0, -2.0, -3.0),
(Mossdrake, _) => (0.0, 2.0, -2.5),
} }
.into() .into()
} }