ShadowGreenLight
Presentation
Shadow priest and Warlocks suffer from a well-known and documented bug, if spellpower changes (trinket procs etc) update the tick value of their SW:P (respectively Corruption), crit and %dmg increase are still only evaluated when the dot is originally cast. Given the fact that through Pain and Suffering (respectively Everlasting Affliction) talent Shadow Word: Pain (respectively Corruption) is normally never recasted during a single target fight, this can lead to important loss of DPS. Moreover being aware of those things can allow you to abuse some encounter-specific buffs/debuffs or even trinket procs allowing you to roll a temporary buff and making your SW:P/Corruption benefit from said buff permanently.
ShadowGreenLight takes into account all available raid buffs and debuffs, as well as encounter-specific ones and helps the player decide if recasting Shadow Word: Pain is worth it.
ShadowGreenLight has multiple(*) display plugins that you can configure to fit your needs (see in-game documentation for details). ShadowGreenLight allows for third party author to plug their own display in.
(*) Yes currently "multiple" means two !
Important : please report bugs at this address if possible : http://www.wowace.com/addons/shadowgreenlight/tickets/
Upgrades
There are basically two types of upgrades tracked by ShadowGreenLight :
- Normal upgrades: upgrades that you are expected to get given your raid composition/talent pool
- Bonus upgrades: encounter-specific upgrades and upgrades that you are not automatically getting (tricks of the trades etc)
The following upgrades are taken into account by ShadowGreenLight :
- Priest specific : Shadowweave
- Warlock specific : Death's embrace (bonus)
- Spell Critical Strike Chance Debuff
- Improved Scorch
- Winter's Chill
- Improved Shadow Bolt
- Critical Strike Chance Taken Debuff
- Totem of Wrath
- Heart of the Crusader
- Master Poisoner (need confirmation for this one)
- Spell Critical Strike Chance Buff
- Moonkin aura
- Elemental Oath
- Percentage Damage Increase
- Ferocious Inspiration
- Sanctified Retribution
- Arcane Empowerment
- In fight bonus :
- Tricks of the Trade
- Wild Magic
- Encounter specific bonus from Naxxramas to Trial of the Crusader
- Gear-specific :
- Nevermelting Ice Crystal
- Warlock T10 4-pieces bonus
A note to all the guys who want me to "please add trinket procs" : This addon is devoted solely to monitoring and (in some case) abusing the fact that mind-flay refreshes of SW:P do not take into account %dmg buffs and +crit rating buffs, spellpower buffs are taken into account when refreshing with mind flay. To the best of my knowledge there is only one trinket that procs +crit rating / %dmg (Nevermelting Ice Crystal crit proc). Please stop asking me to add spellpower procs.
Displays
Default display:
It is a simple square button:
- above the square is [upgrade% available now]/[max normal upgrade%] (which means you can have something like 25/20 displayed if some bonus upgrades are available)
- background of the square goes from red to green the bigger the above indicator gets
- if the square border is red it indicates that there are bonus upgrades available
- the skull icon is displayed whenever the current available upgrade% is superior to the one you had when last casting corruption. This means you should reevaluate if recasting corruption is necessary, to make this decision you should use...
- the bottom indicator (time to profit indicator) which tells you an approximation of the time it will take for your cast to be profitable (it's a tradeoff situation, you are losing a gcd to recast...) If the time to profit indicator indicates 3 mins and you know that the fight is likely to be finished in 1 min you should not be recasting...
Bar display:
- Above bar: length represents the [upgrade% available now]
- Below bar: length represents the [upgrade% that was available the last time you cast corruption], this means if above bar is longer than below bar you should consider if recasting corruption is worth it
- They are scaled against the total length of the bar box which represents the [max normal upgrade%], which means it is totally possible that one or both the bars go "out of the box". It is normal and is similar to the 25/20 situation described earlier
- Below indicator: time to profit as described earlier
This seems overly complicated? It is however necessary to get the information you need to make the decision, note that you are free to disable one or more indicators if you feel like they are not significant enough...
To-do list
- Revamp talent detection using awesome libGroupTalents goodness
- Possibly add hunter support
- Add a minimalistic display based only on TTP (possible track to follow : in-your face pulse "RECAST" when ttp < timetodie estimation or set value)
Blizzard only got the mindflay mechanic to refresh dmg buffs you got but never really went into the complex stuff like crit and percent dmg increases. So adding Dying Curse and then refreshing SW:P will do exactly what i mindflay would, but well you know... minus the dmg :P
Hope, you can help me to make it better. It could be nice to add some of item related procs to the list of buffs.
As far as I understand, I have to add that procs to function ShadowGreenLight:OnInitialize() like
["Dying Curse"] = {
name = GetSpellInfo(60494),
upgradePerStack = 10,
type = "Dying Curse",
detectionUnit = "player",
detectionType = "buff",
isBonus = true,
upgradeType = "dmg",
}
But:
1. Is that enough? Should I add anything to other function?
2. How can I count upgradePerStack value? The proc gives around 700 spd, how to convert it to percents?
this message does not appear all the time but when it does its always the same
Date: 2009-04-26 15:09:24
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\ShadowGreenLight\Core.lua line 800:
attempt to perform arithmetic on field 'dmg' (a nil value)
Debug:
(tail call): ?
ShadowGreenLight\Core.lua:800: GetTimeToProfit()
ShadowGreenLight\Display.lua:315: UpdateDisplay()
ShadowGreenLight\Core.lua:399:
ShadowGreenLight\Core.lua:395
(tail call): ?
[C]: ?
[string "safecall Dispatcher[2]"]:9:
[string "safecall Dispatcher[2]"]:5
(tail call): ?
...\ShadowGreenLight\libs\AceTimer-3.0\AceTimer-3.0.lua:158:
...\ShadowGreenLight\libs\AceTimer-3.0\AceTimer-3.0.lua:132
AddOns:
Swatter, v5.4.4157 (WallabyII)
ACP, v3.1.0.17
Clique, vwowi:revision
DBMCore, v
DBMSpellTimers, v
DebugLib, v5.1.DEV.130
Dominos, v1.9.4
DominosBufftimes, v
InnerPeace, v1.07
kgPanels, vv1.29
LibRock10, v
LootHog, v3.1.4 Beta
OmniCC, v2.3.2
PassLoot, v3.4
PassLootConfirmBoP, v1.0
Portfolio, v1.21
Quartz, v1.0
QuartzFlight, v1.0
QuartzInterrupt, v1.0
QuartzLatency, v1.0
QuartzLatencyMF2, v10.4
QuartzPlayer, v1.0
QuartzRange, v1.0
QuartzTarget, v1.0
QuartzTradeskill, v1.0
RatingBuster, v
RedRange, v
SellJunk, v2.3.2
ShadowGreenLight, v
simpleMinimap, v30000-5
SimpleRepair, v1.0
SlideBar, v5.4.4157 (WallabyII)
SmartBuff, v3.1a
SmartDebuff, v3.1a
Stubby, v5.4.4157 (WallabyII)
XLoot, v0.9
XLootGroup, v0.5
XPerl, v3.0.3a
XPerlParty, v
XPerlPartyPet, v
XPerlPlayer, v
XPerlPlayerBuffs, v
XPerlPlayerPet, v
XPerlTarget, v
XPerlTargetTarget, v
(ck=3a8)
In new patch 3.1, if I stop casting, shadowgreen turns black. If I resume casting (fast enough to keep 5 stacks of SW and I only use flay and SWP), it indicates an upgrade is available (show SWP icon and a time), which is not the case.
As there will be times you have to stop casting, would be nice if this could be fixed.
Thanks for the great work!
When I was at Iron council in 10man Ulduar, shadowgreen was telling me that I gained % (I cant remember the actual value) damage when death rune was cast on me, maybe this is a bug on my end, but thought to let you know in case.
all in all. Great app
thanks for this great addon, good work so far!