← All scenarios
CARD-005skilldraft

Nested condition — 'NOT (Fire OR Holy element)' means Earth/Water/Wind/etc only

Tests recursive condition combinators. The card applies a bonus to all defenders EXCEPT those that are Fire or Holy. Validates: (a) z.lazy() recursion works, (b) NOT inverts correctly, (c) OR inside NOT evaluates as expected.

conditionalModifierrecursiveConditionnotOperatororOperator
Action
skill
MG_LIGHTNINGBOLT Lv7 in expected mode
skillId
MG_LIGHTNINGBOLT
skillLevel
7
mode
expected
context.mapType
pve

Actors

Wizard with elemental-targeted card
player · wizard · Lv75
attacker
Primary stats
str
1
agi
20
vit
30
int
90
dex
60
luk
10
Equipment
  • mainhand: staff_with_bias_card · staff · +7 · ATK 60 · MATK 130 · 1 card
Element test dummy
monster · Lv70
defender
formlessfire 1mediumnormal
HP 5000 / 5000
Hard DEF 20
Hard MDEF 20
Expected output
From the scenario fixture. Numerical values marked as null are placeholders pending rAthena verification.
Show full expected JSON
{
  "propertyAssertions": [
    "damage(fire) ≈ damage(holy) — both excluded by the condition",
    "damage(water) > damage(fire) — bonus applies for water",
    "damage(neutral) > damage(fire) — bonus applies for neutral",
    "damage(water) ≈ damage(neutral) — both get the same +25% bonus (modulo element table)"
  ]
}

Computed: MagicalDamageResult

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

Outcome
hit
7 hits · 889 damage total · 127 per hit
889(7×127)
Pipeline breakdown
D-002 magical pipeline
baseMATK144
× (1 + 0.0% MATK%)144
× 1.00 skill144
× 1.00 element144
× (1 + 0.0% race/elem/size/class)144
− hard MDEF144
− soft MDEF127
× (1 − 0.0% taken%)127
floor + min(1) per hit127
× 7 hits889
Inputs
From attacker / defender ResolvedStats
StatusMATK144
WeaponMATK0
EquipMATK0
Skill mult1.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 · 4 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.

Sweep over defenderElement
Highest in row is highlighted emerald; lowest rose. Hover any cell to see the full variant label.
fireholywaterneutral
8896371,393889
Property assertions
Pattern-matched checks from the scenario's expected. ⊙ marks assertions the parser doesn't recognize (the raw string is shown so devs can verify by eye).
  • damage(fire) ≈ damage(holy) — both excluded by the condition
    889 vs 637 (Δ 252)
  • damage(water) > damage(fire) — bonus applies for water
  • damage(neutral) > damage(fire) — bonus applies for neutral
  • damage(water) ≈ damage(neutral) — both get the same +25% bonus (modulo element table)
    1,393 vs 889 (Δ 504)