BigWigs Boss Mods (BW) - DBM alternative

BigWigs Boss Mods (BW) - DBM alternative

142M Downloads

[classic] RP timer missing for Ragnaros

caspervk opened this issue · 7 comments

commented

What steps will reproduce the problem?

  1. Talk to Majordomo.
  2. 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)

Transcriptor.txt

commented

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?

commented

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

https://github.com/BigWigsMods/BigWigs_WrathOfTheLichKing/blob/master/Naxxramas/Kelthuzad.lua#L59-L70

commented

If there are no other unique mobs in the room, you can use the zone text if he has his own area

https://github.com/BigWigsMods/BigWigs_WrathOfTheLichKing/blob/master/Naxxramas/Kelthuzad.lua#L59-L70

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.

commented

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

commented

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
commented

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)

commented

12018 is Majordomo's id, and you'd probably only need return not UnitCanAttack(unit, "player")

Alright, nice. This worked, module gets enabled when you mouseover on Domo. I'll submit a PR