Merge branch 'beginner-balance-tweaks-2' into 'master'

Beginner balance tweaks addendum

See merge request veloren/veloren!4329
This commit is contained in:
crabman 2024-02-21 15:39:56 +00:00
commit 2eef98f44b
76 changed files with 429 additions and 304 deletions

View File

@ -3,7 +3,7 @@ ComboMelee2(
(
melee_constructor: (
kind: Bash(
damage: 9.5,
damage: 3.0,
poise: 12,
knockback: 3,
energy_regen: 0,

View File

@ -3,7 +3,7 @@ BasicRanged(
buildup_duration: 0.6,
recover_duration: 0.9,
projectile: Pebble(
damage: 8,
damage: 6,
knockback: 2,
),
projectile_body: Object(Pebble),

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5,
recover_duration: 0.4,
movement: (
swing: Some(Forward(0.1)),
swing: Some(Forward(0.05)),
),
ori_modifier: 0.55,
),

View File

@ -4,7 +4,7 @@ ComboMelee2(
melee_constructor: (
kind: Slash(
damage: 36,
poise: 0,
poise: 24,
knockback: 3,
energy_regen: 0,
),
@ -24,7 +24,7 @@ ComboMelee2(
melee_constructor: (
kind: Stab(
damage: 18,
poise: 12,
poise: 18,
knockback: 15,
energy_regen: 0,
),
@ -44,7 +44,7 @@ ComboMelee2(
melee_constructor: (
kind: Bash(
damage: 28,
poise: 40,
poise: 36,
knockback: 3,
energy_regen: 0,
),

View File

@ -11,10 +11,10 @@ ComboMelee2(
range: 5.5,
angle: 60.0,
),
buildup_duration: 0.5,
buildup_duration: 0.6,
swing_duration: 0.2,
hit_timing: 0.5,
recover_duration: 0.3,
recover_duration: 0.4,
movement: (
swing: Some(Forward(0.25)),
),

View File

@ -11,10 +11,10 @@ ComboMelee2(
range: 5.0,
angle: 45.0,
),
buildup_duration: 0.8,
buildup_duration: 0.9,
swing_duration: 0.15,
hit_timing: 0.5,
recover_duration: 0.1,
recover_duration: 0.3,
movement: (
swing: Some(Forward(0.2)),
),
@ -31,10 +31,10 @@ ComboMelee2(
range: 5.0,
angle: 45.0,
),
buildup_duration: 0.25,
buildup_duration: 0.6,
swing_duration: 0.2,
hit_timing: 0.5,
recover_duration: 0.3,
recover_duration: 0.4,
movement: (
swing: Some(Forward(0.3)),
),
@ -51,7 +51,7 @@ ComboMelee2(
range: 5.5,
angle: 30.0,
),
buildup_duration: 0.65,
buildup_duration: 0.7,
swing_duration: 0.25,
hit_timing: 0.5,
recover_duration: 1.1,

View File

@ -1,15 +1,15 @@
Shockwave(
energy_cost: 0.0,
buildup_duration: 1.6,
buildup_duration: 2.0,
swing_duration: 0.1,
recover_duration: 2.3,
recover_duration: 2.0,
damage: 8.0,
poise_damage: 0,
knockback: ( strength: 5.0, direction: Away),
shockwave_angle: 360.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 32.5,
shockwave_duration: 0.4,
shockwave_speed: 20,
shockwave_duration: 0.5,
dodgeable: Jump,
move_efficiency: 0.1,
damage_kind: Crushing,

View File

@ -597,6 +597,9 @@
Simple(
"common.items.npc_armor.quadruped_medium.hirdrasil",
): "common-items-npc_armor-quadruped_medium-hirdrasil",
Simple(
"common.items.npc_armor.quadruped_medium.wolf",
): "common-items-npc_armor-quadruped_medium-wolf",
Simple(
"common.items.npc_armor.quadruped_small.boar",
): "common-items-npc_armor-quadruped_small-boar",
@ -2628,6 +2631,9 @@
Simple(
"common.items.npc_weapons.unique.quadruped_medium.grolgar",
): "common-items-npc_weapons-unique-quadruped_medium-grolgar",
Simple(
"common.items.npc_weapons.unique.quadruped_medium.highland",
): "common-items-npc_weapons-unique-quadruped_medium-highland",
Simple(
"common.items.npc_weapons.unique.quadruped_medium.horse",
): "common-items-npc_weapons-unique-quadruped_medium-horse",
@ -2637,6 +2643,9 @@
Simple(
"common.items.npc_weapons.unique.quadruped_medium.mouflon",
): "common-items-npc_weapons-unique-quadruped_medium-mouflon",
Simple(
"common.items.npc_weapons.unique.quadruped_medium.wolf",
): "common-items-npc_weapons-unique-quadruped_medium-wolf",
Simple(
"common.items.npc_weapons.unique.quadruped_low.asp",
): "common-items-npc_weapons-unique-quadruped_low-asp",

View File

@ -6,9 +6,9 @@ ItemDef(
toolkind: Axe,
stats: (
equip_time_secs: 1.1,
power: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.9,
speed: 0.8,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,

View File

@ -8,9 +8,9 @@ ItemDef(
equip_time_secs: 1.0,
power: 1.0,
effect_power: 1.0,
speed: 0.9,
speed: 1.0,
range: 1.0,
energy_efficiency: 0.9,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
hand_restriction: None,

View File

@ -6,7 +6,7 @@ ItemDef(
toolkind: Axe,
stats: (
equip_time_secs: 0.9,
power: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.1,
range: 0.9,

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Bow,
stats: (
equip_time_secs: 1.0,
power: 1.25,
equip_time_secs: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.8,
range: 1.2,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Bow,
stats: (
equip_time_secs: 1.0,
power: 0.8,
equip_time_secs: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.2,
range: 0.85,
speed: 1.1,
range: 0.9,
energy_efficiency: 1.1,
buff_strength: 0.9,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Hammer,
stats: (
equip_time_secs: 1.0,
power: 1.25,
equip_time_secs: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.8,
range: 1.2,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,
),

View File

@ -8,9 +8,9 @@ ItemDef(
equip_time_secs: 1.0,
power: 1.0,
effect_power: 1.0,
speed: 0.9,
speed: 1.0,
range: 1.0,
energy_efficiency: 0.9,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
hand_restriction: None,

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Hammer,
stats: (
equip_time_secs: 1.0,
power: 0.8,
equip_time_secs: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.2,
range: 0.85,
speed: 1.1,
range: 0.9,
energy_efficiency: 1.1,
buff_strength: 0.9,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Sceptre,
stats: (
equip_time_secs: 1.0,
power: 1.25,
equip_time_secs: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.8,
range: 1.2,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Sceptre,
stats: (
equip_time_secs: 1.0,
power: 0.8,
equip_time_secs: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.2,
range: 0.85,
speed: 1.1,
range: 0.9,
energy_efficiency: 1.1,
buff_strength: 0.9,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Staff,
stats: (
equip_time_secs: 1.0,
power: 1.25,
equip_time_secs: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.8,
range: 1.2,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,
),

View File

@ -5,11 +5,11 @@ ItemDef(
ToolSecondaryComponent(
toolkind: Staff,
stats: (
equip_time_secs: 1.0,
power: 0.8,
equip_time_secs: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.2,
range: 0.85,
speed: 1.1,
range: 0.9,
energy_efficiency: 1.1,
buff_strength: 0.9,
),

View File

@ -6,9 +6,9 @@ ItemDef(
toolkind: Sword,
stats: (
equip_time_secs: 1.1,
power: 1.1,
power: 1.15,
effect_power: 1.1,
speed: 0.9,
speed: 0.8,
range: 1.1,
energy_efficiency: 0.9,
buff_strength: 1.1,

View File

@ -6,7 +6,7 @@ ItemDef(
toolkind: Sword,
stats: (
equip_time_secs: 0.9,
power: 0.9,
power: 0.85,
effect_power: 0.9,
speed: 1.1,
range: 0.9,

View File

@ -0,0 +1,14 @@
ItemDef(
legacy_name: "Wolf Armor",
legacy_description: "testing123",
kind: Armor((
kind: Chest,
stats: Direct((
protection: Some(Normal(16.0)),
poise_resilience: Some(Normal(15.0)),
energy_max: Some(10),
)),
)),
quality: Moderate,
tags: [],
)

View File

@ -4,7 +4,7 @@ ItemDef(
kind: Armor((
kind: Chest,
stats: Direct((
protection: Some(Normal(56.0)),
protection: Some(Normal(48.0)),
poise_resilience: Some(Normal(10.0)),
)),
)),

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.01,
power: 0.35,
power: 0.1,
effect_power: 0.4,
speed: 0.54,
range: 1.0,

View File

@ -0,0 +1,20 @@
ItemDef(
legacy_name: "Highland",
legacy_description: "testing123",
kind: Tool((
kind: Natural,
hands: Two,
stats: (
equip_time_secs: 0.01,
power: 0.75,
effect_power: 1.0,
speed: 1.0,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Common,
tags: [],
ability_spec: Some(Custom("Quad Med Basic")),
)

View File

@ -0,0 +1,20 @@
ItemDef(
legacy_name: "Wolf",
legacy_description: "testing123",
kind: Tool((
kind: Natural,
hands: Two,
stats: (
equip_time_secs: 0.01,
power: 0.6,
effect_power: 0.6,
speed: 1.0,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
)),
quality: Common,
tags: [],
ability_spec: Some(Custom("Quad Med Quick")),
)

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.01,
power: 1.77,
power: 1.5,
effect_power: 1.0,
speed: 1.5,
range: 1.3,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 1.75,
power: 1.45,
effect_power: 1.3,
speed: 0.8,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 3.0,
power: 2.25,
effect_power: 1.2,
speed: 0.7,
range: 1.0,

View File

@ -5,13 +5,13 @@ ItemDef(
kind: Axe,
hands: Two,
stats: (
equip_time_secs: 0.3,
power: 0.5,
equip_time_secs: 0.4,
power: 0.55,
effect_power: 1.0,
speed: 1.0,
speed: 0.75,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
energy_efficiency: 0.75,
buff_strength: 0.75,
),
)),
quality: Low,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 3.0,
power: 2.25,
effect_power: 1.0,
speed: 0.6,
range: 1.0,

View File

@ -6,12 +6,12 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 0.45,
effect_power: 0.3,
speed: 0.95,
power: 0.55,
effect_power: 1.0,
speed: 0.75,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 0.9,
energy_efficiency: 0.75,
buff_strength: 0.75,
),
)),
quality: Low,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 1.75,
power: 1.45,
effect_power: 1.0,
speed: 0.65,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 1.75,
power: 1.45,
effect_power: 1.0,
speed: 0.65,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 3.0,
power: 2.25,
effect_power: 1.0,
speed: 0.6,
range: 1.0,

View File

@ -5,13 +5,13 @@ ItemDef(
kind: Hammer,
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 0.45,
equip_time_secs: 0.4,
power: 0.55,
effect_power: 1.0,
speed: 0.95,
range: 0.95,
energy_efficiency: 1.0,
buff_strength: 0.9,
speed: 0.75,
range: 1.0,
energy_efficiency: 0.75,
buff_strength: 0.75,
),
)),
quality: Low,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 3.0,
power: 2.25,
effect_power: 1.0,
speed: 0.6,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 1.75,
power: 1.45,
effect_power: 1.0,
speed: 0.65,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.4,
power: 1.75,
power: 1.45,
effect_power: 1.5,
speed: 0.65,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.3,
power: 1.75,
power: 1.45,
effect_power: 1.0,
speed: 0.65,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.6,
power: 3.0,
power: 2.25,
effect_power: 1.0,
speed: 0.6,
range: 1.0,

View File

@ -5,13 +5,13 @@ ItemDef(
kind: Staff,
hands: Two,
stats: (
equip_time_secs: 0.3,
power: 0.45,
equip_time_secs: 0.4,
power: 0.55,
effect_power: 1.0,
speed: 0.95,
range: 0.95,
energy_efficiency: 1.0,
buff_strength: 0.95,
speed: 0.75,
range: 1.0,
energy_efficiency: 0.75,
buff_strength: 0.75,
),
)),
quality: Low,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 3.0,
power: 2.25,
effect_power: 1.2,
speed: 0.7,
range: 1.0,

View File

@ -6,7 +6,7 @@ ItemDef(
hands: Two,
stats: (
equip_time_secs: 0.5,
power: 1.75,
power: 1.45,
effect_power: 0.7,
speed: 0.8,
range: 1.0,

View File

@ -5,13 +5,13 @@ ItemDef(
kind: Sword,
hands: Two,
stats: (
equip_time_secs: 0.3,
power: 0.6,
equip_time_secs: 0.4,
power: 0.55,
effect_power: 1.0,
speed: 0.8,
speed: 0.75,
range: 1.0,
energy_efficiency: 0.9,
buff_strength: 1.1,
energy_efficiency: 0.75,
buff_strength: 0.75,
),
)),
quality: Low,

View File

@ -5,13 +5,13 @@ ItemDef(
kind: Sword,
hands: One,
stats: (
equip_time_secs: 0.3,
power: 0.4,
effect_power: 1.0,
speed: 1.2,
range: 1.0,
energy_efficiency: 1.1,
buff_strength: 0.9,
equip_time_secs: 0.4,
power: 0.4675,
effect_power: 0.9,
speed: 0.825,
range: 0.9,
energy_efficiency: 0.825,
buff_strength: 0.675,
),
)),
quality: Low,

View File

@ -270,14 +270,14 @@
"iron_ingot": (
output: ("common.items.mineral.ingot.iron", 1),
inputs: [
(Item("common.items.mineral.ore.iron"), 2, false),
(Item("common.items.mineral.ore.iron"), 1, false),
],
craft_sprite: Some(Forge),
),
"cobalt_ingot": (
output: ("common.items.mineral.ingot.cobalt", 1),
inputs: [
(Item("common.items.mineral.ore.cobalt"), 2, false),
(Item("common.items.mineral.ore.cobalt"), 1, false),
],
craft_sprite: Some(Forge),
),

View File

@ -586,6 +586,9 @@ common-items-npc_armor-quadruped_medium-hirdrasil = Hirdrasil's Blessing
common-items-npc_armor-quadruped_medium-roshwalr = Roshwalr's Thick Skin
.desc = Testing123.
common-items-npc_armor-quadruped_medium-wolf = Wolf Armor
.desc = Testing123.
common-items-npc_armor-quadruped_small-boar = Boar Armor
.desc = Worn by small beasties.

View File

@ -400,6 +400,9 @@ common-items-npc_weapons-unique-quadruped_medium-donkey = Donkey
common-items-npc_weapons-unique-quadruped_medium-grolgar = Grolgar
.desc = testing123
common-items-npc_weapons-unique-quadruped_medium-highland = Highland
.desc = testing123
common-items-npc_weapons-unique-quadruped_medium-horse = Horse
.desc = testing123
@ -409,6 +412,9 @@ common-items-npc_weapons-unique-quadruped_medium-moose = Moose
common-items-npc_weapons-unique-quadruped_medium-mouflon = Mouflon
.desc = testing123
common-items-npc_weapons-unique-quadruped_medium-wolf = Wolf
.desc = testing123
common-items-npc_weapons-unique-quadruped_small-boar = Boar
.desc = testing123

View File

@ -6,8 +6,8 @@ SpawnEntry (
groups: [
(1, (1, 1, "common.entity.wild.aggressive.rocksnapper")),
(4, (1, 1, "common.entity.wild.aggressive.dodarock")),
(5, (1, 3, "common.entity.wild.peaceful.gecko")),
(5, (1, 2, "common.entity.wild.peaceful.sand_hare")),
(9, (1, 3, "common.entity.wild.peaceful.gecko")),
(8, (1, 2, "common.entity.wild.peaceful.sand_hare")),
(3, (1, 1, "common.entity.wild.aggressive.bonerattler")),
],
spawn_mode: Land,

View File

@ -5,13 +5,13 @@ SpawnEntry (
Pack(
groups: [
// Casual
(5, (1, 1, "common.entity.wild.aggressive.sandshark")),
(4, (1, 1, "common.entity.wild.peaceful.eagle")),
(20, (1, 1, "common.entity.wild.aggressive.sandshark")),
(21, (1, 1, "common.entity.wild.peaceful.eagle")),
(20, (1, 1, "common.entity.wild.aggressive.tarantula")),
// Rare
(1, (1, 1, "common.entity.wild.aggressive.archaeos")),
(1, (1, 1, "common.entity.wild.aggressive.ntouka")),
(1, (1, 1, "common.entity.wild.aggressive.tarantula")),
(2, (1, 1, "common.entity.wild.aggressive.ogre")),
(7, (1, 1, "common.entity.wild.aggressive.ogre")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

@ -5,28 +5,29 @@ SpawnEntry (
Pack(
groups: [
// Casual
(5, (1, 1, "common.entity.wild.aggressive.tiger")),
(3, (1, 1, "common.entity.wild.aggressive.maneater")),
(4, (2, 3, "common.entity.wild.aggressive.wood_raptor")),
(5, (1, 1, "common.entity.wild.aggressive.deadwood")),
(5, (2, 6, "common.entity.wild.peaceful.dodo")),
(12, (1, 1, "common.entity.wild.aggressive.tiger")),
(5, (1, 1, "common.entity.wild.aggressive.maneater")),
(9, (2, 3, "common.entity.wild.aggressive.wood_raptor")),
(14, (1, 1, "common.entity.wild.aggressive.deadwood")),
(18, (2, 6, "common.entity.wild.peaceful.dodo")),
// Rare
(4, (1, 1, "common.entity.wild.aggressive.sunlizard")),
(10, (1, 1, "common.entity.wild.aggressive.sunlizard")),
(1, (1, 1, "common.entity.wild.aggressive.odonto")),
(2, (1, 3, "common.entity.wild.aggressive.mighty_saurok")),
(2, (1, 3, "common.entity.wild.aggressive.occult_saurok")),
(2, (1, 3, "common.entity.wild.aggressive.sly_saurok")),
(3, (1, 1, "common.entity.wild.aggressive.mossdrake")),
(3, (1, 3, "common.entity.wild.aggressive.mighty_saurok")),
(3, (1, 3, "common.entity.wild.aggressive.occult_saurok")),
(3, (1, 3, "common.entity.wild.aggressive.sly_saurok")),
(4, (1, 1, "common.entity.wild.aggressive.mossdrake")),
],
spawn_mode: Land,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
(5, (2, 3, "common.entity.wild.aggressive.wood_raptor")),
(5, (1, 1, "common.entity.wild.aggressive.deadwood")),
(4, (1, 1, "common.entity.wild.aggressive.tiger")),
(4, (1, 1, "common.entity.wild.aggressive.maneater")),
(18, (2, 3, "common.entity.wild.aggressive.wood_raptor")),
(28, (1, 1, "common.entity.wild.aggressive.deadwood")),
(24, (1, 1, "common.entity.wild.aggressive.tiger")),
(10, (1, 1, "common.entity.wild.aggressive.maneater")),
(8, (1, 1, "common.entity.wild.aggressive.mossdrake")),
(2, (1, 1, "common.entity.wild.aggressive.cockatrice")),
(1, (1, 1, "common.entity.wild.aggressive.odonto")),
],

View File

@ -5,16 +5,16 @@ SpawnEntry (
Pack(
groups: [
// Casual
(4, (1, 1, "common.entity.wild.peaceful.parrot")),
(4, (1, 1, "common.entity.wild.peaceful.parakeet")),
(4, (1, 1, "common.entity.wild.peaceful.toucan")),
(3, (1, 1, "common.entity.wild.peaceful.peacock")),
(5, (1, 1, "common.entity.wild.peaceful.parrot")),
(5, (1, 1, "common.entity.wild.peaceful.parakeet")),
(5, (1, 1, "common.entity.wild.peaceful.toucan")),
(4, (1, 1, "common.entity.wild.peaceful.peacock")),
// Rare
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(3, (1, 1, "common.entity.wild.peaceful.tortoise")),
(4, (1, 1, "common.entity.wild.peaceful.tortoise")),
(3, (1, 1, "common.entity.wild.aggressive.monitor")),
(3, (1, 1, "common.entity.wild.peaceful.crawler_moss")),
(2, (1, 1, "common.entity.wild.aggressive.rootsnapper")),
(1, (1, 1, "common.entity.wild.aggressive.rootsnapper")),
(2, (1, 1, "common.entity.wild.aggressive.axebeak")),
(1, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
],
@ -23,22 +23,31 @@ SpawnEntry (
),
Pack(
groups: [
(1, (1, 1, "common.entity.wild.peaceful.quokka")),
(6, (1, 1, "common.entity.wild.peaceful.parrot")),
(6, (1, 1, "common.entity.wild.peaceful.parakeet")),
(6, (1, 1, "common.entity.wild.peaceful.toucan")),
(4, (1, 1, "common.entity.wild.peaceful.peacock")),
(3, (1, 1, "common.entity.wild.peaceful.quokka")),
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(2, (1, 1, "common.entity.wild.aggressive.horn_beetle")),
(2, (1, 1, "common.entity.wild.aggressive.stag_beetle")),
(3, (1, 1, "common.entity.wild.peaceful.crawler_moss")),
(1, (1, 1, "common.entity.wild.aggressive.rootsnapper")),
(1, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
],
spawn_mode: Land,
day_period: [Evening],
),
Pack(
groups: [
(5, (1, 1, "common.entity.wild.peaceful.quokka")),
(3, (1, 1, "common.entity.wild.peaceful.parrot")),
(3, (1, 1, "common.entity.wild.peaceful.parakeet")),
(3, (1, 1, "common.entity.wild.peaceful.quokka")),
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(1, (1, 1, "common.entity.wild.aggressive.horn_beetle")),
(1, (1, 1, "common.entity.wild.aggressive.stag_beetle")),
(1, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
(3, (1, 1, "common.entity.wild.aggressive.horn_beetle")),
(3, (1, 1, "common.entity.wild.aggressive.stag_beetle")),
(2, (1, 1, "common.entity.wild.aggressive.swamp_troll")),
],
spawn_mode: Land,
day_period: [Night],

View File

@ -4,39 +4,41 @@ SpawnEntry (
rules: [
Pack(
groups: [
(2, (1, 1, "common.entity.wild.aggressive.bear")),
(2, (1, 1, "common.entity.wild.peaceful.eagle")),
(2, (1, 1, "common.entity.wild.peaceful.moose")),
(2, (1, 1, "common.entity.wild.peaceful.tuskram")),
(2, (1, 1, "common.entity.wild.aggressive.bristleback")),
(2, (1, 4, "common.entity.wild.peaceful.crow")),
(3, (1, 7, "common.entity.wild.peaceful.deer")),
(3, (1, 7, "common.entity.wild.peaceful.jackalope")),
(3, (2, 5, "common.entity.wild.peaceful.boar")),
(2, (5, 10, "common.entity.wild.peaceful.sheep")),
(3, (1, 2, "common.entity.wild.peaceful.squirrel")),
(2, (5, 10, "common.entity.wild.peaceful.goat")),
(3, (3, 8, "common.entity.wild.peaceful.llama")),
(2, (1, 2, "common.entity.wild.peaceful.donkey")),
(3, (1, 1, "common.entity.wild.peaceful.skunk")),
(3, (1, 1, "common.entity.wild.peaceful.raccoon")),
(1, (1, 1, "common.entity.wild.peaceful.catoblepas")),
(3, (1, 1, "common.entity.wild.peaceful.truffler")),
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(2, (1, 1, "common.entity.wild.aggressive.saber")),
(3, (1, 1, "common.entity.wild.aggressive.bear")),
(7, (1, 1, "common.entity.wild.peaceful.eagle")),
(4, (1, 1, "common.entity.wild.peaceful.moose")),
(6, (1, 1, "common.entity.wild.peaceful.tuskram")),
(3, (1, 1, "common.entity.wild.aggressive.bristleback")),
(10, (1, 4, "common.entity.wild.peaceful.crow")),
(7, (1, 7, "common.entity.wild.peaceful.deer")),
(10, (1, 7, "common.entity.wild.peaceful.jackalope")),
(7, (2, 5, "common.entity.wild.peaceful.boar")),
(9, (5, 10, "common.entity.wild.peaceful.sheep")),
(13, (1, 2, "common.entity.wild.peaceful.squirrel")),
(7, (2, 6, "common.entity.wild.peaceful.goat")),
(6, (3, 8, "common.entity.wild.peaceful.llama")),
(6, (1, 2, "common.entity.wild.peaceful.donkey")),
(7, (1, 1, "common.entity.wild.peaceful.skunk")),
(10, (1, 1, "common.entity.wild.peaceful.raccoon")),
(2, (1, 1, "common.entity.wild.peaceful.catoblepas")),
(2, (1, 1, "common.entity.wild.peaceful.hirdrasil")),
(8, (1, 1, "common.entity.wild.peaceful.truffler")),
(3, (1, 1, "common.entity.wild.aggressive.tarasque")),
(3, (1, 1, "common.entity.wild.aggressive.saber")),
],
spawn_mode: Land,
day_period: [Morning, Noon, Evening],
),
Pack(
groups: [
(10, (1, 3, "common.entity.wild.peaceful.squirrel")),
(10, (1, 1, "common.entity.wild.peaceful.forest_fox")),
(10, (1, 3, "common.entity.wild.peaceful.raccoon")),
(8, (1, 1, "common.entity.wild.peaceful.horned_owl")),
(4, (1, 1, "common.entity.wild.aggressive.bear")),
(1, (1, 1, "common.entity.wild.aggressive.tarasque")),
(12, (1, 3, "common.entity.wild.peaceful.squirrel")),
(12, (1, 1, "common.entity.wild.peaceful.forest_fox")),
(12, (1, 3, "common.entity.wild.peaceful.raccoon")),
(11, (1, 1, "common.entity.wild.peaceful.horned_owl")),
(5, (1, 1, "common.entity.wild.aggressive.bear")),
(2, (1, 1, "common.entity.wild.aggressive.tarasque")),
(1, (1, 1, "common.entity.wild.peaceful.catoblepas")),
(1, (1, 1, "common.entity.wild.peaceful.hirdrasil")),
// TODO: Maybe reenable once the dullahan design is more carefully considered, or move it elsewhere (i.e: such as a haunted/ruins site)
//(2, (1, 1, "common.entity.wild.aggressive.dullahan")),
],

View File

@ -4,6 +4,7 @@ SpawnEntry (
rules: [
Pack(
groups: [
// We need more entities to fill this out
(1, (1, 1, "common.entity.wild.aggressive.dreadhorn")),
],
spawn_mode: Land,

View File

@ -4,16 +4,16 @@ SpawnEntry (
rules: [
Pack(
groups: [
(5, (1, 1, "common.entity.wild.aggressive.weevil")),
(5, (1, 7, "common.entity.wild.peaceful.horse")),
(5, (5, 10, "common.entity.wild.peaceful.cattle")),
(5, (2, 5, "common.entity.wild.peaceful.chicken")),
(5, (1, 7, "common.entity.wild.peaceful.rabbit")),
(3, (1, 1, "common.entity.wild.aggressive.weevil")),
(1, (1, 7, "common.entity.wild.peaceful.horse")),
(1, (5, 10, "common.entity.wild.peaceful.cattle")),
(5, (3, 5, "common.entity.wild.peaceful.chicken")),
(5, (2, 7, "common.entity.wild.peaceful.rabbit")),
(5, (1, 2, "common.entity.wild.peaceful.frog")),
(5, (1, 7, "common.entity.wild.peaceful.pig")),
(5, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(5, (1, 1, "common.entity.wild.peaceful.bushly")),
(5, (1, 1, "common.entity.wild.peaceful.driggle")),
(5, (3, 7, "common.entity.wild.peaceful.pig")),
(4, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(4, (1, 1, "common.entity.wild.peaceful.bushly")),
(4, (1, 1, "common.entity.wild.peaceful.driggle")),
],
spawn_mode: Land,
day_period: [Morning, Noon, Evening],

View File

@ -5,14 +5,14 @@ SpawnEntry (
Pack(
groups: [
// Pack animals
(2, (1, 7, "common.entity.wild.peaceful.boar")),
(3, (1, 7, "common.entity.wild.peaceful.boar")),
// Solitary
(2, (1, 1, "common.entity.wild.peaceful.mossy_snail")),
(2, (1, 1, "common.entity.wild.peaceful.treant_sapling")),
(3, (1, 1, "common.entity.wild.peaceful.mossy_snail")),
(3, (1, 1, "common.entity.wild.peaceful.treant_sapling")),
(2, (1, 1, "common.entity.wild.peaceful.peacock")),
(2, (1, 1, "common.entity.wild.peaceful.turtle")),
(2, (1, 1, "common.entity.wild.peaceful.truffler")),
(2, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(4, (1, 1, "common.entity.wild.peaceful.turtle")),
(4, (1, 1, "common.entity.wild.peaceful.truffler")),
(3, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(2, (1, 1, "common.entity.wild.aggressive.weevil")),
],
spawn_mode: Land,

View File

@ -5,20 +5,20 @@ SpawnEntry (
Pack(
groups: [
// Aggressive
(4, (1, 1, "common.entity.wild.aggressive.weevil")),
(6, (1, 1, "common.entity.wild.aggressive.weevil")),
// Peaceful
(5, (1, 1, "common.entity.wild.peaceful.skunk")),
(5, (1, 4, "common.entity.wild.peaceful.crow")),
(4, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(4, (1, 7, "common.entity.wild.peaceful.deer")),
(5, (1, 7, "common.entity.wild.peaceful.rabbit")),
(5, (1, 2, "common.entity.wild.peaceful.squirrel")),
(4, (1, 1, "common.entity.wild.peaceful.mossy_snail")),
(4, (1, 1, "common.entity.wild.peaceful.treant_sapling")),
(5, (1, 1, "common.entity.wild.peaceful.raccoon")),
(5, (1, 1, "common.entity.wild.peaceful.turtle")),
(5, (1, 2, "common.entity.wild.peaceful.frog")),
(5, (1, 2, "common.entity.wild.peaceful.fungome")),
(8, (1, 1, "common.entity.wild.peaceful.skunk")),
(10, (1, 4, "common.entity.wild.peaceful.crow")),
(7, (1, 1, "common.entity.wild.peaceful.leaf_beetle")),
(5, (1, 7, "common.entity.wild.peaceful.deer")),
(9, (1, 7, "common.entity.wild.peaceful.rabbit")),
(9, (1, 2, "common.entity.wild.peaceful.squirrel")),
(7, (1, 1, "common.entity.wild.peaceful.mossy_snail")),
(7, (1, 1, "common.entity.wild.peaceful.treant_sapling")),
(6, (1, 1, "common.entity.wild.peaceful.raccoon")),
(9, (1, 1, "common.entity.wild.peaceful.turtle")),
(9, (1, 2, "common.entity.wild.peaceful.frog")),
(9, (1, 2, "common.entity.wild.peaceful.fungome")),
(1, (1, 1, "common.entity.wild.peaceful.hirdrasil")),
],
spawn_mode: Land,

View File

@ -4,9 +4,9 @@ SpawnEntry (
rules: [
Pack(
groups: [
(2, (1, 3, "common.entity.wild.aggressive.sea_crocodile")),
(4, (8, 16, "common.entity.wild.peaceful.crab")),
(1, (1, 1, "common.entity.wild.aggressive.reefsnapper")),
(3, (1, 3, "common.entity.wild.aggressive.sea_crocodile")),
(16, (8, 16, "common.entity.wild.peaceful.crab")),
(2, (1, 1, "common.entity.wild.aggressive.reefsnapper")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

@ -4,12 +4,12 @@ SpawnEntry (
rules: [
Pack(
groups: [
(5, (2, 3, "common.entity.wild.aggressive.male_lion")),
(5, (2, 5, "common.entity.wild.aggressive.hyena")),
(6, (3, 6, "common.entity.wild.peaceful.zebra")),
(6, (3, 6, "common.entity.wild.peaceful.antelope")),
(6, (1, 1, "common.entity.wild.peaceful.porcupine")),
(6, (1, 1, "common.entity.wild.peaceful.pangolin")),
(7, (2, 3, "common.entity.wild.aggressive.male_lion")),
(9, (2, 5, "common.entity.wild.aggressive.hyena")),
(11, (3, 6, "common.entity.wild.peaceful.zebra")),
(11, (3, 6, "common.entity.wild.peaceful.antelope")),
(15, (1, 1, "common.entity.wild.peaceful.porcupine")),
(14, (1, 1, "common.entity.wild.peaceful.pangolin")),
(4, (1, 1, "common.entity.wild.aggressive.tarantula")),
(1, (1, 1, "common.entity.wild.aggressive.ngoubou")),
],

View File

@ -4,17 +4,17 @@ SpawnEntry (
rules: [
Pack(
groups: [
(5, (3, 4, "common.entity.wild.peaceful.piranha")),
(5, (1, 2, "common.entity.wild.peaceful.axolotl")),
(4, (1, 2, "common.entity.wild.aggressive.alligator")),
(3, (3, 4, "common.entity.wild.peaceful.piranha")),
(6, (1, 2, "common.entity.wild.peaceful.axolotl")),
(1, (1, 2, "common.entity.wild.aggressive.alligator")),
],
spawn_mode: Water,
day_period: [Night, Morning, Noon, Evening],
),
Pack(
groups: [
(2, (1, 1, "common.entity.wild.peaceful.kelpie")),
(2, (8, 16, "common.entity.wild.peaceful.crab")),
(1, (1, 1, "common.entity.wild.peaceful.kelpie")),
(8, (2, 6, "common.entity.wild.peaceful.crab")),
(2, (1, 1, "common.entity.wild.aggressive.crocodile")),
],
spawn_mode: Land,

View File

@ -4,11 +4,11 @@ SpawnEntry (
rules: [
Pack(
groups: [
(3, (2, 4, "common.entity.wild.aggressive.snow_raptor")),
(7, (2, 4, "common.entity.wild.aggressive.snow_raptor")),
(2, (1, 1, "common.entity.wild.aggressive.wendigo")),
(1, (2, 3, "common.entity.wild.peaceful.mammoth")),
(3, (2, 6, "common.entity.wild.peaceful.yak")),
(2, (1, 1, "common.entity.wild.aggressive.mountain_troll")),
(9, (2, 6, "common.entity.wild.peaceful.yak")),
(3, (1, 1, "common.entity.wild.aggressive.mountain_troll")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

@ -4,10 +4,10 @@ SpawnEntry (
rules: [
Pack(
groups: [
(2, (2, 3, "common.entity.wild.aggressive.frostfang")),
(3, (1, 1, "common.entity.wild.aggressive.snow_leopard")),
(7, (2, 3, "common.entity.wild.aggressive.frostfang")),
(11, (1, 1, "common.entity.wild.aggressive.snow_leopard")),
(1, (1, 1, "common.entity.wild.aggressive.yale")),
(2, (1, 1, "common.entity.wild.aggressive.grolgar")),
(1, (1, 1, "common.entity.wild.aggressive.grolgar")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

@ -5,7 +5,7 @@ SpawnEntry (
Pack(
groups: [
(1, (1, 1, "common.entity.wild.aggressive.hakulaq")),
(1, (1, 2, "common.entity.wild.aggressive.icepike")),
(4, (2, 5, "common.entity.wild.aggressive.icepike")),
],
spawn_mode: Water,
day_period: [Night, Morning, Noon, Evening],

View File

@ -6,8 +6,8 @@ SpawnEntry (
groups: [
(1, (2, 3, "common.entity.wild.aggressive.frostfang")),
(1, (2, 4, "common.entity.wild.aggressive.snow_raptor")),
(1, (1, 1, "common.entity.wild.peaceful.snowy_owl")),
(1, (1, 1, "common.entity.wild.peaceful.arctic_fox")),
(3, (1, 1, "common.entity.wild.peaceful.snowy_owl")),
(2, (1, 1, "common.entity.wild.peaceful.arctic_fox")),
],
spawn_mode: Land,
day_period: [Night, Morning, Noon, Evening],

View File

@ -361,7 +361,8 @@ impl<'a> From<&'a Body> for Psyche {
| biped_small::Species::Flamekeeper
| biped_small::Species::Irrwurz
| biped_small::Species::ShamanicSpirit
| biped_small::Species::Jiangshi => 0.0,
| biped_small::Species::Jiangshi
| biped_small::Species::Bushly => 0.0,
_ => 0.5,
},

View File

@ -833,10 +833,13 @@ impl Body {
quadruped_small::Species::Cat => 25,
quadruped_small::Species::Dog => 30,
quadruped_small::Species::Fox => 15,
quadruped_small::Species::Goat => 15,
quadruped_small::Species::Hare => 15,
quadruped_small::Species::Jackalope => 30,
quadruped_small::Species::Pig => 15,
quadruped_small::Species::Quokka => 10,
quadruped_small::Species::Rabbit => 10,
quadruped_small::Species::Raccoon => 15,
quadruped_small::Species::Seal => 15,
quadruped_small::Species::TreantSapling => 55,
quadruped_small::Species::Sheep => 30,
@ -876,7 +879,7 @@ impl Body {
quadruped_medium::Species::Grolgar => 320,
quadruped_medium::Species::Hirdrasil => 850,
quadruped_medium::Species::Mammoth => 740,
quadruped_medium::Species::Ngoubou => 370,
quadruped_medium::Species::Ngoubou => 450,
quadruped_medium::Species::Roshwalr => 500,
_ => 100,
},
@ -1013,9 +1016,9 @@ impl Body {
quadruped_low::Species::Lavadrake => 460,
quadruped_low::Species::Maneater => 800,
quadruped_low::Species::Mossdrake => 720,
quadruped_low::Species::Rocksnapper => 280,
quadruped_low::Species::Reefsnapper => 290,
quadruped_low::Species::Rootsnapper => 300,
quadruped_low::Species::Rocksnapper => 380,
quadruped_low::Species::Reefsnapper => 390,
quadruped_low::Species::Rootsnapper => 400,
quadruped_low::Species::Sandshark => 550,
// T3B
quadruped_low::Species::Basilisk => 1300,
@ -1201,6 +1204,25 @@ impl Body {
quadruped_low::Species::HermitAlligator => 2.0,
_ => 1.0,
},
Body::QuadrupedSmall(b) => match b.species {
quadruped_small::Species::Axolotl | quadruped_small::Species::Gecko => 0.6,
_ => 1.0,
},
#[allow(unreachable_patterns)] // TODO: Remove when more medium fish species are added
Body::FishMedium(b) => match b.species {
fish_medium::Species::Marlin | fish_medium::Species::Icepike => 0.6,
_ => 1.0,
},
#[allow(unreachable_patterns)] // TODO: Remove when more small fish species are added
Body::FishSmall(b) => match b.species {
fish_small::Species::Clownfish | fish_small::Species::Piranha => 0.6,
_ => 1.0,
},
#[allow(unreachable_patterns)] // TODO: Remove when more crustacean species are added
Body::Crustacean(b) => match b.species {
crustacean::Species::Crab => 0.6,
_ => 1.0,
},
_ => 1.0,
}
}

View File

@ -816,8 +816,9 @@ impl Buffs {
};
// If another buff with the same fields is found, update end_time and effects
let key = if let Some((other_buff, key)) =
other_key.and_then(|key| Some((self.buffs.get_mut(key)?, key)))
let key = if !kind.stacks()
&& let Some((other_buff, key)) =
other_key.and_then(|key| Some((self.buffs.get_mut(key)?, key)))
{
other_buff.end_time = buff.end_time;
other_buff.effects = buff.effects;

View File

@ -567,7 +567,7 @@ fn default_main_tool(body: &Body) -> Item {
},
Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species {
quadruped_medium::Species::Wolf => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadmedquick",
"common.items.npc_weapons.unique.quadruped_medium.wolf",
)),
// Below uniques still follow quadmedhoof just with stat alterations
quadruped_medium::Species::Alpaca | quadruped_medium::Species::Llama => {
@ -622,11 +622,14 @@ fn default_main_tool(body: &Body) -> Item {
quadruped_medium::Species::Roshwalr => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.roshwalr",
)),
quadruped_medium::Species::Highland
| quadruped_medium::Species::Cattle
| quadruped_medium::Species::Yak => Some(Item::new_from_asset_expect(
quadruped_medium::Species::Cattle => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadmedbasicgentle",
)),
quadruped_medium::Species::Highland | quadruped_medium::Species::Yak => {
Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadruped_medium.highland",
))
},
quadruped_medium::Species::Frostfang => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.frostfang",
)),
@ -1195,6 +1198,9 @@ impl LoadoutBuilder {
| quadruped_medium::Species::Zebra => {
Some("common.items.npc_armor.quadruped_medium.equus")
},
quadruped_medium::Species::Wolf => {
Some("common.items.npc_armor.quadruped_medium.wolf")
},
_ => Some("common.items.npc_armor.quadruped_medium.broad"),
},
Body::Theropod(body) => match body.species {

View File

@ -43,6 +43,8 @@ pub const MOVEMENT_THRESHOLD_VEL: f32 = 3.0;
impl Body {
pub fn base_accel(&self) -> f32 {
match self {
// Note: Entities have been slowed down relative to humanoid speeds, but it may be worth
// reverting/increasing speed once we've established slower AI.
Body::Humanoid(_) => 100.0,
Body::QuadrupedSmall(body) => match body.species {
quadruped_small::Species::Turtle => 30.0,
@ -63,43 +65,43 @@ impl Body {
_ => 125.0,
},
Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species {
quadruped_medium::Species::Grolgar => 110.0,
quadruped_medium::Species::Saber => 180.0,
quadruped_medium::Species::Tiger => 150.0,
quadruped_medium::Species::Tuskram => 160.0,
quadruped_medium::Species::Lion => 170.0,
quadruped_medium::Species::Grolgar => 100.0,
quadruped_medium::Species::Saber => 110.0,
quadruped_medium::Species::Tiger => 110.0,
quadruped_medium::Species::Tuskram => 85.0,
quadruped_medium::Species::Lion => 105.0,
quadruped_medium::Species::Tarasque => 100.0,
quadruped_medium::Species::Wolf => 180.0,
quadruped_medium::Species::Frostfang => 180.0,
quadruped_medium::Species::Mouflon => 100.0,
quadruped_medium::Species::Catoblepas => 70.0,
quadruped_medium::Species::Bonerattler => 130.0,
quadruped_medium::Species::Deer => 150.0,
quadruped_medium::Species::Hirdrasil => 160.0,
quadruped_medium::Species::Roshwalr => 160.0,
quadruped_medium::Species::Donkey => 110.0,
quadruped_medium::Species::Wolf => 115.0,
quadruped_medium::Species::Frostfang => 115.0,
quadruped_medium::Species::Mouflon => 75.0,
quadruped_medium::Species::Catoblepas => 60.0,
quadruped_medium::Species::Bonerattler => 115.0,
quadruped_medium::Species::Deer => 120.0,
quadruped_medium::Species::Hirdrasil => 110.0,
quadruped_medium::Species::Roshwalr => 70.0,
quadruped_medium::Species::Donkey => 90.0,
quadruped_medium::Species::Camel => 75.0,
quadruped_medium::Species::Zebra => 150.0,
quadruped_medium::Species::Antelope => 185.0,
quadruped_medium::Species::Kelpie => 180.0,
quadruped_medium::Species::Horse => 180.0,
quadruped_medium::Species::Antelope => 155.0,
quadruped_medium::Species::Kelpie => 140.0,
quadruped_medium::Species::Horse => 140.0,
quadruped_medium::Species::Barghest => 80.0,
quadruped_medium::Species::Cattle => 80.0,
quadruped_medium::Species::Darkhound => 160.0,
quadruped_medium::Species::Darkhound => 115.0,
quadruped_medium::Species::Highland => 80.0,
quadruped_medium::Species::Yak => 90.0,
quadruped_medium::Species::Yak => 80.0,
quadruped_medium::Species::Panda => 90.0,
quadruped_medium::Species::Bear => 90.0,
quadruped_medium::Species::Dreadhorn => 140.0,
quadruped_medium::Species::Moose => 130.0,
quadruped_medium::Species::Snowleopard => 160.0,
quadruped_medium::Species::Mammoth => 180.0,
quadruped_medium::Species::Ngoubou => 170.0,
quadruped_medium::Species::Llama => 120.0,
quadruped_medium::Species::Alpaca => 110.0,
quadruped_medium::Species::Dreadhorn => 95.0,
quadruped_medium::Species::Moose => 105.0,
quadruped_medium::Species::Snowleopard => 115.0,
quadruped_medium::Species::Mammoth => 75.0,
quadruped_medium::Species::Ngoubou => 95.0,
quadruped_medium::Species::Llama => 100.0,
quadruped_medium::Species::Alpaca => 100.0,
quadruped_medium::Species::Akhlut => 90.0,
quadruped_medium::Species::Bristleback => 135.0,
quadruped_medium::Species::ClaySteed => 120.0,
quadruped_medium::Species::Bristleback => 105.0,
quadruped_medium::Species::ClaySteed => 85.0,
},
Body::BipedLarge(body) => match body.species {
biped_large::Species::Slysaurok => 100.0,
@ -129,43 +131,50 @@ impl Body {
golem::Species::ClayGolem => 120.0,
_ => 60.0,
},
Body::Theropod(_) => 135.0,
Body::Theropod(theropod) => match theropod.species {
theropod::Species::Archaeos
| theropod::Species::Odonto
| theropod::Species::Ntouka => 110.0,
theropod::Species::Dodarock => 75.0,
theropod::Species::Yale => 115.0,
_ => 125.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::Crocodile => 60.0,
quadruped_low::Species::SeaCrocodile => 60.0,
quadruped_low::Species::Alligator => 65.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::Monitor => 130.0,
quadruped_low::Species::Asp => 100.0,
quadruped_low::Species::Tortoise => 60.0,
quadruped_low::Species::Rocksnapper => 70.0,
quadruped_low::Species::Rootsnapper => 70.0,
quadruped_low::Species::Reefsnapper => 70.0,
quadruped_low::Species::Pangolin => 90.0,
quadruped_low::Species::Maneater => 80.0,
quadruped_low::Species::Sandshark => 160.0,
quadruped_low::Species::Hakulaq => 140.0,
quadruped_low::Species::Sandshark => 125.0,
quadruped_low::Species::Hakulaq => 125.0,
quadruped_low::Species::Dagon => 140.0,
quadruped_low::Species::Lavadrake => 100.0,
quadruped_low::Species::Icedrake => 100.0,
quadruped_low::Species::Basilisk => 90.0,
quadruped_low::Species::Deadwood => 140.0,
quadruped_low::Species::Basilisk => 85.0,
quadruped_low::Species::Deadwood => 110.0,
quadruped_low::Species::Mossdrake => 100.0,
quadruped_low::Species::Driggle => 120.0,
quadruped_low::Species::HermitAlligator => 120.0,
quadruped_low::Species::HermitAlligator => 65.0,
},
Body::Ship(ship::Body::Carriage) => 40.0,
Body::Ship(_) => 0.0,
Body::Arthropod(arthropod) => match arthropod.species {
arthropod::Species::Tarantula => 135.0,
arthropod::Species::Blackwidow => 110.0,
arthropod::Species::Antlion => 120.0,
arthropod::Species::Tarantula => 85.0,
arthropod::Species::Blackwidow => 95.0,
arthropod::Species::Antlion => 115.0,
arthropod::Species::Hornbeetle => 80.0,
arthropod::Species::Leafbeetle => 80.0,
arthropod::Species::Leafbeetle => 65.0,
arthropod::Species::Stagbeetle => 80.0,
arthropod::Species::Weevil => 110.0,
arthropod::Species::Cavespider => 110.0,
arthropod::Species::Weevil => 70.0,
arthropod::Species::Cavespider => 90.0,
arthropod::Species::Moltencrawler => 70.0,
arthropod::Species::Mosscrawler => 70.0,
arthropod::Species::Sandcrawler => 70.0,

View File

@ -679,7 +679,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Moose, _) => 0.95,
(Snowleopard, _) => 0.95,
(Mammoth, _) => 3.0,
(Ngoubou, _) => 1.0,
(Ngoubou, _) => 1.2,
(Akhlut, _) => 1.4,
(Bristleback, _) => 1.1,
(ClaySteed, _) => 1.75,

View File

@ -309,6 +309,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Hare, _) => 0.65,
(Seal, _) => 0.9,
(MossySnail, _) => 1.0,
(Hyena, _) => 0.95,
_ => 0.8,
},
tempo: match (body.species, body.body_type) {

View File

@ -831,7 +831,7 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
// Leafy biome
(
Some("common.entity.wild.peaceful.holladon"),
(biome.leafy + 0.05) * 0.5,
(biome.leafy.max(biome.barren) + 0.1) * 0.5,
),
(
Some("common.entity.wild.peaceful.turtle"),
@ -847,11 +847,11 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
),
(
Some("common.entity.wild.aggressive.maneater"),
(biome.leafy + 0.05) * 0.1,
(biome.leafy + 0.0) * 0.05,
),
(
Some("common.entity.wild.aggressive.batfox"),
(biome.leafy.max(biome.barren) + 0.3) * 0.35,
(biome.leafy.max(biome.barren) + 0.15) * 0.35,
),
(
Some("common.entity.wild.aggressive.rocksnapper"),
@ -859,11 +859,11 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
),
(
Some("common.entity.wild.aggressive.cave_salamander"),
(biome.leafy + 0.0) * 0.2,
(biome.leafy + 0.1) * 0.2,
),
(
Some("common.entity.wild.aggressive.asp"),
(biome.leafy + 0.1) * 0.15,
(biome.leafy + 0.1) * 0.1,
),
(
Some("common.entity.wild.aggressive.swamp_troll"),
@ -880,7 +880,7 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
),
(
Some("common.entity.wild.aggressive.cave_spider"),
(biome.dusty + 0.0) * 0.25,
(biome.dusty + 0.0) * 0.05,
),
(
Some("common.entity.wild.aggressive.cave_troll"),
@ -888,15 +888,15 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
),
(
Some("common.entity.wild.aggressive.antlion"),
(biome.dusty.max(biome.barren) + 0.1) * 0.05,
(biome.dusty.min(biome.depth) + 0.0) * 0.01,
),
(
Some("common.entity.wild.peaceful.rat"),
(biome.dusty + 0.1) * 0.3,
(biome.dusty.max(biome.barren) + 0.15) * 0.3,
),
(
Some("common.entity.wild.peaceful.bat"),
(biome.dusty + 0.1) * 0.25,
(biome.dusty.max(biome.barren) + 0.1) * 0.25,
),
// Icy biome
(
@ -905,7 +905,7 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
),
(
Some("common.entity.wild.aggressive.icedrake"),
(biome.icy + 0.0) * 0.1,
(biome.icy + 0.0) * 0.04,
),
(
Some("common.entity.wild.aggressive.wendigo"),
@ -914,15 +914,11 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
// Lava biome
(
Some("common.entity.wild.aggressive.lavadrake"),
(biome.fire + 0.0) * 0.2,
),
(
Some("common.entity.wild.aggressive.basilisk"),
(biome.fire + 0.1) * 0.01,
(biome.fire + 0.0) * 0.15,
),
(
Some("common.entity.wild.peaceful.crawler_molten"),
(biome.fire + 0.0) * 0.75,
(biome.fire + 0.0) * 0.35,
),
(
Some("common.entity.wild.aggressive.red_oni"),
@ -937,6 +933,10 @@ fn apply_entity_spawns<R: Rng>(canvas: &mut Canvas, wpos: Vec3<i32>, biome: &Bio
Some("common.entity.wild.aggressive.ogre"),
(biome.depth + 0.0) * 0.02,
),
(
Some("common.entity.wild.aggressive.basilisk"),
(biome.depth + 0.1) * 0.005,
),
(None, 100.0),
]
.choose_weighted(rng, |(_, w)| *w)

View File

@ -635,22 +635,22 @@ pub fn apply_caves_supplement<'a>(
}
}
} else if cave_depth < 70.0 {
match dynamic_rng.gen_range(0..4) {
0 => "common.entity.wild.peaceful.truffler",
1 => "common.entity.wild.aggressive.dodarock",
2 => "common.entity.wild.peaceful.holladon",
_ => "common.entity.wild.aggressive.batfox",
match dynamic_rng.gen_range(0..9) {
0..=1 => "common.entity.wild.peaceful.truffler",
2 => "common.entity.wild.aggressive.dodarock",
3..=4 => "common.entity.wild.peaceful.holladon",
5..=6 => "common.entity.wild.aggressive.batfox",
_ => "common.entity.wild.peaceful.rat",
}
} else if cave_depth < 120.0 {
match dynamic_rng.gen_range(0..10) {
2 => "common.entity.wild.aggressive.rocksnapper",
5 => "common.entity.wild.aggressive.cave_salamander",
7 => "common.entity.wild.aggressive.cave_spider",
8 => "common.entity.wild.peaceful.crawler_molten",
match dynamic_rng.gen_range(0..5) {
0..=1 => "common.entity.wild.aggressive.cave_salamander",
2 => "common.entity.wild.aggressive.cave_spider",
3..=4 => "common.entity.wild.peaceful.crawler_molten",
_ => "common.entity.wild.aggressive.asp",
}
} else if cave_depth < 190.0 {
match dynamic_rng.gen_range(0..5) {
match dynamic_rng.gen_range(0..4) {
1 => "common.entity.wild.aggressive.rocksnapper",
2 => "common.entity.wild.aggressive.lavadrake",
3 => "common.entity.wild.aggressive.black_widow",

View File

@ -46,9 +46,9 @@ impl GiantTree {
above_block: &Block,
dynamic_rng: &mut impl Rng,
) -> Option<EntityInfo> {
if above_block.kind() == BlockKind::Leaves && dynamic_rng.gen_bool(0.001) {
if above_block.kind() == BlockKind::Leaves && dynamic_rng.gen_bool(0.000055) {
let entity = EntityInfo::at(pos.as_());
match dynamic_rng.gen_range(0..=4) {
match dynamic_rng.gen_range(0..=7) {
0 => Some(entity.with_asset_expect(
"common.entity.wild.aggressive.horn_beetle",
dynamic_rng,
@ -59,17 +59,17 @@ impl GiantTree {
dynamic_rng,
None,
)),
2 => Some(entity.with_asset_expect(
2..=3 => Some(entity.with_asset_expect(
"common.entity.wild.aggressive.deadwood",
dynamic_rng,
None,
)),
3 => Some(entity.with_asset_expect(
4 => Some(entity.with_asset_expect(
"common.entity.wild.aggressive.maneater",
dynamic_rng,
None,
)),
4 => Some(entity.with_asset_expect(
5..=7 => Some(entity.with_asset_expect(
"common.entity.wild.peaceful.parrot",
dynamic_rng,
None,