HeroRotation

HeroRotation

5M Downloads

[Warlock][Demonology]Demonic Consumption + Implosion

Eluziv3 opened this issue ยท 2 comments

commented

Taking the talent Demonic Consumption causes the rotation to get stuck as it says to Summon Demonic Tyrant and then to cast Implosion straight after. This doesn't work as the Tyrant absorbs all the imps so there's no imps to implode thus the add-on stays on cast Implosion.

commented

looking at Events.lua

    HL:RegisterForCombatEvent(
      function (...)
        local SourceGUID,_,_,_,UnitPetGUID,_,_,_,SpellID = select(4, ...);
        
        -- Check for imp bolt casts
        if SpellID == 104318 then
          for key, petTable in pairs(HL.GuardiansTable.Pets) do
            if SourceGUID == petTable.ID then
              petTable.ImpCasts = petTable.ImpCasts - 1
            end
          end
        end
        
        -- Clear the imp table upon Implosion cast
        if SpellID == 196277 then
          for key, petTable in pairs(HL.GuardiansTable.Pets) do
            if petTable.name == "Wild Imp" then
              HL.GuardiansTable.Pets[key] = nil
            end
          end
          HL.GuardiansTable.ImpCount = 0
        end
        
        -- Update the imp table
        UpdatePetTable()
      end
      , "SPELL_CAST_SUCCESS"
    );

because it is registered to RegisterForCombatEvent table that holds Wild Imps info will be wiped on any Implosion cast even from other Warlocks
that if SpellID == 196277 then should be changed to

if SourceGUID == Player:GUID() and ( SpellID == 196277 or SpellID == 265187 and Spell(267215):IsAvailable() ) then

or move Events.lua in loading order in HeroRotation_Warlock.toc so that Spell.Warlock.Demonology is available and use

local SpellDemonology = Spell.Warlock.Demonology

if SourceGUID == Player:GUID() and ( SpellID == SpellDemonology.Implosion:ID() or SpellID == SpellDemonology.SummonDemonicTyrant:ID() and SpellDemonology.DemonicConsumption:IsAvailable() ) then
commented

Fixed in commit: 738af19