Merge branch 'hammer' into 'master'

Hammer

See merge request veloren/veloren!4429
This commit is contained in:
Samuel Keiffer 2024-04-29 00:53:39 +00:00
commit a0b1f76b9b
231 changed files with 4315 additions and 3581 deletions

3
.gitignore vendored
View File

@ -62,6 +62,9 @@ nix/result*
/result*
/shell.nix
## KDE
.directory
# Programming and scripting languages
## Bash

View File

@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fireworks and bombs are (again) available from chests (Sahagin and above).
- Increased brinestone armor recipe cost and repair cost.
- Hammer
### Removed

2
Cargo.lock generated
View File

@ -7151,8 +7151,10 @@ dependencies = [
"lazy_static",
"rand 0.8.5",
"specs",
"tracing",
"vek 0.16.1",
"veloren-common",
"veloren-common-base",
"veloren-common-dynlib",
"veloren-rtsim",
]

View File

@ -193,10 +193,52 @@
),
Tool(Hammer): (
guard: Some(Simple(None, "common.abilities.hammer.basic_guard")),
primary: Simple(None, "common.abilities.hammer.singlestrike"),
secondary: Simple(None, "common.abilities.hammer.charged"),
primary: Simple(None, "common.abilities.hammer.solid_smash"),
secondary: Simple(None, "common.abilities.hammer.wide_wallop"),
abilities: [
Simple(Some(Hammer(UnlockLeap)), "common.abilities.hammer.leap"),
Simple(Hammer(ScornfulSwipe), "common.abilities.hammer.scornful_swipe"),
Simple(Hammer(Tremor), "common.abilities.hammer.tremor"),
Simple(Hammer(VigorousBash), "common.abilities.hammer.vigorous_bash"),
Simple(Hammer(Retaliate), "common.abilities.hammer.retaliate"),
Simple(Hammer(SpineCracker), "common.abilities.hammer.spine_cracker"),
Simple(Hammer(Breach), "common.abilities.hammer.breach"),
Contextualized(
pseudo_id: "common.abilities.hammer.iron_tempest",
abilities: [
((dual_wielding_same_kind: true), (Hammer(IronTempest), "common.abilities.hammer.dual_iron_tempest")),
((), (Hammer(IronTempest), "common.abilities.hammer.iron_tempest")),
],
),
Contextualized(
pseudo_id: "common.abilities.hammer.upheaval",
abilities: [
((dual_wielding_same_kind: true), (Hammer(Upheaval), "common.abilities.hammer.dual_upheaval")),
((), (Hammer(Upheaval), "common.abilities.hammer.upheaval")),
],
),
Simple(Hammer(Thunderclap), "common.abilities.hammer.thunderclap"),
Simple(Hammer(SeismicShock), "common.abilities.hammer.seismic_shock"),
Contextualized(
pseudo_id: "common.abilities.hammer.heavy_whorl",
abilities: [
((dual_wielding_same_kind: true), (Hammer(HeavyWhorl), "common.abilities.hammer.dual_heavy_whorl")),
((), (Hammer(HeavyWhorl), "common.abilities.hammer.heavy_whorl")),
],
),
Contextualized(
pseudo_id: "common.abilities.hammer.intercept",
abilities: [
((dual_wielding_same_kind: true), (Hammer(Intercept), "common.abilities.hammer.dual_intercept")),
((), (Hammer(Intercept), "common.abilities.hammer.intercept")),
],
),
Simple(Hammer(PileDriver), "common.abilities.hammer.pile_driver"),
Simple(Hammer(LungPummel), "common.abilities.hammer.lung_pummel"),
Simple(Hammer(HelmCrusher), "common.abilities.hammer.helm_crusher"),
Simple(Hammer(Rampart), "common.abilities.hammer.rampart"),
Simple(Hammer(Tenacity), "common.abilities.hammer.tenacity"),
Simple(Hammer(Earthshaker), "common.abilities.hammer.earthshaker"),
Simple(Hammer(Judgement), "common.abilities.hammer.judgement"),
],
),
Tool(Bow): (
@ -863,7 +905,7 @@
abilities: [],
),
Custom("Golf Club"): (
primary: Simple(None, "common.abilities.hammer.singlestrike"),
primary: Simple(None, "common.abilities.tool.golf_club.charged"),
secondary: Simple(None, "common.abilities.tool.golf_club.charged"),
abilities: [],
),

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.9,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -22,5 +22,5 @@ ChargedMelee(
swing_duration: 0.1,
hit_timing: 0.2,
recover_duration: 0.2,
additional_combo: 4,
custom_combo: Some((additional: 4)),
)

View File

