fix_salamander_and_elbst

This commit is contained in:
flo 2022-09-13 17:32:53 +00:00 committed by Joshua Yanovski
parent aea4aca057
commit dc688bccb9
54 changed files with 384 additions and 134 deletions

View File

@ -271,6 +271,11 @@
secondary: "common.abilities.custom.theropodbasic.triplestrike",
abilities: [],
),
Custom("Theropod Small"): (
primary: "common.abilities.custom.theropodsmall.triplestrike",
secondary: "common.abilities.custom.theropodsmall.triplestrike",
abilities: [],
),
Custom("Theropod Bird"): (
primary: "common.abilities.custom.theropodbird.triplestrike",
secondary: "common.abilities.custom.theropodbird.triplestrike",

View File

@ -0,0 +1,60 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 17.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 1.0,
damage_kind: Crushing,
),
(
stage: 2,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 20.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 1.0,
damage_kind: Crushing,
),
(
stage: 3,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 22.5,
poise_damage_increase: 0,
knockback: 25.0,
range: 5.5,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.125,
hit_timing: 0.5,
base_recover_duration: 1.6,
forward_movement: 1.0,
damage_kind: Crushing,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7,
)

View File

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

View File

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

View File

@ -2,8 +2,8 @@
(
name: Name("Elbst"),
body: Exact(QuadrupedLow((
species: Salamander,
body_type: Female,
species: Elbst,
body_type: Male,
))),
alignment: Alignment(Wild),
loot: LootTable("common.loot_tables.creature.quad_low.elbst"),
@ -11,4 +11,4 @@
loadout: FromBody,
),
meta: [],
)
)

View File

