FeralFlow v1.2.0
What's new
Tanking Beta Release
| Category | Change | Where |
|---|---|---|
| New feature | Bear-form priority ladder — Faerie Fire → snap-threat gate (Mangle-Bear / Maul) → AoE fork with Swipe / Demo Roar / capped Lacerate → single-target Mangle-Bear / Lacerate / Maul filler | Engine.lua DecideBear |
| New feature | Snap-threat state — per-GUID map of which mobs have been Mangle-Bear'd or Mauled; garbage-collected on UNIT_DIED, nameplate-removed, and end-of-combat sweep | Threat.lua (new module) |
| New feature | Nameplate stamp — red exclamation on hostile Blizzard nameplates while snap-threat is not yet established | Nameplates.lua (new module) |
| New feature | Maul uptime tracker — counts SWING_DAMAGE vs SPELL_DAMAGE(Maul) per fight (PLAYER_REGEN cycle), keeps a 10-fight rolling history | Stats.lua (new module) |
| New feature | Optional Maul-% footer under the main icon (opt-in via db.showMaulUptime) |
Display.lua SetFooterText |
| New data | Ability metadata for Mangle (Bear), Lacerate, Maul, Swipe, Demoralizing Roar — spellIDs, icons, rage costs | Constants.lua C.ABILITIES |
| New data | Timing constants — MANGLE_BEAR_CD, LACERATE_DURATION, LACERATE_MAX_STACKS, LACERATE_AOE_CAP, DEMO_ROAR_DURATION, DEMO_ROAR_REFRESH_WINDOW, MAUL_REGISTER_WINDOW, POWER_RAGE, T4_RAGE_AMOUNT |
Constants.lua |
| New helper | DebuffStacksAndRemaining — reads stack count + remaining time (drives Lacerate); backed by additive Compat.AuraByIndex change that returns count as a third value |
Engine.lua, Compat.lua |
| New commands | /ff maul, /ff bear, /ff stamp, /ff mauluptime, /ff t4rage, /ff debug |
Core.lua slash ladder |
| New events | NAME_PLATE_UNIT_ADDED/REMOVED, PLAYER_REGEN_DISABLED/ENABLED, UPDATE_SHAPESHIFT_FORM |
Core.lua |
| New CLEU handlers | SWING_DAMAGE → Stats · SPELL_DAMAGE → Stats + Threat · UNIT_DIED → Threat · SPELL_ENERGIZE (rage) → T4 bear alert |
Core.lua |
| Refactor | Engine.Decide / Advance are now dispatchers; the 1.2.0 cat logic became DecideCat / AdvanceCat verbatim; bear form dispatches to DecideBear / AdvanceBear (rage deliberately not modeled in the sim) |
Engine.lua |
| Refactor | Engine.ReadState populates bear fields — inBearForm, rage, mangleBearCdRemaining, lacerateStacks/Remaining, demoRoarRemaining, targetGUID, mobCount, currentTargetSnapThreat, allMobsSnapThreat, anyPlateMissingSnapThreat |
Engine.lua |
| Refactor | Display gate admits bear form: catOK or (inBearForm and bearEnabled ~= false) |
Core.lua:122 |
| Version | Bumped to 1.3.0; TOC Notes updated to mention Cat DPS and Bear tanking | FeralFlow.toc |
| Fix | Bear-form detection defensive: UnitPowerType == 1 OR GetShapeshiftForm() == 1. Applied in both Engine.ReadState and Nameplates.ShouldShow. |
Engine.lua, Nameplates.lua |
| Fix | bearEnabled and showNameplateSnapThreat gates permissive — treat nil/missing as enabled; only explicit false disables. Fixes 1.2.0 saved-var upgrades. |
Core.lua, Nameplates.lua |
| Fix (deployment) | Copied 1.3.0 source files to AddOns/FeralFlow/ root, overwriting the stale 1.1.0 files WoW was actually loading |
filesystem |
| Known issue | /ff t4rage is dead code. TBC's T4 (Malorne's Harness) 2-set restores energy — cat only. No T4 druid set has a rage proc for bears. Awaiting decision to remove or repurpose. |
Constants.lua T4_RAGE_AMOUNT, Core.lua |
| Known issue | Maul-uptime denominator assumption unverified — assumes a Maul-empowered swing fires both SWING_DAMAGE and SPELL_DAMAGE(Maul). One-line fix once confirmed on a target dummy. | Stats.lua top comment |
| Known issue | MANGLE_BEAR_CD = 6.0 is the rank-1 baseline; Improved Mangle shortens it. The sim uses live GetSpellCooldown first, so this only matters as a fallback. |
Constants.lua |
| Known issue | Deployed to _anniversary_ (Vanilla) — Mangle (Bear) and Lacerate don't exist in Vanilla, so the rotation renders but the spells can't be cast. Needs a real TBC client for full functionality. |
filesystem |
This mod has no additional files

