Shadow - Original

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


Priest Shadow Original Rotation

Spell List
  1. -- Forms
  2. local _Voidform = 194249;
  3. local _Shadowform = 232698;
  4.  
  5. -- Spells
  6. local _LegacyoftheVoid = 193225;
  7. local _VoidEruption = 228260;
  8. local _VoidBolt = 205448;
  9. local _ShadowWordPain = 589;
  10. local _VampiricTouch = 34914;
  11. local _MindBlast = 8092;
  12. local _MindFlay = 15407;
  13. local _VoidTorrent = 205065;
  14. local _Shadowfiend = 34433;
  15. local _ShadowWordDeath = 32379;
  16. local _MindSpike = 73510;
  17. local _MindSear = 48045;
  18. local _Sanlayn = 199855;
  19. local _AuspiciousSpirits = 155271;
  20. local _ShadowyInsight = 162452;
  21. local _Mindbender = 200174;
  22. local _Dispersion = 47585;
  23. local _ShadowCrash = 205385;
  24. local _ReaperofSouls = 199853;
  25. local _ShadowWordVoid = 205351;
  26. local _ShadowyApparitions = 78203;
  27. local _FortressoftheMind = 193195;
  28. local _PowerInfusion = 10060;
  29. local _SurrendertoMadness = 193223;
  30. local _LingeringInsanity = 197937;
  31. local _TwistofFate = 109142;
  32. local _VoidRay = 205371;
  33. local _Heroism = 32182;
  34. local _Bloodlust = 2825;
  35. local _TimeWarp = 80353;
  36. local _Berserking = 26297;
  37. local _FromtheShadows = 193642;
  38.  
  39. -- Talents
  40. local _LegacyOfTheVoid = 193225;
Rotation
  1. function MaxDps.Priest.Shadow(_, timeShift, currentSpell, gcd, talents)
  2.     local insa = UnitPower('player', SPELL_POWER_INSANITY);
  3.  
  4.     -- Fix a bug when void bolt tooltip does not refresh
  5.     local voidBolt = _VoidBolt;
  6.     if MaxDps:FindSpell(_VoidEruption) then
  7.         voidBolt = _VoidEruption;
  8.     end
  9.  
  10.     local shadowFiend = _Shadowfiend;
  11.     if talents[_Mindbender] then
  12.         shadowFiend = _Mindbender;
  13.     end
  14.     local shadowF = MaxDps:SpellAvailable(shadowFiend, timeShift);
  15.  
  16.     local swd, swdCharges, swdMax = MaxDps:SpellCharges(_ShadowWordDeath, timeShift + 0.5);
  17.  
  18.     local swp, swpCd = MaxDps:TargetAura(_ShadowWordPain, timeShift);
  19.     local vt, vtCd = MaxDps:TargetAura(_VampiricTouch, timeShift);
  20.  
  21.     local vf, vCharges = MaxDps:PersistentAura(_Voidform);
  22.     if not MaxDps:PersistentAura(_Shadowform) and not vf then
  23.         return _Shadowform;
  24.     end
  25.  
  26.     if talents[_PowerInfusion] then
  27.         MaxDps:GlowCooldown(_PowerInfusion, MaxDps:SpellAvailable(_PowerInfusion, timeShift));
  28.     end
  29.  
  30.     -- void form rotation
  31.     if vf or MaxDps:SameSpell(currentSpell, _VoidEruption) then
  32.         -- If dot is not present on target AT ALL
  33.         if not vt and not MaxDps:SameSpell(currentSpell, _VampiricTouch) then
  34.             return _VampiricTouch;
  35.         end
  36.  
  37.         if not swp then
  38.             return _ShadowWordPain;
  39.         end
  40.  
  41.         if MaxDps:SpellAvailable(_VoidTorrent, timeShift) and not MaxDps:SameSpell(currentSpell, _VoidTorrent) and
  42.             swpCd > 5 and vtCd > 5 then
  43.             return _VoidTorrent;
  44.         end
  45.  
  46.         if MaxDps:SpellAvailable(_VoidBolt, timeShift + 0.3) then
  47.             return voidBolt;
  48.         end
  49.  
  50.         if vCharges < 20 and shadowF then
  51.             return shadowFiend;
  52.         end
  53.  
  54.         local targetPh = MaxDps:TargetPercentHealth();
  55.         local canDeath = targetPh < 0.2 or (talents[_ReaperofSouls] and targetPh < 0.35);
  56.         if swdCharges >= swdMax and canDeath then
  57.             return _ShadowWordDeath;
  58.         end
  59.  
  60.         if MaxDps:SpellAvailable(_MindBlast, timeShift + 0.3) and not MaxDps:SameSpell(currentSpell, _MindBlast) then
  61.             return _MindBlast;
  62.         end
  63.  
  64.         if insa < 20 and swdCharges >= 1 and canDeath then
  65.             return _ShadowWordDeath;
  66.         end
  67.  
  68.         if vCharges > 20 and shadowF then
  69.             return shadowFiend;
  70.         end
  71.     else
  72.         -- normal rotation
  73.         if insa >= 100 or (talents[_LegacyoftheVoid] and insa >= 70) then
  74.             return _VoidEruption;
  75.         end
  76.  
  77.         if vtCd < 6 and not MaxDps:SameSpell(currentSpell, _VampiricTouch) then
  78.             return _VampiricTouch;
  79.         end
  80.  
  81.         if swpCd < 5 then
  82.             return _ShadowWordPain;
  83.         end
  84.  
  85.         if MaxDps:SpellAvailable(_MindBlast, timeShift + 0.5) and not MaxDps:SameSpell(currentSpell, _MindBlast) then
  86.             return _MindBlast;
  87.         end
  88.     end
  89.  
  90.     if talents[_MindSpike] then
  91.         return _MindSpike;
  92.     else
  93.         return _MindFlay;
  94.     end
  95. end
1 post Page 1 of 1
drogie łóżka stolik kawowy stół dębowy rozkładany