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",
generic: "Deadwood"
),
mossdrake: (
keyword: "mossdrake",
generic: "Moss Drake"
),
)
),
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"),
),
),
(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),
),
),
(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.peaceful.crawler_moss")),
(1, (1, 1, "common.entity.wild.aggressive.rootsnapper")),
(1, (1, 1, "common.entity.wild.aggressive.mossdrake")),
],
spawn_mode: Land,
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.swamp_troll")),
(1, (1, 1, "common.entity.wild.aggressive.cyclops")),
(1, (1, 1, "common.entity.wild.aggressive.mossdrake")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

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

View File

@ -326,6 +326,7 @@ impl Body {
quadruped_low::Species::Salamander => 65.0,
quadruped_low::Species::Elbst => 65.0,
quadruped_low::Species::Tortoise => 200.0,
quadruped_low::Species::Mossdrake => 500.0,
_ => 200.0,
},
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::Elbst => Vec3::new(1.7, 4.0, 1.3),
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),
},
Body::Ship(ship) => ship.dimensions(),
@ -796,6 +798,7 @@ impl Body {
quadruped_low::Species::Lavadrake => 160,
quadruped_low::Species::Basilisk => 200,
quadruped_low::Species::Deadwood => 120,
quadruped_low::Species::Mossdrake => 160,
_ => 70,
},
Body::Arthropod(arthropod) => match arthropod.species {

View File

@ -59,6 +59,7 @@ make_case_elim!(
Rootsnapper = 17,
Reefsnapper = 18,
Elbst = 19,
Mossdrake = 20,
}
);
@ -87,6 +88,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub basilisk: SpeciesMeta,
pub deadwood: SpeciesMeta,
pub icedrake: SpeciesMeta,
pub mossdrake: 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::Deadwood => &self.deadwood,
Species::Icedrake => &self.icedrake,
Species::Mossdrake => &self.mossdrake,
}
}
}
pub const ALL_SPECIES: [Species; 20] = [
pub const ALL_SPECIES: [Species; 21] = [
Species::Crocodile,
Species::SeaCrocodile,
Species::Alligator,
@ -140,6 +143,7 @@ pub const ALL_SPECIES: [Species; 20] = [
Species::Basilisk,
Species::Deadwood,
Species::Icedrake,
Species::Mossdrake,
];
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::Basilisk => 90.0,
quadruped_low::Species::Deadwood => 140.0,
quadruped_low::Species::Mossdrake => 100.0,
},
Body::Ship(_) => 0.0,
Body::Arthropod(arthropod) => match arthropod.species {
@ -206,6 +207,7 @@ impl Body {
quadruped_low::Species::Rootsnapper => 1.8,
quadruped_low::Species::Lavadrake => 1.7,
quadruped_low::Species::Icedrake => 1.7,
quadruped_low::Species::Mossdrake => 1.7,
_ => 2.0,
},
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),
(Basilisk, _) => (5.0, 2.5),
(Deadwood, _) => (2.0, -3.0),
(Mossdrake, _) => (7.0, 8.0),
},
head_lower: match (body.species, body.body_type) {
(Crocodile, _) => (8.0, 0.0),
@ -193,6 +194,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (11.5, -6.0),
(Basilisk, _) => (12.5, -5.5),
(Deadwood, _) => (0.0, 0.0),
(Mossdrake, _) => (9.0, -6.0),
},
jaw: match (body.species, body.body_type) {
(Crocodile, _) => (2.5, -3.0),
@ -215,6 +217,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-0.5, -8.0),
(Basilisk, _) => (0.5, -3.0),
(Deadwood, _) => (-1.0, 4.0),
(Mossdrake, _) => (3.0, -5.0),
},
chest: match (body.species, body.body_type) {
(Crocodile, _) => (0.0, 5.0),
@ -237,6 +240,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (0.0, 16.5),
(Basilisk, _) => (0.0, 15.0),
(Deadwood, _) => (0.0, 12.0),
(Mossdrake, _) => (0.0, 16.5),
},
tail_rear: match (body.species, body.body_type) {
(Crocodile, _) => (-12.5, -1.0),
@ -259,6 +263,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-12.0, 1.0),
(Basilisk, _) => (-10.0, -4.0),
(Deadwood, _) => (-15.0, 4.0),
(Mossdrake, _) => (-12.0, -2.0),
},
tail_front: match (body.species, body.body_type) {
(Crocodile, _) => (-6.0, 0.0),
@ -281,6 +286,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Icedrake, _) => (-7.0, -4.5),
(Basilisk, _) => (-6.5, -5.5),
(Deadwood, _) => (-1.0, 4.0),
(Mossdrake, _) => (-7.0, -4.5),
},
feet_f: match (body.species, body.body_type) {
(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),
(Basilisk, _) => (6.5, 4.0, -2.0),
(Deadwood, _) => (3.5, 4.0, -5.0),
(Mossdrake, _) => (4.5, 4.0, -6.5),
},
feet_b: match (body.species, body.body_type) {
(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),
(Basilisk, _) => (5.5, -6.5, -2.0),
(Deadwood, _) => (3.5, -6.0, -5.0),
(Mossdrake, _) => (3.5, -8.0, -6.5),
},
lean: match (body.species, body.body_type) {
(Pangolin, _) => (0.4, 0.0),
@ -348,6 +356,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Lavadrake, _) => 1.12,
(Icedrake, _) => 1.12,
(Basilisk, _) => 1.3,
(Mossdrake, _) => 1.12,
_ => 0.9,
},
tempo: match (body.species, body.body_type) {
@ -368,6 +377,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Lavadrake, _) => 1.1,
(Icedrake, _) => 1.1,
(Basilisk, _) => 0.8,
(Mossdrake, _) => 1.1,
_ => 1.0,
},
}
@ -396,6 +406,7 @@ fn mount_point(body: &Body) -> Vec3<f32> {
(Icedrake, _) => (0.0, -8.0, 2.5),
(Basilisk, _) => (0.0, -2.0, 2.0),
(Deadwood, _) => (0.0, -2.0, -3.0),
(Mossdrake, _) => (0.0, 2.0, -2.5),
}
.into()
}