Quantcast

new priest script from Nicho

Sidoine De Wispelaere [10-15-10 - 18:48]
new priest script from Nicho
better starsurge

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@271 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
Ovale.lua
defaut/Pretre.lua
diff --git a/Ovale.lua b/Ovale.lua
index d81bc22..a9ee774 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -1101,10 +1101,18 @@ function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast, nocd)
 				end
 			end
 			if newSpellInfo.starsurge then
-				if self.state.eclipse < 0 then
+				local buffAura = self:GetAura("player", "HELPFUL", 48517) --Solar
+				if buffAura.stacks>0 then
 					self.state.eclipse = self.state.eclipse - newSpellInfo.starsurge
 				else
-					self.state.eclipse = self.state.eclipse + newSpellInfo.starsurge
+					buffAura = self:GetAura("player", "HELPFUL", 48518) --Lunar
+					if buffAura.stacks>0 then
+						self.state.eclipse = self.state.eclipse + newSpellInfo.starsurge
+					elseif self.state.eclipse < 0 then
+						self.state.eclipse = self.state.eclipse - newSpellInfo.starsurge
+					else
+						self.state.eclipse = self.state.eclipse + newSpellInfo.starsurge
+					end
 				end
 			end
 			if newSpellInfo.holy then
diff --git a/defaut/Pretre.lua b/defaut/Pretre.lua
index 56b5d78..0782e7b 100644
--- a/defaut/Pretre.lua
+++ b/defaut/Pretre.lua
@@ -1,72 +1,125 @@
 Ovale.defaut["PRIEST"] =
 [[
+#Buff
+Define(ORB 77487)
+Define(MSEFFECT 87178)
+Define(EVANGELISM 87118)
+Define(DA 87153)
+Define(MM 81292)
+
 #Spells
-Define(DEVOURINGPLAGUE 2944) # Devouring Plague
-	SpellInfo(DEVOURINGPLAGUE duration=24 durationhaste=spell)
-	SpellAddTargetDebuff(DEVOURINGPLAGUE DEVOURINGPLAGUE=24)
+Define(DP 2944) # Devouring Plague
+	SpellInfo(DP duration=24 durationhaste=spell)
+	SpellAddTargetDebuff(DP DP=24)
+
 Define(DISPERSION 47585)
 	SpellInfo(DISPERSION cd=120)
+	SpellInfo(DISPERSION addcd=-45 glyph=63229)
+
 Define(INNERFIRE 48168) # Inner Fire
 	SpellAddBuff(INNERFIRE INNERFIRE=1800)
-Define(MINDBLAST 8092) # Mind Blast
-	SpellInfo(MINDBLAST cd=5.5)
-	SpellAddBuff(MINDBLAST SHADOWORB=0)
-Define(MINDLFAY 15407) # Mind Flay
-	SpellInfo(MINDLFAY canStopChannelling=3)
-Define(SHADOWFIEND 34433)
-	SpellInfo(SHADOWFIEND cd=300)
+
+Define(MB 8092) # Mind Blast
+	SpellInfo(MB cd=5.5)
+	SpellAddBuff(MB ORB=0)
+
+Define(MF 15407) # Mind Flay
+
+Define(FIEND 34433)
+	SpellInfo(FIEND cd=300)
+
 Define(SHADOWFORM 15473) # Shadowform
-Define(SHADOWWORDPAIN 589) # Shadow Word: Pain
-	SpellInfo(SHADOWWORDPAIN duration=18)
-	SpellAddTargetDebuff(SHADOWWORDPAIN SHADOWWORDPAIN=18)
-Define(VAMPIRICEMBRACE 15286) # Vampiric Embrace
-Define(VAMPIRICTOUCH 34914) # Vampiric Touch
-	SpellInfo(VAMPIRICTOUCH duration=15 durationhaste=spell)
-	SpellAddTargetDebuff(VAMPIRICTOUCH VAMPIRICTOUCH=15)

-#Buff
-Define(SHADOWORB 77487)
+Define(SWP 589) # Shadow Word: Pain
+	SpellInfo(SWP duration=18)
+	SpellAddTargetDebuff(SWP SWP=18)
+
+Define(VE 15286) # Vampiric Embrace
+
+Define(VT 34914) # Vampiric Touch
+	SpellInfo(VT duration=15 durationhaste=spell)
+	SpellAddTargetDebuff(VT VT=15)
+
+Define(MS 73510) # Mind Spike
+	# TODO : add talent condition for MM
+	SpellAddBuff(MS MSEFFECT=12 MM=6)

-AddCheckBox(multidot L(multidot))
+Define(SWD 32379) # Shadow Word : Death
+
+Define(ARCHANGEL 87151) #Archangel
+	SpellInfo(ARCHANGEL cd=90)
+	SpellAddBuff(ARCHANGEL DA=18)

-ScoreSpells(MINDBLAST SHADOWWORDPAIN VAMPIRICTOUCH DEVOURINGPLAGUE MINDLFAY)
+### end defines ###
+
+ScoreSpells(MB SWP VT DP MF SWD MS)

 # Add main monitor
 AddIcon help=main mastery=3
 {
+	#Check shadowform is up
+	unless BuffPresent(SHADOWFORM) Spell(SHADOWFORM)
+
 	unless InCombat()
 	{
-		#Check shadowform is up
-		unless BuffPresent(SHADOWFORM)
-			Spell(SHADOWFORM)
-
-		# Refresh inner fire
-		if BuffExpires(INNERFIRE 400)
-			Spell(INNERFIRE)
-
-		if BuffExpires(VAMPIRICEMBRACE 400)
-			Spell(VAMPIRICEMBRACE)
+		# Refresh inner fire  and vampiric embrace 10 minutes before it drops when out of combat
+		if BuffExpires(INNERFIRE 600) Spell(INNERFIRE)
+		if BuffExpires(VE 600) Spell(VE)
+	}
+
+	# Refresh inner fire and vampiric embrace if they drop during the fight
+	if BuffExpires(INNERFIRE 0) Spell(INNERFIRE)
+
+	if BuffExpires(VE 0) Spell(VE)
+
+	#if your rotation isn't set up and the target has few seconds to live, use MS instead of normal rotation
+	#TODO : adapt the target life
+	if TargetDebuffExpires(SWP 0 mine=1) and TargetDeadIn(less 10)
+	{
+		if BuffPresent(MS stacks=3) or BuffPresent(MM stacks=2) Spell(MB)
+		Spell(MS)
 	}

-	if TargetDebuffExpires(SHADOWWORDPAIN 2 mine=1) and TargetDeadIn(more 6) Spell(SHADOWWORDPAIN)
-	if TargetDebuffExpires(VAMPIRICTOUCH 3 mine=1 haste=spell) and TargetDeadIn(more 8) Spell(VAMPIRICTOUCH)
-	#if BuffPresent(SHADOWORB stacks=3) May need to uncomment this with high mastery rating
-	Spell(MINDBLAST)
-
-	unless CheckBoxOn(multidot) and OtherDebuffPresent(DEVOURINGPLAGUE)
+	if BuffPresent(DA) #specific DD-based rotation when under Dark Archangel
 	{
-		if TargetDebuffExpires(DEVOURINGPLAGUE 2 mine=1) and TargetDeadIn(more 8)
-			Spell(DEVOURINGPLAGUE)
+		#Use SWD if we have enough life left
+		if LifePercent(more 20) Spell(SWD)
+
+		#Use MB on CD
+		Spell(MB)
+
+		#Fill with MF
+		Spell(MF priority=2)
+
 	}

-	if CheckBoxOn(multidot) and OtherDebuffExpires(SHADOWWORDPAIN)
-		Texture(INV_Misc_Coin_01)
-
-	Spell(MINDLFAY priority=2)
+	#Set up / refresh the dots
+	if TargetDebuffExpires(SWP 0 mine=1) and TargetDeadIn(more 6) Spell(SWP)
+	if TargetDebuffExpires(SWP 2 mine=1) and TargetDeadIn(more 6) Spell(MF)
+	if TargetDebuffExpires(VT 3 mine=1 haste=spell) and TargetDeadIn(more 8) Spell(VT)
+
+	# refresh DP only if it is not ticking on another mob
+	unless OtherDebuffPresent(DP)
+	{
+		if TargetDebuffExpires(DP 2 mine=1) and TargetDeadIn(more 8) Spell(DP)
+	}
+
+	# Launch the fiend
+	Spell(FIEND)
+
+	#Use SWD if we have enough life left and it is more useful than MB
+	if LifePercent(more 20) Spell(SWD)
+
+	#Use MB on CD
+	Spell(MB)
+
+	#Fill with MF
+	Spell(MF priority=2)
 }

 AddIcon help=cd
 {
+	if BuffPresent(EVANGELISM stacks=5) Spell(ARCHANGEL)
 	Item(Trinket0Slot usable=1)
 	Item(Trinket1Slot usable=1)
 }
@@ -74,16 +127,7 @@ AddIcon help=cd
 # Add mana monitor
 AddIcon help=mana mastery=3
 {
-	#Regain mana if needed and if shadowfiend is not already out
-	if Mana(less 4000) and PetPresent(no)
-	{
-		Spell(SHADOWFIEND usable=1)
-		unless TargetDebuffExpires(VAMPIRICTOUCH 6 mine=1 haste=spell) Spell(DISPERSION usable=1)
-	}
+	if ManaPercent(less 5) Spell(DISPERSION)
 }

-# Add icons to monitor debuffs
-AddIcon size=small nocd=1 {if TargetDebuffExpires(VAMPIRICTOUCH 1.4 mine=1 haste=spell) Spell(VAMPIRICTOUCH) } # Vampiric Touch
-AddIcon size=small nocd=1 {if TargetDebuffExpires(SHADOWWORDPAIN 1 mine=1) Spell(SHADOWWORDPAIN) } # Shadow Word: Pain
-AddIcon size=small nocd=1 {if TargetDebuffExpires(DEVOURINGPLAGUE 1 mine=1) Spell(DEVOURINGPLAGUE) }
 ]]