Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SPELL_SHADOWHEAL = 37456 -- cast self
- SPELL_SHADOWBOLT = 58827 -- main tank
- ----------------
- SPELL_FROSTARMOR = 18100 -- cast self
- SPELL_ICETOMB = 29670 -- random player
- ----------------
- SPELL_FIRESHIELD = 37318 -- cast self
- SPELL_FIREBALL = 41484 -- random player
- ----------------
- SPELL_LIGHTNINGSHIELD = 59845 -- cast self
- SPELL_LIGHTNINGBOLT = 52921 -- random player
- ----------------
- SPELL_ARCANEBOLT = 59520 -- random player (ranged)
- SPELL_DEATH = 5 -- random player
- local self = getfenv(1)
- function OnCombat(Unit, event)
- Unit:SendChatMessage(14, 0, "Ha puny humans, you dare challenge me!")
- self[tostring(Unit)] = {
- --------------
- shadowheal = 5, -- phase 1 spells
- shadowbolt = 6, -- phase 1 and start spells
- --------------
- frostarmor = 1, -- * phase 2 spells
- icetomb = 6, -- phase 2 spells
- --------------
- fireshield = 1, -- * phase 3 spells
- fireball = 6, -- phase 3 spells
- --------------
- lightningshield = 15, -- phase 4 spells
- lightningbolt = 2, -- phase 4 spells
- --------------
- arcanebolt = 4, -- phase 5 spells
- --------------
- death = 5, -- phase 6 spells
- --------------
- phaseid = 0 -- phase controller
- }
- Unit:RegisterAIUpdateEvent(1000)
- end
- function AIupdate(Unit)
- if(Unit:IsCasting() ) then return end
- if(Unit:GetNextTarget() == nil) then
- Unit:WipeThreatList()
- return
- end
- local vars = self[tostring(Unit)]
- if(Unit:GetHealthPct() > 90)then -- start phase
- vars.shadowbolt = vars.shadowbolt - 1
- if(vars.shadowbolt <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_SHADOWBOLT, Unit:GetMainTank())
- vars.shadowbolt = 6
- end
- elseif(Unit:GetHealthPct() > 80 and Unit:GetHealthPct() <= 90 and vars.phaseid == 0)then -- phase 1 transition
- Unit:SendChatMessage(14, 0, "I shall never fall!")
- vars.phaseid = 1
- elseif(Unit:GetHealthPct() > 80 and Unit:GetHealthPct() <= 90 and vars.phaseid == 1)then -- phase 1
- vars.shadowbolt = vars.shadowbolt - 1
- vars.shadowheal = vars.shadowheal - 1
- if(vars.shadowbolt <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_SHADOWBOLT, Unit:GetMainTank())
- vars.shadowbolt = 6
- elseif(vars.shadowheal <= 0)then
- Unit:CastSpell(SPELL_SHADOWHEAL)
- vars.shadowheal = 5
- end
- elseif(Unit:GetHealthPct() > 60 and Unit:GetHealthPct() <= 80 and vars.phaseid == 1)then -- phase 2 transition
- Unit:SendChatMessage(14, 0, "So you think that was hard, Ha!")
- Unit:SetModel(6209)
- vars.phaseid = 2
- elseif(Unit:GetHealthPct() > 60 and Unit:GetHealthPct() <= 80 and vars.phaseid == 2)then -- phase 2
- if(Unit:HasAura(SPELL_FROSTARMOR) == false)then
- Unit:CastSpell(SPELL_FROSTARMOR)
- end
- vars.icetomb = vars.icetomb - 1
- if(vars.icetomb <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_ICETOMB, Unit:GetRandomPlayer(0))
- vars.icetomb = 6
- end
- elseif(Unit:GetHealthPct() > 40 and Unit:GetHealthPct() <= 60 and vars.phaseid == 2)then -- phase 3 transition
- Unit:SendChatMessage(14, 0, "Time for things to get hotter!")
- Unit:SetModel(1070)
- Unit:SetScale(2)
- if(Unit:HasAura(SPELL_FROSTARMOR))then
- Unit:RemoveAura(SPELL_FROSTARMOR)
- end
- vars.phaseid = 3
- elseif(Unit:GetHealthPct() > 40 and Unit:GetHealthPct() <= 60 and vars.phaseid == 3)then -- phase 3
- if(Unit:HasAura(SPELL_FIRESHIELD) == false)then
- Unit:CastSpell(SPELL_FIRESHIELD)
- end
- vars.fireball = vars.fireball - 1
- if(vars.fireball <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_FIREBALL, Unit:GetRandomPlayer(0))
- vars.fireball = 6
- end
- elseif(Unit:GetHealthPct() > 20 and Unit:GetHealthPct() <= 40 and vars.phaseid == 3)then -- phase 4 transition
- Unit:SetScale(1)
- if(Unit:HasAura(SPELL_FIRESHIELD))then
- Unit:RemoveAura(SPELL_FIRESHIELD)
- end
- Unit:SetModel(14515)
- vars.phaseid = 4
- elseif(Unit:GetHealthPct() > 20 and Unit:GetHealthPct() <= 40 and vars.phaseid == 4)then -- phase 4
- vars.lightningshield = vars.lightningshield - 1
- vars.lightningbolt = vars.lightningbolt - 1
- if(vars.lightningshield <= 0)then
- Unit:CastSpell(SPELL_LIGHTNINGSHIELD)
- vars.lightningshield = 15
- elseif(vars.lightningbolt <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_LIGHTNINGBOLT, Unit:GetRandomPlayer(0))
- vars.lightningbolt = 2
- end
- elseif(Unit:GetHealthPct() > 5 and Unit:GetHealthPct() <= 20 and vars.phaseid == 4)then -- phase 5 transition
- if(Unit:HasAura(SPELL_LIGHTNINGSHIELD))then
- Unit:RemoveAura(SPELL_LIGHTNINGSHIELD)
- end
- Unit:SetModel(14253)
- vars.phaseid = 5
- elseif(Unit:GetHealthPct() > 5 and Unit:GetHealthPct() <= 20 and vars.phaseid == 5)then -- phase 5
- vars.arcanebolt = vars.arcanebolt - 1
- if(vars.arcanebolt <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_ARCANEBOLT, Unit:GetRandomPlayer(1))
- end
- elseif(Unit:GetHealthPct() <= 5 and vars.phaseid == 5)then -- phase 6 transition
- Unit:SendChatMessage(14, 0, "Enough! This must end!")
- Unit:SetModel(3980)
- vars.phaseid = 6
- elseif(Unit:GetHealthPct() <= 5 and vars.phaseid == 6)then -- phase 6
- vars.death = vars.death - 1
- if(vars.death <= 0)then
- Unit:FullCastSpellOnTarget(SPELL_DEATH, Unit:GetRandomPlayer(0))
- end
- end
- end
- function OnDied(Unit, event)
- Unit:SendChatMessage(14, 0, "How.. How can this be!")
- Unit:RemoveEvents()
- Unit:RemoveAIUpdateEvent()
- Unit:DeMorph()
- Unit:SetScale(1)
- end
- function OnLeaveCombat(Unit, event)
- Unit:RemoveAura(SPELL_LIGHTNINGSHIELD)
- Unit:RemoveAura(SPELL_FIRESHIELD)
- Unit:RemoveAura(SPELL_FROSTARMOR)
- Unit:SetScale(1)
- Unit:RemoveEvents()
- Unit:RemoveAIUpdateEvent()
- Unit:DeMorph()
- end
- function OnKIllPlayer(Unit, event, pDied)
- if(pDied:IsPlayer())then
- Unit:SendChatMessage(14, 0, "Ha your strength is puny!")
- end
- end
- RegisterUnitEvent(38581,1,OnCombat)
- RegisterUnitEvent(38581,2,OnLeaveCombat)
- RegisterUnitEvent(38581,4,OnDied)
- RegisterUnitEvent(38581,21,AIupdate)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement