--//////////////////////////////////
--//// Holystone Productions ////
--//// Copy Right ////
--//// Blizzlike Repack v 3.0 ////
--//////////////////////////////////
print("Loading LordMarrowgar")
--[ Npc's ID's ]--
local LordMarrowgar = 36612
local ColdFlame = 36672
local Spike = 38711
--[ Spells ]--
-- Lord Marrowgar
local Spell_Bone_Slice = 69055
local Spell_Bone_Storm_10N = 69075
local Spell_Bone_Storm_25N = 70835
local Spell_Bone_Storm_10HC = 70835
local Spell_Bone_Storm_25HC = 70836
local Spell_Spike_Graveyard = 69057
local Spell_ColdFlame_Normal = 69140
local Spell_ColdFlame_Storm = 72705
-- Bone Spike
local Spell_Impale = 69065
-- ColdFlame
local Spell_ColdFlame_10N = 69146
local Spell_ColdFlame_25N = 70823
local Spell_ColdFlame_10HC = 70824
local Spell_ColdFlame_25HC = 70825
--[ Speaks ]--
local Say_Marrowgar_Enter_Zone = 16950
local Say_Marrowgar_Aggro = 16941
local Say_Marrowgar_Bone_Storm = 16946
local Say_Marrowgar_BoneSpike_One = 16947
local Say_Marrowgar_BoneSpike_Two = 16948
local Say_Marrowgar_BoneSpike_Tree = 16949
local Say_Marrowgar_Kill_One = 16942
local Say_Marrowgar_Kill_Two = 16943
local Say_Marrowgar_Death = 16944
local Say_Marrowgar_Berserk = 16945
local Say_Marrowgar_Enter_Zone_Speak = "This is the beginning AND the end, mortals. None may enter the master's sanctum!"
local Say_Marrowgar_Aggro_Speak = "The Scourge will wash over this world as a swarm of death and destruction!"
local Say_Marrowgar_Bone_Storm_Speak = "BONE STORM!"
local Say_Marrowgar_BoneSpike_Speak_One = "Bound by bone!"
local Say_Marrowgar_BoneSpike_Speak_Two = "Stick Around!"
local Say_Marrowgar_BoneSpike_Speak_Tree = "The only escape is death!"
local Say_Marrowgar_Kill_Speak_One = "More bones for the offering!"
local Say_Marrowgar_Kill_Speak_Two = "Languish in damnation!"
local Say_Marrowgar_Death_Speak = "I see... only darkness..."
local Say_Marrowgar_Berserk_Speak = "THE MASTER'S RAGE COURSES THROUGH ME!"
--[ Lord Marrowgar Spawn ]--
function LordMarrowgar_OnSpawn(punit, event)
local Marrowgar = punit
Marrowgar:GetInstanceID()
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
Marrowgar:SetCombatCapable(0)
Marrowgar:SetMaxHeath(6972500)
end
if Dungeon == 1 then
Marrowgar:SetCombatCapable(0)
Marrowgar:SetMaxHeath(10500000)
end
if Dungeon == 2 then
Marrowgar:SetCombatCapable(0)
Marrowgar:SetMaxHeath(23700000)
end
if Dungeon == 3 then
Marrowgar:SetCombatCapable(0)
Marrowgar:SetMaxHeath(31376000)
end
local Player = punit:GetClosestPlayer()
if punit:GetDistanceYards(Player) < 65 then
Marrowgar:SendChatMessage(14, 0, Say_Marrowgar_Enter_Zone_Speak)
Marrowgar:PlaySoundToSet(Say_Marrowgar_Enter_Zone)
end
end
RegisterUnitEvent(LordMarrowgar, 18, "LordMarrowgar_OnSpawn")
--[ Lord Marrowgar Combat ]--
function LordMarrowgar_OnCombat(punit, event)
punit:SendChatMessage(14, 0, Say_Marrowgar_Aggro_Speak)
punit:PlaySoundToSet(Say_Marrowgar_Aggro)
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
end
if Dungeon == 1 then
punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
end
if Dungeon == 2 then
punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
end
if Dungeon == 3 then
punit:RegisterEvent("Marrowgar_Bone_Slice", 10000, 0)
punit:RegisterEvent("Marrowgar_Bone_Spike_Graveyard", math.random (10000, 15000))
punit:RegisterEvent("Marrowgar_ColdFlame", math.random (5000, 6000))
punit:RegisterEvent("Marrowgar_BoneStorm", math.random (45000, 50000))
end
end
RegisterUnitEvent(LordMarrowgar, 1, "LordMarrowgar_OnCombat")
function Marrowgar_Bone_Slice(punit, event)
local Player = punit:GetClosestPlayer()
if Player ~= nil then
punit:CastSpellOnTarget(Spell_Bone_Slice, Player)
end
end
function Marrowgar_Bone_Spike_Graveyard(punit, event)
if Dungeon == 0 then
local player10 = punit:GetRandomPlayer(0)
local x = player:GetX()
local y = player:GetY()
local z = player:GetZ()
punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
end
if Dungeon == 1 then
local player10 = punit:GetRandomPlayer(0)
local x = player:GetX()
local y = player:GetY()
local z = player:GetZ()
punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
end
if Dungeon == 2 then
local targets = GetThreeRandomEnemies(pUnit)
if(targets) then
for k,v in ipairs(targets) do
local x = player:GetX()
local y = player:GetY()
local z = player:GetZ()
punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
end
end
end
if Dungeon == 3 then
local targets = GetThreeRandomEnemies(pUnit)
if(targets) then
for k,v in ipairs(targets) do
local x = player:GetX()
local y = player:GetY()
local z = player:GetZ()
punit:SpawnCreature(Spike, x, y, z, o, 21, 650000)
end
end
end
end
function Marrowgar_ColdFlame(punit, event)
local x = punit:GetX()
local y = punit:GetY()
local z = punit:GetZ()
local o = punit:GetO()
punit:SpawnCreature(ColdFlame, x, y, z, o, 21, 30000)
end
function Marrowgar_BoneStorm(punit, event)
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
punit:RemoveEvents()
punit:Root()
punit:SetCombatCapable(1)
punit:FullCastSpell(Spell_Bone_Storm_10N)
punit:AddAura(Spell_Bone_Storm_10N, 20000)
punit:RegisterEvent("Event_Marrowgar_Move", 7000, 2)
punit:RegisterEvent("Event_Marrowgar_Stop", 20000, 1)
end
if Dungeon == 1 then
punit:RemoveEvents()
punit:Root()
punit:SetCombatCapable(1)
punit:FullCastSpell(Spell_Bone_Storm_25N)
punit:AddAura(Spell_Bone_Storm_25N, 30000)
punit:RegisterEvent("Event_Marrowgar_Move", 10000, 2)
punit:RegisterEvent("Event_Marrowgar_Stop", 30000, 1)
end
if Dungeon == 2 then
punit:RemoveEvents()
punit:Root()
punit:SetCombatCapable(1)
punit:FullCastSpell(Spell_Bone_Storm_10HC)
punit:AddAura(Spell_Bone_Storm_10HC, 20000)
punit:RegisterEvent("Event_Marrowgar_Move", 7000, 2)
punit:RegisterEvent("Event_Marrowgar_Stop", 20000, 1)
end
if Dungeon == 3 then
punit:RemoveEvents()
punit:Root()
punit:SetCombatCapable(1)
punit:FullCastSpell(Spell_Bone_Storm_25HC)
punit:AddAura(Spell_Bone_Storm_25HC, 30000)
punit:RegisterEvent("Event_Marrowgar_Move", 10000, 2)
punit:RegisterEvent("Event_Marrowgar_Stop", 30000, 1)
end
end
function Event_Marrowgar_Move(punit, event)
punit:UnRoot()
punit:SetMovementFlags(1)
punit:ModifyRunSpeed(30)
local target = punit:GetRandomPlayer(0)
local x = target:GetX()
local y = target:GetY()
local z = target:GetZ()
local o = target:GetO()
punit:MoveTo(x, y, z, o)
punit:Root()
end
function Event_Marrowgar_Stop(punit, event)
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
if punit:HasAura(Spell_Bone_Storm_10N) == true then
punit:RemoveAura(Spell_Bone_Storm_10N)
punit:UnRoot()
punit:RemoveEvents()
punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
end
end
if Dungeon == 1 then
if punit:HasAura(Spell_Bone_Storm_10N) == true then
punit:RemoveAura(Spell_Bone_Storm_25N)
punit:UnRoot()
punit:RemoveEvents()
punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
end
end
if Dungeon == 2 then
if punit:HasAura(Spell_Bone_Storm_10N) == true then
punit:RemoveAura(Spell_Bone_Storm_10HC)
punit:UnRoot()
punit:RemoveEvents()
punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
end
end
if Dungeon == 3 then
if punit:HasAura(Spell_Bone_Storm_10N) == true then
punit:RemoveAura(Spell_Bone_Storm_25HC)
punit:UnRoot()
punit:RemoveEvents()
punit:RegisterEvent("LordMarrowgar_OnCombat", 1, 1)
end
end
end
--[Lord Marrowgar End's & Adds Start]--
function ColdFlame_OnSpawn(punit, event)
local target = punit:GetRandomPlayer(0)
if target ~= nil then
punit:SetMovementFlags(0)
punit:ModifyRunSpeed(8)
local x = target:GetX()
local y = target:GetY()
local z = target:GetZ()
local o = target:GetO()
punit:MoveTo(x+x, y+y, z, o)
punit:RegisterEvent("Event_ColdFlame_Spell", 200, 0)
end
end
function Event_ColdFlame_Spell(punit, event)
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
local x = punit:GetX()
local y = punit:GetY()
local z = punit:GetZ()
punit:CastSpellAoF(x, y, z, Spell_ColdFlame_10N)
end
if Dungeon == 1 then
local x = punit:GetX()
local y = punit:GetY()
local z = punit:GetZ()
punit:CastSpellAoF(x, y, z, Spell_ColdFlame_25N)
end
if Dungeon == 2 then
local x = punit:GetX()
local y = punit:GetY()
local z = punit:GetZ()
punit:CastSpellAoF(x, y, z, Spell_ColdFlame_10HC)
end
if Dungeon == 3 then
local x = punit:GetX()
local y = punit:GetY()
local z = punit:GetZ()
punit:CastSpellAoF(x, y, z, Spell_ColdFlame_25HC)
end
end
function Spike_OnSpawn(punit, event)
local Dungeon = punit:GetDungeonDifficulty()
if Dungeon == 0 then
punit:SetMaxHeath(46255)
punit:Root
local target = punit:GetClosestPlayer()
if target ~= nil then
target:AddAura(Spell_Impale, 0)
end
if punit:GetHealthPct() <= 10 then
target:RemoveAura(Spell_Impale)
end
end
if Dungeon == 1 then
punit:SetMaxHeath(74605)
punit:Root
local target = punit:GetClosestPlayer()
if target ~= nil then
target:AddAura(Spell_Impale, 0)
end
if punit:GetHealthPct() <= 10 then
target:RemoveAura(Spell_Impale)
end
end
if Dungeon == 2 then
punit:SetMaxHeath(134289)
punit:Root
local target = punit:GetClosestPlayer()
if target ~= nil then
target:AddAura(Spell_Impale, 0)
end
if punit:GetHealthPct() <= 10 then
target:RemoveAura(Spell_Impale)
end
end
if Dungeon == 3 then
punit:SetMaxHeath(129816)
punit:Root
local target = punit:GetClosestPlayer()
if target ~= nil then
target:AddAura(Spell_Impale, 0)
end
if punit:GetHealthPct() <= 10 then
target:RemoveAura(Spell_Impale)
end
end
end