diff --git a/assets/common/abilities/axesimple/dash.ron b/assets/common/abilities/axesimple/dash.ron index b9e0e8f05a..23074786f2 100644 --- a/assets/common/abilities/axesimple/dash.ron +++ b/assets/common/abilities/axesimple/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 3.0, swing_duration: 0.35, recover_duration: 1.2, + ori_modifier: 0.3, charge_through: false, is_interruptible: true, damage_kind: Slashing, diff --git a/assets/common/abilities/custom/basilisk/dash.ron b/assets/common/abilities/custom/basilisk/dash.ron index b95514175c..f4e8c56c40 100644 --- a/assets/common/abilities/custom/basilisk/dash.ron +++ b/assets/common/abilities/custom/basilisk/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.0, swing_duration: 0.1, recover_duration: 1.0, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/birdlargebasic/dash.ron b/assets/common/abilities/custom/birdlargebasic/dash.ron index 0760657973..7e600ce698 100644 --- a/assets/common/abilities/custom/birdlargebasic/dash.ron +++ b/assets/common/abilities/custom/birdlargebasic/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 3.0, swing_duration: 0.1, recover_duration: 0.7, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/minotaur/charge.ron b/assets/common/abilities/custom/minotaur/charge.ron index e313f18a92..b8324ee500 100644 --- a/assets/common/abilities/custom/minotaur/charge.ron +++ b/assets/common/abilities/custom/minotaur/charge.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 4.0, swing_duration: 0.1, recover_duration: 0.5, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Piercing, diff --git a/assets/common/abilities/custom/quadlowbreathe/dash.ron b/assets/common/abilities/custom/quadlowbreathe/dash.ron index d84f614549..887298f7a5 100644 --- a/assets/common/abilities/custom/quadlowbreathe/dash.ron +++ b/assets/common/abilities/custom/quadlowbreathe/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.0, swing_duration: 0.1, recover_duration: 1.0, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/quadlowquick/dash.ron b/assets/common/abilities/custom/quadlowquick/dash.ron index 13fb06b122..42838c2b98 100644 --- a/assets/common/abilities/custom/quadlowquick/dash.ron +++ b/assets/common/abilities/custom/quadlowquick/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 0.8, swing_duration: 0.1, recover_duration: 1.0, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/quadmedcharge/dash.ron b/assets/common/abilities/custom/quadmedcharge/dash.ron index 95f94277c1..75a399c0cd 100644 --- a/assets/common/abilities/custom/quadmedcharge/dash.ron +++ b/assets/common/abilities/custom/quadmedcharge/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.2, swing_duration: 0.1, recover_duration: 1.1, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/quadmedquick/dash.ron b/assets/common/abilities/custom/quadmedquick/dash.ron index ded884beb1..1bb33c9825 100644 --- a/assets/common/abilities/custom/quadmedquick/dash.ron +++ b/assets/common/abilities/custom/quadmedquick/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.0, swing_duration: 0.1, recover_duration: 1.0, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/theropodbasic/dash.ron b/assets/common/abilities/custom/theropodbasic/dash.ron index 0835777247..8552a30b75 100644 --- a/assets/common/abilities/custom/theropodbasic/dash.ron +++ b/assets/common/abilities/custom/theropodbasic/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.2, swing_duration: 0.1, recover_duration: 1.1, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/custom/tidalwarrior/scuttle.ron b/assets/common/abilities/custom/tidalwarrior/scuttle.ron index 28552b4f46..31499e4f9d 100644 --- a/assets/common/abilities/custom/tidalwarrior/scuttle.ron +++ b/assets/common/abilities/custom/tidalwarrior/scuttle.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 2.0, swing_duration: 0.1, recover_duration: 0.5, + ori_modifier: 0.3, charge_through: false, is_interruptible: false, damage_kind: Crushing, diff --git a/assets/common/abilities/spear/dash.ron b/assets/common/abilities/spear/dash.ron index 837a91b629..1914b1f67d 100644 --- a/assets/common/abilities/spear/dash.ron +++ b/assets/common/abilities/spear/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.0, swing_duration: 0.1, recover_duration: 0.8, + ori_modifier: 0.3, charge_through: false, is_interruptible: true, damage_kind: Piercing, diff --git a/assets/common/abilities/sword/dash.ron b/assets/common/abilities/sword/dash.ron index 5c932b85aa..6ae5fdba0e 100644 --- a/assets/common/abilities/sword/dash.ron +++ b/assets/common/abilities/sword/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.2, swing_duration: 0.1, recover_duration: 0.5, + ori_modifier: 0.3, charge_through: true, is_interruptible: true, damage_kind: Piercing, diff --git a/assets/common/abilities/swordsimple/dash.ron b/assets/common/abilities/swordsimple/dash.ron index f231f2500b..b9ae042353 100644 --- a/assets/common/abilities/swordsimple/dash.ron +++ b/assets/common/abilities/swordsimple/dash.ron @@ -14,6 +14,7 @@ DashMelee( charge_duration: 1.2, swing_duration: 0.1, recover_duration: 0.9, + ori_modifier: 0.3, charge_through: false, is_interruptible: true, damage_kind: Piercing, diff --git a/common/src/comp/ability.rs b/common/src/comp/ability.rs index 3295e3b821..1415a74461 100644 --- a/common/src/comp/ability.rs +++ b/common/src/comp/ability.rs @@ -119,6 +119,7 @@ pub enum CharacterAbility { charge_duration: f32, swing_duration: f32, recover_duration: f32, + ori_modifier: f32, charge_through: bool, is_interruptible: bool, damage_kind: DamageKind, @@ -497,6 +498,7 @@ impl CharacterAbility { charge_duration: _, ref mut swing_duration, ref mut recover_duration, + ori_modifier: _, charge_through: _, is_interruptible: _, damage_kind: _, @@ -1531,6 +1533,7 @@ impl From<(&CharacterAbility, AbilityInfo, &JoinData<'_>)> for CharacterState { charge_duration, swing_duration, recover_duration, + ori_modifier, charge_through, is_interruptible, damage_kind, @@ -1552,6 +1555,7 @@ impl From<(&CharacterAbility, AbilityInfo, &JoinData<'_>)> for CharacterState { charge_duration: Duration::from_secs_f32(*charge_duration), swing_duration: Duration::from_secs_f32(*swing_duration), recover_duration: Duration::from_secs_f32(*recover_duration), + ori_modifier: *ori_modifier, is_interruptible: *is_interruptible, damage_effect: *damage_effect, ability_info, diff --git a/common/src/states/dash_melee.rs b/common/src/states/dash_melee.rs index 17a42fec74..fe086ec68e 100644 --- a/common/src/states/dash_melee.rs +++ b/common/src/states/dash_melee.rs @@ -43,6 +43,8 @@ pub struct StaticData { pub swing_duration: Duration, /// How long the state has until exiting pub recover_duration: Duration, + /// How fast can you turn during charge + pub ori_modifier: f32, /// Whether the state can be interrupted by other abilities pub is_interruptible: bool, /// Adds an effect onto the main damage of the attack @@ -107,13 +109,14 @@ impl CharacterBehavior for Data { / self.static_data.charge_duration.as_secs_f32()) .min(1.0); - handle_orientation(data, &mut update, 0.6); + handle_orientation(data, &mut update, self.static_data.ori_modifier); handle_forced_movement(data, &mut update, ForcedMovement::Forward { strength: self.static_data.forward_speed * charge_frac.sqrt(), }); - // This logic basically just decides if a charge should end, and prevents the - // character state spamming attacks while checking if it has hit something + // This logic basically just decides if a charge should end, + // and prevents the character state spamming attacks + // while checking if it has hit something. if !self.exhausted { // Hit attempt let poise = AttackEffect::new(