Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » Class Mechanics » Warlocks

Reply
 
LinkBack Thread Tools
Old 12/12/11, 12:56 PM   #781
angaroth
Piston Honda
 
Undead Warlock
 
Twisting Nether
You get another Immolation Aura tick at 1804, but we only get one Immo Aura per Meta anyway so there shouldn't be a non-linear dps event around that.

Canada Offline
Reply With Quote
Old 12/12/11, 1:00 PM   #782
 Zakalwe
The Chairmaker
 
Orc Warlock
 
Balnazzar
Corruption gains an extra tick with Demon Soul: Felguard at 1782.

http://wowupgrade.com/ - instant gear comparison for all classes / specs

Norway Offline
Reply With Quote
Old 12/12/11, 2:22 PM   #783
Nyri
Glass Joe
 
Gnome Warlock
 
Aegwynn (EU)
My updated Ovale script (now with the T12H Incinerate Demo Build).
You need LibRangeCheck-2.0 for Shadowflame.

Define(AXETOSS 89766)
Define(FELSTORM 89751)
Define(BANEOFAGONY 980)
	Spellinfo(BANEOFAGONY duration=24)
	SpellAddTargetDebuff(BANEOFAGONY BANEOFAGONY=24)
Define(BANEOFDOOM 603)
	SpellInfo(BANEOFDOOM duration=60)
	SpellAddTargetDebuff(BANEOFDOOM BANEOFDOOM=60)
Define(BANEOFHAVOC 80240)
	SpellAddTargetDebuff(BANEOFHAVOC BANEOFHAVOC=300)
Define(CHAOSBOLT 50796)
	SpellInfo(CHAOSBOLT cd=12)
Define(CONFLAGRATE 17962)
	SpellInfo(CONFLAGRATE cd=10)
Define(CORRUPTION 172)
	SpellAddTargetDebuff(CORRUPTION CORRUPTION=18)
Define(CURSEELEMENTS 1490)
	SpellAddTargetDebuff(CURSEELEMENTS CURSEELEMENTS=300)
Define(CURSETONGUES 1714)
	SpellAddTargetDebuff(CURSETONGUES CURSETONGUES=30)
Define(CURSEWEAKNESS 702)
	SpellAddTargetDebuff(CURSEWEAKNESS CURSEWEAKNESS=120)
Define(DARKINTENT 80398)
	SpellAddBuff(DARKINTENT DARKINTENTBUFF=1800)
Define(DEATHCOIL 6789)
	SpellInfo(DEATHCOIL cd=120)
Define(DEMONARMOR 687)
	SpellAddBuff(DEMONARMOR DEMONARMOR=1000)
Define(DEMONICEMPOWERMENT 47193)
	SpellInfo(DEMONICEMPOWERMENT cd=60)
Define(DEMONSOUL 77801)
	SpellInfo(DEMONSOUL cd=120)
	SpellAddBuff(DEMONSOUL DEMONSOULBUFF=20)
Define(DRAINLIFE 689)
	SpellInfo(DRAINLIFE canStopChannelling=3)
	SpellAddTargetDebuff(DRAINLIFE DRAINLIFE=3)
	SpellAddBuff(DRAINLIFE SOULBURN=0)
Define(DRAINSOUL 1120)
	SpellInfo(DRAINSOUL canStopChannelling=5)
	SpellAddTargetDebuff(DRAINSOUL DRAINSOUL=15)
Define(FELARMOR 28176)
	SpellAddBuff(FELARMOR FELARMOR=1000)
Define(FELFLAME 77799)
	SpellAddTargetDebuff(FELFLAME IMMOLATE=refresh UNSTABLEAFFLICTION=refresh)
Define(HANDOFGULDAN 71521)
	SpellInfo(HANDOFGULDAN cd=12)
	SpellAddTargetDebuff(HANDOFGULDAN IMMOLATE=refresh)
Define(HAUNT 48181)
	SpellInfo(HAUNT cd=8)
	SpellAddBuff(HAUNT HAUNT=12)
Define(IMMOLATE 348)
	SpellInfo(IMMOLATE duration=15)
	SpellAddTargetDebuff(IMMOLATE IMMOLATE=15)
	SpellAddBuff(IMMOLATE MOLTENCORE=-1)
Define(IMMOLATIONAURA 50589)
	SpellInfo(IMMOLATIONAURA cd=30)
	SpellAddBuff(IMMOLATIONAURA IMMOLATIONAURA=15)
Define(INCINERATE 29722)
	SpellAddBuff(INCINERATE MOLTENCORE=-1)
Define(LIFETAP 1454)
	SpellInfo(LIFETAP cd=10) #fake
Define(METAMORPHOSIS 47241)
	SpellInfo(METAMORPHOSIS cd=180)
	SpellAddBuff(METAMORPHOSIS METAMORPHOSIS=30)
Define(SEARINGPAIN 5676)
Define(SEEDOFCORRUPTION 27243)
	SpellAddTargetDebuff(SEEDOFCORRUPTION SEEDOFCORRUPTION=18)
Define(SHADOWBOLT 686)
	SpellAddTargetDebuff(SHADOWBOLT SHADOWEMBRACE=12 SHADOWANDFLAMEDEBUFF=30)
Define(SHADOWBURN 17877)
	SpellInfo(SHADOWBURN cd=15)
Define(SHADOWFLAME 47897)
	SpellInfo(SHADOWFLAME cd=12 range=10)
