← All scenarios
MAG-010skilldraft

Frost Diver freeze status — applies Frozen, target becomes Water-element

Tests the freeze-status interaction. Frost Diver applies Frozen to the target on success. While Frozen, the target's DEFENSIVE element becomes Water lv1, regardless of its armor — this is a major game-mechanic interaction. Verifies: (1) Frost Diver returns a trigger candidate, (2) once Frozen is active (modeled as an Effect on the defender), a subsequent Wind attack treats the defender as Water lv1.

magicalDamagestatusApplicationTriggerfrozenStatuselementOverrideFromStatuswind_vs_water
Action
skill
MG_FROSTDIVER Lv10 in expected mode
skillId
MG_FROSTDIVER
skillLevel
10
mode
expected
context.mapType
pve

Actors

Wizard
player · wizard · Lv70
attacker
Primary stats
str
1
agi
20
vit
25
int
80
dex
60
luk
10
Equipment
  • mainhand: staff_of_wing · staff · +7 · ATK 60 · MATK 110
Hode (Earth-element Brute)
monster · Lv55
defender
bruteearth 2mediumnormal
HP 4500 / 4500
Hard DEF 15
Hard MDEF 10
Expected output
From the scenario fixture. Numerical values marked as null are placeholders pending rAthena verification.
hittotalDamage: pending

Step 1 expectations: Frost Diver is Water-element, multiplier vs Earth lv2 is ~1.75x. Triggered Effects must include 'frozen' as a candidate with the appropriate chance (~55% at Lv10 plus INT modifier — verify rAthena exact formula). Step 2 is a SEPARATE scenario the simulator should chain: re-run Jupitel Thunder against the same defender but with 'frozen' in activeEffects. The element pipeline must read the Frozen status as a defender-element-override (Water lv1) and ignore the defender's stored element. This is the most common 'why is my damage wrong' bug in RO simulators.

Show full expected JSON
{
  "triggeredEffects": [
    {
      "effectId": "frozen",
      "appliedTo": "target",
      "chance": 0.55,
      "note": "Frozen status is special: it overrides defender's defensive element. Implementation note: model Frozen as an Effect carrying an 'elementOverride' field, NOT as a Modifier — the override is read at the element-table-lookup step, before modifiers apply."
    }
  ]
}

Computed: MagicalDamageResult

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

Outcome
hit
1 hit · 1,395 damage total · 1,395 per hit
1,395(1×1,395)
Pipeline breakdown
D-002 magical pipeline
baseMATK128
× (1 + 0.0% MATK%)128
× 11.00 skill1,408
× 1.00 element1,408
× (1 + 0.0% race/elem/size/class)1,408
− hard MDEF1,408
− soft MDEF1,395
× (1 − 0.0% taken%)1,395
floor + min(1) per hit1,395
× 1 hit1,395
Inputs
From attacker / defender ResolvedStats
StatusMATK128
WeaponMATK0
EquipMATK0
Skill mult11.00×
Element mult1.00×
Race%0.0%
Element%0.0%
Size%0.0%
Class%0.0%
Taken%0.0%

Each magical hit is identical in expected mode (no per-hit variance).

Variant matrix · 2 cells

Each cell re-applies the variant's overrides to the base scenario and re-runs the same pipeline that produced the single result above.

Variant sweep
Highest in row is highlighted emerald; lowest rose. Hover any cell to see the full variant label.
Step 1 — cast Frost Diver, expect freeze trigger candidateStep 2 — cast Jupitel Thunder on now-Frozen target, expect Wind-vs-Water multiplier
1,3951,395