@ -1,10 +1,10 @@
SelfBuff(
buildup_duration: 0.1,
cast_duration: 3.0,
cast_duration: 1.0,
recover_duration: 0.1,
buff_kind: Defiance,
buff_strength: 1.0,
buff_duration: Some(3.0),
buff_duration: Some(8.0),
energy_cost: 20,
enforced_limit: false,
)

View File

@ -20,7 +20,7 @@ ComboMelee2(
swing: Some(Forward(0.7)),
),
ori_modifier: 0.6,
additional_combo: 4,
custom_combo: Some((additional: 4)),
),
],
energy_cost_per_strike: 10,

View File

@ -16,7 +16,7 @@ ComboMelee2(
hit_timing: 0.5,
recover_duration: 0.3,
ori_modifier: 0.6,
additional_combo: 4,
custom_combo: Some((additional: 4)),
),
],
energy_cost_per_strike: 10,

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.25,
recover_duration: 0.8,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.3,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 1.4,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Energy,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -30,5 +30,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.9,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: true,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: Value(0.3),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Water,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -25,5 +25,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.8,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Piercing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Steam,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.35,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: true,
auto_charge: false,
)

View File

@ -25,5 +25,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 1.2,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Water,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: DamageFraction(0.3),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: Value(0.3),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: Value(3.0),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: DamageFraction(0.6),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -31,5 +31,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 3.4,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.35,
recover_duration: 2.4,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.35,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.35,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.4,
recover_duration: 1.2,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.65,
recover_duration: 2.0,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: DamageFraction(0.06),
chance: 1,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 2.2,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -21,5 +21,7 @@ Shockwave(
strength: Value(0.3),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.9,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.3,
recover_duration: 0.7,
ori_modifier: 0.1,
charge_through: false,
auto_charge: false,
)

View File

@ -25,5 +25,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 1.0,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Water,
ori_rate: 0.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,5 +21,7 @@ Shockwave(
strength: DamageFraction(0.3),
chance: 1.0,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Crushing,
specifier: Ground,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -21,4 +21,6 @@ Shockwave(
strength: DamageFraction(0.1),
chance: 0.1,
))),
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Energy,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -0,0 +1,21 @@
BasicMelee(
energy_cost: 20,
buildup_duration: 0.4,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 15,
poise: 20,
knockback: 0,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
attack_effect: Some((Poise(40), TargetBlocking)),
precision_flank_multipliers: (back: 1.0, side: 1.0, front: 1.5),
precision_flank_invert: true,
),
ori_modifier: 0.6,
)

View File

@ -1,26 +0,0 @@
ChargedMelee(
energy_cost: 1,
energy_drain: 30.0,
melee_constructor: (
kind: Bash(
damage: 0.0,
poise: 0.0,
knockback: 5.0,
energy_regen: 0.0,
),
scaled: Some((
kind: Bash(
damage: 20.0,
poise: 30.0,
knockback: 20.0,
energy_regen: 0.0,
))),
range: 3.5,
angle: 30.0,
multi_target: Some(Normal),
),
charge_duration: 1.0,
swing_duration: 0.12,
hit_timing: 0.2,
recover_duration: 0.3,
)

View File

@ -0,0 +1,20 @@
BasicMelee(
energy_cost: 15,
buildup_duration: 0.2,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 15,
poise: 15,
knockback: 5,
energy_regen: 0,
),
range: 3,
angle: 360,
multi_target: Some(Normal),
simultaneous_hits: 2,
),
ori_modifier: 0.2,
)

View File

@ -0,0 +1,32 @@
DashMelee(
energy_cost: 15,
energy_drain: 0,
forward_speed: 2.5,
buildup_duration: 0.2,
charge_duration: 1.5,
swing_duration: 0.1,
recover_duration: 0.3,
melee_constructor: (
kind: Bash(
damage: 6,
poise: 10,
knockback: 0,
energy_regen: 0,
),
scaled: Some((
kind: Bash(
damage: 9,
poise: 15,
knockback: 5,
energy_regen: 0,
))),
range: 4.0,
angle: 30.0,
multi_target: Some(Normal),
),
ori_modifier: 0.1,
auto_charge: true,
meta: (
contextual_stats: Some((context: PoiseResilience(60.0), field: EffectPower)),
),
)

View File

@ -0,0 +1,20 @@
RapidMelee(
buildup_duration: 0.4,
swing_duration: 0.2,
recover_duration: 0.3,
melee_constructor: (
kind: Bash(
damage: 10,
poise: 15,
knockback: 3,
energy_regen: 0,
),
range: 4.0,
angle: 360.0,
simultaneous_hits: 2,
),
energy_cost: 3,
max_strikes: Some(8),
move_modifier: 0.2,
ori_modifier: 1.0,
)

View File