Define(SOULFIRE 6353)
	SpellAddBuff(SOULFIRE IMPROVEDSOULFIREBUFF=15 SOULBURN=0)
Define(SOULBURN 74434)
	SpellInfo(SOULBURN cd=45)
	SpellAddBuff(SOULBURN SOULBURN=15)
Define(SUMMONINFERNAL 1122)
	SpellInfo(SUMMONINFERNAL cd=600)
Define(SUMMONDOOMGUARD 18540)
	SpellInfo(SUMMONDOOMGUARD cd=600)
Define(SUMMONFELGUARD 30146)
	SpellInfo(SUMMONFELGUARD cd=600) #fake
Define(SUMMONFELHUNTER 691)
	SpellInfo(SUMMONFELHUNTER cd=600) #fake
Define(SUMMONIMP 688)
	SpellInfo(SUMMONIMP cd=600) #fake
Define(SUMMONSUCCUBUS 712)
	SpellInfo(SUMMONSUCCUBUS cd=600) #fake
Define(UNSTABLEAFFLICTION 30108)
	SpellInfo(UNSTABLEAFFLICTION duration=15)
	SpellAddTargetDebuff(UNSTABLEAFFLICTION UNSTABLEAFFLICTION=15)
Define(SOULHARVEST 79268)
	SpellInfo(SOULHARVEST cd=30 duration=9)
Define(BLOODFURY 33702)
	SpellInfo(BLOODFURY cd=120)
	SpellAddBuff(BLOODFURY BLOODFURYBUFF=15)
Define(ESCAPEARTIST 20589)
	SpellInfo(ESCAPEARTIST cd=90)
Define(CREATEHEALTHSTONE 6201)
	SpellInfo(CREATEHEALTHSTONE cd=0)
Define(RITUALOFSOULS 29893)
	SpellInfo(RITUALOFSOULS cd=360)
	
#Buff
Define(DECIMATION 63167)
Define(MOLTENCORE 71165)
Define(EMPOWEREDIMP 47283)
Define(IMPROVEDSOULFIREBUFF 85383)
Define(SHADOWTRANCE 17941)
Define(SHADOWANDFLAMEDEBUFF 17800)
Define(DEMONSOULBUFF 79460) #felhunter
Define(BLOODFURYBUFF 33702)
Define(DARKINTENTBUFF 85768)

Define(FLASKOFTHEDRACONICMINDBUFFSINGLE 79470)
Define(FLASKOFTHEDRACONICMINDBUFFGROUP 92730)
Define(WELLFED 87547)
Define(VOLCANICPOWER 79476)

#Talent	
Define(IMPROVEDSOULFIRE 11197)
Define(SHADOWANDFLAMETALENT 10936)
Define(BANETALENT 10938)
Define(EMBERSTORMTALENT 11181)

#Glyph
Define(GLYPHOFLASHOFPAIN 70947)
Define(GLYPHOFIMP 56248)
Define(GLYPHOFMETAMORPHOSIS 64318)

#Item
Define(HEALTHSTONE 5512)
Define(FLASKOFTHEDRACONICMIND 58086)
Define(FOOD 62671)
Define(VOLCANICPOTION 58091)

Define(MOONWELLCHALICE 70142)
Define(RUNEOFZETH 68998)
Define(SOULCASKET 58183)

AddCheckBox(flask SpellName(FLASKOFTHEDRACONICMINDBUFFSINGLE) default)
AddCheckBox(food SpellName(WELLFED) default)
AddCheckBox(potion SpellName(VOLCANICPOWER) default)

AddListItem(curse elements SpellName(CURSEELEMENTS) default)
AddListItem(curse tongues SpellName(CURSETONGUES))
AddListItem(curse weakness SpellName(CURSEWEAKNESS))
AddListItem(curse none L(None))

AddListItem(bane doom SpellName(BANEOFDOOM) default)
AddListItem(bane agony SpellName(BANEOFAGONY))
AddListItem(bane havoc SpellName(BANEOFHAVOC) mastery=3)

ScoreSpells(CURSEELEMENTS SHADOWBOLT HAUNT UNSTABLEAFFLICTION IMMOLATE CONFLAGRATE CURSEWEAKNESS
	BANEOFAGONY CORRUPTION SOULFIRE DRAINSOUL INCINERATE SHADOWBOLT CHAOSBOLT)

AddIcon help=buff size=small mastery=1
{
#0	flask,type=draconic_mind
	if CheckBoxOn(flask) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFSINGLE 0) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFGROUP 0) Item(FLASKOFTHEDRACONICMIND)
	
#1	food,type=seafood_magnifique_feast
	if CheckBoxOn(food) and InCombat(no) and BuffExpires(WELLFED 0) Item(FOOD)
	
#2	fel_armor
	if BuffExpires(FELARMOR) Spell(FELARMOR)

#3	summon_felhunter
	if PetPresent(no)
	{
		if InCombat(yes) Spell(SOULBURN usable=1)
		Spell(SUMMONFELHUNTER)
	}

#4	dark_intent
	if BuffExpires(DARKINTENTBUFF) Spell(DARKINTENT)
	
#5	soulburn,if=!in_combat #seems to only make sense in simc, but not in real world, instead:
	if InCombat(no) and SoulShards(less 2) Spell(SOULHARVEST)

	if ItemCount(HEALTHSTONE less 1) and InCombat(no) Spell(RITUALOFSOULS)	
	if ItemCount(HEALTHSTONE less 1) and InCombat(yes) Spell(CREATEHEALTHSTONE)
	
