- Duplicate action IDs in combos (e.g. Flare, Flare): track step index in
combo state so the sequence advances correctly instead of looping on
the first match.
- Dragoon Drakesbane: after Fang and Claw or Wheeling Thrust, show/use
Drakesbane (36952). Support both ID sets (3552/3553 and 3554/3556).
Normalize Drakesbane in sequence lookup; trigger match when slot shows
Drakesbane.
- Warrior: Inner Release → Primal Rend when Primal Rend Ready (status
2070); Primal Rend → Primal Ruination when Primal Ruination Ready
(status 2700, lv100). Add HasStatus() via IBattleChara.StatusList.
- Reaper: Grim Reaping → Communio when 1 Lemure Shroud in Enshroud
(RPRGauge). Normalize and trigger match for Communio.
- Central pipeline ResolveTransformingAbilities() for RDM, DRG, WAR, RPR.
ClearOverlay/isLastStep and trigger matching updated for all replacement
actions.
Made-with: Cursor
Red Mage melee combo (Riposte 7504 → Zwerchhau 7512 → Redoublement 7516)
should switch to Enchanted variants (7527, 7528, 7529) when both mana
gauges are 20 or higher. The plugin was forcing base actions instead.
Changes:
- Add IJobGauges to read RDM Black/White mana
- ResolveRdmEnchanted(): substitute 7527/7528/7529 when mana ≥ 20
- NormalizeLastComboMoveForSequence(): game/overlay may report Enchanted
IDs; map to base for correct sequence index lookup
- Apply resolution in UseAction, ExecuteSlotById, GetSlotAppearance,
GetIcon, OnFrameworkUpdate
- Match combo trigger when slot shows Enchanted Riposte (7527)
- ClearOverlayIfActionNotInCombo: treat Enchanted IDs as in-combo
- SetOurComboState: Enchanted Redoublement = last step for GCD block
Also: remove hardcoded DalamudLibPath so SDK uses platform defaults
(~/.xlcore/dalamud/Hooks/dev/ on Linux, %AppData% on Windows)
Co-authored-by: Cursor <cursoragent@cursor.com>