Destruction - Original

1 post Page 1 of 1
Kaminaris
Site Admin
Posts: 41
Joined: 25 Jun 2017, 03:45


Warlock Destruction Original Rotation

Spell List:
  1. local _Havoc = 80240;
  2. local _Immolate = 348;
  3. local _LifeTap = 1454;
  4. local _EmpoweredLifeTap = 235157;
  5. local _SummonInfernal = 1122;
  6. local _LordofFlames = 224103;
  7. local _SoulHarvest = 196098;
  8. local _ChaosBolt = 116858;
  9. local _DimensionalRift = 196586;
  10. local _SummonDoomguard = 18540;
  11. local _GrimoireImp = 111859;
  12. local _ChannelDemonfire = 196447;
  13. local _RainofFire = 5740;
  14. local _Conflagrate = 17962;
  15. local _Incinerate = 29722;
  16. local _RoaringBlaze = 205184;
  17. local _Shadowburn = 17877;
  18. local _Eradication = 196412;
  19. local _DimensionRipper = 219415;
  20. local _FireandBrimstone = 196408;
  21. local _SummonImp = 688;
  22. local _WreakHavoc = 196410;
  23. local _Bloodlust = 2825;
  24. local _UnendingResolve = 104773;
  25. local _CommandDemon = 119898;
  26. local _CauterizeMaster = 119899;
  27. local _Cataclysm = 152108;
  28. local _SoulConduit = 215941;
  29. local _DemonicGateway = 111771;
  30. local _Backdraft = 196406;
Rotation:
  1. function MaxDps.Warlock.Destruction(_, timeShift, currentSpell, gcd, talents)
  2.     local ss = UnitPower('player', SPELL_POWER_SOUL_SHARDS);
  3.  
  4.     local immo = MaxDps:TargetAura(_Immolate, timeShift + 5);
  5.     local health = UnitHealth('target');
  6.  
  7.     local era = MaxDps:TargetAura(_Eradication, timeShift + 2);
  8.     if wasEra and not era then
  9.         -- eradication went off
  10.         willBeEra = false;
  11.     end
  12.     wasEra = era;
  13.  
  14.     local mana = MaxDps:Mana(0, timeShift);
  15.  
  16.     local doomguard = MaxDps:SpellAvailable(_SummonDoomguard, timeShift);
  17.  
  18.     local targetPh = MaxDps:TargetPercentHealth();
  19.     local cata = MaxDps:SpellAvailable(_Cataclysm, timeShift);
  20.  
  21.     if not talents[_GrimoireofSupremacy] then
  22.         MaxDps:GlowCooldown(_SummonDoomguard, doomguard);
  23.     end
  24.  
  25.     if MaxDps:SameSpell(currentSpell, _ChaosBolt) then
  26.         willBeEra = true;
  27.         ss = ss - 2;
  28.     end
  29.  
  30.     MaxDps:GlowCooldown(_GrimoireDoomguard, MaxDps:SpellAvailable(_GrimoireDoomguard, timeShift));
  31.     MaxDps:GlowCooldown(_Havoc, MaxDps:SpellAvailable(_Havoc, timeShift));
  32.  
  33.     if talents[_SoulHarvest] then
  34.         MaxDps:GlowCooldown(_SoulHarvest, MaxDps:SpellAvailable(_SoulHarvest, timeShift));
  35.     end
  36.  
  37.     if mana < 0.1 then
  38.         return _LifeTap;
  39.     end
  40.  
  41.     local immo1 = MaxDps:TargetAura(_Immolate, timeShift + 1);
  42.     if not immo1 and not MaxDps:SameSpell(currentSpell, _Immolate) then
  43.         return _Immolate;
  44.     end
  45.  
  46.     if talents[_EmpoweredLifeTap] and not MaxDps:Aura(_EmpoweredLifeTap, timeShift) then
  47.         return _LifeTap;
  48.     end
  49.  
  50.     if ss >= 5 then
  51.         return _ChaosBolt;
  52.     end
  53.  
  54.     if not immo and not MaxDps:SameSpell(currentSpell, _Immolate) then
  55.         return _Immolate;
  56.     end
  57.  
  58.     local drCD, drCharges, drMax = MaxDps:SpellCharges(_DimensionalRift, timeShift);
  59.     if drCharges >= 2 then
  60.         return _DimensionalRift
  61.     end
  62.  
  63.     if ss >= 3 then
  64.         return _ChaosBolt;
  65.     end
  66.  
  67.     if talents[_Shadowburn] then
  68.         local sbCD, sbCharges = MaxDps:SpellCharges(_Shadowburn, timeShift);
  69.         if sbCharges > 1.5 then
  70.             return _Shadowburn;
  71.         end
  72.     else
  73.         local conCD, conCharges, conMax = MaxDps:SpellCharges(_Conflagrate, timeShift);
  74.         if conCharges > 1 or (conCharges >= 1 and conCD < 2) then
  75.             return _Conflagrate;
  76.         end
  77.     end
  78.  
  79.     if talents[_Eradication] and not era and not willBeEra and ss > 1 and not MaxDps:SameSpell(currentSpell, _ChaosBolt) then
  80.         return _ChaosBolt;
  81.     end
  82.  
  83.     return _Incinerate;
  84. end
1 post Page 1 of 1
drogie łóżka stolik kawowy stół dębowy rozkładany