#6	snapshot_stats
}
	
AddIcon help=offgcd size=small mastery=1
{
#7	use_item,name=rune_of_zeth
	Item(Trinket0Slot usable=1)
	Item(Trinket1Slot usable=1)
	
#8	blood_fury
	Spell(BLOODFURY)

#9	volcanic_potion,if=buff.bloodlust.react|!in_combat|target.health_pct<=20
	if CheckBoxOn(potion) and TargetClassification(worldboss) and { BuffPresent(heroism) or InCombat(no) or TargetLifePercent(less 20) } Item(VOLCANICPOTION usable=1)

#A	demon_soul
	Spell(DEMONSOUL)
}
	
AddIcon help=main mastery=1
{
#   not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES) and TargetDeadIn(more 8) Spell(CURSETONGUES)
	
#B	corruption,if=(!ticking|remains<tick_time)&miss_react
	if TargetDebuffExpires(CORRUPTION 3 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) Spell(CORRUPTION)

#C	unstable_affliction,if=(!ticking|remains<(cast_time+tick_time))&target.time_to_die>=5&miss_react
	if TargetDebuffExpires(UNSTABLEAFFLICTION 5.5 mine=1 haste=spell) and TargetDeadIn(more 5) Spell(UNSTABLEAFFLICTION)

#D	bane_of_doom,if=target.time_to_die>15&!ticking&miss_react
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) Spell(BANEOFAGONY)
	}

#E	haunt
	Spell(HAUNT)
	
#F	summon_doomguard,if=time>10
	if TimeInCombat(more 10) Spell(SUMMONDOOMGUARD)

#G	drain_soul,interrupt=1,if=target.health_pct<=25
	if TargetLifePercent(less 25) Spell(DRAINSOUL)

#H	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)

#I	life_tap,mana_percentage<=35
	if ManaPercent(less 35) Spell(LIFETAP)
	
#J	soulburn,if=buff.demon_soul_felhunter.down
	unless BuffPresent(DEMONSOULBUFF) Spell(SOULBURN usable=1)

#K	soul_fire,if=buff.soulburn.up
	if BuffPresent(SOULBURN) Spell(SOULFIRE)

#L	shadow_bolt
	Spell(SHADOWBOLT)
	
#O	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

AddIcon mastery=1 #moving
{
#6  snapshot_stats
#	not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES 2) and TargetDeadIn(more 8) Spell(CURSETONGUES)

#B	corruption,if=(!ticking|remains<tick_time)&miss_react
	if TargetDebuffExpires(CORRUPTION 3 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) Spell(CORRUPTION)

#D	bane_of_doom,if=target.time_to_die>15&!ticking&miss_react
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) Spell(BANEOFAGONY)
	}
	
#F	summon_doomguard,if=time>10
	if TimeInCombat(more 10) Spell(SUMMONDOOMGUARD)

#H	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)

#I	life_tap,mana_percentage<=35
	if ManaPercent(less 35) Spell(LIFETAP)
	
#J	soulburn,if=buff.demon_soul_felhunter.down
	unless BuffPresent(DEMONSOULBUFF) Spell(SOULBURN usable=1)
	
#K	soul_fire,if=buff.soulburn.up
	if BuffPresent(SOULBURN) Spell(SOULFIRE)

#L	shadow_bolt
	if BuffPresent(SHADOWTRANCE) Spell(SHADOWBOLT)

#M	life_tap,moving=1, if=mana_pct<80&mana_pct<target.health_pct
	if ManaPercent(less 80) and { manaPercent() < target.lifePercent() } Spell(LIFETAP)
	
#N	fel_flame,moving=1
	Spell(FELFLAME)
	
#O	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

AddIcon help=buff size=small mastery=2
{
#0	flask,type=draconic_mind
	if CheckBoxOn(flask) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFSINGLE 0) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFGROUP 0) Item(FLASKOFTHEDRACONICMIND)
	
#1	food,type=seafood_magnifique_feast
	if CheckBoxOn(food) and InCombat(no) and BuffExpires(WELLFED 0) Item(FOOD)
	
#2	fel_armor
	if BuffExpires(FELARMOR) Spell(FELARMOR)
	
#3  summon_felguard,if=cooldown.demon_soul.remains<5&cooldown.metamorphosis.remains<5&!pet.felguard.active
	if 5s before Spell(DEMONSOUL) and 5s before Spell(METAMORPHOSIS) unless pet.CreatureFamily(Felguard) Spell(SUMMONFELGUARD)
	if PetPresent(no) and InCombat(no) Spell(SUMMONFELGUARD)
	
#4	dark_intent
	if BuffExpires(DARKINTENTBUFF) Spell(DARKINTENT)
	
#5	soulburn,if=!in_combat #seems to only make sense in simc, but not in real world, instead:
	if InCombat(no) and SoulShards(less 2) Spell(SOULHARVEST)

	if ItemCount(HEALTHSTONE less 1) and InCombat(no) Spell(RITUALOFSOULS)	
	if ItemCount(HEALTHSTONE less 1) and InCombat(yes) Spell(CREATEHEALTHSTONE)
}

