Author: Omega
Date: Wed Jul 07 08:54:06 CEST 2010
Revision: 4317
Log:

#Ruby/Halion: Redid debuffs to be smarter. Only warn target of debuff on spell aura applied, however, still use spell_cast_success for the CD timers, that way if a player does resist one we still get a timer for next one.

Updated
trunk/DBM-ChamberOfAspects/Ruby/Halion.lua

trunk/DBM-ChamberOfAspects/Ruby/Halion.lua
Action: modified
Old revision: 4316
Old date: 2010-07-07 05:16:30 UTC

@@ -11,6 +11,7 @@
mod:RegisterEvents(
"SPELL_CAST_START",
"SPELL_CAST_SUCCESS",
+ "SPELL_AURA_APPLIED",
"SPELL_AURA_REMOVED",
"SPELL_DAMAGE",
"CHAT_MSG_MONSTER_YELL",
@@ -71,18 +72,9 @@
end
end

-function mod:SPELL_CAST_SUCCESS(args)
---[[ if args:IsSpellID(74648, 75877, 75878, 75879) then--Meteor Strike Landed
- if not self.Options.AnnounceAlternatePhase then
- warningMeteor:Show()
- timerMeteorCD:Start()
- end
- if mod:LatencyCheck() then
- self:SendSync("Meteor")
- end--]]
+function mod:SPELL_CAST_SUCCESS(args)--We use spell cast success for debuff timers in case it gets resisted by a player we still get CD timer for next one
if args:IsSpellID(74792) then
if not self.Options.AnnounceAlternatePhase then
- warningShadowConsumption:Show(args.destName)
if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
timerShadowConsumptionCD:Start(20)
else
@@ -90,6 +82,28 @@
end
end
if mod:LatencyCheck() then
+ self:SendSync("ShadowCD")
+ end
+ elseif args:IsSpellID(74562) then
+ if not self.Options.AnnounceAlternatePhase then
+ if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
+ timerFieryConsumptionCD:Start(20)
+ else
+ timerFieryConsumptionCD:Start()
+ end
+ end
+ if mod:LatencyCheck() then
+ self:SendSync("FieryCD")
+ end
+ end
+end
+
+function mod:SPELL_AURA_APPLIED(args)--We don't use spell cast success for actual debuff on >player< warnings since it has a chance to be resisted.
+ if args:IsSpellID(74792) then
+ if not self.Options.AnnounceAlternatePhase then
+ warningShadowConsumption:Show(args.destName)
+ end
+ if mod:LatencyCheck() then
self:SendSync("ShadowTarget", args.destName)
end
if args:IsPlayer() then
@@ -105,12 +119,7 @@
elseif args:IsSpellID(74562) then
if not self.Options.AnnounceAlternatePhase then
warningFieryConsumption:Show(args.destName)
- if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
- timerFieryConsumptionCD:Start(20)
- else
- timerFieryConsumptionCD:Start()
end
- end
if mod:LatencyCheck() then
self:SendSync("FieryTarget", args.destName)
end
@@ -166,9 +175,13 @@
timerFieryConsumptionCD:Cancel()
-- timerMeteorCast:Cancel()--This one i'm not sure if it cancels or not.
warnPhase2:Show()
+ timerShadowBreathCD:Start(25)
+-- timerShadowConsumptionCD:Start(20)--Don't know it yet need more logs, it's not showing consistency. 20-25 on normal.
+ if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
+ timerTwilightCutterCD:Start(30)
+ else
timerTwilightCutterCD:Start(35)
- timerShadowBreathCD:Start(25)
--- timerShadowConsumptionCD:Start(5)--Don't know it yet need to study logs
+ end
elseif msg:find(L.Phase3) then
warnPhase3:Show()
timerMeteorCD:Start(30)
@@ -217,15 +230,21 @@
elseif msg == "ShadowTarget" then
if self.Options.AnnounceAlternatePhase then
warningShadowConsumption:Show(target)
+ end
+ elseif msg == "FieryTarget" then
+ if self.Options.AnnounceAlternatePhase then
+ warningFieryConsumption:Show(target)
+ end
+ elseif msg == "ShadowCD" then
+ if self.Options.AnnounceAlternatePhase then
if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
timerShadowConsumptionCD:Start(20)
else
timerShadowConsumptionCD:Start()
end
end
- elseif msg == "FieryTarget" then
+ elseif msg == "FieryCD" then
if self.Options.AnnounceAlternatePhase then
- warningFieryConsumption:Show(target)
if mod:IsDifficulty("heroic10") or mod:IsDifficulty("heroic25") then
timerFieryConsumptionCD:Start(20)
else