design/combat/attacks.yaml

version: 1.0.0
status: draft
attacks:
  - id: attack.light.1
    input: light
    context: grounded
    phases: {startup_ms: 80, active_ms: 70, recovery_ms: 170}
    damage: 10
    hitstop_ms: 45
    knockback: {x: 220, y: 0}
    hitbox: {width: 70, height: 45, offset_x: 45, offset_y: -45}
    chains_to: [attack.light.2]
    launcher: false
  - id: attack.light.2
    input: light
    context: grounded
    phases: {startup_ms: 90, active_ms: 70, recovery_ms: 190}
    damage: 12
    hitstop_ms: 50
    knockback: {x: 250, y: -40}
    hitbox: {width: 74, height: 46, offset_x: 48, offset_y: -45}
    chains_to: [attack.light.3]
    launcher: false
  - id: attack.light.3
    input: light
    context: grounded
    phases: {startup_ms: 120, active_ms: 90, recovery_ms: 260}
    damage: 18
    hitstop_ms: 70
    knockback: {x: 420, y: -260}
    hitbox: {width: 82, height: 52, offset_x: 52, offset_y: -48}
    chains_to: []
    launcher: true
  - id: attack.heavy
    input: heavy
    context: grounded
    phases: {startup_ms: 220, active_ms: 110, recovery_ms: 420}
    damage: 28
    hitstop_ms: 90
    knockback: {x: 600, y: -120}
    hitbox: {width: 92, height: 58, offset_x: 56, offset_y: -50}
    chains_to: []
    launcher: false
  - id: attack.air
    input: light
    context: airborne
    phases: {startup_ms: 90, active_ms: 100, recovery_ms: 180}
    damage: 14
    hitstop_ms: 55
    knockback: {x: 220, y: 160}
    hitbox: {width: 68, height: 54, offset_x: 42, offset_y: -38}
    chains_to: []
    launcher: false
  - id: attack.dash
    input: light
    context: dashing
    phases: {startup_ms: 60, active_ms: 100, recovery_ms: 200}
    damage: 16
    hitstop_ms: 60
    knockback: {x: 380, y: 0}
    hitbox: {width: 84, height: 46, offset_x: 58, offset_y: -44}
    chains_to: []
    launcher: false
    inherits_dash_momentum: true

Open raw source