mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Ability changes
This commit is contained in:
parent
ef7b400cca
commit
cdaf9e5c0e
@ -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"),
|
||||
|
@ -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)),
|
||||
|
@ -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,
|
||||
|
25
assets/common/abilities/sword/defensive_jab.ron
Normal file
25
assets/common/abilities/sword/defensive_jab.ron
Normal 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,
|
||||
)
|
@ -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,
|
||||
),
|
||||
)
|
26
assets/common/abilities/sword/heavy_sweep.ron
Normal file
26
assets/common/abilities/sword/heavy_sweep.ron
Normal 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))),
|
||||
),
|
||||
)
|
@ -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))),
|
||||
),
|
||||
)
|
@ -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}),
|
||||
|
@ -22,7 +22,7 @@
|
||||
Sword(Cascade),
|
||||
Sword(CrossCut),
|
||||
Sword(Finisher),
|
||||
Sword(HeavyWindmillSlash),
|
||||
Sword(HeavySweep),
|
||||
Sword(HeavyPommelStrike),
|
||||
Sword(HeavyFortitude),
|
||||
Sword(HeavyPillarThrust),
|
||||
|
@ -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)),
|
||||
|
@ -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)),
|
||||
|
@ -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)),
|
||||
|
@ -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),
|
||||
|
@ -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 =
|
||||
|
@ -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 { .. }
|
||||
|
@ -33,7 +33,7 @@ pub enum SwordSkill {
|
||||
Cascade,
|
||||
CrossCut,
|
||||
Finisher,
|
||||
HeavyWindmillSlash,
|
||||
HeavySweep,
|
||||
HeavyPommelStrike,
|
||||
HeavyFortitude,
|
||||
HeavyPillarThrust,
|
||||
|
@ -512,7 +512,7 @@ impl<'a> AgentData<'a> {
|
||||
);
|
||||
if tactics.is_empty() {
|
||||
try_tactic(
|
||||
SwordSkill::HeavyWindmillSlash,
|
||||
SwordSkill::HeavySweep,
|
||||
SwordTactics::HeavySimple,
|
||||
&mut tactics,
|
||||
);
|
||||
|
@ -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),
|
||||
|
@ -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),
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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",
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user