@ -0,0 +1,32 @@
BasicMelee(
energy_cost: 10,
buildup_duration: 0.6,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.4,
melee_constructor: (
kind: Bash(
damage: 15,
poise: 15,
knockback: 0,
energy_regen: 0,
),
range: 3,
angle: 20,
multi_target: Some(Normal),
damage_effect: Some(Buff((
kind: Staggered,
dur_secs: 10.0,
strength: Value(0.5),
chance: 1.0,
))),
attack_effect: Some((
Knockback((
direction: Up,
strength: 10,
)),
AnyDamage,
)),
),
ori_modifier: 0.2,
)

View File

@ -0,0 +1,25 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.4,
swing_duration: 0.2,
recover_duration: 0.7,
melee_constructor: (
kind: Bash(
damage: 40,
poise: 50,
knockback: 10,
energy_regen: 0,
),
range: 6.0,
angle: 360.0,
multi_target: Some(Normal),
damage_effect: Some(Buff((
kind: Winded,
dur_secs: 15.0,
strength: Value(5.0),
chance: 1.0,
))),
),
minimum_combo: 20,
combo_consumption: Cost,
)

View File

@ -0,0 +1,19 @@
BasicMelee(
energy_cost: 10,
buildup_duration: 0.2,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 20,
knockback: 10,
energy_regen: 0,
),
range: 3,
angle: 360,
multi_target: Some(Normal),
),
ori_modifier: 0.2,
)

View File

@ -0,0 +1,26 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.2,
swing_duration: 0.1,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 20,
knockback: 12,
energy_regen: 0,
),
range: 4.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Concussion,
dur_secs: 8,
strength: Value(1.0),
chance: 1.0,
))),
precision_flank_multipliers: (front: 1.5, side: 1.0, back: 1.0),
precision_flank_invert: true,
),
minimum_combo: 10,
combo_consumption: Cost,
)

View File

@ -0,0 +1,31 @@
DashMelee(
energy_cost: 15,
energy_drain: 0,
forward_speed: 2.5,
buildup_duration: 0.2,
charge_duration: 1.5,
swing_duration: 0.1,
recover_duration: 0.3,
melee_constructor: (
kind: Bash(
damage: 8,
poise: 12,
knockback: 0,
energy_regen: 0,
),
scaled: Some((
kind: Bash(
damage: 12,
poise: 18,
knockback: 7.5,
energy_regen: 0,
))),
range: 4.0,
angle: 30.0,
),
ori_modifier: 0.1,
auto_charge: true,
meta: (
contextual_stats: Some((context: PoiseResilience(30.0), field: EffectPower)),
),
)

View File

@ -0,0 +1,19 @@
RapidMelee(
buildup_duration: 0.4,
swing_duration: 0.15,
recover_duration: 0.3,
melee_constructor: (
kind: Bash(
damage: 8,
poise: 10,
knockback: 3,
energy_regen: 0,
),
range: 4.0,
angle: 360.0,
),
energy_cost: 3,
max_strikes: Some(8),
move_modifier: 0.2,
ori_modifier: 1.0,
)

View File

@ -0,0 +1,22 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.3,
swing_duration: 0.2,
recover_duration: 0.6,
melee_constructor: (
kind: Bash(
damage: 25,
poise: 30,
knockback: 5,
energy_regen: 0,
),
range: 4.0,
angle: 15.0,
damage_effect: Some(StunnedVulnerable(3.0)),
),
minimum_combo: 20,
combo_consumption: Cost,
meta: (
contextual_stats: Some((context: PoiseResilience(60.0), field: Power)),
),
)

View File

@ -1,21 +0,0 @@
LeapMelee(
energy_cost: 35.0,
buildup_duration: 0.1,
movement_duration: 0.6,
swing_duration: 0.15,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 25.0,
poise: 40.0,
knockback: 25.0,
energy_regen: 0.0,
),
range: 4.5,
angle: 360.0,
multi_target: Some(Normal),
),
forward_leap_strength: 20.0,
vertical_leap_strength: 8.0,
specifier: None,
)

View File

@ -0,0 +1,25 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.15,
swing_duration: 0.15,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 20,
knockback: 6,
energy_regen: 0,
),
range: 4.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Winded,
dur_secs: 8,
strength: Value(1.0),
chance: 1.0,
))),
precision_flank_multipliers: (front: 1.0, side: 2.0, back: 1.0),
),
minimum_combo: 10,
combo_consumption: Cost,
)

View File

@ -0,0 +1,24 @@
BasicMelee(
energy_cost: 20,
buildup_duration: 0.4,
swing_duration: 0.1,
hit_timing: 0.9,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 25,
poise: 30,
knockback: 0,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
damage_effect: Some(Buff((
kind: Rooted,
dur_secs: 4.0,
strength: Value(1.0),
chance: 1.0,
))),
),
ori_modifier: 0.6,
)

View File