AddIcon help=offgcd size=small mastery=2
{
#6	snapshot_stats

#7	use_item,name=moonwell_chalice,if=cooldown.metamorphosis.remains=0|cooldown.metamorphosis.remains>cooldown
	if Spell(METAMORPHOSIS usable=1)
	{
		Item(Trinket0Slot usable=1)
		Item(Trinket1Slot usable=1)
	}
	unless 100s before Spell(METAMORPHOSIS usable=1)
	{
		Item(Trinket0Slot usable=1)
		Item(Trinket1Slot usable=1)
	}
	
#8	blood_fury
	Spell(BLOODFURY)

#9	volcanic_potion,if=buff.metamorphosis.up|!in_combat
	if CheckBoxOn(potion) and TargetClassification(worldboss) and { BuffPresent(METAMORPHOSIS) or InCombat(no) } Item(VOLCANICPOTION usable=1)

#A	metamorphosis,if=buff.moonwell_chalice.up&pet.felguard.active
	if pet.Present() and pet.CreatureFamily(Felguard)
	{
		unless 100s before Item(Trinket0Slot usable=1) Spell(METAMORPHOSIS)
		unless 100s before Item(Trinket1Slot usable=1) Spell(METAMORPHOSIS)
	}
	
#B	demon_soul,if=buff.metamorphosis.up
	if BuffPresent(METAMORPHOSIS) Spell(DEMONSOUL)
	
#C	summon_doomguard,if=time>10
	if TimeInCombat(more 10) Spell(SUMMONDOOMGUARD)
	
#D	felguard:felstorm
	if pet.Present() and pet.CreatureFamily(Felguard) Spell(FELSTORM)
	
#E	soulburn,if=pet.felguard.active&!pet.felguard.dot.felstorm.ticking
	if pet.Present() and pet.CreatureFamily(Felguard) and 39s before Spell(FELSTORM) unless Spell(FELSTORM usable=1) Spell(SOULBURN usable=1)
	
#F	summon_felhunter,if=!pet.felguard.dot.felstorm.ticking&pet.felguard.active
	if pet.Present() and pet.CreatureFamily(Felguard) and 39s before Spell(FELSTORM) unless Spell(FELSTORM usable=1) Spell(SUMMONFELHUNTER)
}

AddIcon help=main mastery=2
{
#	not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES 2) and TargetDeadIn(more 8) Spell(CURSETONGUES)
	
#G	immolate,if=!ticking&target.time_to_die>=4&miss_react
	if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE)
	
#H  bane_of_doom,if=(!ticking|(buff.metamorphosis.up&remains<45))&target.time_to_die>=15&miss_react
	if List(bane doom) and TargetDeadIn(more 15) and BuffPresent(METAMORPHOSIS) and TargetDebuffPresent(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFDOOM 45 mine=1)
	{
		Spell(BANEOFDOOM)
	}
	
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) Spell(BANEOFAGONY)
	}

#I	corruption,if=(remains<tick_time|!ticking)&target.time_to_die>=6&miss_react
	if TargetDebuffExpires(CORRUPTION 2 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 6) Spell(CORRUPTION)
	
#J	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)

#K	hand_of_guldan
	Spell(HANDOFGULDAN)
	
#L	immolation_aura,if=buff.metamorphosis.remains>10
	if BuffPresent(METAMORPHOSIS 10) and TargetDistance(less 8) Spell(IMMOLATIONAURA)

#M	shadow_bolt,if=buff.shadow_trance.react
	if BuffPresent(SHADOWTRANCE) Spell(SHADOWBOLT)
#M	incinerate,if=buff.molten_core.react
	if BuffPresent(MOLTENCORE) Spell(INCINERATE)
	
#N	soul_fire,if=buff.decimation.up
	if BuffPresent(DECIMATION) Spell(SOULFIRE)
	
#O	life_tap,if=mana_pct<=30&buff.bloodlust.down&buff.metamorphosis.down&buff.demon_soul_felguard.down
	if ManaPercent(less 30) and BuffExpires(heroism) and BuffExpires(METAMORPHOSIS) and BuffExpires(DEMONSOULBUFF) Spell(LIFETAP)
	
#P	incinerate
	if TalentPoints(BANETALENT more 0) Spell(SHADOWBOLT)
	Spell(INCINERATE)
	
#S	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

AddIcon mastery=2 #moving
{
#	not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES 2) and TargetDeadIn(more 8) Spell(CURSETONGUES)
	
#H  bane_of_doom,if=(!ticking|(buff.metamorphosis.up&remains<45))&target.time_to_die>=15&miss_react
	if List(bane doom) and TargetDeadIn(more 15) and BuffPresent(METAMORPHOSIS) and TargetDebuffPresent(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFDOOM 45 mine=1)
	{	
		Spell(BANEOFDOOM)
	}
	
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) Spell(BANEOFAGONY)
	}

#I	corruption,if=(remains<tick_time|!ticking)&target.time_to_die>=6&miss_react
	if TargetDebuffExpires(CORRUPTION 2 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 6) Spell(CORRUPTION)
	
#J	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)
	
#L	immolation_aura,if=buff.metamorphosis.remains>10
	if BuffPresent(METAMORPHOSIS 10) and TargetDistance(less 8) Spell(IMMOLATIONAURA)
	
#M	shadow_bolt,if=buff.shadow_trance.react
	if BuffPresent(SHADOWTRANCE) Spell(SHADOWBOLT)
	
