diff --git a/assets/common/abilities/ability_set_manifest.ron b/assets/common/abilities/ability_set_manifest.ron index 7fe2204a6f..358df1da33 100644 --- a/assets/common/abilities/ability_set_manifest.ron +++ b/assets/common/abilities/ability_set_manifest.ron @@ -20,7 +20,7 @@ None: (None, "common.abilities.sword.basic_thrust"), Stance(Sword(Heavy)): (None, "common.abilities.sword.heavy_slam"), Stance(Sword(Agile)): (None, "common.abilities.sword.agile_perforate"), - Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_parry"), + Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_jab"), Stance(Sword(Crippling)): (None, "common.abilities.sword.crippling_deep_rend"), Stance(Sword(Cleaving)): (None, "common.abilities.sword.cleaving_spiral_slash"), }, @@ -92,7 +92,7 @@ Stance(Sword(Cleaving)): (Sword(Finisher), "common.abilities.sword.cleaving_bladestorm"), }, ), - Simple(Sword(HeavyWindmillSlash), "common.abilities.sword.heavy_windmill_slash"), + Simple(Sword(HeavySweep), "common.abilities.sword.heavy_sweep"), Simple(Sword(HeavyPommelStrike), "common.abilities.sword.heavy_pommel_strike"), Simple(Sword(AgileQuickDraw), "common.abilities.sword.agile_quick_draw"), Simple(Sword(AgileFeint), "common.abilities.sword.agile_feint"), diff --git a/assets/common/abilities/sceptre/lifestealbeam.ron b/assets/common/abilities/sceptre/lifestealbeam.ron index 5eff354cd0..ef48e91c79 100644 --- a/assets/common/abilities/sceptre/lifestealbeam.ron +++ b/assets/common/abilities/sceptre/lifestealbeam.ron @@ -3,7 +3,7 @@ BasicBeam( recover_duration: 0.20, beam_duration: 1.0, damage: 4, - tick_rate: 4, + tick_rate: 3, range: 25.0, max_angle: 1.0, damage_effect: Some(Lifesteal(0.05)), diff --git a/assets/common/abilities/sword/cleaving_earth_splitter.ron b/assets/common/abilities/sword/cleaving_earth_splitter.ron index 9906baed98..5d7957b0dc 100644 --- a/assets/common/abilities/sword/cleaving_earth_splitter.ron +++ b/assets/common/abilities/sword/cleaving_earth_splitter.ron @@ -18,8 +18,8 @@ DiveMelee( knockback: 0, energy_regen: 0, )), - range: 6.0, - angle: 15.0, + range: 4.0, + angle: 360.0, multi_target: Some(Normal), ), max_scaling: 6.0, diff --git a/assets/common/abilities/sword/defensive_jab.ron b/assets/common/abilities/sword/defensive_jab.ron new file mode 100644 index 0000000000..9ec390c396 --- /dev/null +++ b/assets/common/abilities/sword/defensive_jab.ron @@ -0,0 +1,25 @@ +ChargedMelee( + energy_cost: 0, + energy_drain: 0, + melee_constructor: ( + kind: Stab( + damage: 0, + poise: 0, + knockback: 0, + energy_regen: 0, + ), + scaled: Some(Stab( + damage: 10, + poise: 5, + knockback: 0, + energy_regen: 15, + )), + range: 4.5, + angle: 10.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), + ), + charge_duration: 0.3, + swing_duration: 0.1, + hit_timing: 0.2, + recover_duration: 0.1, +) diff --git a/assets/common/abilities/sword/defensive_parry.ron b/assets/common/abilities/sword/defensive_parry.ron deleted file mode 100644 index 1332146673..0000000000 --- a/assets/common/abilities/sword/defensive_parry.ron +++ /dev/null @@ -1,20 +0,0 @@ -BasicBlock( - buildup_duration: 0.2, - recover_duration: 0.1, - max_angle: 45.0, - block_strength: 0.75, - parry_window: ( - buildup: true, - recover: false, - ), - energy_cost: 0, - can_hold: true, - blocked_attacks: ( - melee: true, - projectiles: false, - beams: false, - ground_shockwaves: false, - air_shockwaves: false, - explosions: false, - ), -) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_sweep.ron b/assets/common/abilities/sword/heavy_sweep.ron new file mode 100644 index 0000000000..3614d26e4f --- /dev/null +++ b/assets/common/abilities/sword/heavy_sweep.ron @@ -0,0 +1,26 @@ +ComboMelee2( + strikes: [ + ( + melee_constructor: ( + kind: Slash( + damage: 27, + poise: 30, + knockback: 0, + energy_regen: 0, + ), + range: 4.0, + angle: 90.0, + damage_effect: Some(StunnedVulnerable(0.5)), + ), + buildup_duration: 0.2, + swing_duration: 0.2, + hit_timing: 0.5, + recover_duration: 0.3, + ori_modifier: 0.6, + ), + ], + energy_cost_per_strike: 5, + meta: ( + init_event: Some(EnterStance(Sword(Heavy))), + ), +) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_windmill_slash.ron b/assets/common/abilities/sword/heavy_windmill_slash.ron deleted file mode 100644 index a74f88454b..0000000000 --- a/assets/common/abilities/sword/heavy_windmill_slash.ron +++ /dev/null @@ -1,45 +0,0 @@ -ComboMelee2( - strikes: [ - ( - melee_constructor: ( - kind: Slash( - damage: 11, - poise: 20, - knockback: 0, - energy_regen: 0, - ), - range: 4.0, - angle: 30.0, - damage_effect: Some(StunnedVulnerable(0.5)), - ), - buildup_duration: 0.3, - swing_duration: 0.15, - hit_timing: 0.5, - recover_duration: 0.1, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 17, - poise: 30, - knockback: 0, - energy_regen: 0, - ), - range: 4.0, - angle: 30.0, - damage_effect: Some(StunnedVulnerable(0.5)), - ), - buildup_duration: 0.25, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.25, - ori_modifier: 0.6, - ), - ], - energy_cost_per_strike: 5, - auto_progress: true, - meta: ( - init_event: Some(EnterStance(Sword(Heavy))), - ), -) \ No newline at end of file diff --git a/assets/common/skill_trees/skill_prerequisites.ron b/assets/common/skill_trees/skill_prerequisites.ron index e3b1d39231..35241aa875 100644 --- a/assets/common/skill_trees/skill_prerequisites.ron +++ b/assets/common/skill_trees/skill_prerequisites.ron @@ -1,7 +1,7 @@ ({ - Sword(HeavyWindmillSlash): Any({Sword(CrescentSlash): 1, Sword(Cascade): 1}), + Sword(HeavySweep): Any({Sword(CrescentSlash): 1, Sword(Cascade): 1}), Sword(HeavyPommelStrike): Any({Sword(CrescentSlash): 1, Sword(Cascade): 1}), - Sword(HeavyFortitude): All({Sword(HeavyWindmillSlash): 1}), + Sword(HeavyFortitude): All({Sword(HeavySweep): 1}), Sword(HeavyPillarThrust): All({Sword(HeavyPommelStrike): 1}), Sword(AgileQuickDraw): Any({Sword(CrossCut): 1, Sword(Skewer): 1}), Sword(AgileFeint): Any({Sword(CrossCut): 1, Sword(Skewer): 1}), diff --git a/assets/common/skill_trees/skills_skill-groups_manifest.ron b/assets/common/skill_trees/skills_skill-groups_manifest.ron index c1c4c9ea3d..1a9ea3151a 100644 --- a/assets/common/skill_trees/skills_skill-groups_manifest.ron +++ b/assets/common/skill_trees/skills_skill-groups_manifest.ron @@ -22,7 +22,7 @@ Sword(Cascade), Sword(CrossCut), Sword(Finisher), - Sword(HeavyWindmillSlash), + Sword(HeavySweep), Sword(HeavyPommelStrike), Sword(HeavyFortitude), Sword(HeavyPillarThrust), diff --git a/assets/common/skillset/preset/rank3/sword.ron b/assets/common/skillset/preset/rank3/sword.ron index 14b09685e3..1bb88643f3 100644 --- a/assets/common/skillset/preset/rank3/sword.ron +++ b/assets/common/skillset/preset/rank3/sword.ron @@ -6,7 +6,7 @@ Skill((Sword(Skewer), 1)), Skill((Sword(FellStrike), 1)), Skill((Sword(Finisher), 1)), - Skill((Sword(HeavyWindmillSlash), 1)), + Skill((Sword(HeavySweep), 1)), Skill((Sword(HeavyPommelStrike), 1)), Skill((Sword(CleavingEarthSplitter), 1)), Skill((Sword(CleavingWhirlwindSlice), 1)), diff --git a/assets/common/skillset/preset/rank4/sword.ron b/assets/common/skillset/preset/rank4/sword.ron index b6254749af..0ebd21ef8e 100644 --- a/assets/common/skillset/preset/rank4/sword.ron +++ b/assets/common/skillset/preset/rank4/sword.ron @@ -6,7 +6,7 @@ Skill((Sword(Skewer), 1)), Skill((Sword(FellStrike), 1)), Skill((Sword(Finisher), 1)), - Skill((Sword(HeavyWindmillSlash), 1)), + Skill((Sword(HeavySweep), 1)), Skill((Sword(HeavyPommelStrike), 1)), Skill((Sword(HeavyFortitude), 1)), Skill((Sword(HeavyPillarThrust), 1)), diff --git a/assets/common/skillset/preset/rank5/sword.ron b/assets/common/skillset/preset/rank5/sword.ron index b6254749af..0ebd21ef8e 100644 --- a/assets/common/skillset/preset/rank5/sword.ron +++ b/assets/common/skillset/preset/rank5/sword.ron @@ -6,7 +6,7 @@ Skill((Sword(Skewer), 1)), Skill((Sword(FellStrike), 1)), Skill((Sword(Finisher), 1)), - Skill((Sword(HeavyWindmillSlash), 1)), + Skill((Sword(HeavySweep), 1)), Skill((Sword(HeavyPommelStrike), 1)), Skill((Sword(HeavyFortitude), 1)), Skill((Sword(HeavyPillarThrust), 1)), diff --git a/assets/server/manifests/presets.ron b/assets/server/manifests/presets.ron index bb155a9610..67e44f3b6f 100644 --- a/assets/server/manifests/presets.ron +++ b/assets/server/manifests/presets.ron @@ -20,7 +20,7 @@ (Sword(Skewer), 1), (Sword(FellStrike), 1), (Sword(Finisher), 1), - (Sword(HeavyWindmillSlash), 1), + (Sword(HeavySweep), 1), (Sword(HeavyPommelStrike), 1), (Sword(HeavyFortitude), 1), (Sword(HeavyPillarThrust), 1), diff --git a/assets/voxygen/element/skills/sword/defensive_parry.png b/assets/voxygen/element/skills/sword/defensive_jab.png similarity index 100% rename from assets/voxygen/element/skills/sword/defensive_parry.png rename to assets/voxygen/element/skills/sword/defensive_jab.png diff --git a/assets/voxygen/element/skills/sword/heavy_windmill_slash.png b/assets/voxygen/element/skills/sword/heavy_sweep.png similarity index 100% rename from assets/voxygen/element/skills/sword/heavy_windmill_slash.png rename to assets/voxygen/element/skills/sword/heavy_sweep.png diff --git a/assets/voxygen/i18n/en/hud/ability.ftl b/assets/voxygen/i18n/en/hud/ability.ftl index 595f29a908..5fe5635eaf 100644 --- a/assets/voxygen/i18n/en/hud/ability.ftl +++ b/assets/voxygen/i18n/en/hud/ability.ftl @@ -44,8 +44,8 @@ common-abilities-sword-heavy_slam = Heavy Slam .desc = A strong overhead slash that can be charged to be more staggering common-abilities-sword-agile_perforate = Perforate .desc = A rapid flurry of light attacks -common-abilities-sword-defensive_parry = Parry - .desc = If timed properly, can deflect melee strikes +common-abilities-sword-defensive_jab = Defensive Jab + .desc = A quickly charged jab that does more damage against parried foes common-abilities-sword-crippling_deep_rend = Deep Rend .desc = A strike aimed at an already open wound, deals more damage to bleeding enemies common-abilities-sword-cleaving_spiral_slash = Spiral Slash @@ -158,9 +158,9 @@ common-abilities-sword-cleaving_bladestorm = Bladestorm .desc = Decimate your enemies with multiple cyclic swings of your sword Requires a moderate amount of combo to use -common-abilities-sword-heavy_windmill_slash = Windmill Slash +common-abilities-sword-heavy_sweep = Heavy Sweep .desc = - Double overhead swings that can heavily stagger + A heavy, wide, sweeping strike that deals more damage to a staggered enemy Enters heavy stance common-abilities-sword-heavy_pommel_strike = Pommel Strike .desc = diff --git a/common/src/comp/ability.rs b/common/src/comp/ability.rs index 410da60fee..a97227defc 100644 --- a/common/src/comp/ability.rs +++ b/common/src/comp/ability.rs @@ -909,13 +909,11 @@ impl CharacterAbility { CharacterAbility::DiveMelee { buildup_duration, energy_cost, - vertical_speed, .. } => { - // If either falling fast enough or is on ground and able to be activated from + // If either in the air or is on ground and able to be activated from // ground - (data.vel.0.z < -*vertical_speed - || (data.physics.on_ground.is_some() && buildup_duration.is_some())) + (data.physics.on_ground.is_none() || buildup_duration.is_some()) && update.energy.try_change_by(-*energy_cost).is_ok() }, CharacterAbility::ComboMelee { .. } diff --git a/common/src/comp/skillset/skills.rs b/common/src/comp/skillset/skills.rs index 1d9ad570c9..3486ff1919 100644 --- a/common/src/comp/skillset/skills.rs +++ b/common/src/comp/skillset/skills.rs @@ -33,7 +33,7 @@ pub enum SwordSkill { Cascade, CrossCut, Finisher, - HeavyWindmillSlash, + HeavySweep, HeavyPommelStrike, HeavyFortitude, HeavyPillarThrust, diff --git a/server/agent/src/attack.rs b/server/agent/src/attack.rs index 19ac2e1775..9d5151edb6 100644 --- a/server/agent/src/attack.rs +++ b/server/agent/src/attack.rs @@ -512,7 +512,7 @@ impl<'a> AgentData<'a> { ); if tactics.is_empty() { try_tactic( - SwordSkill::HeavyWindmillSlash, + SwordSkill::HeavySweep, SwordTactics::HeavySimple, &mut tactics, ); diff --git a/voxygen/anim/src/character/block.rs b/voxygen/anim/src/character/block.rs index 8615a24dcb..71967ff244 100644 --- a/voxygen/anim/src/character/block.rs +++ b/voxygen/anim/src/character/block.rs @@ -259,10 +259,7 @@ impl Animation for BlockAnimation { next.second = next.main; } }, - Some( - "common.abilities.sword.defensive_parry" - | "common.abilities.sword.defensive_deflect", - ) => { + Some("common.abilities.sword.defensive_deflect") => { let (move1, move2, move3) = match stage_section { Some(StageSection::Buildup) => (anim_time.powi(2), 0.0, 0.0), Some(StageSection::Action) => (1.0, (anim_time * 20.0).sin(), 0.0), diff --git a/voxygen/anim/src/character/chargeswing.rs b/voxygen/anim/src/character/chargeswing.rs index a8cd4f0b28..5f12709093 100644 --- a/voxygen/anim/src/character/chargeswing.rs +++ b/voxygen/anim/src/character/chargeswing.rs @@ -43,7 +43,9 @@ impl Animation for ChargeswingAnimation { next.off_weapon_trail = true; match ability_id { - Some("common.abilities.sword.basic_thrust") => { + Some( + "common.abilities.sword.basic_thrust" | "common.abilities.sword.defensive_jab", + ) => { let (move1, move2, move3, tension) = match stage_section { Some(StageSection::Charge) => ( anim_time.powf(0.25).min(1.0), diff --git a/voxygen/anim/src/character/combomelee.rs b/voxygen/anim/src/character/combomelee.rs index 2630b59db5..b1788937fe 100644 --- a/voxygen/anim/src/character/combomelee.rs +++ b/voxygen/anim/src/character/combomelee.rs @@ -112,7 +112,7 @@ impl Animation for ComboAnimation { _ => {}, } }, - Some("common.abilities.sword.heavy_windmill_slash") => { + Some("common.abilities.sword.heavy_sweep") => { let (move1, move2) = if strike == current_strike { match stage_section { Some(StageSection::Buildup) => (anim_time, 0.0), @@ -126,43 +126,23 @@ impl Animation for ComboAnimation { let move1 = move1 * multi_strike_pullback; let move2 = move2 * multi_strike_pullback; - match strike { - 0 => { - 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, - ); - 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.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); + 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.3); - next.control.position += Vec3::new(0.0, 0.0, move1 * 6.0); - next.control.orientation.rotate_y(move1 * -0.3); + next.chest.orientation = Quaternion::rotation_z(move1 * 0.2); + next.control.orientation.rotate_x(move1 * 1.3); + next.control.position += Vec3::new(move1 * -4.0, 0.0, move1 * 6.0); + next.control.orientation.rotate_y(move1 * -1.6); - next.chest.orientation.rotate_z(move2 * -0.3); - next.control.orientation.rotate_x(move2 * -2.5); - next.control.orientation.rotate_z(move2 * -0.4); - next.control.position += - Vec3::new(move2 * 7.0, move2 * 4.0, move2 * -7.0); - }, - 1 => { - next.control.position += - Vec3::new(move1 * 3.0, move1 * -4.0, move1 * 7.0); - next.control.orientation.rotate_x(move1 * 2.5); - - next.chest.orientation.rotate_z(move2 * 0.4); - next.control.orientation.rotate_x(move2 * -2.5); - next.control.position += - Vec3::new(move2 * -5.0, move2 * 4.0, move2 * -7.0); - }, - _ => {}, - } + next.chest.orientation.rotate_z(move2 * -0.3); + next.control.orientation.rotate_z(move2 * -3.5); + next.control.position += Vec3::new(move2 * 24.0, 0.0, 0.0); }, Some("common.abilities.sword.heavy_pommel_strike") => { let (move1, move2) = match stage_section { diff --git a/voxygen/src/hud/diary.rs b/voxygen/src/hud/diary.rs index f53817e7d9..6eb90231b5 100644 --- a/voxygen/src/hud/diary.rs +++ b/voxygen/src/hud/diary.rs @@ -1627,8 +1627,8 @@ impl<'a> Diary<'a> { position: TopLeftWithMarginsOn(state.ids.sword_bg, 263.0, 429.0), }, SkillIcon::Ability { - skill: Skill::Sword(SwordSkill::HeavyWindmillSlash), - ability_id: "common.abilities.sword.heavy_windmill_slash", + skill: Skill::Sword(SwordSkill::HeavySweep), + ability_id: "common.abilities.sword.heavy_sweep", position: TopLeftWithMarginsOn(state.ids.sword_bg, 457.0, 2.0), }, SkillIcon::Ability { diff --git a/voxygen/src/hud/img_ids.rs b/voxygen/src/hud/img_ids.rs index 40ede953fc..a269f66f23 100644 --- a/voxygen/src/hud/img_ids.rs +++ b/voxygen/src/hud/img_ids.rs @@ -225,7 +225,7 @@ image_ids! { sword_basic_thrust: "voxygen.element.skills.sword.basic_thrust", sword_heavy_slam: "voxygen.element.skills.sword.heavy_slam", sword_agile_perforate: "voxygen.element.skills.sword.agile_perforate", - sword_defensive_parry: "voxygen.element.skills.sword.defensive_parry", + sword_defensive_jab: "voxygen.element.skills.sword.defensive_jab", sword_crippling_deep_rend: "voxygen.element.skills.sword.crippling_deep_rend", sword_cleaving_spiral_slash: "voxygen.element.skills.sword.cleaving_spiral_slash", sword_crescent_slash: "voxygen.element.skills.sword.crescent_slash", @@ -270,7 +270,7 @@ image_ids! { sword_defensive_counter: "voxygen.element.skills.sword.defensive_counter", sword_crippling_mutilate: "voxygen.element.skills.sword.crippling_mutilate", sword_cleaving_bladestorm: "voxygen.element.skills.sword.cleaving_bladestorm", - sword_heavy_windmill_slash: "voxygen.element.skills.sword.heavy_windmill_slash", + sword_heavy_sweep: "voxygen.element.skills.sword.heavy_sweep", sword_heavy_pommel_strike: "voxygen.element.skills.sword.heavy_pommel_strike", sword_agile_quick_draw: "voxygen.element.skills.sword.agile_quick_draw", sword_agile_feint: "voxygen.element.skills.sword.agile_feint", diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 3f6fad666a..b36aa3e4a1 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -4934,7 +4934,6 @@ pub fn get_buff_image(buff: BuffKind, imgs: &Imgs) -> conrod_core::image::Id { BuffKind::Frenzied => imgs.buff_frenzy_0, BuffKind::Hastened => imgs.buff_haste_0, BuffKind::Fortitude => imgs.buff_fortitude_0, - // TODO: Get unique icon BuffKind::Reckless => imgs.buff_reckless, // Debuffs BuffKind::Bleeding => imgs.debuff_bleed_0, diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs index 2ccabddc36..d33c084149 100644 --- a/voxygen/src/hud/util.rs +++ b/voxygen/src/hud/util.rs @@ -360,7 +360,7 @@ pub fn ability_image(imgs: &img_ids::Imgs, ability_id: &str) -> image::Id { "common.abilities.sword.basic_thrust" => imgs.sword_basic_thrust, "common.abilities.sword.heavy_slam" => imgs.sword_heavy_slam, "common.abilities.sword.agile_perforate" => imgs.sword_agile_perforate, - "common.abilities.sword.defensive_parry" => imgs.sword_defensive_parry, + "common.abilities.sword.defensive_jab" => imgs.sword_defensive_jab, "common.abilities.sword.crippling_deep_rend" => imgs.sword_crippling_deep_rend, "common.abilities.sword.cleaving_spiral_slash" => imgs.sword_cleaving_spiral_slash, "veloren.core.pseudo_abilities.sword.crescent_slash" => imgs.sword_crescent_slash, @@ -405,7 +405,7 @@ pub fn ability_image(imgs: &img_ids::Imgs, ability_id: &str) -> image::Id { "common.abilities.sword.defensive_counter" => imgs.sword_defensive_counter, "common.abilities.sword.crippling_mutilate" => imgs.sword_crippling_mutilate, "common.abilities.sword.cleaving_bladestorm" => imgs.sword_cleaving_bladestorm, - "common.abilities.sword.heavy_windmill_slash" => imgs.sword_heavy_windmill_slash, + "common.abilities.sword.heavy_sweep" => imgs.sword_heavy_sweep, "common.abilities.sword.heavy_pommel_strike" => imgs.sword_heavy_pommel_strike, "common.abilities.sword.agile_quick_draw" => imgs.sword_agile_quick_draw, "common.abilities.sword.agile_feint" => imgs.sword_agile_feint,