← All scenarios
SC-010skill

AoE per-target evaluation: Magnum Break with 3 enemies

Per D-015, the library does per-target math for AoE — callers pass an array of defenders. Tests that each defender's damage is computed independently with its own element/race/size against the same attacker. Also tests Magnum Break's self-buff (fire-conversion endow on next attack) as a triggered Effect candidate.

multipleDefendersmagnumBreakelementConversiontriggeredEffect
Action
skill
SM_MAGNUM Lv10 in expected mode
skillId
SM_MAGNUM
skillLevel
10
mode
expected
context.mapType
pve

Actors

Crusader
actor · crusader · Lv60/45
attacker
Primary stats
str
70
agi
30
vit
60
int
30
dex
30
luk
10
Equipment
  • mainhand: longsword · sword_1h · +6 · ATK 120
  • offhand: guard · +4
Roda Frog
actor
defender 1
fishwater 1smallnormal
HP 250 / 250
Hard DEF 8
Hard MDEF 5
Pecopeco
actor
defender 2
brutefire 1largenormal
HP 1109 / 1109
Hard DEF 18
Hard MDEF 8
Hode
actor
defender 3
bruteearth 2mediumnormal
HP 950 / 950
Hard DEF 15
Hard MDEF 10
Expected output
From the scenario fixture. Numerical values marked as null are placeholders pending rAthena verification.

The key invariant: same attacker state, three results, deterministic order by element interaction.

Show full expected JSON
{
  "perDefenderResults": [
    {
      "defender": "Roda Frog",
      "expectedRelativeOrder": "highest",
      "note": "Fire vs Water lv1 = 1.50x, small target = full or extra damage from sword"
    },
    {
      "defender": "Pecopeco",
      "expectedRelativeOrder": "lowest",
      "note": "Fire vs Fire = 0.25x or 0, basically no damage"
    },
    {
      "defender": "Hode",
      "expectedRelativeOrder": "middle",
      "note": "Fire vs Earth lv2 = 1.25x"
    }
  ],
  "triggeredEffects": [
    {
      "effectId": "fire_endow_temporary",
      "appliedTo": "self",
      "durationTicks": 10,
      "note": "Magnum Break leaves a 10-second fire-endow on the caster. Library returns this as a trigger candidate; caller applies it."
    }
  ]
}

Computed: AoeDamageResult · 3 defenders

Server-evaluated by calculateAoeDamage() — each row runs the physical pipeline once.

Total across defenders
physical
Highest damage emerald, lowest rose. Each row computed independently — its own element, size, race, DEF.
1,857
DefenderOutcomeElementMultHitsDamage
Roda Froghitfire water lv10.50×1379
Pecopecohitfire fire lv10.25×1152
Hodehitfire earth lv21.75×11,326