Ability changes

This commit is contained in:
Sam 2023-03-26 21:39:36 -04:00
parent ef7b400cca
commit cdaf9e5c0e
26 changed files with 97 additions and 135 deletions

View File

@ -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"),

View File

@ -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)),

View File

@ -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,

View File

@ -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,
)

View File

@ -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,
),
)

View File

@ -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))),
),
)

View File

@ -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))),
),
)

View File

@ -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}),

View File

@ -22,7 +22,7 @@
Sword(Cascade),
Sword(CrossCut),
Sword(Finisher),
Sword(HeavyWindmillSlash),
Sword(HeavySweep),
Sword(HeavyPommelStrike),
Sword(HeavyFortitude),
Sword(HeavyPillarThrust),

View File

@ -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)),

View File

@ -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)),

View File

@ -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)),

View File

@ -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),

View File

@ -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 =

View File

@ -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 { .. }

View File

@ -33,7 +33,7 @@ pub enum SwordSkill {
Cascade,
CrossCut,
Finisher,
HeavyWindmillSlash,
HeavySweep,
HeavyPommelStrike,
HeavyFortitude,
HeavyPillarThrust,

View File

@ -512,7 +512,7 @@ impl<'a> AgentData<'a> {
);
if tactics.is_empty() {
try_tactic(
SwordSkill::HeavyWindmillSlash,
SwordSkill::HeavySweep,
SwordTactics::HeavySimple,
&mut tactics,
);

View File

@ -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),

View File

@ -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),

View File

@ -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_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.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.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 {

View File

@ -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 {

View File

@ -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",

View File

@ -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,

View File

@ -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,