[classic] RP timer missing for Ragnaros
caspervk opened this issue · 7 comments
What steps will reproduce the problem?
- Talk to Majordomo.
- Wait for Ragnaros to engage.
What version of BigWigs are you using? (Stating 'latest' is not useful)
12-0240846
Any additional information? (example: WoW language if not English) (Attach screenshots here if available, do not link externally)
I wanted to tackle this to get into BW and maybe help with Classic bosses. As per the Transcriptor logs, the RP starts when two events are fired: SPELL_CAST_START
and CHAT_MSG_MONSTER_YELL
, both by Majordomo. Therefore, it should be pretty easy to trigger a timer whenever one of these two fire. Combat starts about 72 seconds later, and the encounter at precisely 80 seconds.
Now, in order to create a timer I'd lean toward the spell, since it doesn't rely on string matching. You can check it out on WoWHead. Now, my question is regarding triggering a timer whenever BW detects the spell: can a timer be started before mod:Enable()
has been called?
EDIT: it seems the module is only enabled when Ragnaros come up from the lava, meaning I cannot get any spells or messages before that. Is there a global, encounter-independent way to trigger a bar before a module has been enabled?
If there are no other unique mobs in the room, you can use the zone text if he has his own area to enable the mod early
If there are no other unique mobs in the room, you can use the zone text if he has his own area
Ahá! This should work, I think. The only other mob in the room is Majordomo, but his ID doesn't change in Classic like it does on Retail, so sub zone text would be the only thing left.
I missed the bit about talking to Majordomo, if he's friendly there you could add his mob id to :RegisterEnableMob
and add a :VerifyEnable
(basically the inverse of the one in his module with a check to always be true if the unit is rag
I missed the bit about talking to Majordomo, if he's friendly there you could add his mob id to
:RegisterEnableMob
and add a:VerifyEnable
(basically the inverse of the one in his module with a check to always be true if the unit is rag
Something like this?
function mod:VerifyEnable(unit, mobId)
if mobId == 11502 then -- rag's id
return true
elseif mobId == 12018 or mobId == 11663 or mobId == 11664 then -- all id's in majordomo's module
return (not (UnitIsEnemy(unit, "player") or UnitCanAttack(unit, "player"))) and true or false
else
return false
end
end
12018 is Majordomo's id, and you'd probably only need return not UnitCanAttack(unit, "player")
(and the return false at the end is already implied)