Initial balance pass on sword ability stats

This commit is contained in:
Sam 2022-10-20 15:49:57 -04:00
parent 2e8ad96121
commit 38ce87d80b
34 changed files with 174 additions and 171 deletions

View File

@ -14,21 +14,21 @@ ComboMelee2(
buildup_duration: 0.3, buildup_duration: 0.3,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.3,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 13,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 7.5,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.3,

View File

@ -1,6 +1,6 @@
FinisherMelee( FinisherMelee(
energy_cost: 30, energy_cost: 30,
buildup_duration: 0.4, buildup_duration: 0.3,
swing_duration: 0.1, swing_duration: 0.1,
recover_duration: 0.4, recover_duration: 0.4,
melee_constructor: ( melee_constructor: (

View File

@ -3,16 +3,16 @@ ChargedMelee(
energy_drain: 0, energy_drain: 0,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 3, damage: 2,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 2, energy_regen: 0,
), ),
scaled: Some(Slash( scaled: Some(Slash(
damage: 12, damage: 20,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 8, energy_regen: 18,
)), )),
range: 4.5, range: 4.5,
angle: 10.0, angle: 10.0,
@ -20,7 +20,7 @@ ChargedMelee(
charge_duration: 0.7, charge_duration: 0.7,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.2, hit_timing: 0.2,
recover_duration: 0.4, recover_duration: 0.2,
meta: ( meta: (
kind: Some(Sword(Balanced)), kind: Some(Sword(Balanced)),
), ),

View File

@ -3,17 +3,17 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 6, damage: 10,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 7, energy_regen: 6,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
multi_target: Some(Normal), multi_target: Some(Normal),
), ),
buildup_duration: 0.3, buildup_duration: 0.3,
swing_duration: 0.1, swing_duration: 0.15,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.5,
movement: ( movement: (
@ -26,7 +26,7 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 8, damage: 16,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 8, energy_regen: 8,
@ -38,7 +38,7 @@ ComboMelee2(
buildup_duration: 0.3, buildup_duration: 0.3,
swing_duration: 0.15, swing_duration: 0.15,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.4,
movement: ( movement: (
buildup: Some(Forward(0.05)), buildup: Some(Forward(0.05)),
swing: None, swing: None,
@ -48,7 +48,7 @@ ComboMelee2(
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 10, energy_cost_per_strike: 6,
meta: ( meta: (
kind: Some(Sword(Cleaving)), kind: Some(Sword(Cleaving)),
), ),

View File

@ -1,15 +1,15 @@
DiveMelee( DiveMelee(
energy_cost: 20, energy_cost: 25,
vertical_speed: 10, vertical_speed: 10,
movement_duration: 5, movement_duration: 5,
swing_duration: 0.1, swing_duration: 0.1,
recover_duration: 0.3, recover_duration: 0.3,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 20, damage: 30,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
scaled: Some(Slash( scaled: Some(Slash(
damage: 10, damage: 10,

View File

@ -1,11 +1,11 @@
FinisherMelee( FinisherMelee(
energy_cost: 40, energy_cost: 40,
buildup_duration: 0.4, buildup_duration: 0.4,
swing_duration: 0.1, swing_duration: 0.2,
recover_duration: 0.4, recover_duration: 0.5,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 25, damage: 30,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,
@ -14,10 +14,6 @@ FinisherMelee(
angle: 15.0, angle: 15.0,
multi_target: Some(Scaling(0.5)), multi_target: Some(Scaling(0.5)),
), ),
scaling: Some((
target: Buff,
kind: Linear,
)),
minimum_combo: 10, minimum_combo: 10,
meta: ( meta: (
kind: Some(Sword(Cleaving)), kind: Some(Sword(Cleaving)),

View File

@ -3,7 +3,7 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 12, damage: 20,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,
@ -15,12 +15,12 @@ ComboMelee2(
buildup_duration: 0.1, buildup_duration: 0.1,
swing_duration: 0.3, swing_duration: 0.3,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.2, recover_duration: 0.4,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
], ],
is_stance: false, is_stance: false,
energy_cost_per_strike: 15, energy_cost_per_strike: 20,
meta: ( meta: (
kind: Some(Sword(Cleaving)), kind: Some(Sword(Cleaving)),
), ),

View File

@ -6,7 +6,7 @@ ComboMelee2(
damage: 8, damage: 8,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 9,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
@ -14,10 +14,10 @@ ComboMelee2(
kind: Bleeding, kind: Bleeding,
dur_secs: 10.0, dur_secs: 10.0,
strength: DamageFraction(0.2), strength: DamageFraction(0.2),
chance: 0.2, chance: 0.25,
))), ))),
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.5,
@ -26,10 +26,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 11, damage: 22,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 8, energy_regen: 13,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
@ -37,18 +37,18 @@ ComboMelee2(
kind: Bleeding, kind: Bleeding,
dur_secs: 10.0, dur_secs: 10.0,
strength: DamageFraction(0.2), strength: DamageFraction(0.2),
chance: 0.2, chance: 0.5,
))), ))),
), ),
buildup_duration: 0.3, buildup_duration: 0.3,
swing_duration: 0.15, swing_duration: 0.2,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.4,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 10, energy_cost_per_strike: 5,
meta: ( meta: (
kind: Some(Sword(Crippling)), kind: Some(Sword(Crippling)),
), ),

View File

@ -1,11 +1,11 @@
FinisherMelee( FinisherMelee(
energy_cost: 40, energy_cost: 40,
buildup_duration: 0.4, buildup_duration: 0.4,
swing_duration: 0.1, swing_duration: 0.2,
recover_duration: 0.4, recover_duration: 0.6,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 20,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,
@ -14,7 +14,7 @@ FinisherMelee(
angle: 15.0, angle: 15.0,
damage_effect: Some(Buff(( damage_effect: Some(Buff((
kind: Bleeding, kind: Bleeding,
dur_secs: 5.0, dur_secs: 10.0,
strength: DamageFraction(0.5), strength: DamageFraction(0.5),
chance: 1.0, chance: 1.0,
))), ))),

View File

@ -3,29 +3,29 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 12, damage: 20,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 4.0, range: 4.0,
angle: 45.0, angle: 45.0,
damage_effect: Some(Buff(( damage_effect: Some(Buff((
kind: Bleeding, kind: Bleeding,
dur_secs: 20.0, dur_secs: 12.0,
strength: DamageFraction(0.2), strength: DamageFraction(0.25),
chance: 1.0, chance: 1.0,
))), ))),
), ),
buildup_duration: 0.2, buildup_duration: 0.3,
swing_duration: 0.1, swing_duration: 0.2,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.4, recover_duration: 0.6,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
], ],
is_stance: false, is_stance: false,
energy_cost_per_strike: 20, energy_cost_per_strike: 25,
meta: ( meta: (
kind: Some(Sword(Crippling)), kind: Some(Sword(Crippling)),
), ),

View File

@ -3,29 +3,29 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 18,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 4.0, range: 4.0,
angle: 45.0, angle: 45.0,
damage_effect: Some(Buff(( damage_effect: Some(Buff((
kind: Crippled, kind: Crippled,
dur_secs: 10.0, dur_secs: 15.0,
strength: Value(0.25), strength: Value(0.25),
chance: 1.0, chance: 1.0,
))), ))),
), ),
buildup_duration: 0.2, buildup_duration: 0.3,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.4, recover_duration: 0.3,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
], ],
is_stance: false, is_stance: false,
energy_cost_per_strike: 20, energy_cost_per_strike: 25,
meta: ( meta: (
kind: Some(Sword(Crippling)), kind: Some(Sword(Crippling)),
), ),

View File

@ -3,7 +3,7 @@ SelfBuff(
cast_duration: 0.4, cast_duration: 0.4,
recover_duration: 0.25, recover_duration: 0.25,
buff_kind: ProtectingWard, buff_kind: ProtectingWard,
buff_strength: 0.5, buff_strength: 0.4,
buff_duration: Some(30.0), buff_duration: Some(30.0),
energy_cost: 40, energy_cost: 40,
meta: ( meta: (

View File

@ -3,15 +3,15 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 7, damage: 10,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 6,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.4,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.5,
@ -20,7 +20,7 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 12,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,
@ -28,7 +28,7 @@ ComboMelee2(
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.3,
@ -36,7 +36,7 @@ ComboMelee2(
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 5, energy_cost_per_strike: 3,
meta: ( meta: (
kind: Some(Sword(Defensive)), kind: Some(Sword(Defensive)),
capabilities: ( capabilities: (

View File

@ -3,18 +3,18 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 16,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 6.0, range: 6.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.2, buildup_duration: 0.1,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.4, recover_duration: 0.5,
movement: ( movement: (
buildup: None, buildup: None,
swing: None, swing: None,

View File

@ -3,10 +3,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 7, damage: 18,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 10,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
@ -20,10 +20,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 30,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 15,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,

View File

@ -1,11 +1,11 @@
FinisherMelee( FinisherMelee(
energy_cost: 40, energy_cost: 40,
buildup_duration: 0.4, buildup_duration: 0.4,
swing_duration: 0.1, swing_duration: 0.2,
recover_duration: 0.4, recover_duration: 0.4,
melee_constructor: ( melee_constructor: (
kind: Bash( kind: Bash(
damage: 20, damage: 30,
poise: 30, poise: 30,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,

View File

@ -3,8 +3,8 @@ SelfBuff(
cast_duration: 0.2, cast_duration: 0.2,
recover_duration: 0.6, recover_duration: 0.6,
buff_kind: Fortitude, buff_kind: Fortitude,
buff_strength: 1.0, buff_strength: 0.5,
buff_duration: Some(5.0), buff_duration: Some(30.0),
energy_cost: 40, energy_cost: 40,
meta: ( meta: (
kind: Some(Sword(Heavy)), kind: Some(Sword(Heavy)),

View File

@ -3,10 +3,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Bash( kind: Bash(
damage: 10, damage: 20,
poise: 20, poise: 20,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 4.0, range: 4.0,
angle: 5.0, angle: 5.0,
@ -19,7 +19,7 @@ ComboMelee2(
), ),
], ],
is_stance: false, is_stance: false,
energy_cost_per_strike: 10, energy_cost_per_strike: 15,
meta: ( meta: (
kind: Some(Sword(Heavy)), kind: Some(Sword(Heavy)),
), ),

View File

@ -3,8 +3,8 @@ SelfBuff(
cast_duration: 0.4, cast_duration: 0.4,
recover_duration: 0.25, recover_duration: 0.25,
buff_kind: Hastened, buff_kind: Hastened,
buff_strength: 0.3, buff_strength: 0.2,
buff_duration: Some(15.0), buff_duration: Some(20.0),
energy_cost: 40, energy_cost: 40,
meta: ( meta: (
kind: Some(Sword(Mobility)), kind: Some(Sword(Mobility)),

View File

@ -3,24 +3,24 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 5,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 6,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.2,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 14, damage: 6,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 8, energy_regen: 8,
@ -28,16 +28,16 @@ ComboMelee2(
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.1,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 9, damage: 5,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 10,
@ -45,7 +45,7 @@ ComboMelee2(
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.2, buildup_duration: 0.15,
swing_duration: 0.05, swing_duration: 0.05,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.1, recover_duration: 0.1,
@ -54,23 +54,23 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 12, damage: 8,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 12,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.2, buildup_duration: 0.1,
swing_duration: 0.05, swing_duration: 0.05,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.4, recover_duration: 0.2,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 5, energy_cost_per_strike: 3,
meta: ( meta: (
kind: Some(Sword(Mobility)), kind: Some(Sword(Mobility)),
capabilities: ( capabilities: (

View File

@ -3,10 +3,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 15, damage: 14,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 4.0, range: 4.0,
angle: 45.0, angle: 45.0,
@ -14,7 +14,7 @@ ComboMelee2(
buildup_duration: 0.2, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.4, recover_duration: 0.3,
movement: ( movement: (
buildup: None, buildup: None,
swing: Some(Sideways(3.0)), swing: Some(Sideways(3.0)),

View File

@ -3,10 +3,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 15, damage: 16,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 6.0, range: 6.0,
angle: 30.0, angle: 30.0,
@ -14,7 +14,7 @@ ComboMelee2(
buildup_duration: 0.2, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.4, recover_duration: 0.3,
movement: ( movement: (
buildup: Some(Forward(1.0)), buildup: Some(Forward(1.0)),
swing: Some(Forward(3.0)), swing: Some(Forward(3.0)),

View File

@ -3,33 +3,16 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 7,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 7,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.2, swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.5,
ori_modifier: 0.6,
),
(
melee_constructor: (
kind: Slash(
damage: 14,
poise: 0,
knockback: 0,
energy_regen: 8,
),
range: 3.0,
angle: 45.0,
),
buildup_duration: 0.3,
swing_duration: 0.2,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.3, recover_duration: 0.3,
ori_modifier: 0.6, ori_modifier: 0.6,
@ -45,10 +28,27 @@ ComboMelee2(
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.25, buildup_duration: 0.3,
swing_duration: 0.3, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.1, recover_duration: 0.3,
ori_modifier: 0.6,
),
(
melee_constructor: (
kind: Slash(
damage: 14,
poise: 0,
knockback: 0,
energy_regen: 13,
),
range: 3.0,
angle: 45.0,
),
buildup_duration: 0.2,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.2,
movement: ( movement: (
buildup: None, buildup: None,
swing: Some(Forward(0.5)), swing: Some(Forward(0.5)),
@ -58,7 +58,7 @@ ComboMelee2(
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 5, energy_cost_per_strike: 4,
meta: ( meta: (
kind: Some(Sword(Offensive)), kind: Some(Sword(Offensive)),
), ),

View File

@ -6,24 +6,24 @@ ComboMelee2(
damage: 7, damage: 7,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 9,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.2, swing_duration: 0.1,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.4,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 8, damage: 13,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 13,
), ),
range: 3.0, range: 3.0,
angle: 45.0, angle: 45.0,
@ -36,7 +36,7 @@ ComboMelee2(
), ),
], ],
is_stance: true, is_stance: true,
energy_cost_per_strike: 10, energy_cost_per_strike: 6,
meta: ( meta: (
kind: Some(Sword(Parrying)), kind: Some(Sword(Parrying)),
capabilities: ( capabilities: (

View File

@ -3,10 +3,10 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 15, damage: 25,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 10, energy_regen: 5,
), ),
range: 3.0, range: 3.0,
angle: 30.0, angle: 30.0,
@ -15,7 +15,7 @@ ComboMelee2(
buildup_duration: 0.05, buildup_duration: 0.05,
swing_duration: 0.1, swing_duration: 0.1,
hit_timing: 0.6, hit_timing: 0.6,
recover_duration: 0.6, recover_duration: 0.75,
movement: ( movement: (
buildup: Some(Forward(0.5)), buildup: Some(Forward(0.5)),
swing: None, swing: None,

View File

@ -1,14 +1,14 @@
RiposteMelee( RiposteMelee(
energy_cost: 15, energy_cost: 20,
buildup_duration: 0.2, buildup_duration: 0.2,
swing_duration: 0.15, swing_duration: 0.2,
recover_duration: 0.3, recover_duration: 0.4,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 10, damage: 25,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 0, energy_regen: 5,
), ),
range: 4.0, range: 4.0,
angle: 20.0, angle: 20.0,

View File

@ -2,16 +2,16 @@ DashMelee(
energy_cost: 10, energy_cost: 10,
melee_constructor: ( melee_constructor: (
kind: Stab( kind: Stab(
damage: 4, damage: 10,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 5,
), ),
scaled: Some(Stab( scaled: Some(Stab(
damage: 12, damage: 30,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 0, energy_regen: 10,
)), )),
range: 4, range: 4,
angle: 15.0, angle: 15.0,
@ -21,7 +21,7 @@ DashMelee(
buildup_duration: 0.2, buildup_duration: 0.2,
charge_duration: 1.0, charge_duration: 1.0,
swing_duration: 0.1, swing_duration: 0.1,
recover_duration: 1.0, recover_duration: 0.5,
ori_modifier: 0.1, ori_modifier: 0.1,
charge_through: false, charge_through: false,
meta: ( meta: (

View File

@ -3,27 +3,27 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Stab( kind: Stab(
damage: 10, damage: 6,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 8,
), ),
range: 4.0, range: 4.0,
angle: 10.0, angle: 10.0,
), ),
buildup_duration: 0.3, buildup_duration: 0.2,
swing_duration: 0.1, swing_duration: 0.05,
hit_timing: 0.5, hit_timing: 0.5,
recover_duration: 0.5, recover_duration: 0.3,
ori_modifier: 0.6, ori_modifier: 0.6,
), ),
( (
melee_constructor: ( melee_constructor: (
kind: Stab( kind: Stab(
damage: 14, damage: 18,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 8, energy_regen: 10,
), ),
range: 5.0, range: 5.0,
angle: 7.5, angle: 7.5,

View File

@ -4,7 +4,7 @@ RapidMelee(
recover_duration: 0.5, recover_duration: 0.5,
melee_constructor: ( melee_constructor: (
kind: Stab( kind: Stab(
damage: 8, damage: 10,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 5,

View File

@ -3,7 +3,7 @@ ComboMelee2(
( (
melee_constructor: ( melee_constructor: (
kind: Stab( kind: Stab(
damage: 12, damage: 24,
poise: 0, poise: 0,
knockback: 0, knockback: 0,
energy_regen: 5, energy_regen: 5,
@ -25,7 +25,7 @@ ComboMelee2(
), ),
], ],
is_stance: false, is_stance: false,
energy_cost_per_strike: 10, energy_cost_per_strike: 15,
meta: ( meta: (
kind: Some(Sword(Reaching)), kind: Some(Sword(Reaching)),
), ),

View File

@ -52,7 +52,7 @@ pub enum BuffKind {
/// increase, 1.0 is a 100% increase. /// increase, 1.0 is a 100% increase.
Hastened, Hastened,
// TODO: Consider non linear scaling? // TODO: Consider non linear scaling?
/// Increases resistance to incomin poise over time /// Increases resistance to incoming poise over time
/// Strength scales the resistance linearly, values over 1 will usually do /// Strength scales the resistance linearly, values over 1 will usually do
/// nothing. 0.5 is 50%, 1.0 is 100%. /// nothing. 0.5 is 50%, 1.0 is 100%.
Fortitude, Fortitude,

View File

@ -122,7 +122,7 @@ impl CharacterBehavior for Data {
handle_orientation(data, &mut update, 1.0, None); handle_orientation(data, &mut update, 1.0, None);
handle_move(data, &mut update, 0.7); handle_move(data, &mut update, 0.7);
handle_interrupts(data, &mut update, Some(ability_input)); let interrupted = handle_interrupts(data, &mut update, Some(ability_input));
let strike_data = self.strike_data(); let strike_data = self.strike_data();
@ -249,7 +249,7 @@ impl CharacterBehavior for Data {
if input_is_pressed(data, ability_input) { if input_is_pressed(data, ability_input) {
next_strike(&mut update) next_strike(&mut update)
} else if !self.static_data.ability_info.input.map_or(false, |input| input_is_pressed(data, input)) { } else if !self.static_data.ability_info.input.map_or(false, |input| input_is_pressed(data, input)) && !interrupted {
attempt_input(data, output_events, &mut update); attempt_input(data, output_events, &mut update);
} }
}, },

View File

@ -1077,13 +1077,14 @@ pub fn handle_dodge_input(data: &JoinData<'_>, update: &mut StateUpdate) {
} }
} }
/// Returns whether an interrupt occurred
pub fn handle_interrupts( pub fn handle_interrupts(
data: &JoinData, data: &JoinData,
update: &mut StateUpdate, update: &mut StateUpdate,
// Used when an input other than the one that activated the ability being pressed should block // Used when an input other than the one that activated the ability being pressed should block
// an interrupt // an interrupt
input_override: Option<InputKind>, input_override: Option<InputKind>,
) { ) -> bool {
// Check that the input used to enter current character state (if there was one) // Check that the input used to enter current character state (if there was one)
// is not pressed // is not pressed
if input_override if input_override
@ -1109,9 +1110,15 @@ pub fn handle_interrupts(
}); });
if can_dodge { if can_dodge {
handle_dodge_input(data, update); handle_dodge_input(data, update);
true
} else if can_block { } else if can_block {
handle_block_input(data, update); handle_block_input(data, update);
true
} else {
false
} }
} else {
false
} }
} }

View File

@ -806,7 +806,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.0, max_range: 2.0,
angle: 30.0, angle: 30.0,
energy: 5.0, energy: 4.0,
}; };
const OFFENSIVE_FINISHER: FinisherMeleeData = FinisherMeleeData { const OFFENSIVE_FINISHER: FinisherMeleeData = FinisherMeleeData {
range: 2.0, range: 2.0,
@ -885,7 +885,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.5, max_range: 2.5,
angle: 35.0, angle: 35.0,
energy: 5.0, energy: 3.0,
}; };
const BASIC_BLOCK: BlockData = BlockData { const BASIC_BLOCK: BlockData = BlockData {
angle: 55.0, angle: 55.0,
@ -983,7 +983,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.5, max_range: 2.5,
angle: 35.0, angle: 35.0,
energy: 10.0, energy: 3.0,
}; };
const MOBILITY_FEINT: ComboMeleeData = ComboMeleeData { const MOBILITY_FEINT: ComboMeleeData = ComboMeleeData {
min_range: 0.0, min_range: 0.0,
@ -1081,19 +1081,19 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.5, max_range: 2.5,
angle: 35.0, angle: 35.0,
energy: 10.0, energy: 5.0,
}; };
const CRIPPLING_GOUGE: ComboMeleeData = ComboMeleeData { const CRIPPLING_GOUGE: ComboMeleeData = ComboMeleeData {
min_range: 0.0, min_range: 0.0,
max_range: 3.0, max_range: 3.0,
angle: 35.0, angle: 35.0,
energy: 20.0, energy: 25.0,
}; };
const CRIPPLING_STRIKE: ComboMeleeData = ComboMeleeData { const CRIPPLING_STRIKE: ComboMeleeData = ComboMeleeData {
min_range: 0.0, min_range: 0.0,
max_range: 3.0, max_range: 3.0,
angle: 35.0, angle: 35.0,
energy: 20.0, energy: 25.0,
}; };
const CRIPPLING_FINISHER: FinisherMeleeData = FinisherMeleeData { const CRIPPLING_FINISHER: FinisherMeleeData = FinisherMeleeData {
range: 2.5, range: 2.5,
@ -1170,7 +1170,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.5, max_range: 2.5,
angle: 35.0, angle: 35.0,
energy: 10.0, energy: 6.0,
}; };
const CLEAVING_FINISHER: FinisherMeleeData = FinisherMeleeData { const CLEAVING_FINISHER: FinisherMeleeData = FinisherMeleeData {
range: 2.0, range: 2.0,
@ -1182,12 +1182,12 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 5.0, max_range: 5.0,
angle: 360.0, angle: 360.0,
energy: 15.0, energy: 20.0,
}; };
const CLEAVING_DIVE: DiveMeleeData = DiveMeleeData { const CLEAVING_DIVE: DiveMeleeData = DiveMeleeData {
range: 5.0, range: 5.0,
angle: 10.0, angle: 10.0,
energy: 20.0, energy: 25.0,
}; };
const DESIRED_ENERGY: f32 = 50.0; const DESIRED_ENERGY: f32 = 50.0;
@ -1284,7 +1284,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 2.5, max_range: 2.5,
angle: 35.0, angle: 35.0,
energy: 10.0, energy: 6.0,
}; };
const PARRYING_PARRY: BlockData = BlockData { const PARRYING_PARRY: BlockData = BlockData {
angle: 40.0, angle: 40.0,
@ -1294,7 +1294,7 @@ impl<'a> AgentData<'a> {
const PARRYING_RIPOSTE: BlockData = BlockData { const PARRYING_RIPOSTE: BlockData = BlockData {
angle: 15.0, angle: 15.0,
range: 3.5, range: 3.5,
energy: 15.0, energy: 20.0,
}; };
const PARRYING_COUNTER: ComboMeleeData = ComboMeleeData { const PARRYING_COUNTER: ComboMeleeData = ComboMeleeData {
min_range: 0.0, min_range: 0.0,
@ -1433,7 +1433,7 @@ impl<'a> AgentData<'a> {
min_range: 0.0, min_range: 0.0,
max_range: 3.0, max_range: 3.0,
angle: 3.0, angle: 3.0,
energy: 10.0, energy: 15.0,
}; };
const HEAVY_FORTITUDE: SelfBuffData = SelfBuffData { const HEAVY_FORTITUDE: SelfBuffData = SelfBuffData {
buff: BuffKind::Fortitude, buff: BuffKind::Fortitude,
@ -1522,7 +1522,7 @@ impl<'a> AgentData<'a> {
min_range: 1.0, min_range: 1.0,
max_range: 7.5, max_range: 7.5,
angle: 7.5, angle: 7.5,
energy: 10.0, energy: 15.0,
}; };
const DESIRED_ENERGY: f32 = 50.0; const DESIRED_ENERGY: f32 = 50.0;