mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'SeaCrocodile' into 'master'
Sea crocodile See merge request veloren/veloren!3146
This commit is contained in:
commit
ca7b048184
11
assets/common/entity/wild/aggressive/sea_crocodile.ron
Normal file
11
assets/common/entity/wild/aggressive/sea_crocodile.ron
Normal file
@ -0,0 +1,11 @@
|
||||
EntityConfig (
|
||||
name: Automatic,
|
||||
body: RandomWith("sea_crocodile"),
|
||||
alignment: Alignment(Enemy),
|
||||
|
||||
loot: LootTable("common.loot_tables.creature.quad_low.generic"),
|
||||
|
||||
hands: Uninit,
|
||||
|
||||
meta: [],
|
||||
)
|
@ -1150,6 +1150,10 @@
|
||||
keyword: "crocodile",
|
||||
generic: "Crocodile"
|
||||
),
|
||||
sea_crocodile: (
|
||||
keyword: "sea_crocodile",
|
||||
generic: "SeaCrocodile"
|
||||
),
|
||||
alligator: (
|
||||
keyword: "alligator",
|
||||
generic: "Alligator"
|
||||
|
@ -999,6 +999,13 @@
|
||||
],
|
||||
threshold: 1.0,
|
||||
),
|
||||
Utterance(Angry, SeaCrocodile): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.utterance.sea_crocodile_angry1",
|
||||
"voxygen.audio.sfx.utterance.sea_crocodile_angry2",
|
||||
],
|
||||
threshold: 1.0,
|
||||
),
|
||||
Utterance(Angry, Saurok): (
|
||||
files: [
|
||||
"voxygen.audio.sfx.utterance.saurok_angry1",
|
||||
|
BIN
assets/voxygen/audio/sfx/utterance/sea_crocodile_angry1.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/utterance/sea_crocodile_angry1.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/audio/sfx/utterance/sea_crocodile_angry2.ogg
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/audio/sfx/utterance/sea_crocodile_angry2.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/foot_br.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/foot_br.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/foot_fr.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/foot_fr.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/head_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/head_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/head_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/head_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/tail_front.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/tail_front.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/tail_rear.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/sea_crocodile/male/tail_rear.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -51,6 +51,58 @@
|
||||
central: ("npc.crocodile.male.tail_front"),
|
||||
),
|
||||
),
|
||||
(SeaCrocodile, Male): (
|
||||
upper: (
|
||||
offset: (-3.0, 5.0, -1.0),
|
||||
central: ("npc.sea_crocodile.male.head_upper"),
|
||||
),
|
||||
lower: (
|
||||
offset: (-4.0, 1.5, -3.0),
|
||||
central: ("npc.sea_crocodile.male.head_lower"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (-4.0, 2.5, -1.5),
|
||||
central: ("npc.sea_crocodile.male.jaw"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-6.0, -7.5, -3.0),
|
||||
central: ("npc.sea_crocodile.male.chest"),
|
||||
),
|
||||
tail_rear: (
|
||||
offset: (-1.0, -14.0, -1.0),
|
||||
central: ("npc.sea_crocodile.male.tail_rear"),
|
||||
),
|
||||
tail_front: (
|
||||
offset: (-2.0, -11.0, -3.0),
|
||||
central: ("npc.sea_crocodile.male.tail_front"),
|
||||
),
|
||||
),
|
||||
(SeaCrocodile, Female): (
|
||||
upper: (
|
||||
offset: (-3.0, 5.0, -1.0),
|
||||
central: ("npc.sea_crocodile.male.head_upper"),
|
||||
),
|
||||
lower: (
|
||||
offset: (-4.0, 1.5, -3.0),
|
||||
central: ("npc.sea_crocodile.male.head_lower"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (-4.0, 2.5, -1.5),
|
||||
central: ("npc.sea_crocodile.male.jaw"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-6.0, -7.5, -3.0),
|
||||
central: ("npc.sea_crocodile.male.chest"),
|
||||
),
|
||||
tail_rear: (
|
||||
offset: (-1.0, -14.0, -1.0),//full length of y dimension
|
||||
central: ("npc.sea_crocodile.male.tail_rear"),
|
||||
),
|
||||
tail_front: (
|
||||
offset: (-2.0, -11.0, -3.0),//full length of y dimension
|
||||
central: ("npc.sea_crocodile.male.tail_front"),
|
||||
),
|
||||
),
|
||||
(Alligator, Male): (
|
||||
upper: (
|
||||
offset: (-4.0, -0.0, -2.5),
|
||||
|
@ -35,6 +35,42 @@
|
||||
lateral: ("npc.crocodile.male.foot_br", false),
|
||||
),
|
||||
),
|
||||
(SeaCrocodile, Male): (
|
||||
front_left: (
|
||||
offset: (-7.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension
|
||||
lateral: ("npc.sea_crocodile.male.foot_fr", false),
|
||||
),
|
||||
front_right: (
|
||||
offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension
|
||||
lateral: ("npc.sea_crocodile.male.foot_fr", false),
|
||||
),
|
||||
back_left: (
|
||||
offset: (-8.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension
|
||||
lateral: ("npc.sea_crocodile.male.foot_br", false),
|
||||
),
|
||||
back_right: (
|
||||
offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension
|
||||
lateral: ("npc.sea_crocodile.male.foot_br", false),
|
||||
),
|
||||
),
|
||||
(SeaCrocodile, Female): (
|
||||
front_left: (
|
||||
offset: (-7.0, -0.0, -4.0),
|
||||
lateral: ("npc.sea_crocodile.male.foot_fr", false),
|
||||
),
|
||||
front_right: (
|
||||
offset: (0.0, -0.0, -4.0),
|
||||
lateral: ("npc.sea_crocodile.male.foot_fr", false),
|
||||
),
|
||||
back_left: (
|
||||
offset: (-8.0, -0.0, -4.0),
|
||||
lateral: ("npc.sea_crocodile.male.foot_br", false),
|
||||
),
|
||||
back_right: (
|
||||
offset: (0.0, -0.0, -4.0),
|
||||
lateral: ("npc.sea_crocodile.male.foot_br", false),
|
||||
),
|
||||
),
|
||||
(Alligator, Male): (
|
||||
front_left: (
|
||||
offset: (-7.0, 0.0, -4.0),
|
||||
|
13
assets/world/wildlife/spawn/tropical/ocean.ron
Normal file
13
assets/world/wildlife/spawn/tropical/ocean.ron
Normal file
@ -0,0 +1,13 @@
|
||||
SpawnEntry (
|
||||
name: "Ocean water wildlife.",
|
||||
note: "Ocean inhabitants",
|
||||
rules: [
|
||||
Pack(
|
||||
groups: [
|
||||
(1, (1, 3, "common.entity.wild.aggressive.sea_crocodile")),
|
||||
],
|
||||
is_underwater: true,
|
||||
day_period: [Night, Morning, Noon, Evening],
|
||||
),
|
||||
],
|
||||
)
|
@ -230,6 +230,7 @@ impl Body {
|
||||
// saltwater crocodiles can weigh around 1 ton, but our version is the size of an
|
||||
// alligator or smaller, so whatever
|
||||
quadruped_low::Species::Crocodile => 360.0,
|
||||
quadruped_low::Species::SeaCrocodile => 410.0,
|
||||
quadruped_low::Species::Deadwood => 400.0,
|
||||
quadruped_low::Species::Lavadrake => 500.0,
|
||||
quadruped_low::Species::Monitor => 100.0,
|
||||
@ -645,6 +646,7 @@ impl Body {
|
||||
},
|
||||
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
|
||||
quadruped_low::Species::Crocodile => 80,
|
||||
quadruped_low::Species::SeaCrocodile => 110,
|
||||
quadruped_low::Species::Alligator => 90,
|
||||
quadruped_low::Species::Monitor => 60,
|
||||
quadruped_low::Species::Asp => 75,
|
||||
|
@ -54,6 +54,7 @@ make_case_elim!(
|
||||
Basilisk = 12,
|
||||
Deadwood = 13,
|
||||
Icedrake = 14,
|
||||
SeaCrocodile = 15,
|
||||
}
|
||||
);
|
||||
|
||||
@ -63,6 +64,7 @@ make_case_elim!(
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
pub struct AllSpecies<SpeciesMeta> {
|
||||
pub crocodile: SpeciesMeta,
|
||||
pub sea_crocodile: SpeciesMeta,
|
||||
pub alligator: SpeciesMeta,
|
||||
pub salamander: SpeciesMeta,
|
||||
pub monitor: SpeciesMeta,
|
||||
@ -86,6 +88,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
fn index(&self, &index: &'a Species) -> &Self::Output {
|
||||
match index {
|
||||
Species::Crocodile => &self.crocodile,
|
||||
Species::SeaCrocodile => &self.sea_crocodile,
|
||||
Species::Alligator => &self.alligator,
|
||||
Species::Salamander => &self.salamander,
|
||||
Species::Monitor => &self.monitor,
|
||||
@ -104,8 +107,9 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 15] = [
|
||||
pub const ALL_SPECIES: [Species; 16] = [
|
||||
Species::Crocodile,
|
||||
Species::SeaCrocodile,
|
||||
Species::Alligator,
|
||||
Species::Salamander,
|
||||
Species::Monitor,
|
||||
|
@ -229,6 +229,7 @@ fn default_main_tool(body: &Body) -> Item {
|
||||
"common.items.npc_weapons.unique.asp",
|
||||
)),
|
||||
quadruped_low::Species::Crocodile
|
||||
| quadruped_low::Species::SeaCrocodile
|
||||
| quadruped_low::Species::Alligator
|
||||
| quadruped_low::Species::Salamander => Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.quadlowtail",
|
||||
|
@ -113,6 +113,7 @@ impl Body {
|
||||
Body::Theropod(_) => 135.0,
|
||||
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
|
||||
quadruped_low::Species::Crocodile => 130.0,
|
||||
quadruped_low::Species::SeaCrocodile => 120.0,
|
||||
quadruped_low::Species::Alligator => 110.0,
|
||||
quadruped_low::Species::Salamander => 85.0,
|
||||
quadruped_low::Species::Monitor => 160.0,
|
||||
|
@ -150,6 +150,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
Self {
|
||||
head_upper: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (1.5, 2.0),
|
||||
(SeaCrocodile, _) => (1.5, 2.0),
|
||||
(Alligator, _) => (0.5, 2.0),
|
||||
(Salamander, Male) => (0.5, 2.5),
|
||||
(Salamander, Female) => (0.5, 1.0),
|
||||
@ -168,6 +169,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
head_lower: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (8.0, 0.0),
|
||||
(SeaCrocodile, _) => (8.0, 0.0),
|
||||
(Alligator, _) => (9.0, 0.25),
|
||||
(Salamander, Male) => (9.0, 0.0),
|
||||
(Salamander, Female) => (9.0, 0.0),
|
||||
@ -186,6 +188,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (2.5, -3.0),
|
||||
(SeaCrocodile, _) => (2.5, -3.0),
|
||||
(Alligator, _) => (2.5, -2.0),
|
||||
(Salamander, Male) => (0.0, -2.0),
|
||||
(Salamander, Female) => (0.5, -1.0),
|
||||
@ -204,6 +207,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
chest: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (0.0, 5.0),
|
||||
(SeaCrocodile, _) => (0.0, 5.0),
|
||||
(Alligator, _) => (0.0, 5.0),
|
||||
(Salamander, Male) => (0.0, 5.0),
|
||||
(Salamander, Female) => (0.0, 5.0),
|
||||
@ -222,6 +226,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
tail_rear: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (-12.5, -1.0),
|
||||
(SeaCrocodile, _) => (-12.5, -1.0),
|
||||
(Alligator, _) => (-13.0, -1.0),
|
||||
(Salamander, Male) => (-8.0, 0.0),
|
||||
(Salamander, Female) => (-6.5, 0.0),
|
||||
@ -240,6 +245,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
tail_front: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (-6.0, 0.0),
|
||||
(SeaCrocodile, _) => (-6.0, 0.0),
|
||||
(Alligator, _) => (-5.0, 0.0),
|
||||
(Salamander, Male) => (-7.5, 0.0),
|
||||
(Salamander, Female) => (-7.0, 0.0),
|
||||
@ -258,6 +264,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
feet_f: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (3.5, 6.0, -1.0),
|
||||
(SeaCrocodile, _) => (3.5, 6.0, -1.0),
|
||||
(Alligator, _) => (4.5, 4.25, -1.0),
|
||||
(Salamander, Male) => (5.0, 5.0, -2.0),
|
||||
(Salamander, Female) => (5.0, 4.5, -2.0),
|
||||
@ -276,6 +283,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
feet_b: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (3.5, -6.0, -1.0),
|
||||
(SeaCrocodile, _) => (3.5, -6.0, -1.0),
|
||||
(Alligator, _) => (4.5, -5.5, -1.0),
|
||||
(Salamander, Male) => (4.0, -6.0, -2.0),
|
||||
(Salamander, Female) => (3.0, -6.0, -2.0),
|
||||
@ -298,6 +306,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
scaler: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (1.05),
|
||||
(SeaCrocodile, _) => (1.05),
|
||||
(Alligator, _) => (1.12),
|
||||
(Salamander, _) => (1.12),
|
||||
(Monitor, _) => (0.9),
|
||||
@ -313,6 +322,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
},
|
||||
tempo: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (0.7),
|
||||
(SeaCrocodile, _) => (0.7),
|
||||
(Alligator, _) => (0.7),
|
||||
(Salamander, _) => (0.85),
|
||||
(Monitor, _) => (1.4),
|
||||
@ -333,6 +343,7 @@ fn mount_point(body: &Body) -> Vec3<f32> {
|
||||
use comp::quadruped_low::{BodyType::*, Species::*};
|
||||
match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (0.0, 4.5, -2.0),
|
||||
(SeaCrocodile, _) => (0.0, 4.5, -2.0),
|
||||
(Alligator, _) => (0.0, 4.25, -2.0),
|
||||
(Salamander, Male) => (0.0, 5.0, -1.0),
|
||||
(Salamander, Female) => (0.0, 5.0, -1.0),
|
||||
|
@ -207,6 +207,7 @@ pub enum VoiceKind {
|
||||
Adlet,
|
||||
Antelope,
|
||||
Alligator,
|
||||
SeaCrocodile,
|
||||
Saurok,
|
||||
Cat,
|
||||
Goat,
|
||||
@ -225,6 +226,7 @@ fn body_to_voice(body: &Body) -> Option<VoiceKind> {
|
||||
Body::QuadrupedLow(body) => match body.species {
|
||||
quadruped_low::Species::Maneater => VoiceKind::Maneater,
|
||||
quadruped_low::Species::Alligator => VoiceKind::Alligator,
|
||||
quadruped_low::Species::SeaCrocodile => VoiceKind::SeaCrocodile,
|
||||
quadruped_low::Species::Asp => VoiceKind::Asp,
|
||||
_ => return None,
|
||||
},
|
||||
|
@ -262,6 +262,15 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
|
||||
0.0
|
||||
}
|
||||
}),
|
||||
// Ocean animals
|
||||
("world.wildlife.spawn.tropical.ocean", |_c, col| {
|
||||
close(col.temp, CONFIG.tropical_temp, 0.1) / 10.0
|
||||
* if col.water_dist.map(|d| d < 1.0).unwrap_or(false) && col.tree_density == 0.0 {
|
||||
0.001
|
||||
} else {
|
||||
0.0
|
||||
}
|
||||
}),
|
||||
// Rainforest area animals
|
||||
("world.wildlife.spawn.tropical.rainforest", |c, _col| {
|
||||
close(c.temp, CONFIG.tropical_temp + 0.1, 0.4)
|
||||
|
Loading…
Reference in New Issue
Block a user