#O	life_tap,if=mana_pct<=30&buff.bloodlust.down&buff.metamorphosis.down&buff.demon_soul_felguard.down
	if ManaPercent(less 30) and BuffExpires(heroism) and BuffExpires(METAMORPHOSIS) and BuffExpires(DEMONSOULBUFF) Spell(LIFETAP)
	
#Q	life_tap,moving=1,if=mana_pct<80&mana_pct<target.health_pct
	if ManaPercent(less 80) and { manaPercent() < target.lifePercent() } Spell(LIFETAP)

#R	fel_flame,moving=1
	Spell(FELFLAME)

#S	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

AddIcon help=buff size=small mastery=3
{
#0	flask,type=draconic_mind
	if CheckBoxOn(flask) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFSINGLE 0) and BuffExpires(FLASKOFTHEDRACONICMINDBUFFGROUP 0) Item(FLASKOFTHEDRACONICMIND)
	
#1	food,type=seafood_magnifique_feast
	if CheckBoxOn(food) and InCombat(no) and BuffExpires(WELLFED 0) Item(FOOD)
	
#2	fel_armor
	if BuffExpires(FELARMOR) Spell(FELARMOR)

#3	summon_imp
	if PetPresent(no)
	{
		if InCombat(yes) Spell(SOULBURN usable=1)
		Spell(SUMMONIMP)
	}

#4	dark_intent
	if BuffExpires(DARKINTENTBUFF) Spell(DARKINTENT)
	
#5	soulburn,if=!in_combat #seems to only make sense in simc, but not in real world, instead:
	if InCombat(no) and SoulShards(less 2) Spell(SOULHARVEST)

	if ItemCount(HEALTHSTONE less 1) and InCombat(no) Spell(RITUALOFSOULS)	
	if ItemCount(HEALTHSTONE less 1) and InCombat(yes) Spell(CREATEHEALTHSTONE)
}

AddIcon help=offgcd size=small mastery=3
{
#7	use_item,name=balespiders_handwraps
	Item(Trinket0Slot usable=1)
	Item(Trinket1Slot usable=1)
	
#8	blood_fury
	Spell(BLOODFURY)

#9	volcanic_potion,if=buff.bloodlust.react|!in_combat|target.health_pct<=20
	if CheckBoxOn(potion) and TargetClassification(worldboss) and { BuffPresent(heroism) or InCombat(no) or TargetLifePercent(less 20) } Item(VOLCANICPOTION usable=1)

#A	demon_soul
	Spell(DEMONSOUL)
}

AddIcon help=main mastery=3
{
#	not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES 2) and TargetDeadIn(more 8) Spell(CURSETONGUES)

#B	soulburn,if=buff.bloodlust.down
	if BuffExpires(heroism) Spell(SOULBURN)
	
#C	soul_fire,if=buff.soulburn.up&!in_combat
	if InCombat(no) and BuffPresent(SOULBURN) Spell(SOULFIRE)
	
#D	immolate,if=(remains<cast_time+gcd|!ticking)&target.time_to_die>=4&miss_react
	if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE)

#E	conflagrate
	Spell(CONFLAGRATE)
	
#F	immolate,if=buff.bloodlust.react&buff.bloodlust.remains>32&cooldown.conflagrate.remains<=3&remains<12
	if BuffPresent(heroism 32) and 3s before Spell(CONFLAGRATE) and targetDebuffExpires(IMMOLATE) < 12

#G	bane_of_doom,if=!ticking&target.time_to_die>=15&miss_react
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) and TargetDebuffExpires(BANEOFHAVOC 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) unless List(bane havoc) Spell(BANEOFAGONY)
		if TargetDeadIn(more 10) Spell(BANEOFHAVOC)
	}

#H	corruption,if=(!ticking|dot.corruption.remains<tick_time)&miss_react
	if TargetDebuffExpires(CORRUPTION 3 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) Spell(CORRUPTION)
	
#I	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)
	
#J	chaos_bolt,if=cast_time>0.9
	if { castTime(CHAOSBOLT) > 0.9 } Spell(CHAOSBOLT)
	
#K	summon_doomguard,if=time>10
	if TimeInCombat(more 10) Spell(SUMMONDOOMGUARD)
	
#L	soul_fire,if=((buff.empowered_imp.react&buff.empowered_imp.remains<(buff.improved_soul_fire.remains+action.soul_fire.travel_time))|buff.improved_soul_fire.remains<(cast_time+travel_time+action.incinerate.cast_time+gcd))&!in_flight
	if TalentPoints(IMPROVEDSOULFIRE more 0) and BuffExpires(IMPROVEDSOULFIREBUFF 0) and BuffExpires(EMPOWEREDIMP 0) Spell(SOULFIRE)
	if TalentPoints(IMPROVEDSOULFIRE more 0) and buffExpires(IMPROVEDSOULFIREBUFF) < { castTime(SOULFIRE) + castTime(INCINERATE) + timeWithHaste(1.5) + 1 } Spell(SOULFIRE)
	
#M	shadowburn
	Spell(SHADOWBURN usable=1)
	
#N	incinerate
	Spell(INCINERATE)

#Q	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

AddIcon help=main mastery=3 #moving
{
#	not included in simc because of optimal raid environmet
	if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS)
	if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS)
	if List(curse tongues) and TargetDebuffExpires(CURSETONGUES 2) and TargetDeadIn(more 8) Spell(CURSETONGUES)

