From cdaff6bec19e715a0e2b741737afc72804f32737 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 29 Nov 2022 13:22:46 -0500 Subject: [PATCH] Fell strike --- .../abilities/sword/agile_fell_strike.ron | 33 ++++------------ .../abilities/sword/basic_fell_strike.ron | 33 ++++------------ .../abilities/sword/cleaving_fell_strike.ron | 34 +++++----------- .../abilities/sword/crippling_fell_strike.ron | 39 +++++++------------ .../abilities/sword/defensive_fell_strike.ron | 39 +++++++------------ .../abilities/sword/heavy_fell_strike.ron | 31 ++++----------- voxygen/anim/src/character/combomelee.rs | 38 ++++++++++++++++++ 7 files changed, 98 insertions(+), 149 deletions(-) diff --git a/assets/common/abilities/sword/agile_fell_strike.ron b/assets/common/abilities/sword/agile_fell_strike.ron index dba2420527..7d3ac7d410 100644 --- a/assets/common/abilities/sword/agile_fell_strike.ron +++ b/assets/common/abilities/sword/agile_fell_strike.ron @@ -3,37 +3,20 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 16, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 20.0, ), - buildup_duration: 0.15, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.45, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_fell_strike.ron b/assets/common/abilities/sword/basic_fell_strike.ron index dba2420527..fc70a6bc93 100644 --- a/assets/common/abilities/sword/basic_fell_strike.ron +++ b/assets/common/abilities/sword/basic_fell_strike.ron @@ -3,37 +3,20 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 24, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 20.0, ), - buildup_duration: 0.15, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.7, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_fell_strike.ron b/assets/common/abilities/sword/cleaving_fell_strike.ron index dba2420527..6275cd338d 100644 --- a/assets/common/abilities/sword/cleaving_fell_strike.ron +++ b/assets/common/abilities/sword/cleaving_fell_strike.ron @@ -3,37 +3,21 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 24, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 30.0, + multi_target: Some(Normal), ), - buildup_duration: 0.15, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.7, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/crippling_fell_strike.ron b/assets/common/abilities/sword/crippling_fell_strike.ron index dba2420527..1ae4c603b6 100644 --- a/assets/common/abilities/sword/crippling_fell_strike.ron +++ b/assets/common/abilities/sword/crippling_fell_strike.ron @@ -3,37 +3,26 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 18, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 20.0, + damage_effect: Some(Buff(( + kind: Bleeding, + dur_secs: 8.0, + strength: DamageFraction(0.25), + chance: 0.25, + ))), ), - buildup_duration: 0.15, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.7, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/defensive_fell_strike.ron b/assets/common/abilities/sword/defensive_fell_strike.ron index dba2420527..f1b3bec5b1 100644 --- a/assets/common/abilities/sword/defensive_fell_strike.ron +++ b/assets/common/abilities/sword/defensive_fell_strike.ron @@ -3,37 +3,26 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 20, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 20.0, ), - buildup_duration: 0.15, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.7, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, + meta: ( + capabilities: ( + // When in buildup, attack can get cancelled into parry + bits: 0b00100000, + ), + ), ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_fell_strike.ron b/assets/common/abilities/sword/heavy_fell_strike.ron index dba2420527..5568574207 100644 --- a/assets/common/abilities/sword/heavy_fell_strike.ron +++ b/assets/common/abilities/sword/heavy_fell_strike.ron @@ -3,37 +3,20 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, - poise: 0, + damage: 38, + poise: 15, knockback: 0, - energy_regen: 5, + energy_regen: 0, ), - range: 3.0, - angle: 45.0, + range: 3.5, + angle: 20.0, ), buildup_duration: 0.15, - swing_duration: 0.05, - hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 10, - poise: 0, - knockback: 0, - energy_regen: 7.5, - ), - range: 3.0, - angle: 45.0, - ), - buildup_duration: 0.1, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.9, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 0, + energy_cost_per_strike: 15, ) \ No newline at end of file diff --git a/voxygen/anim/src/character/combomelee.rs b/voxygen/anim/src/character/combomelee.rs index 879897f3c3..fd9e5742e2 100644 --- a/voxygen/anim/src/character/combomelee.rs +++ b/voxygen/anim/src/character/combomelee.rs @@ -539,6 +539,44 @@ impl Animation for ComboAnimation { next.control.position += Vec3::new(move2 * 12.0, move2 * 4.0, move2 * 7.0); next.control.orientation.rotate_x(move2 * 0.7); }, + Some( + "common.abilities.sword.basic_fell_strike" + | "common.abilities.sword.heavy_fell_strike" + | "common.abilities.sword.agile_fell_strike" + | "common.abilities.sword.defensive_fell_strike" + | "common.abilities.sword.crippling_fell_strike" + | "common.abilities.sword.cleaving_fell_strike", + ) => { + let (move1, move2) = match stage_section { + Some(StageSection::Buildup) => (anim_time.powf(0.25), 0.0), + Some(StageSection::Action) => (1.0, anim_time.powi(2)), + Some(StageSection::Recover) => (1.0, 1.0), + _ => (0.0, 0.0), + }; + let move1 = move1 * multi_strike_pullback; + let move2 = move2 * multi_strike_pullback; + + next.hand_l.position = Vec3::new(s_a.shl.0, s_a.shl.1, s_a.shl.2); + next.hand_l.orientation = + Quaternion::rotation_x(s_a.shl.3) * Quaternion::rotation_y(s_a.shl.4); + next.hand_r.position = Vec3::new( + -s_a.sc.0 + 6.0 + move1 * -12.0, + -4.0 + move1 * 3.0, + -2.0 + move1.min(0.5) * 2.0 * 10.0 + (move1.max(0.5) - 0.5) * 2.0 * -10.0, + ); + next.hand_r.orientation = Quaternion::rotation_x(0.9 + move1 * 0.5); + next.control.position = Vec3::new(s_a.sc.0, s_a.sc.1, s_a.sc.2); + next.control.orientation = Quaternion::rotation_x(s_a.sc.3); + + next.chest.orientation = Quaternion::rotation_z(move1 * 0.2); + next.control.orientation.rotate_x(move1 * 1.1); + next.control.position += Vec3::new(move1 * -2.0, move1 * 2.0, move1 * 4.0); + + next.chest.orientation.rotate_z(move2 * -0.5); + next.control.orientation.rotate_z(move2 * -0.3); + next.control.orientation.rotate_x(move2 * -2.5); + next.control.position += Vec3::new(move2 * 4.0, move2 * -1.0, move2 * -8.0); + }, Some("common.abilities.sword.cleaving_combo") => { let (move1, move2) = if strike == current_strike { match stage_section {