From dc688bccb98ffae0257f2f5955d972b7408b3e57 Mon Sep 17 00:00:00 2001 From: flo Date: Tue, 13 Sep 2022 17:32:53 +0000 Subject: [PATCH] fix_salamander_and_elbst --- .../common/abilities/ability_set_manifest.ron | 5 + .../custom/theropodsmall/triplestrike.ron | 60 ++++++++++ .../entity/wild/aggressive/reefsnapper.ron | 11 ++ .../entity/wild/aggressive/rootsnapper.ron | 11 ++ .../{river_salamander.ron => elbst.ron} | 6 +- .../{sand_salamander.ron => salamander.ron} | 0 .../npc_weapons/unique/theropodsmall.ron | 21 ++++ .../creature/quad_low/reefsnapper.ron | 5 + .../creature/quad_low/rootsnapper.ron | 5 + assets/common/npc_names.ron | 4 + assets/voxygen/voxel/npc/elbst/male/chest.vox | 3 + .../voxygen/voxel/npc/elbst/male/foot_br.vox | 3 + .../voxygen/voxel/npc/elbst/male/foot_fr.vox | 3 + .../voxel/npc/elbst/male/head_lower.vox | 3 + .../voxel/npc/elbst/male/head_upper.vox | 3 + assets/voxygen/voxel/npc/elbst/male/jaw.vox | 3 + .../voxel/npc/elbst/male/tail_front.vox | 3 + .../voxel/npc/elbst/male/tail_rear.vox | 3 + .../voxel/npc/reefsnapper/male/foot_fr.vox | 2 +- .../voxel/npc/salamander/female/chest.vox | 3 - .../voxel/npc/salamander/female/foot_br.vox | 3 - .../voxel/npc/salamander/female/foot_fr.vox | 3 - .../npc/salamander/female/head_lower.vox | 3 - .../npc/salamander/female/head_upper.vox | 3 - .../voxel/npc/salamander/female/jaw.vox | 3 - .../npc/salamander/female/tail_front.vox | 3 - .../voxel/npc/salamander/female/tail_rear.vox | 3 - .../voxel/npc/salamander/male/chest.vox | 4 +- .../voxel/npc/salamander/male/foot_br.vox | 2 +- .../voxel/npc/salamander/male/foot_fr.vox | 2 +- .../voxel/npc/salamander/male/head_lower.vox | 2 +- .../voxel/npc/salamander/male/head_upper.vox | 4 +- .../voxygen/voxel/npc/salamander/male/jaw.vox | 4 +- .../voxel/npc/salamander/male/tail_front.vox | 4 +- .../voxel/npc/salamander/male/tail_rear.vox | 4 +- .../voxel/quadruped_low_central_manifest.ron | 82 ++++++++++--- .../voxel/quadruped_low_lateral_manifest.ron | 54 +++++++-- assets/world/wildlife/spawn/desert/hot.ron | 2 +- assets/world/wildlife/spawn/desert/rock.ron | 16 +++ .../wildlife/spawn/jungle/rainforest_area.ron | 1 + .../world/wildlife/spawn/temperate/river.ron | 2 +- .../world/wildlife/spawn/tropical/ocean.ron | 3 +- assets/world/wildlife/spawn/tropical/rock.ron | 4 +- assets/world/wildlife/spawn/tundra/rock.ron | 5 +- common/src/comp/agent.rs | 2 +- common/src/comp/body.rs | 2 + common/src/comp/body/quadruped_low.rs | 6 +- common/src/comp/inventory/loadout_builder.rs | 6 +- common/src/comp/pet.rs | 4 +- common/src/states/utils.rs | 1 + server/src/sys/agent.rs | 4 +- voxygen/anim/src/quadruped_low/mod.rs | 110 +++++++++--------- world/src/layer/cave.rs | 6 +- world/src/layer/wildlife.rs | 4 + 54 files changed, 384 insertions(+), 134 deletions(-) create mode 100644 assets/common/abilities/custom/theropodsmall/triplestrike.ron create mode 100644 assets/common/entity/wild/aggressive/reefsnapper.ron create mode 100644 assets/common/entity/wild/aggressive/rootsnapper.ron rename assets/common/entity/wild/peaceful/{river_salamander.ron => elbst.ron} (81%) rename assets/common/entity/wild/peaceful/{sand_salamander.ron => salamander.ron} (100%) create mode 100644 assets/common/items/npc_weapons/unique/theropodsmall.ron create mode 100644 assets/common/loot_tables/creature/quad_low/reefsnapper.ron create mode 100644 assets/common/loot_tables/creature/quad_low/rootsnapper.ron create mode 100644 assets/voxygen/voxel/npc/elbst/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/elbst/male/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_rear.vox create mode 100644 assets/world/wildlife/spawn/desert/rock.ron diff --git a/assets/common/abilities/ability_set_manifest.ron b/assets/common/abilities/ability_set_manifest.ron index 6a9fe77d46..4e205599ee 100644 --- a/assets/common/abilities/ability_set_manifest.ron +++ b/assets/common/abilities/ability_set_manifest.ron @@ -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", diff --git a/assets/common/abilities/custom/theropodsmall/triplestrike.ron b/assets/common/abilities/custom/theropodsmall/triplestrike.ron new file mode 100644 index 0000000000..983a8418d5 --- /dev/null +++ b/assets/common/abilities/custom/theropodsmall/triplestrike.ron @@ -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, +) \ No newline at end of file diff --git a/assets/common/entity/wild/aggressive/reefsnapper.ron b/assets/common/entity/wild/aggressive/reefsnapper.ron new file mode 100644 index 0000000000..4e3b6627e2 --- /dev/null +++ b/assets/common/entity/wild/aggressive/reefsnapper.ron @@ -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: [], +) \ No newline at end of file diff --git a/assets/common/entity/wild/aggressive/rootsnapper.ron b/assets/common/entity/wild/aggressive/rootsnapper.ron new file mode 100644 index 0000000000..c27d275ffd --- /dev/null +++ b/assets/common/entity/wild/aggressive/rootsnapper.ron @@ -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: [], +) \ No newline at end of file diff --git a/assets/common/entity/wild/peaceful/river_salamander.ron b/assets/common/entity/wild/peaceful/elbst.ron similarity index 81% rename from assets/common/entity/wild/peaceful/river_salamander.ron rename to assets/common/entity/wild/peaceful/elbst.ron index 45aff740fb..8562c64738 100644 --- a/assets/common/entity/wild/peaceful/river_salamander.ron +++ b/assets/common/entity/wild/peaceful/elbst.ron @@ -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: [], -) \ No newline at end of file +) diff --git a/assets/common/entity/wild/peaceful/sand_salamander.ron b/assets/common/entity/wild/peaceful/salamander.ron similarity index 100% rename from assets/common/entity/wild/peaceful/sand_salamander.ron rename to assets/common/entity/wild/peaceful/salamander.ron diff --git a/assets/common/items/npc_weapons/unique/theropodsmall.ron b/assets/common/items/npc_weapons/unique/theropodsmall.ron new file mode 100644 index 0000000000..62123ad329 --- /dev/null +++ b/assets/common/items/npc_weapons/unique/theropodsmall.ron @@ -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")), +) \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/reefsnapper.ron b/assets/common/loot_tables/creature/quad_low/reefsnapper.ron new file mode 100644 index 0000000000..a33d0308ab --- /dev/null +++ b/assets/common/loot_tables/creature/quad_low/reefsnapper.ron @@ -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")), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/rootsnapper.ron b/assets/common/loot_tables/creature/quad_low/rootsnapper.ron new file mode 100644 index 0000000000..2bf9cbe9b3 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_low/rootsnapper.ron @@ -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")), +] \ No newline at end of file diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index d471f3bbe4..99d0b0681b 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -1185,6 +1185,10 @@ keyword: "salamander", generic: "Salamander" ), + elbst: ( + keyword: "elbst", + generic: "Elbst" + ), monitor: ( keyword: "monitor", generic: "Monitor" diff --git a/assets/voxygen/voxel/npc/elbst/male/chest.vox b/assets/voxygen/voxel/npc/elbst/male/chest.vox new file mode 100644 index 0000000000..22af2b69a6 --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee51d809c2aca42f0c6fdc46027c9b33d0a95af75bf0a8579c16786a05a19031 +size 4696 diff --git a/assets/voxygen/voxel/npc/elbst/male/foot_br.vox b/assets/voxygen/voxel/npc/elbst/male/foot_br.vox new file mode 100644 index 0000000000..3a5deefea3 --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cafe678aa536939f1a027d3c9c8b8f296cd3f535a70c56c5f72cbc802cdb6a56 +size 1260 diff --git a/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox b/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox new file mode 100644 index 0000000000..e68328e7ef --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4a353c17629a085c23a6da38402af8ef642acb82d3324134300f9168512a8c +size 1268 diff --git a/assets/voxygen/voxel/npc/elbst/male/head_lower.vox b/assets/voxygen/voxel/npc/elbst/male/head_lower.vox new file mode 100644 index 0000000000..5f4102c45c --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bbb5fd2f36770cf69162a2da72e29b10c60f927235de56c7b0866359d19e861 +size 1608 diff --git a/assets/voxygen/voxel/npc/elbst/male/head_upper.vox b/assets/voxygen/voxel/npc/elbst/male/head_upper.vox new file mode 100644 index 0000000000..66e69ddf25 --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f390e583f17db94502aee1ef20f786fee23e9688a41b81ca82d9a0d72356e21f +size 3032 diff --git a/assets/voxygen/voxel/npc/elbst/male/jaw.vox b/assets/voxygen/voxel/npc/elbst/male/jaw.vox new file mode 100644 index 0000000000..365d8a4cca --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d87667aaf0f64890b0a2812dbb05bff6c103373399f47379c5905dd2a398fb81 +size 2040 diff --git a/assets/voxygen/voxel/npc/elbst/male/tail_front.vox b/assets/voxygen/voxel/npc/elbst/male/tail_front.vox new file mode 100644 index 0000000000..51d464df39 --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/tail_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d76e69b888e1aabc8628bcd5c369a2574e391b272161cdaa756c7699572631b +size 1988 diff --git a/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox b/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox new file mode 100644 index 0000000000..4c908e2b93 --- /dev/null +++ b/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80aeba8583353a90663ce83a2030d9599154ccecf397e47c6d22eff87c34e5dd +size 2208 diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox b/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox index 519e487117..da6444faeb 100644 --- a/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4e62fce92e139290bd843604b0463286fc560f4db97bf420d97b8863bc0ec800 +oid sha256:5181ad19eb91f84a0ca0d787679d6f1ac28ea710c3c24fb32d7f0a1efe3cca22 size 2404 diff --git a/assets/voxygen/voxel/npc/salamander/female/chest.vox b/assets/voxygen/voxel/npc/salamander/female/chest.vox deleted file mode 100644 index a58798bf77..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/chest.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:952fc49ba90cb07242e4164767a3c753ab74c5dead9d585b71d0dfd3e145a08f -size 4536 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_br.vox b/assets/voxygen/voxel/npc/salamander/female/foot_br.vox deleted file mode 100644 index 0b4f1a8a0c..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/foot_br.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:681c1b0501ab17079a4b018265950b7183524b6375ecaf63743069a5875df73f -size 1244 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox deleted file mode 100644 index 871875e0d7..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:139e71370808c38e82624e88d93ff691b4a573565424380107dfd2ffc51d6d90 -size 1268 diff --git a/assets/voxygen/voxel/npc/salamander/female/head_lower.vox b/assets/voxygen/voxel/npc/salamander/female/head_lower.vox deleted file mode 100644 index e80d87d18c..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/head_lower.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:226483231a86635979bc382498ed2ed92178bad83d8d26b1ce3cd5a331ca9a07 -size 1616 diff --git a/assets/voxygen/voxel/npc/salamander/female/head_upper.vox b/assets/voxygen/voxel/npc/salamander/female/head_upper.vox deleted file mode 100644 index 77b1ad274f..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/head_upper.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23cf7b5d2fb775189ae73daac879dd14ae07b4a17e714cfa32bbc1c001eacebd -size 2632 diff --git a/assets/voxygen/voxel/npc/salamander/female/jaw.vox b/assets/voxygen/voxel/npc/salamander/female/jaw.vox deleted file mode 100644 index f62946b658..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/jaw.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5daf93e147bcbf8909f0c4950b3c7cb77f8a4c900127cf3c7b0eeef092f119e2 -size 2240 diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_front.vox b/assets/voxygen/voxel/npc/salamander/female/tail_front.vox deleted file mode 100644 index 43042c8619..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/tail_front.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:837bc286eacc45aaad97aac778f5ecc024f2a298a98b40336a6b66a9e62857d2 -size 2276 diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox deleted file mode 100644 index 03779fcf66..0000000000 --- a/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0358f1adedfab8ba38e71daeded7b0bf8213e576607d1f121ca652cf73a73f1d -size 1880 diff --git a/assets/voxygen/voxel/npc/salamander/male/chest.vox b/assets/voxygen/voxel/npc/salamander/male/chest.vox index d5a8d9f6be..a58798bf77 100644 --- a/assets/voxygen/voxel/npc/salamander/male/chest.vox +++ b/assets/voxygen/voxel/npc/salamander/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23b8658cf742f615f64fbd291d666ec882c95443db9cd8dc50cb084be796b519 -size 4252 +oid sha256:952fc49ba90cb07242e4164767a3c753ab74c5dead9d585b71d0dfd3e145a08f +size 4536 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_br.vox b/assets/voxygen/voxel/npc/salamander/male/foot_br.vox index c87f59f497..0b4f1a8a0c 100644 --- a/assets/voxygen/voxel/npc/salamander/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/salamander/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0aab9501144fad79f225a664be47ee17e11ce5c91b08e5fc9c7a3559462a281d +oid sha256:681c1b0501ab17079a4b018265950b7183524b6375ecaf63743069a5875df73f size 1244 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox index 5b3420a77e..871875e0d7 100644 --- a/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:527de48f9ef2aece82a06ed8c2c1c5c8367371794514275ed53ec73ec51a6c1a +oid sha256:139e71370808c38e82624e88d93ff691b4a573565424380107dfd2ffc51d6d90 size 1268 diff --git a/assets/voxygen/voxel/npc/salamander/male/head_lower.vox b/assets/voxygen/voxel/npc/salamander/male/head_lower.vox index 9f6c2005f6..e80d87d18c 100644 --- a/assets/voxygen/voxel/npc/salamander/male/head_lower.vox +++ b/assets/voxygen/voxel/npc/salamander/male/head_lower.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fc7245e00f65c294d3d7bac0e09de567672414c451b46c9d31fa87a37c9b7e54 +oid sha256:226483231a86635979bc382498ed2ed92178bad83d8d26b1ce3cd5a331ca9a07 size 1616 diff --git a/assets/voxygen/voxel/npc/salamander/male/head_upper.vox b/assets/voxygen/voxel/npc/salamander/male/head_upper.vox index c3984a9a9a..77b1ad274f 100644 --- a/assets/voxygen/voxel/npc/salamander/male/head_upper.vox +++ b/assets/voxygen/voxel/npc/salamander/male/head_upper.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a8d983160c51b563b82fcb90da92214132d471a0665f5f375229ad4bbccf45f9 -size 2588 +oid sha256:23cf7b5d2fb775189ae73daac879dd14ae07b4a17e714cfa32bbc1c001eacebd +size 2632 diff --git a/assets/voxygen/voxel/npc/salamander/male/jaw.vox b/assets/voxygen/voxel/npc/salamander/male/jaw.vox index 3bbff427dc..f62946b658 100644 --- a/assets/voxygen/voxel/npc/salamander/male/jaw.vox +++ b/assets/voxygen/voxel/npc/salamander/male/jaw.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59160f0e1526941c90229593c9757d535b878bd9207caa0448f88623c2f1af05 -size 2092 +oid sha256:5daf93e147bcbf8909f0c4950b3c7cb77f8a4c900127cf3c7b0eeef092f119e2 +size 2240 diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_front.vox b/assets/voxygen/voxel/npc/salamander/male/tail_front.vox index 500bddec40..43042c8619 100644 --- a/assets/voxygen/voxel/npc/salamander/male/tail_front.vox +++ b/assets/voxygen/voxel/npc/salamander/male/tail_front.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:66b863e935607b337eca083145ad3a9971ca625c3aec95166bc3c87e5c49f967 -size 2244 +oid sha256:837bc286eacc45aaad97aac778f5ecc024f2a298a98b40336a6b66a9e62857d2 +size 2276 diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox index 46b153167e..03779fcf66 100644 --- a/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox +++ b/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8201aefb1fc1253583b19f4dc4a41be89b39b85ec8323fd0a8eba1e2bf83db90 -size 1872 +oid sha256:0358f1adedfab8ba38e71daeded7b0bf8213e576607d1f121ca652cf73a73f1d +size 1880 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 5390e20698..f83cc08420 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -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: ( diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 5a43cf79aa..85e6f02208 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -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: ( diff --git a/assets/world/wildlife/spawn/desert/hot.ron b/assets/world/wildlife/spawn/desert/hot.ron index b474214731..9b087d09e7 100644 --- a/assets/world/wildlife/spawn/desert/hot.ron +++ b/assets/world/wildlife/spawn/desert/hot.ron @@ -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")), diff --git a/assets/world/wildlife/spawn/desert/rock.ron b/assets/world/wildlife/spawn/desert/rock.ron new file mode 100644 index 0000000000..3508717bfd --- /dev/null +++ b/assets/world/wildlife/spawn/desert/rock.ron @@ -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], + ), + ], +) \ No newline at end of file diff --git a/assets/world/wildlife/spawn/jungle/rainforest_area.ron b/assets/world/wildlife/spawn/jungle/rainforest_area.ron index f939269428..1bc0dcaccc 100644 --- a/assets/world/wildlife/spawn/jungle/rainforest_area.ron +++ b/assets/world/wildlife/spawn/jungle/rainforest_area.ron @@ -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], diff --git a/assets/world/wildlife/spawn/temperate/river.ron b/assets/world/wildlife/spawn/temperate/river.ron index c5472b7b6d..6fb860498a 100644 --- a/assets/world/wildlife/spawn/temperate/river.ron +++ b/assets/world/wildlife/spawn/temperate/river.ron @@ -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")), diff --git a/assets/world/wildlife/spawn/tropical/ocean.ron b/assets/world/wildlife/spawn/tropical/ocean.ron index 16ad227e4e..a272015bc4 100644 --- a/assets/world/wildlife/spawn/tropical/ocean.ron +++ b/assets/world/wildlife/spawn/tropical/ocean.ron @@ -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], diff --git a/assets/world/wildlife/spawn/tropical/rock.ron b/assets/world/wildlife/spawn/tropical/rock.ron index 1a5c848147..0083e2e48d 100644 --- a/assets/world/wildlife/spawn/tropical/rock.ron +++ b/assets/world/wildlife/spawn/tropical/rock.ron @@ -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], ), ], -) +) \ No newline at end of file diff --git a/assets/world/wildlife/spawn/tundra/rock.ron b/assets/world/wildlife/spawn/tundra/rock.ron index f723581e55..099e8e3040 100644 --- a/assets/world/wildlife/spawn/tundra/rock.ron +++ b/assets/world/wildlife/spawn/tundra/rock.ron @@ -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], ), ], -) +) \ No newline at end of file diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 7e47b8d997..385025ce75 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -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, diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 657c5aa35c..19ca4810e9 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -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), }, diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index eb9665aa4b..2211ec9065 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -58,6 +58,7 @@ make_case_elim!( Rocksnapper = 16, Rootsnapper = 17, Reefsnapper = 18, + Elbst = 19, } ); @@ -70,6 +71,7 @@ pub struct AllSpecies { 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 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 } } -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, diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 53e175e57a..067142943e 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -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", )), diff --git a/common/src/comp/pet.rs b/common/src/comp/pet.rs index 63ab096063..8f8a308513 100644 --- a/common/src/comp/pet.rs +++ b/common/src/comp/pet.rs @@ -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, } diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 7641f091c3..17dd433e61 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -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, diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 738a6cb1e6..2696580352 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -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, diff --git a/voxygen/anim/src/quadruped_low/mod.rs b/voxygen/anim/src/quadruped_low/mod.rs index 2e97b5061c..054037f3b2 100644 --- a/voxygen/anim/src/quadruped_low/mod.rs +++ b/voxygen/anim/src/quadruped_low/mod.rs @@ -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 { - 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), diff --git a/world/src/layer/cave.rs b/world/src/layer/cave.rs index cb55263331..d99e4b52d2 100644 --- a/world/src/layer/cave.rs +++ b/world/src/layer/cave.rs @@ -838,8 +838,8 @@ fn apply_entity_spawns(canvas: &mut Canvas, wpos: Vec3, 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(canvas: &mut Canvas, wpos: Vec3, 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"), diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index 4694cc9299..62e03435a5 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -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 + }), ] }