#B	soulburn,if=buff.bloodlust.down
	if BuffExpires(heroism) Spell(SOULBURN)
	
#C	soul_fire,if=buff.soulburn.up&!in_combat
	if InCombat(no) and BuffPresent(SOULBURN) Spell(SOULFIRE)
	
#E	conflagrate
	Spell(CONFLAGRATE)
	
#G	bane_of_doom,if=!ticking&target.time_to_die>=15&miss_react
	if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) and TargetDebuffExpires(BANEOFHAVOC 0 mine=1)
	{
		if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM)
		if TargetDeadIn(more 10) unless List(bane havoc) Spell(BANEOFAGONY)
		if TargetDeadIn(more 10) Spell(BANEOFHAVOC)
	}

#H	corruption,if=(!ticking|dot.corruption.remains<tick_time)&miss_react
	if TargetDebuffExpires(CORRUPTION 3 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) Spell(CORRUPTION)
	
#I	shadowflame
	if TargetDistance(less 8) Spell(SHADOWFLAME)
	
#K	summon_doomguard,if=time>10
	if TimeInCombat(more 10) Spell(SUMMONDOOMGUARD)

#M	shadowburn
	Spell(SHADOWBURN usable=1)

#O	life_tap,moving=1,if=mana_pct<80&mana_pct<target.health_pct
	if ManaPercent(less 80) and { manaPercent() < target.lifePercent() } Spell(LIFETAP)
	
#P	fel_flame,moving=1
	Spell(FELFLAME)
	
#Q	life_tap
	if ManaPercent(less 80) Spell(LIFETAP)
}

Last edited by Nyri : 12/12/11 at 3:17 PM.

Offline
Reply With Quote
Old 12/12/11, 8:38 PM   #784
Asharfh
Glass Joe
 
Asharfh's Avatar
 
Orc Warlock
 
Les Sentinelles (EU)
Simulationcraft Results
Simulationcraft Results

There is a ~200dps difference with exact same gear and exact same action priority list.

The only significative difference I noticed is the number of iterations (30000 vs 10000) but it shouldn't explain such a big deviation.

Is there something I'm missing here ?

France Offline
Reply With Quote
Old 12/12/11, 9:23 PM   #785
 Zakalwe
The Chairmaker
 
Orc Warlock
 
Balnazzar
Originally Posted by Asharfh View Post
Simulationcraft Results
Simulationcraft Results

There is a ~200dps difference with exact same gear and exact same action priority list.

The only significative difference I noticed is the number of iterations (30000 vs 10000) but it shouldn't explain such a big deviation.

Is there something I'm missing here ?
One is in a raid with two other warlocks, the other is in a raid with a whole bunch of different classes. Any class/spec with an execute mechanic (or, more generally, any mechanic that makes your DPS vary based on boss health) will perform somewhat differently with different raid compositions, due to variations in exactly what percentage of encounter time is spent above/below the execute threshold.

http://wowupgrade.com/ - instant gear comparison for all classes / specs

Norway Offline
Reply With Quote
Old 12/15/11, 3:05 PM   #786
Nerble
Glass Joe
 
Orc Warlock
 
Moon Guard
Demonology seems to be exhibiting some strange haste valuation (negative DPS) for my character post-1573 (21.43%) haste threshold that I've been having difficulty explaining. I'm currently using a combination of trinkets including Moonwell Chalice, so the post to follow will assume the pet twisting super-metamorphosis rotation. As an aside, I have also tested this removing MWC, and the scaling exhibits behavior that is more "normal" (significant increases in haste valuation at tick thresholds), though I don't have the supporting sims for it to show. I'm more than willing willing to generate them on request, however.

The following image illustrates the stat scaling that I'm seeing. The plot range on the abscissa is -400 to +400 points of each stat with an interval of 20 points. All simulations performed with 25k iterations. The "Nerble" profile is with my current gear setup, while the "Nerble_1796Hate" profile is setting my gear's haste to a value of 1796. A final piece of information for completeness is that this Simulationcraft installation is built using the SVN repository and run on a Linux server.

Click for Link to Simulation


There is a sharp decrease in dps due to haste occurring at ~1796 haste. I have seen this behavior exhibited using gear from Firelands/HFirelands through current Dragon Soul, including other trinkets such as DMC:V alongside MWC, and both with and without Dragonwrath. The linked simulation seems to indicate that the drop in dps is due to between 2000-3000 DPET lost from corruption, while all other abilities are scaling positively. This is seen in the following charts:



DPET for all abilities (except immolate) in current gear setup



DPET for all abilities (except immolate) with haste from gear set to 1796, approximately the location of the haste threshold.

I have been able to confirm via reforging leading up to my current gear setup that haste should scale positively, and at the least better than crit, prior to this drop, though I have been unable to easily get to this particular haste threshold in order to test if there should indeed be a dps loss, without having to control for a number of other factors, including lost stats, missing buffs, or encounter mechanics. However, upon reforging for more haste and out of crit. Furthermore, even though obvious, haste would appear to outscale both crit and mastery after that cap, especially when looking at the profile set above that haste threshold as seen in the second profile set to 1796 haste from the same simulation. This can be seen graphically and numerically with the following figures:



Stat scaling plot for gear haste set to 1796



Stat scaling for gear haste set to 1796.

Possible Cause?