@ -0,0 +1,23 @@
StaticAura(
buildup_duration: 0.4,
cast_duration: 0.3,
recover_duration: 0.4,
energy_cost: 30,
targets: InGroup,
auras: [
(
kind: ProtectingWard,
strength: 0.3,
duration: Some(1),
category: Magical,
),
],
aura_duration: Some(15),
range: 10.0,
sprite_info: Some((
sprite: Stones2,
del_timeout: Some((19, 3)),
summon_distance: (7, 10),
sparseness: 0.97,
)),
)

View File

@ -0,0 +1,17 @@
RiposteMelee(
energy_cost: 10,
buildup_duration: 0.4,
swing_duration: 0.1,
recover_duration: 0.2,
block_strength: 5.0,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 30,
knockback: 5,
energy_regen: 0,
),
range: 4.0,
angle: 20.0,
),
)

View File

@ -0,0 +1,24 @@
BasicMelee(
energy_cost: 10,
buildup_duration: 0.7,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 10,
knockback: 5,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
damage_effect: Some(SelfBuff((
kind: ScornfulTaunt,
dur_secs: 20.0,
strength: Value(0.5),
chance: 1.0,
))),
),
ori_modifier: 0.6,
)

View File

@ -0,0 +1,22 @@
Shockwave(
energy_cost: 0,
buildup_duration: 0.6,
swing_duration: 0.2,
recover_duration: 0.6,
damage: 60,
poise_damage: 80,
knockback: (strength: 10.0, direction: Up),
shockwave_angle: 360.0,
shockwave_vertical_angle: 45.0,
shockwave_speed: 8.0,
shockwave_duration: 2.5,
dodgeable: Jump,
move_efficiency: 0.0,
damage_kind: Crushing,
specifier: Ground,
ori_rate: 0.0,
timing: PostAction,
emit_outcome: false,
minimum_combo: Some(20),
combo_consumption: Cost,
)

View File

@ -1,25 +0,0 @@
ComboMeleeDeprecated(
stage_data: [(
stage: 1,
base_damage: 15.0,
damage_increase: 0.75,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 3.5,
range: 4.5,
angle: 50.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.45,
forward_movement: 0.0,
damage_kind: Crushing,
)],
initial_energy_gain: 5.0,
max_energy_gain: 12.5,
energy_increase: 2.5,
speed_increase: 0.1,
max_speed_increase: 0.4,
scales_from_combo: 2,
ori_modifier: 1.0,
)

View File

@ -0,0 +1,18 @@
BasicMelee(
energy_cost: 0,
buildup_duration: 0.2,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 10,
poise: 10,
knockback: 5,
energy_regen: 10,
),
range: 3.0,
angle: 15.0,
),
ori_modifier: 0.6,
)

View File

@ -0,0 +1,20 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.1,
swing_duration: 0.1,
recover_duration: 0.3,
melee_constructor: (
kind: Bash(
damage: 25,
poise: 0,
knockback: 0,
energy_regen: 0,
),
range: 4.0,
angle: 15.0,
attack_effect: Some((Poise(50), BehindTarget)),
precision_flank_multipliers: (front: 1.0, side: 1.0, back: 3.0),
),
minimum_combo: 10,
combo_consumption: Cost,
)

View File

@ -0,0 +1,13 @@
SelfBuff(
buildup_duration: 0.1,
cast_duration: 1.0,
recover_duration: 0.1,
buff_kind: Tenacity,
buff_strength: 1.0,
buff_duration: Some(8.0),
energy_cost: 20,
enforced_limit: false,
meta: (
contextual_stats: Some((context: PoiseResilience(60.0), field: BuffStrength)),
),
)

View File

@ -0,0 +1,18 @@
FinisherMelee(
energy_cost: 0,
buildup_duration: 0.5,
swing_duration: 0.1,
recover_duration: 0.7,
melee_constructor: (
kind: Bash(
damage: 80,
poise: 100,
knockback: 0,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
),
minimum_combo: 20,
combo_consumption: Cost,
)

View File

@ -0,0 +1,20 @@
Shockwave(
energy_cost: 20,
buildup_duration: 0.4,
swing_duration: 0.3,
recover_duration: 0.3,
damage: 30,
poise_damage: 40,
knockback: (strength: 5.0, direction: Up),
shockwave_angle: 60.0,
shockwave_vertical_angle: 45.0,
shockwave_speed: 10.0,
shockwave_duration: 1.5,
dodgeable: Jump,
move_efficiency: 0.0,
damage_kind: Crushing,
specifier: Ground,
ori_rate: 0.2,
timing: PostAction,
emit_outcome: false,
)

View File

@ -0,0 +1,31 @@
BasicMelee(
energy_cost: 10,
buildup_duration: 0.6,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.4,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 20,
knockback: 0,
energy_regen: 0,
),
range: 3,
angle: 20,
damage_effect: Some(Buff((
kind: Staggered,
dur_secs: 10.0,
strength: Value(0.5),
chance: 1.0,
))),
attack_effect: Some((
Knockback((
direction: Up,
strength: 15,
)),
AnyDamage,
)),
),
ori_modifier: 0.2,
)

