← All scenarios
STATUS-009resolveStatsOnly

Stat-debuff Effect — Decrease AGI on target reduces FLEE in resolveStats

Tests that debuff Effects with negative-value Modifiers reduce resolved stats correctly. Decrease AGI: -AGI flat → lower resolved AGI → lower FLEE. Confirms that flat modifiers with negative values work and don't accidentally clamp to zero.

debuffnegativeFlatModifierfleeReductionstatResolution
Action
resolveStatsOnly
Stat resolution only — no damage computation

Actors

Target with Decrease AGI debuff
player · thief · Lv70
attacker
Primary stats
str
30
agi
80
vit
30
int
1
dex
50
luk
20
Active effects
  • decrease_agi(1 modifier)
Expected output
From the scenario fixture. Numerical values marked as null are placeholders pending rAthena verification.

AGI resolves to 60 (base 80 - 20 debuff). Downstream FLEE should reflect the reduced AGI. The library MUST NOT clamp resolved primary stats to a minimum of base — a debuff that takes a stat to 0 or 1 is a valid outcome and some game mechanics rely on it.

Show full expected JSON
{
  "resolvedPrimaries": {
    "str": 30,
    "agi": 60,
    "vit": 30,
    "int": 1,
    "dex": 50,
    "luk": 20
  },
  "_assertion": "If your library clamps resolved stats to >= base, decrease-agi-style debuffs silently fail. This scenario catches that."
}

Computed: ResolvedStats

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

Resolved primaries
After stat.* modifiers (D-005)
StatBaseResolvedΔ
STR30300
AGI8060-20
VIT30300
INT110
DEX50500
LUK20200
Combat secondaries
D-007
HIT126
FLEE134
Perfect Dodge2
CRIT7%
Crit damage2.00×
ASPDbase stubbed at 0163.00
MaxHP / MaxSPjob tables pending0 / 0
Physical ATK components
D-003
StatusATK90
WeaponATKPhase 3+0
EquipATK0
MasteryATK0
ATK%0.0%
Magical MATK components
D-007
StatusMATK35
WeaponMATKPhase 3+0
EquipMATK0
MATK%0.0%
Defenses
D-004
Hard DEF0
Soft DEF64
Hard MDEF0
Soft MDEF28
Conditional buckets
Pre-summed defender-keyed bonuses + deferred modifiers

No defender-keyed bonuses active.

Pending conditional modifiers: 0