One possible thought as to what may be causing this is a desynchronization with corruption (and somehow only corruption's damage) regarding MWC's boosted meta. As stated earlier, this scaling only appears to occur when one trinket is set to MWC. Comparing the APS charts and breakdown in the linked simulation's abilities sections for the current setup and boosted haste setup seems to indicate that corruption under the haste profile has a longer time between ticks (2.2928s versus 2.2980s for the current versus haste setup for time per tick) and ticks for less (5779 versus 5422).

However, the hasted case also exhibits a significant drop in damage toward the tail of the simulation, which may be explained by letting corruption drop toward the end of the profile in the hasted case, as looking at the sample rotation in the action priority list shows the last recast in my current gear setup much closer to the end of the action list than in the hasted case.

I'm at a bit of a loss as to how I can get at the exact cause for this and determine if this is real behavior or the result of the action choice model. Logically, it makes sense that if the increase in haste causes a full corruption to lose the benefits of meta each cast of meta, that there would be a dps loss. However, the significant drop in damage at the tail end of the simulation makes me suspicious. I'm considering exploring encounter length as a factor, though I would imagine that the default 450s with 20% length variance should account for that.

I apologize for the length of the post. I've been keeping this to myself for a while, unsure if this is worthy of discussion here, as I hope this isn't some form of user error, but I'm honestly at a loss after going through different gear upgrades now and still coming to the same result. I would greatly appreciate any insight that the EJ community might have on the matter.

Last edited by Nerble : 12/15/11 at 3:18 PM. Reason: Adding clarification about Dragonwrath. Also information on SimC build.

United States Offline
Reply With Quote
Old 12/15/11, 5:21 PM   #787
Keldion
Von Kaiser
 
Keldion's Avatar
 
Blood Elf Warlock
 
Moon Guard
Originally Posted by Nerble View Post
One possible thought as to what may be causing this is a desynchronization with corruption (and somehow only corruption's damage) regarding MWC's boosted meta. As stated earlier, this scaling only appears to occur when one trinket is set to MWC. Comparing the APS charts and breakdown in the linked simulation's abilities sections for the current setup and boosted haste setup seems to indicate that corruption under the haste profile has a longer time between ticks (2.2928s versus 2.2980s for the current versus haste setup for time per tick) and ticks for less (5779 versus 5422).

However, the hasted case also exhibits a significant drop in damage toward the tail of the simulation, which may be explained by letting corruption drop toward the end of the profile in the hasted case, as looking at the sample rotation in the action priority list shows the last recast in my current gear setup much closer to the end of the action list than in the hasted case.
Corruption is only being applied twice under Metamorphosis in your action model, due to a spike in its overall duration that occurs at 1782 haste with Felguard DS. Pet twisting will ensure this pattern persists throughout the course of the simulation.


United States Offline
Reply With Quote
Old 12/16/11, 3:13 AM   #788
randa
Von Kaiser
 
Orc Warlock
 
Boulderfist (EU)
I am interested why does the immolate have lower up time then corruption in Destruction simulation, even if it is higher on action priority list?

immolate 87.5%
corruption 98.5%

Offline
Reply With Quote
Old 12/16/11, 4:49 PM   #789
Leafkiller
Piston Honda
 
Worgen Druid
 
Stormrage
I have a question on the most recent T13H profile for affliction locks (dated 12/10/2011). Here is a snippet from the profile showing the primary rotation:

actions+=/demon_soul
actions+=/soulburn
actions+=/corruption,if=(!ticking|remains<tick_time)&miss_react
actions+=/unstable_affliction,if=(!ticking|remains<(cast_time+tick_time))&target.time_to_die>=5&miss_react
actions+=/bane_of_doom,if=target.time_to_die>15&!ticking&miss_react
actions+=/haunt
actions+=/summon_doomguard,if=time>10
actions+=/drain_soul,interrupt=1,if=target.health_pct<=25,interrupt_if=buff.will_of_unbinding.up&cooldown.haunt.remains<tick_time&buff.will_of_unbinding.remains<action.haunt.cast_time+tick_time+0.5
actions+=/shadowflame
actions+=/soul_fire,if=buff.soulburn.up
actions+=/life_tap,mana_percentage<=35
actions+=/shadow_bolt
actions+=/life_tap,moving=1,if=mana_pct<80&mana_pct<target.health_pct
actions+=/fel_flame,moving=1
actions+=/life_tap,if=mana_pct_nonproc<100
With the 4 piece T13 set bonus, a premium is placed on casting Soulburn along with making sure that Soul Fire is cast inside of a 10 second window to refresh a shard. I notice that Soul Fire is pretty far down the list here, including sitting below Drain Soul. I can understand that there would be no need to cast Soul fire is the boss is going to be dead before Soulburn comes off of cooldown, but the 25% health range of Drain Soul will often last more than 45 seconds.

Has anyone done any sims where they moved Soul Fire a little higher in the rotation? Also, it might be worthwhile to add a time_to_die conditional on Soul Fire in conjunction with this.

Offline
Reply With Quote
Old 12/16/11, 5:06 PM   #790
Akhtal
Von Kaiser
 
Blood Elf Warlock
 
Mug'thol
I assume you don't need to regain the shard when you are in the execute phase, as the fight will end soon (or you will get a full refund if it's an add)

Offline
Reply With Quote
Old 12/16/11, 5:51 PM   #791
Leafkiller
Piston Honda
 
Worgen Druid
 
Stormrage
Originally Posted by Akhtal View Post
I assume you don't need to regain the shard when you are in the execute phase, as the fight will end soon (or you will get a full refund if it's an add)
To be clear, the location of Soul Fire is below quite a few abilities, and Drain Soul is simply an extreme example, but even outside of the execute phase being that low in the priority list could result in missing the shard refresh. Also, execute phases can last longer than 25% of the boss' health, which is why a time to die conditional would be more meaningful.