View File

@ -0,0 +1,27 @@
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Bash(
damage: 15,
poise: 15,
knockback: 3,
energy_regen: 0,
),
range: 4.0,
angle: 15.0,
),
buildup_duration: 0.2,
swing_duration: 0.2,
hit_timing: 0.2,
recover_duration: 0.1,
movement: (
buildup: Some(Forward(0.2)),
swing: Some(Forward(0.3)),
),
ori_modifier: 0.6,
custom_combo: Some((additional: 9, requirement: Some(TargetPoised))),
),
],
energy_cost_per_strike: 10,
)

View File

@ -0,0 +1,25 @@
ChargedMelee(
energy_cost: 0,
energy_drain: 0,
melee_constructor: (
kind: Bash(
damage: 0,
poise: 0,
knockback: 0,
energy_regen: 0,
),
scaled: Some((
kind: Bash(
damage: 40,
poise: 100,
knockback: 2,
energy_regen: 30,
))),
range: 4.5,
angle: 15.0,
),
charge_duration: 1.4,
swing_duration: 0.2,
hit_timing: 0.5,
recover_duration: 0.5,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.8,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -15,4 +15,6 @@ Shockwave(
damage_kind: Energy,
specifier: Fire,
ori_rate: 1.0,
timing: PostBuildup,
emit_outcome: true,
)

View File

@ -24,5 +24,5 @@ DashMelee(
swing_duration: 0.1,
recover_duration: 0.9,
ori_modifier: 0.3,
charge_through: false,
auto_charge: false,
)

View File

@ -6,12 +6,12 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 0.8,
effect_power: 1.5,
power: 1.0,
effect_power: 1.4,
speed: 0.8,
range: 1.0,
energy_efficiency: 0.8,
buff_strength: 0.8,
range: 1.2,
energy_efficiency: 0.7,
buff_strength: 1.1,
),
hand_restriction: Some(Two),
weapon_name: Universal("Greathammer"),

View File

@ -6,12 +6,12 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 1.25,
effect_power: 0.8,
power: 1.5,
effect_power: 1.0,
speed: 0.8,
range: 1.0,
energy_efficiency: 0.8,
buff_strength: 0.8,
range: 0.8,
energy_efficiency: 1.2,
buff_strength: 0.9,
),
hand_restriction: Some(Two),
weapon_name: Universal("Greatmace"),

View File

@ -6,12 +6,12 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 0.9,
effect_power: 0.9,
speed: 0.9,
range: 0.9,
energy_efficiency: 0.9,
buff_strength: 0.9,
power: 1.0,
effect_power: 1.0,
speed: 1.0,
range: 1.0,
energy_efficiency: 1.0,
buff_strength: 1.0,
),
hand_restriction: None,
weapon_name: HandednessDependent(

View File

@ -6,12 +6,12 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 0.8,
effect_power: 0.8,
power: 1.2,
effect_power: 1.2,
speed: 0.8,
range: 1.3,
energy_efficiency: 0.8,
buff_strength: 0.8,
energy_efficiency: 0.7,
buff_strength: 1.0,
),
hand_restriction: Some(Two),
weapon_name: Universal("Maul"),

View File

