diff --git a/CHANGELOG.md b/CHANGELOG.md index b05a709f68..2acc3447d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Harvester boss now has new abilities and AI - Death particles and SFX - Default keybindings were made more consistent +- Adjust Yeti difficulty ### Removed diff --git a/assets/common/abilities/custom/yeti/frostbreath.ron b/assets/common/abilities/custom/yeti/frostbreath.ron index 67e16b78ff..7f35a26ae7 100644 --- a/assets/common/abilities/custom/yeti/frostbreath.ron +++ b/assets/common/abilities/custom/yeti/frostbreath.ron @@ -1,20 +1,20 @@ BasicBeam( - buildup_duration: 0.4, + buildup_duration: 0.8, recover_duration: 0.25, beam_duration: 0.25, - damage: 50, - tick_rate: 1.0, + damage: 10, + tick_rate: 5.0, range: 15.0, max_angle: 30.0, damage_effect: Some(Buff(( kind: Frozen, dur_secs: 3.0, - strength: Value(1.5), - chance: 1.0, + strength: Value(0.5), + chance: 0.2, ))), energy_regen: 0, energy_drain: 0, - orientation_behavior: Normal, - ori_rate: 0.6, + orientation_behavior: FromOri, + ori_rate: 0.1, specifier: Frost, ) diff --git a/assets/common/abilities/custom/yeti/icespikes.ron b/assets/common/abilities/custom/yeti/icespikes.ron index 3b99b3af93..ad3d0c87c5 100644 --- a/assets/common/abilities/custom/yeti/icespikes.ron +++ b/assets/common/abilities/custom/yeti/icespikes.ron @@ -1,17 +1,17 @@ Shockwave( energy_cost: 0, buildup_duration: 0.6, - swing_duration: 0.12, - recover_duration: 0.3, + swing_duration: 0.15, + recover_duration: 1.0, damage: 100, poise_damage: 10, knockback: (strength: 25.0, direction: Up), shockwave_angle: 90.0, shockwave_vertical_angle: 15.0, - shockwave_speed: 50.0, - shockwave_duration: 0.5, + shockwave_speed: 15.0, + shockwave_duration: 3.0, requires_ground: true, - move_efficiency: 0.5, + move_efficiency: 0.2, damage_kind: Piercing, specifier: IceSpikes, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/yeti/snowball.ron b/assets/common/abilities/custom/yeti/snowball.ron index 7cd3348c8e..918622f706 100644 --- a/assets/common/abilities/custom/yeti/snowball.ron +++ b/assets/common/abilities/custom/yeti/snowball.ron @@ -1,7 +1,7 @@ BasicRanged( energy_cost: 0, buildup_duration: 0.5, - recover_duration: 0.4, + recover_duration: 0.9, projectile: Snowball( damage: 200.0, radius: 5.0, diff --git a/assets/common/abilities/custom/yeti/strike.ron b/assets/common/abilities/custom/yeti/strike.ron index 1624a3c6e2..fc8cb528ee 100644 --- a/assets/common/abilities/custom/yeti/strike.ron +++ b/assets/common/abilities/custom/yeti/strike.ron @@ -1,11 +1,11 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.6, + buildup_duration: 0.8, swing_duration: 0.1, - recover_duration: 0.5, + recover_duration: 1.0, base_damage: 100, base_poise_damage: 50, - knockback: ( strength: 40.0, direction: Away), + knockback: ( strength: 70.0, direction: Away), range: 4.0, max_angle: 20.0, damage_effect: None, diff --git a/server/src/sys/agent.rs b/server/src/sys/agent.rs index 2810a7cd40..f141b59cca 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -3659,17 +3659,17 @@ impl<'a> AgentData<'a> { tgt_data: &TargetData, read_data: &ReadData, ) { - const ICE_SPIKES_RANGE: f32 = 20.0; - const ICE_BREATH_RANGE: f32 = 15.0; + const ICE_SPIKES_RANGE: f32 = 15.0; + const ICE_BREATH_RANGE: f32 = 10.0; const ICE_BREATH_TIMER: f32 = 10.0; const SNOWBALL_MAX_RANGE: f32 = 50.0; agent.action_state.counter += read_data.dt.0; - if attack_data.dist_sqrd < ICE_BREATH_RANGE.powi(2) && attack_data.angle < 60.0 { - if matches!(self.char_state, CharacterState::BasicBeam(c) if c.timer < Duration::from_secs(1)) + if attack_data.dist_sqrd < ICE_BREATH_RANGE.powi(2) { + if matches!(self.char_state, CharacterState::BasicBeam(c) if c.timer < Duration::from_secs(2)) { - // Keep using ice breath until a second has passed + // Keep using ice breath for 2 second controller .actions .push(ControlAction::basic_input(InputKind::Ability(0)));