Speaking of getting shards back from adds, is there any use for shards other than Soulburn now? If not, then you could set up the logic to only cast Soul Fire if you are out of shards (and the boss will be alive for more than 45 seconds). This would cover the add scenario implicitly. There is no great value in ending a fight with three shards.

Edit: Looking back at the rotation, there is also a chance to use up the Soulburn effect on Unstable Affliction leaving you with a the possibility of a 4 second cast time to get a shard back.

Second Edit - someone commented on Wowhead that Unstable Affliction is not affected by Soulburn anymore. As I don't play a lock, I don't know which abilities it applies to other than Soul Fire.

Third edit - I downloaded simulationcraft, ran some sims and the current rotation did produce the best dps. The dps difference for moving soul fire higher was pretty minimal.

Last edited by Leafkiller : 12/17/11 at 7:23 PM.

Offline
Reply With Quote
Old 12/20/11, 12:13 PM   #792
netsach
Von Kaiser
 
Gnome Warlock
 
Dalaran (EU)
I have a few questions regarding the synergy between some talents and various spells, if someone cares to shed some light :

Dual school spells (Fel Flame, Shadowburn)
- using WoL damage summary, the icon says "fire/shadow" and using Expression editor, the first letter says they are "fire" but how is the game chosing which school is "used" ; i think based on the target's resistance but anyone could confirm ?
- how is the game deciding it it should buff the spell or not ? Example : when casting a Fel Flame in affliction on a target with no specific resistance, if it considers it to be shadow, it would buff it through the "Shadow Mastery" specialization. But if it considers it to be fire, it wouldn't buff it. Which one applies ?
- same for Shadowburn, will it be considered Fire and be buffed through the 2 destruction perks, or will it be considered Shadow and not be buffed ?

Burning Embers
- how does the current dot tick gets updated when a soulfire/firebolt hits the target ?
- is it a simple addition of the dot portion, or does it do a removal of "previous" soulfire/firebolts contributions ?
- Glyph of Imp enhances the pet's damage, but does the Burning Embers damage cap remains the same ?

Fiery Apocalypse
- it says "damage you deal". i guess it doesn't apply to the imp's firebolt, but could anyone confirm ?
- Burning Embers is a dot "linked" to the warlock himself, does it benefit from the specialization perk ?

Sorry, but i'm not proficient enough to dig through the code, even if i can read it i'm still not familiar with how the different part of it interract.

Thanks in advance for any information !

Offline
Reply With Quote
Old 12/20/11, 6:26 PM   #793
rijn dael
Glass Joe
 
Goblin Warlock
 
Frostmourne
Burning Embers is currently combined (old+new) - but since it is capped at much lower than its potential damage, it effectively just sits on cap damage (in 4.2 that was around 1300dps, I think it is somewhere in the 1500-2k range atm). It scales (terribly slowly) by spellpower.

Fiery Apocalypse - I can't actually confirm this, but I doubt it. You can test it by using your imp, then respeccing to a destro build. Keep in mind imp glyph while testing.

Offline
Reply With Quote
Old 12/21/11, 8:41 PM   #794
Jmickey
<3 Kitty
 
Jmickey's Avatar
 
Blood Elf Warlock
 
Saurfang
What affliction buffs/debuffs does [Rathrak, the Poisonous Mind] scale with? In my sims it seems to be ticking for about 250 damage to much, assuming it is effected by CoE.

EDIT: Simcraft is definitely modelling [Rathrak, the Poisonous Mind] incorrectly. Firstly, it is scaling with haste, which the DoT does not do ingame. Secondly, it is doing more damage than what it should, from what I can see the only thing that should be effecting the DoTs damage is MAYBE Curse of Elements, otherwise the proc will only scale with talents and abilities that increase nature damage.

It does not scale at all with spell power/percentage based damage buffs.

Last edited by Jmickey : 12/22/11 at 1:02 AM.


Offline
Reply With Quote
Old 12/22/11, 5:44 AM   #795
Geobram
Glass Joe
 
Human Warlock
 
Saurfang (EU)
Originally Posted by Jmickey View Post
What affliction buffs/debuffs does [Rathrak, the Poisonous Mind] scale with? In my sims it seems to be ticking for about 250 damage to much, assuming it is effected by CoE.

EDIT: Simcraft is definitely modelling [Rathrak, the Poisonous Mind] incorrectly. Firstly, it is scaling with haste, which the DoT does not do ingame. Secondly, it is doing more damage than what it should, from what I can see the only thing that should be effecting the DoTs damage is MAYBE Curse of Elements, otherwise the proc will only scale with talents and abilities that increase nature damage.

It does not scale at all with spell power/percentage based damage buffs.
If this is true, could it be the same for the trinkets [Variable Pulse Lightning Capacitor] and [Cunning of the Cruel] and the other versions of these? Or any other items with similar trinkets. It might make them not as good as they seem.

Offline
Reply With Quote
Reply

Go Back   Elitist Jerks » Class Mechanics » Warlocks

Thread Tools