diff --git a/assets/common/abilities/custom/basilisk/petrify.ron b/assets/common/abilities/custom/basilisk/petrify.ron index c8fb5b3021..b8691b25fa 100644 --- a/assets/common/abilities/custom/basilisk/petrify.ron +++ b/assets/common/abilities/custom/basilisk/petrify.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Cultist, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/birdlargebreathe/flamethrower.ron b/assets/common/abilities/custom/birdlargebreathe/flamethrower.ron index 4bf507fa86..1cb6d4fdf8 100644 --- a/assets/common/abilities/custom/birdlargebreathe/flamethrower.ron +++ b/assets/common/abilities/custom/birdlargebreathe/flamethrower.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Flamethrower, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/birdlargefire/flamethrower.ron b/assets/common/abilities/custom/birdlargefire/flamethrower.ron index 4bf507fa86..1cb6d4fdf8 100644 --- a/assets/common/abilities/custom/birdlargefire/flamethrower.ron +++ b/assets/common/abilities/custom/birdlargefire/flamethrower.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Flamethrower, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/claygolem/laser.ron b/assets/common/abilities/custom/claygolem/laser.ron index 8e029678d4..c5e6fac8b0 100644 --- a/assets/common/abilities/custom/claygolem/laser.ron +++ b/assets/common/abilities/custom/claygolem/laser.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 50, energy_drain: 0, orientation_behavior: FromOri, + ori_rate: 0.1, specifier: ClayGolem, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/claygolem/rocket.ron b/assets/common/abilities/custom/claygolem/rocket.ron index 852a4db918..c58011bfb1 100644 --- a/assets/common/abilities/custom/claygolem/rocket.ron +++ b/assets/common/abilities/custom/claygolem/rocket.ron @@ -1,11 +1,11 @@ BasicRanged( energy_cost: 0, - buildup_duration: 0.5, - recover_duration: 0.8, + buildup_duration: 0.8, + recover_duration: 0.5, projectile: ClayRocket( damage: 500.0, knockback: 25.0, - radius: 10.0, + radius: 5.0, ), projectile_body: Object(ClayRocket), projectile_light: None, diff --git a/assets/common/abilities/custom/claygolem/shockwave.ron b/assets/common/abilities/custom/claygolem/shockwave.ron index b06bb052d4..ac4b9a8ae1 100644 --- a/assets/common/abilities/custom/claygolem/shockwave.ron +++ b/assets/common/abilities/custom/claygolem/shockwave.ron @@ -9,9 +9,9 @@ Shockwave( shockwave_angle: 180.0, shockwave_vertical_angle: 90.0, shockwave_speed: 15.0, - shockwave_duration: 2.5, + shockwave_duration: 3.5, requires_ground: true, move_efficiency: 0.0, damage_kind: Crushing, specifier: Ground, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/mindflayer/cursedflames.ron b/assets/common/abilities/custom/mindflayer/cursedflames.ron index 9d83b5a243..0cfddbd5f5 100644 --- a/assets/common/abilities/custom/mindflayer/cursedflames.ron +++ b/assets/common/abilities/custom/mindflayer/cursedflames.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Cultist, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/quadlowbeam/healingbeam.ron b/assets/common/abilities/custom/quadlowbeam/healingbeam.ron index 6776a79944..2aba7a0d1b 100644 --- a/assets/common/abilities/custom/quadlowbeam/healingbeam.ron +++ b/assets/common/abilities/custom/quadlowbeam/healingbeam.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 25, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: HealingBeam, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/quadlowbreathe/flamethrower.ron b/assets/common/abilities/custom/quadlowbreathe/flamethrower.ron index ddc09e0ef6..5eba0f6226 100644 --- a/assets/common/abilities/custom/quadlowbreathe/flamethrower.ron +++ b/assets/common/abilities/custom/quadlowbreathe/flamethrower.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Flamethrower, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/tidalwarrior/bubbles.ron b/assets/common/abilities/custom/tidalwarrior/bubbles.ron index 65cbadc67c..737e144574 100644 --- a/assets/common/abilities/custom/tidalwarrior/bubbles.ron +++ b/assets/common/abilities/custom/tidalwarrior/bubbles.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Bubbles, ) diff --git a/assets/common/abilities/custom/turret/flamethrower.ron b/assets/common/abilities/custom/turret/flamethrower.ron index 3814d1f235..33f5dc51c9 100644 --- a/assets/common/abilities/custom/turret/flamethrower.ron +++ b/assets/common/abilities/custom/turret/flamethrower.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.3, specifier: Flamethrower, -) \ No newline at end of file +) diff --git a/assets/common/abilities/custom/yeti/frostbreath.ron b/assets/common/abilities/custom/yeti/frostbreath.ron index 826f59bbcb..67e16b78ff 100644 --- a/assets/common/abilities/custom/yeti/frostbreath.ron +++ b/assets/common/abilities/custom/yeti/frostbreath.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Frost, -) \ No newline at end of file +) diff --git a/assets/common/abilities/sceptre/lifestealbeam.ron b/assets/common/abilities/sceptre/lifestealbeam.ron index 0484fef1c4..994e959b1d 100644 --- a/assets/common/abilities/sceptre/lifestealbeam.ron +++ b/assets/common/abilities/sceptre/lifestealbeam.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 50, energy_drain: 0, orientation_behavior: Normal, + ori_rate: 0.6, specifier: LifestealBeam -) \ No newline at end of file +) diff --git a/assets/common/abilities/staff/flamethrower.ron b/assets/common/abilities/staff/flamethrower.ron index c3c491b94a..82fa30d8f8 100644 --- a/assets/common/abilities/staff/flamethrower.ron +++ b/assets/common/abilities/staff/flamethrower.ron @@ -15,5 +15,6 @@ BasicBeam( energy_regen: 0, energy_drain: 350, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Flamethrower, -) \ No newline at end of file +) diff --git a/assets/common/abilities/staffsimple/flamethrower.ron b/assets/common/abilities/staffsimple/flamethrower.ron index 4842fdd20f..14eead7fa6 100644 --- a/assets/common/abilities/staffsimple/flamethrower.ron +++ b/assets/common/abilities/staffsimple/flamethrower.ron @@ -10,5 +10,6 @@ BasicBeam( energy_regen: 0, energy_drain: 350, orientation_behavior: Normal, + ori_rate: 0.6, specifier: Flamethrower, ) diff --git a/common/src/comp/ability.rs b/common/src/comp/ability.rs index f755fe58d5..4d5c4aaf50 100644 --- a/common/src/comp/ability.rs +++ b/common/src/comp/ability.rs @@ -247,6 +247,7 @@ pub enum CharacterAbility { energy_regen: f32, energy_drain: f32, orientation_behavior: basic_beam::OrientationBehavior, + ori_rate: f32, specifier: beam::FrontendSpecifier, }, BasicAura { @@ -1651,6 +1652,7 @@ impl From<(&CharacterAbility, AbilityInfo)> for CharacterState { energy_regen, energy_drain, orientation_behavior, + ori_rate, specifier, } => CharacterState::BasicBeam(basic_beam::Data { static_data: basic_beam::StaticData { @@ -1666,6 +1668,7 @@ impl From<(&CharacterAbility, AbilityInfo)> for CharacterState { energy_drain: *energy_drain, ability_info, orientation_behavior: *orientation_behavior, + ori_rate: *ori_rate, specifier: *specifier, }, timer: Duration::default(), diff --git a/common/src/states/basic_beam.rs b/common/src/states/basic_beam.rs index defb22f81f..31080f42c0 100644 --- a/common/src/states/basic_beam.rs +++ b/common/src/states/basic_beam.rs @@ -40,6 +40,8 @@ pub struct StaticData { pub energy_drain: f32, /// Used to dictate how orientation functions in this state pub orientation_behavior: OrientationBehavior, + /// How fast enemy can rotate with beam + pub ori_rate: f32, /// What key is used to press ability pub ability_info: AbilityInfo, /// Used to specify the beam to the frontend @@ -61,14 +63,10 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData) -> StateUpdate { let mut update = StateUpdate::from(data); - let ori_rate = match self.static_data.orientation_behavior { - OrientationBehavior::Normal => 0.6, - OrientationBehavior::Turret => { - update.ori = Ori::from(data.inputs.look_dir); - 0.6 - }, - OrientationBehavior::FromOri => 0.1, - }; + let ori_rate = self.static_data.ori_rate; + if self.static_data.orientation_behavior == OrientationBehavior::Turret { + update.ori = Ori::from(data.inputs.look_dir); + } handle_orientation(data, &mut update, ori_rate); handle_move(data, &mut update, 0.4);