@ -0,0 +1,21 @@
ItemDef(
name: "Theropod Small",
description: "testing123",
kind: Tool((
kind: Natural,
hands: Two,
stats: (
equip_time_secs: 0.01,
power: 1.0,
effect_power: 1.0,
speed: 1.0,
crit_chance: 0.0625,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Low,
tags: [],
ability_spec: Some(Custom("Theropod Small")),
)

View File

@ -0,0 +1,5 @@
[
(2.0, Item("common.items.food.meat.tough_raw")),
(3.0, Item("common.items.crafting_ing.hide.carapace")),
(1.0, Item("common.items.crafting_ing.coral_branch")),
]

View File

@ -0,0 +1,5 @@
[
(2.0, Item("common.items.food.meat.tough_raw")),
(3.0, Item("common.items.crafting_ing.hide.carapace")),
(1.0, Item("common.items.crafting_ing.animal_misc.lively_vine")),
]

View File

@ -1185,6 +1185,10 @@
keyword: "salamander",
generic: "Salamander"
),
elbst: (
keyword: "elbst",
generic: "Elbst"
),
monitor: (
keyword: "monitor",
generic: "Monitor"

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

BIN
assets/voxygen/voxel/npc/elbst/male/tail_rear.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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -184,27 +184,79 @@
(Salamander, Female): (
upper: (
offset: (-6.5, 0.0, -2.0),
central: ("npc.salamander.female.head_upper"),
central: ("npc.salamander.male.head_upper"),
),
lower: (
offset: (-4.5, -2.0, -3.0),
central: ("npc.salamander.female.head_lower"),
offset: (-4.5, -1.5, -3.0),
central: ("npc.salamander.male.head_lower"),
),
jaw: (
offset: (-6.5, 0.0, -3.5,),
central: ("npc.salamander.female.jaw"),
offset: (-6.5, 0.0, -3.0),
central: ("npc.salamander.male.jaw"),
),
chest: (
offset: (-6.5, -8.5, -3.0),
central: ("npc.salamander.female.chest"),
central: ("npc.salamander.male.chest"),
),
tail_rear: (
offset: (-3.5, -13.0, -2.5),
central: ("npc.salamander.female.tail_rear"),
offset: (-3.5, -13.0, -3.0),
central: ("npc.salamander.male.tail_rear"),
),
tail_front: (
offset: (-4.5, -9.0, -3.0),
central: ("npc.salamander.male.tail_front"),
),
),
(Elbst, Male): (
upper: (
offset: (-9.5, 0.0, -2.0),
central: ("npc.elbst.male.head_upper"),
),
lower: (
offset: (-4.5, -1.5, -3.0),
central: ("npc.elbst.male.head_lower"),
),
jaw: (
offset: (-6.5, 0.0, -2.0),
central: ("npc.elbst.male.jaw"),
),
chest: (
offset: (-8.5, -8.5, -3.0),
central: ("npc.elbst.male.chest"),
),
tail_rear: (
offset: (-6.5, -13.0, -2.5),
central: ("npc.elbst.male.tail_rear"),
),
tail_front: (
offset: (-5.5, -8.0, -3.0),
central: ("npc.salamander.female.tail_front"),
central: ("npc.elbst.male.tail_front"),
),
),
(Elbst, Female): (
upper: (
offset: (-9.5, 0.0, -2.0),
central: ("npc.elbst.male.head_upper"),
),
lower: (
offset: (-4.5, -1.5, -3.0),
central: ("npc.elbst.male.head_lower"),
),
jaw: (
offset: (-6.5, 0.0, -2.0),
central: ("npc.elbst.male.jaw"),
),
chest: (
offset: (-8.5, -8.5, -3.0),
central: ("npc.elbst.male.chest"),
),
tail_rear: (
offset: (-6.5, -13.0, -2.5),
central: ("npc.elbst.male.tail_rear"),
),
tail_front: (
offset: (-5.5, -8.0, -3.0),
central: ("npc.elbst.male.tail_front"),
),
),
(Monitor, Male): (
@ -470,15 +522,15 @@
),
(Reefsnapper, Male): (
upper: (
offset: (-3.5, 1.5, -4.0),
offset: (-3.5, -2.5, -6.0),
central: ("npc.reefsnapper.male.head_upper"),
),
lower: (
offset: (-3.5, -1.0, -6.0),
offset: (-3.5, -3.0, -6.0),
central: ("npc.reefsnapper.male.head_lower"),
),
jaw: (
offset: (-4.5, 7.0, -5.0),
offset: (-4.5, 4.0, -4.0),
central: ("npc.reefsnapper.male.jaw"),
),
chest: (
@ -496,15 +548,15 @@
),
(Reefsnapper, Female): (
upper: (
offset: (-3.5, 1.5, -4.0),
offset: (-3.5, -2.5, -6.0),
central: ("npc.reefsnapper.male.head_upper"),
),
lower: (
offset: (-3.5, -1.0, -6.0),
offset: (-3.5, -3.0, -6.0),
central: ("npc.reefsnapper.male.head_lower"),
),
jaw: (
offset: (-4.5, 7.0, -5.0),
offset: (-4.5, 4.0, -4.0),
central: ("npc.reefsnapper.male.jaw"),
),
chest: (

View File

@ -128,19 +128,55 @@
(Salamander, Female): (
front_left: (
offset: (-6.0, 0.0, -3.0),
lateral: ("npc.salamander.female.foot_fr", false),
lateral: ("npc.salamander.male.foot_fr", false),
),
front_right: (
offset: (0.0, 0.0, -3.0),
lateral: ("npc.salamander.female.foot_fr", false),
lateral: ("npc.salamander.male.foot_fr", false),
),
back_left: (
offset: (-7.5, 0.0, -3.0),
lateral: ("npc.salamander.female.foot_br", false),
offset: (-7.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_br", false),
),
back_right: (
offset: (-0.0, 0.0, -3.0),
lateral: ("npc.salamander.male.foot_br", false),
),
),
(Elbst, Male): (
front_left: (
offset: (-6.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_fr", false),
),
front_right: (
offset: (0.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_fr", false),
),
back_left: (
offset: (-8.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_br", false),
),
back_right: (
offset: (0.0, 0.0, -3.0),
lateral: ("npc.salamander.female.foot_br", false),
lateral: ("npc.elbst.male.foot_br", false),
),
),
(Elbst, Female): (
front_left: (
offset: (-6.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_fr", false),
),
front_right: (
offset: (0.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_fr", false),
),
back_left: (
offset: (-8.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_br", false),
),
back_right: (
offset: (0.0, 0.0, -3.0),
lateral: ("npc.elbst.male.foot_br", false),
),
),
(Monitor, Male): (
@ -325,11 +361,11 @@
),
(Reefsnapper, Male): (
front_left: (
offset: (-12.0, 0.0, -10.0),
offset: (-12.0, -9.0, -10.0),
lateral: ("npc.reefsnapper.male.foot_fr", false),
),
front_right: (
offset: (-3.0, 0.0, -10.0),
offset: (-3.0, -9.0, -10.0),
lateral: ("npc.reefsnapper.male.foot_fr", false),
),
back_left: (
@ -343,11 +379,11 @@
),
(Reefsnapper, Female): (
front_left: (
offset: (-12.0, 0.0, -10.0),
offset: (-12.0, -9.0, -10.0),
lateral: ("npc.reefsnapper.male.foot_fr", false),
),
front_right: (
offset: (-3.0, 0.0, -10.0),
offset: (-3.0, -9.0, -10.0),
lateral: ("npc.reefsnapper.male.foot_fr", false),
),
back_left: (

View File

@ -7,7 +7,7 @@ SpawnEntry (
// Casual
(2, (1, 1, "common.entity.wild.peaceful.camel")),
(2, (1, 1, "common.entity.wild.peaceful.sand_hare")),
(2, (1, 1, "common.entity.wild.peaceful.sand_salamander")),
(2, (1, 1, "common.entity.wild.peaceful.salamander")),
(2, (1, 1, "common.entity.wild.peaceful.gecko")),
// Rare
(1, (1, 1, "common.entity.wild.peaceful.crawler_sand")),

View File

@ -0,0 +1,16 @@
SpawnEntry (
name: "Desert rocky animals.",
note: "Search for the rocks in desert and you will find them.",
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.rocksnapper")),
(1, (1, 1, "common.entity.wild.aggressive.dodarock")),
(2, (1, 3, "common.entity.wild.peaceful.gecko")),
(2, (1, 2, "common.entity.wild.peaceful.sand_hare")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],
),
],
)

View File

@ -13,6 +13,7 @@ SpawnEntry (
(1, (1, 1, "common.entity.wild.aggressive.horn_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.aggressive.rootsnapper")),
],
spawn_mode: Land,
day_period: [Morning, Noon, Evening],

View File

@ -5,7 +5,7 @@ SpawnEntry (
Pack(
groups: [
(5, (1, 1, "common.entity.wild.peaceful.beaver")),
(5, (1, 1, "common.entity.wild.peaceful.river_salamander")),
(5, (1, 1, "common.entity.wild.peaceful.elbst")),
(5, (1, 1, "common.entity.wild.peaceful.duck")),
(1, (1, 1, "common.entity.wild.peaceful.kelpie")),
(1, (1, 1, "common.entity.wild.aggressive.hakulaq")),

View File

@ -4,7 +4,8 @@ SpawnEntry (
rules: [
Pack(
groups: [
(1, (1, 3, "common.entity.wild.aggressive.sea_crocodile")),
(3, (1, 3, "common.entity.wild.aggressive.sea_crocodile")),
(1, (1, 1, "common.entity.wild.aggressive.reefsnapper")),
],
spawn_mode: Water,
day_period: [Night, Morning, Noon, Evening],

View File

@ -4,10 +4,10 @@ SpawnEntry (
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.dodarock")),
(1, (1, 3, "common.entity.wild.peaceful.gecko")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],
),
],
)
)

View File

@ -4,10 +4,11 @@ SpawnEntry (
rules: [
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.rocksnapper")),
(1, (1, 1, "common.entity.wild.peaceful.jackalope")),
(1, (1, 1, "common.entity.wild.peaceful.arctic_hare")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],
),
],
)
)

View File

@ -231,7 +231,7 @@ impl<'a> From<&'a Body> for Psyche {
_ => 0.3,
},
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
quadruped_low::Species::Salamander => 0.2,
quadruped_low::Species::Salamander | quadruped_low::Species::Elbst => 0.2,
quadruped_low::Species::Monitor => 0.3,
quadruped_low::Species::Pangolin => 0.6,
quadruped_low::Species::Tortoise => 0.2,

View File

@ -312,6 +312,7 @@ impl Body {
quadruped_low::Species::Monitor => 100.0,
quadruped_low::Species::Pangolin => 100.0,
quadruped_low::Species::Salamander => 65.0,
quadruped_low::Species::Elbst => 65.0,
quadruped_low::Species::Tortoise => 200.0,
_ => 200.0,
},
@ -480,6 +481,7 @@ impl Body {
quadruped_low::Species::Sandshark => Vec3::new(2.1, 4.3, 1.7),
quadruped_low::Species::Basilisk => Vec3::new(2.7, 6.0, 2.9),
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),
_ => Vec3::new(1.0, 1.6, 1.3),
},

View File

@ -58,6 +58,7 @@ make_case_elim!(
Rocksnapper = 16,
Rootsnapper = 17,
Reefsnapper = 18,
Elbst = 19,
}
);
@ -70,6 +71,7 @@ pub struct AllSpecies<SpeciesMeta> {
pub sea_crocodile: SpeciesMeta,
pub alligator: SpeciesMeta,
pub salamander: SpeciesMeta,
pub elbst: SpeciesMeta,
pub monitor: SpeciesMeta,
pub asp: SpeciesMeta,
pub tortoise: SpeciesMeta,
@ -97,6 +99,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
Species::SeaCrocodile => &self.sea_crocodile,
Species::Alligator => &self.alligator,
Species::Salamander => &self.salamander,
Species::Elbst => &self.elbst,
Species::Monitor => &self.monitor,
Species::Asp => &self.asp,
Species::Tortoise => &self.tortoise,
@ -116,11 +119,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
}
}
pub const ALL_SPECIES: [Species; 19] = [
pub const ALL_SPECIES: [Species; 20] = [
Species::Crocodile,
Species::SeaCrocodile,
Species::Alligator,
Species::Salamander,
Species::Elbst,
Species::Monitor,
Species::Asp,
Species::Tortoise,

View File

@ -585,7 +585,8 @@ fn default_main_tool(body: &Body) -> Item {
quadruped_low::Species::Crocodile
| quadruped_low::Species::SeaCrocodile
| quadruped_low::Species::Alligator
| quadruped_low::Species::Salamander => Some(Item::new_from_asset_expect(
| quadruped_low::Species::Salamander
| quadruped_low::Species::Elbst => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadlowtail",
)),
quadruped_low::Species::Monitor | quadruped_low::Species::Pangolin => Some(
@ -616,6 +617,9 @@ fn default_main_tool(body: &Body) -> Item {
theropod::Species::Yale => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.theropodcharge",
)),
theropod::Species::Dodarock => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.theropodsmall",
)),
_ => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.theropodbasic",
)),

View File

@ -90,7 +90,9 @@ pub fn is_mountable(mount: &Body, rider: Option<&Body>) -> bool {
},
Body::QuadrupedLow(body) => matches!(
body.species,
quadruped_low::Species::Salamander | quadruped_low::Species::Tortoise
quadruped_low::Species::Salamander
| quadruped_low::Species::Elbst
| quadruped_low::Species::Tortoise
),
_ => false,
}

View File

@ -117,6 +117,7 @@ impl Body {
quadruped_low::Species::SeaCrocodile => 120.0,
quadruped_low::Species::Alligator => 110.0,
quadruped_low::Species::Salamander => 85.0,
quadruped_low::Species::Elbst => 85.0,
quadruped_low::Species::Monitor => 160.0,
quadruped_low::Species::Asp => 110.0,
quadruped_low::Species::Tortoise => 60.0,

View File

@ -948,7 +948,9 @@ impl<'a> AgentData<'a> {
"Quad Low Tail" | "Husk Brute" => Tactic::TailSlap,
"Quad Low Quick" => Tactic::QuadLowQuick,
"Quad Low Basic" => Tactic::QuadLowBasic,
"Theropod Basic" | "Theropod Bird" => Tactic::Theropod,
"Theropod Basic" | "Theropod Bird" | "Theropod Small" => {
Tactic::Theropod
},
// Arthropods
"Antlion" => Tactic::ArthropodMelee,
"Tarantula" | "Horn Beetle" => Tactic::ArthropodAmbush,

View File

@ -148,14 +148,14 @@ impl Default for SkeletonAttr {
impl<'a> From<&'a Body> for SkeletonAttr {
fn from(body: &'a Body) -> Self {
use comp::quadruped_low::{BodyType::*, Species::*};
use comp::quadruped_low::Species::*;
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),
(Salamander, _) => (0.5, 1.0),
(Elbst, _) => (0.5, 1.0),
(Monitor, _) => (5.5, 3.0),
(Asp, _) => (4.5, 10.5),
(Tortoise, _) => (5.0, 1.0),
@ -176,8 +176,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (9.0, 0.0),
(Elbst, _) => (9.0, 0.0),
(Monitor, _) => (7.0, 0.0),
(Asp, _) => (6.0, -2.5),
(Tortoise, _) => (12.0, -3.5),
@ -198,8 +198,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (0.5, -1.0),
(Elbst, _) => (0.5, -1.0),
(Monitor, _) => (3.0, -1.0),
(Asp, _) => (2.0, -2.0),
(Tortoise, _) => (-3.5, -2.0),
@ -220,8 +220,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (0.0, 5.0),
(Elbst, _) => (0.0, 5.0),
(Monitor, _) => (0.0, 5.0),
(Asp, _) => (0.0, 8.0),
(Tortoise, _) => (0.0, 11.0),
@ -242,8 +242,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (-6.5, 0.0),
(Elbst, _) => (-6.5, 0.0),
(Monitor, _) => (-12.0, 0.0),
(Asp, _) => (-14.0, -2.0),
(Tortoise, _) => (-10.0, -1.5),
@ -264,8 +264,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (-7.5, 0.0),
(Elbst, _) => (-7.0, 0.0),
(Monitor, _) => (-6.5, 0.0),
(Asp, _) => (-6.0, -2.0),
(Tortoise, _) => (-13.0, -3.5),
@ -286,8 +286,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (5.0, 4.5, -2.0),
(Elbst, _) => (5.0, 4.5, -2.0),
(Monitor, _) => (3.0, 5.0, 0.0),
(Asp, _) => (1.5, 4.0, -1.0),
(Tortoise, _) => (5.5, 6.5, -3.0),
@ -308,8 +308,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(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),
(Salamander, _) => (3.0, -6.0, -2.0),
(Elbst, _) => (3.0, -6.0, -2.0),
(Monitor, _) => (2.5, -6.5, 0.0),
(Asp, _) => (2.5, -5.5, -1.0),
(Tortoise, _) => (5.5, -11.5, -3.0),
@ -331,54 +331,56 @@ impl<'a> From<&'a Body> for SkeletonAttr {
_ => (0.0, 1.0),
},
scaler: match (body.species, body.body_type) {
(Crocodile, _) => 1.05,
(SeaCrocodile, _) => 1.05,
(Alligator, _) => 1.12,
(Salamander, _) => 1.12,
(Monitor, _) => 0.9,
(Asp, _) => 1.12,
(Rocksnapper, _) => 1.12,
(Rootsnapper, _) => 1.12,
(Reefsnapper, _) => 1.12,
(Hakulaq, _) => 1.05,
(Dagon, _) => 1.05,
(Pangolin, _) => 1.05,
(Maneater, _) => 1.12,
(Lavadrake, _) => 1.12,
(Icedrake, _) => 1.12,
(Basilisk, _) => 1.3,
_ => 0.9,
(Crocodile, _) => (1.05),
(SeaCrocodile, _) => (1.05),
(Alligator, _) => (1.12),
(Salamander, _) => (1.12),
(Elbst, _) => (1.12),
(Monitor, _) => (0.9),
(Asp, _) => (1.12),
(Rocksnapper, _) => (1.12),
(Rootsnapper, _) => (1.12),
(Reefsnapper, _) => (1.12),
(Hakulaq, _) => (1.05),
(Dagon, _) => (1.05),
(Pangolin, _) => (1.05),
(Maneater, _) => (1.12),
(Lavadrake, _) => (1.12),
(Icedrake, _) => (1.12),
(Basilisk, _) => (1.3),
_ => (0.9),
},
tempo: match (body.species, body.body_type) {
(Crocodile, _) => 0.7,
(SeaCrocodile, _) => 0.7,
(Alligator, _) => 0.7,
(Salamander, _) => 0.85,
(Monitor, _) => 1.4,
(Tortoise, _) => 0.7,
(Rocksnapper, _) => 0.7,
(Rootsnapper, _) => 0.7,
(Reefsnapper, _) => 0.7,
(Hakulaq, _) => 1.2,
(Dagon, _) => 1.2,
(Pangolin, _) => 1.15,
(Maneater, _) => 0.9,
(Lavadrake, _) => 1.1,
(Icedrake, _) => 1.1,
(Basilisk, _) => 0.8,
_ => 1.0,
(Crocodile, _) => (0.7),
(SeaCrocodile, _) => (0.7),
(Alligator, _) => (0.7),
(Salamander, _) => (0.85),
(Elbst, _) => (0.85),
(Monitor, _) => (1.4),
(Tortoise, _) => (0.7),
(Rocksnapper, _) => (0.7),
(Rootsnapper, _) => (0.7),
(Reefsnapper, _) => (0.7),
(Hakulaq, _) => (1.2),
(Dagon, _) => (1.2),
(Pangolin, _) => (1.15),
(Maneater, _) => (0.9),
(Lavadrake, _) => (1.1),
(Icedrake, _) => (1.1),
(Basilisk, _) => (0.8),
_ => (1.0),
},
}
}
}
fn mount_point(body: &Body) -> Vec3<f32> {
use comp::quadruped_low::{BodyType::*, Species::*};
use comp::quadruped_low::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),
(Salamander, _) => (0.0, 5.0, -1.0),
(Elbst, _) => (0.0, 5.0, -1.0),
(Monitor, _) => (0.0, 2.0, -2.0),
(Asp, _) => (0.0, 2.0, 0.0),
(Tortoise, _) => (0.0, -7.0, -1.0),

View File

@ -838,8 +838,8 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
(biome.leafy + 0.05) * 0.5,
),
(
Some("common.entity.wild.peaceful.tortoise"),
(biome.leafy + 0.05) * 0.35,
Some("common.entity.wild.aggressive.rootsnapper"),
(biome.leafy + 0.05) * 0.05,
),
(
Some("common.entity.wild.peaceful.axolotl"),
@ -872,7 +872,7 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
// Dusty biome
(
Some("common.entity.wild.aggressive.dodarock"),
(biome.dusty.max(biome.barren) + 0.05) * 0.35,
(biome.dusty.max(biome.barren) + 0.05) * 0.05,
),
(
Some("common.entity.wild.aggressive.cave_spider"),

View File

@ -340,6 +340,10 @@ pub fn spawn_manifest() -> Vec<(&'static str, DensityFn)> {
("world.wildlife.spawn.desert.hot", |c, _col| {
close(c.temp, CONFIG.desert_temp + 0.2, 0.3) * BASE_DENSITY * 3.8
}),
// Rock animals
("world.wildlife.spawn.desert.rock", |c, col| {
close(c.temp, CONFIG.desert_temp + 0.2, 0.2) * col.rock_density * BASE_DENSITY * 5.0
}),
]
}