← All scenarios
PHYS-003skill

Double Strafe Lv10 — two-hit ranged skill

Tests multi-hit physical skill with hitCount=2. Each hit is independent (separate crit roll, separate DEF subtraction). Also verifies ranged-attack flag (Hunter's bow attacks count as ranged for Pneuma/etc.).

physicalDamagemultiHitSkilldoubleStraferanged
Action
skill
AC_DOUBLE Lv10 in expected mode
skillId
AC_DOUBLE
skillLevel
10
mode
expected
context.mapType
pve

Actors

Hunter
player · hunter · Lv75
attacker
Primary stats
str
30
agi
70
vit
30
int
1
dex
90
luk
30
Equipment
  • mainhand: composite_bow · bow · +7 · ATK 80
Geographer
monster · Lv73
defender
plantearth 2mediumnormal
HP 5176 / 5176
Hard DEF 14
Hard MDEF 17
Expected output
From the scenario fixture. Numerical values marked as null are placeholders pending rAthena verification.
hittotalDamage: pendinghitCount: 2

Double Strafe at Lv10: multiplier 180% per hit (2 hits at 90% each is the rAthena formula — verify). Both hits subject to FLEE check, DEF, element separately. The library should mark this skill as ranged so future Pneuma scenarios can verify ranged-immunity.

Show full expected JSON
{
  "breakdown": {
    "isRanged": true,
    "perHitDamage_length": 2,
    "skillMultiplierPerHit": 0.9
  }
}

Computed: DamageResult

Server-evaluated by calculatePhysicalDamage() from @ro/core.

Outcome
hit
2 hits · 734 damage
734
Pipeline breakdown
D-003 steps 2–13
WeaponratioATK167
× size × skill150.3
× (1 + 0.0% ATK%)150.3
+ StatusATK (224)374.3
× 1.00 element374.3
× (1 + 0.0% race/elem/size/class)374.3
crit none374.3
− 0 hard DEF374.3
− 7 soft DEF367.3
× (1 − 0.0% taken%)367.3
+ MasteryATK (0)367.3
floor + min(1)734
Inputs
From attacker / defender ResolvedStats
StatusATK224
WeaponATK167
EquipATK0
MasteryATK0
Size mult1.00×
Element mult1.00×
Race%0.0%
Element%0.0%
Size%0.0%
Class%0.0%
Taken%0.0%

Hits (2): hit 367 · hit 367