You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Boss tactics: interrupt rows were verified with the wrong rule (PreventionType = silence and flag 0x02 are required), audit all rows; make the SQL test read core data #246
Found 2026-10-20 while fixing the Zul'Farrak rows: the core's interrupt effect (tortoise-wow src/game/Spells/SpellEffects.cpp ~3375-3400, EffectInterruptCast) only stops a cast when PreventionType == SPELL_PREVENTION_TYPE_SILENCE and, for a generic cast, InterruptFlags & SPELL_INTERRUPT_FLAG_DAMAGE (0x02) (channels: ChannelInterruptFlags & CHANNEL_FLAG_INTERRUPT). Phases 1a (Sagiroth/TortoiseBots PR 1093), 1b (PR 1098) and the Zul'Farrak rows were reviewed with castingTimeIndex > 1 and interruptFlags having 0x04 (the 15/31 rule), never PreventionType, so some rows may be uninterruptible. Flags 15/31 include 0x02, flags 13/9/8 do not.
Work: (1) audit worker 'audit' writes ~/TortoiseBots-audit/INTERRUPT-AUDIT.txt (effective rows per boss, WRONG/OK/UNVERIFIABLE, plus how FindBossInterrupt in BossTacticsActions.cpp behaves for an uninterruptible row); (2) correction migration(s) removing WRONG rows on feat/dungeon-self-clear and on the ZF branch data/987-zf-boss-tactics before it merges; (3) update docs/guides/boss-tactics.md and the brief rules (the interrupt rule is: castingTimeIndex > 1 AND preventionType silence AND interruptFlags & 0x02, non-channel); (4) tools/test_boss_tactics_sql.py checks shape and keys only: add a core-data check mode (reads a core checkout path from an env var, skipped when absent) for spell id exists, castingTimeIndex, flags, preventionType, boss entry on the map, delete scope.
Audit done (~/TortoiseBots-audit/INTERRUPT-AUDIT.txt): 29 effective rows on feat/dungeon-self-clear, 27 OK, 2 WRONG (PreventionType 0): Tansha 3143 (map 822) and Shalk's add 36732 (map 820). Removed by Sagiroth/TortoiseBots Sagiroth/TortoiseBots#1117 (Codex approve), docs rule corrected. Zul'Farrak rows (7) all OK. Module behaviour: a row for an uninterruptible spell wastes the kick and pre-empts lower-priority actions while that cast is current and the kick is ready (not a permanent block: the kick cooldown frees it). Still open: the SQL test reads no core data (add the core-data check mode), and spells that qualify under the real rule but have no row (filler bolts 15801, 12739, 15537 are deliberate).
Activity
pjerra commentedon Oct 20, 2026
Audit done (~/TortoiseBots-audit/INTERRUPT-AUDIT.txt): 29 effective rows on feat/dungeon-self-clear, 27 OK, 2 WRONG (PreventionType 0): Tansha 3143 (map 822) and Shalk's add 36732 (map 820). Removed by Sagiroth/TortoiseBots Sagiroth/TortoiseBots#1117 (Codex approve), docs rule corrected. Zul'Farrak rows (7) all OK. Module behaviour: a row for an uninterruptible spell wastes the kick and pre-empts lower-priority actions while that cast is current and the kick is ready (not a permanent block: the kick cooldown frees it). Still open: the SQL test reads no core data (add the core-data check mode), and spells that qualify under the real rule but have no row (filler bolts 15801, 12739, 15537 are deliberate).