@ -7,11 +7,11 @@ ItemDef(
stats: (
equip_time_secs: 0.25,
power: 0.8,
effect_power: 0.8,
speed: 0.8,
range: 1.0,
energy_efficiency: 1.5,
buff_strength: 0.8,
effect_power: 1.1,
speed: 0.9,
range: 0.8,
energy_efficiency: 1.4,
buff_strength: 1.2,
),
hand_restriction: None,
weapon_name: HandednessDependent(

View File

@ -6,12 +6,12 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 1.0,
effect_power: 0.8,
speed: 0.7,
power: 1.3,
effect_power: 1.1,
speed: 0.8,
range: 1.0,
energy_efficiency: 0.8,
buff_strength: 1.5,
energy_efficiency: 0.7,
buff_strength: 1.3,
),
hand_restriction: None,
weapon_name: HandednessDependent(

View File

@ -6,11 +6,11 @@ ItemDef(
toolkind: Hammer,
stats: (
equip_time_secs: 0.25,
power: 0.8,
effect_power: 0.8,
speed: 1.25,
power: 1.2,
effect_power: 0.7,
speed: 1.3,
range: 1.0,
energy_efficiency: 0.8,
energy_efficiency: 1.2,
buff_strength: 0.8,
),
hand_restriction: None,

View File

@ -1,17 +1,4 @@
({
Hammer(SsKnockback): 2,
Hammer(SsDamage): 3,
Hammer(SsRegen): 2,
Hammer(SsSpeed): 3,
Hammer(CDamage): 3,
Hammer(CKnockback): 3,
Hammer(CDrain): 2,
Hammer(CSpeed): 2,
Hammer(LDamage): 2,
Hammer(LCost): 2,
Hammer(LDistance): 2,
Hammer(LKnockback): 2,
Hammer(LRange): 2,
Bow(ProjSpeed): 2,
Bow(CDamage): 3,
Bow(CRegen): 2,

View File

@ -37,11 +37,24 @@
Axe(Keelhaul): Any({Axe(Sunder): 1, Axe(Plunder): 1}),
Axe(Bulkhead): Any({Axe(Sunder): 1, Axe(Plunder): 1}),
Axe(Capsize): All({Axe(Bulkhead): 1}),
Hammer(LDamage): All({Hammer(UnlockLeap): 1}),
Hammer(LCost): All({Hammer(UnlockLeap): 1}),
Hammer(LDistance): All({Hammer(UnlockLeap): 1}),
Hammer(LKnockback): All({Hammer(UnlockLeap): 1}),
Hammer(LRange): All({Hammer(UnlockLeap): 1}),
Hammer(Tremor): All({Hammer(ScornfulSwipe): 1}),
Hammer(VigorousBash): All({Hammer(ScornfulSwipe): 1}),
Hammer(Retaliate): Any({Hammer(Tremor): 1, Hammer(VigorousBash): 1}),
Hammer(SpineCracker): Any({Hammer(Tremor): 1, Hammer(VigorousBash): 1}),
Hammer(Breach): Any({Hammer(Tremor): 1, Hammer(VigorousBash): 1}),
Hammer(IronTempest): Any({Hammer(Retaliate): 1, Hammer(Breach): 1, Hammer(SpineCracker): 1, Hammer(HelmCrusher): 1, Hammer(LungPummel): 1, Hammer(PileDriver): 1}),
Hammer(Upheaval): Any({Hammer(Retaliate): 1, Hammer(Breach): 1, Hammer(SpineCracker): 1, Hammer(HelmCrusher): 1, Hammer(LungPummel): 1, Hammer(PileDriver): 1}),
Hammer(Thunderclap): Any({Hammer(IronTempest): 1, Hammer(Upheaval): 1}),
Hammer(SeismicShock): Any({Hammer(IronTempest): 1, Hammer(Upheaval): 1}),
Hammer(HeavyWhorl): All({Hammer(ScornfulSwipe): 1}),
Hammer(Intercept): All({Hammer(ScornfulSwipe): 1}),
Hammer(PileDriver): Any({Hammer(Intercept): 1, Hammer(HeavyWhorl): 1}),
Hammer(LungPummel): Any({Hammer(Intercept): 1, Hammer(HeavyWhorl): 1}),
Hammer(HelmCrusher): Any({Hammer(Intercept): 1, Hammer(HeavyWhorl): 1}),
Hammer(Rampart): Any({Hammer(Retaliate): 1, Hammer(Breach): 1, Hammer(SpineCracker): 1, Hammer(HelmCrusher): 1, Hammer(LungPummel): 1, Hammer(PileDriver): 1}),
Hammer(Tenacity): Any({Hammer(Retaliate): 1, Hammer(Breach): 1, Hammer(SpineCracker): 1, Hammer(HelmCrusher): 1, Hammer(LungPummel): 1, Hammer(PileDriver): 1}),
Hammer(Earthshaker): Any({Hammer(Tenacity): 1, Hammer(Rampart): 1}),
Hammer(Judgement): Any({Hammer(Tenacity): 1, Hammer(Rampart): 1}),
Bow(SDamage): All({Bow(UnlockShotgun): 1}),
Bow(SCost): All({Bow(UnlockShotgun): 1}),
Bow(SArrows): All({Bow(UnlockShotgun): 1}),

View File

@ -62,20 +62,25 @@
Axe(Capsize),
],
Weapon(Hammer): [
Hammer(SsKnockback),
Hammer(SsDamage),
Hammer(SsSpeed),
Hammer(SsRegen),
Hammer(CDamage),
Hammer(CKnockback),
Hammer(CDrain),
Hammer(CSpeed),
Hammer(UnlockLeap),
Hammer(LDamage),
Hammer(LCost),
Hammer(LDistance),
Hammer(LKnockback),
Hammer(LRange),
Hammer(ScornfulSwipe),
Hammer(Tremor),
Hammer(VigorousBash),
Hammer(Retaliate),
Hammer(SpineCracker),
Hammer(Breach),
Hammer(IronTempest),
Hammer(Upheaval),
Hammer(Thunderclap),
Hammer(SeismicShock),
Hammer(HeavyWhorl),
Hammer(Intercept),
Hammer(PileDriver),
Hammer(LungPummel),
Hammer(HelmCrusher),
Hammer(Rampart),
Hammer(Tenacity),
Hammer(Earthshaker),
Hammer(Judgement),
],
Weapon(Bow): [
Bow(ProjSpeed),

View File

@ -1,12 +1,5 @@
([
Group(Weapon(Hammer)),
// Single Strike, as single as you are
Skill((Hammer(SsKnockback), 1)),
Skill((Hammer(SsDamage), 1)),
// Charged
Skill((Hammer(CDamage), 1)),
Skill((Hammer(CKnockback), 1)),
Skill((Hammer(ScornfulSwipe), 1)),
])

View File

@ -1,16 +1,10 @@
([
Group(Weapon(Hammer)),
// Single Strike, as single as you are
Skill((Hammer(SsKnockback), 1)),
Skill((Hammer(SsDamage), 2)),
Skill((Hammer(SsRegen), 1)),
Skill((Hammer(SsSpeed), 1)),
// Charged
Skill((Hammer(CDamage), 1)),
Skill((Hammer(CKnockback), 1)),
Skill((Hammer(CDrain), 1)),
Skill((Hammer(CSpeed), 1)),
Skill((Hammer(ScornfulSwipe), 1)),
Skill((Hammer(Tremor), 1)),
Skill((Hammer(VigorousBash), 1)),
Skill((Hammer(Intercept), 1)),
Skill((Hammer(HeavyWhorl), 1)),
])

View File

@ -1,21 +1,17 @@
([
Group(Weapon(Hammer)),
// Single Strike, as single as you are
Skill((Hammer(SsKnockback), 2)),
Skill((Hammer(SsDamage), 2)),
Skill((Hammer(SsRegen), 1)),
Skill((Hammer(SsSpeed), 1)),
Skill((Hammer(ScornfulSwipe), 1)),
// Charged
Skill((Hammer(CDamage), 2)),
Skill((Hammer(CKnockback), 1)),
Skill((Hammer(CDrain), 1)),
Skill((Hammer(CSpeed), 1)),
Skill((Hammer(Tremor), 1)),
Skill((Hammer(VigorousBash), 1)),
Skill((Hammer(Intercept), 1)),
Skill((Hammer(HeavyWhorl), 1)),
// Leap
Skill((Hammer(UnlockLeap), 1)),
Skill((Hammer(LDamage), 1)),
Skill((Hammer(LCost), 1)),
Skill((Hammer(LDistance), 1)),
Skill((Hammer(Retaliate), 1)),
Skill((Hammer(Breach), 1)),
Skill((Hammer(SpineCracker), 1)),
Skill((Hammer(HelmCrusher), 1)),
Skill((Hammer(LungPummel), 1)),
Skill((Hammer(PileDriver), 1)),
])

View File

@ -1,23 +1,22 @@
([
Group(Weapon(Hammer)),
// Single Strike, as single as you are
Skill((Hammer(SsKnockback), 2)),
Skill((Hammer(SsDamage), 2)),
Skill((Hammer(SsRegen), 2)),
Skill((Hammer(SsSpeed), 2)),
Skill((Hammer(ScornfulSwipe), 1)),
// Charged
Skill((Hammer(CDamage), 2)),
Skill((Hammer(CKnockback), 2)),
Skill((Hammer(CDrain), 2)),
Skill((Hammer(CSpeed), 2)),
Skill((Hammer(Tremor), 1)),
Skill((Hammer(VigorousBash), 1)),
Skill((Hammer(Intercept), 1)),
Skill((Hammer(HeavyWhorl), 1)),
// Leap
Skill((Hammer(UnlockLeap), 1)),
Skill((Hammer(LDamage), 1)),
Skill((Hammer(LCost), 1)),
Skill((Hammer(LDistance), 1)),
Skill((Hammer(LKnockback), 1)),
Skill((Hammer(LRange), 1)),
Skill((Hammer(Retaliate), 1)),
Skill((Hammer(Breach), 1)),
Skill((Hammer(SpineCracker), 1)),
Skill((Hammer(HelmCrusher), 1)),
Skill((Hammer(LungPummel), 1)),
Skill((Hammer(PileDriver), 1)),
Skill((Hammer(IronTempest), 1)),
Skill((Hammer(Upheaval), 1)),
Skill((Hammer(Tenacity), 1)),
Skill((Hammer(Rampart), 1)),
])

View File

@ -1,23 +1,27 @@
([
Group(Weapon(Hammer)),
// Single Strike, as single as you are
Skill((Hammer(SsKnockback), 2)),
Skill((Hammer(SsDamage), 3)),
Skill((Hammer(SsRegen), 2)),
Skill((Hammer(SsSpeed), 3)),
Skill((Hammer(ScornfulSwipe), 1)),
// Charged
Skill((Hammer(CDamage), 3)),
Skill((Hammer(CKnockback), 3)),
Skill((Hammer(CDrain), 2)),
Skill((Hammer(CSpeed), 2)),
Skill((Hammer(Tremor), 1)),
Skill((Hammer(VigorousBash), 1)),
Skill((Hammer(Intercept), 1)),
Skill((Hammer(HeavyWhorl), 1)),
// Leap
Skill((Hammer(UnlockLeap), 1)),
Skill((Hammer(LDamage), 2)),
Skill((Hammer(LCost), 2)),
Skill((Hammer(LDistance), 2)),
Skill((Hammer(LKnockback), 2)),
Skill((Hammer(LRange), 2)),
Skill((Hammer(Retaliate), 1)),
Skill((Hammer(Breach), 1)),
Skill((Hammer(SpineCracker), 1)),
Skill((Hammer(HelmCrusher), 1)),
Skill((Hammer(LungPummel), 1)),
Skill((Hammer(PileDriver), 1)),
Skill((Hammer(IronTempest), 1)),
Skill((Hammer(Upheaval), 1)),
Skill((Hammer(Tenacity), 1)),
Skill((Hammer(Rampart), 1)),
Skill((Hammer(Thunderclap), 1)),
Skill((Hammer(SeismicShock), 1)),
Skill((Hammer(Judgement), 1)),
Skill((Hammer(Earthshaker), 1)),
])

View File

@ -60,23 +60,26 @@
(Axe(Capsize), 1),
// Hammer
(UnlockGroup(Weapon(Hammer)), 1),
(Hammer(ScornfulSwipe), 1),
(Hammer(Tremor), 1),
(Hammer(VigorousBash), 1),
(Hammer(Intercept), 1),
(Hammer(HeavyWhorl), 1),
(Hammer(Retaliate), 1),
(Hammer(Breach), 1),
(Hammer(SpineCracker), 1),
(Hammer(HelmCrusher), 1),
(Hammer(LungPummel), 1),
(Hammer(PileDriver), 1),
(Hammer(IronTempest), 1),
(Hammer(Upheaval), 1),
(Hammer(Tenacity), 1),
(Hammer(Rampart), 1),
(Hammer(Thunderclap), 1),
(Hammer(SeismicShock), 1),
(Hammer(Judgement), 1),
(Hammer(Earthshaker), 1),
(Hammer(SsKnockback), 2),
(Hammer(SsDamage), 3),
(Hammer(SsRegen), 2),
(Hammer(SsSpeed), 3),
(Hammer(CDamage), 3),
(Hammer(CKnockback), 3),
(Hammer(CDrain), 2),
(Hammer(CSpeed), 2),
(Hammer(UnlockLeap), 1),
(Hammer(LDamage), 2),
(Hammer(LCost), 2),
(Hammer(LDistance), 2),
(Hammer(LKnockback), 2),
(Hammer(LRange), 2),
// Bow
(UnlockGroup(Weapon(Bow)), 1),
@ -149,22 +152,6 @@
// Hammer
(UnlockGroup(Weapon(Hammer)), 1),
(Hammer(SsKnockback), 1),
(Hammer(SsDamage), 2),
(Hammer(SsRegen), 2),
(Hammer(SsSpeed), 2),
(Hammer(CDamage), 2),
(Hammer(CKnockback), 1),
(Hammer(CDrain), 2),
(Hammer(CSpeed), 2),
(Hammer(UnlockLeap), 1),
(Hammer(LDamage), 2),
(Hammer(LCost), 2),
(Hammer(LDistance), 1),
(Hammer(LKnockback), 2),
(Hammer(LRange), 2),
// Bow
(UnlockGroup(Weapon(Bow)), 1),
@ -232,7 +219,6 @@
// Hammer
(UnlockGroup(Weapon(Hammer)), 1),
(Hammer(UnlockLeap), 1),
// Bow
(UnlockGroup(Weapon(Bow)), 1),

View File

@ -422,13 +422,6 @@
threshold: 0.5,
subtitle: "subtitle-unwield_hammer",
),
Attack(ComboMeleeDeprecated(Action, 1), Hammer): (
files: [
"voxygen.audio.sfx.abilities.swing",
],
threshold: 0.7,
subtitle: "subtitle-hammer_attack",
),
Attack(ChargedMelee(Action), Hammer): (
files: [
"voxygen.audio.sfx.abilities.swing",

BIN
assets/voxygen/element/de_buffs/buff_scornfultaunt.png (Stored with Git LFS) Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More