parent
a595fe3b17
commit
8dd99552e9
@ -0,0 +1,154 @@ |
|||||||
|
local Tinkr, Bastion = ... |
||||||
|
local FrostMageModule = Bastion.Module:New('FrostMage') |
||||||
|
local Player = Bastion.UnitManager:Get('player') |
||||||
|
local Target = Bastion.UnitManager:Get('target') |
||||||
|
local SpellBook = Bastion.SpellBook:New() |
||||||
|
|
||||||
|
-- Spells |
||||||
|
local Frostbolt = SpellBook:GetSpell(116) |
||||||
|
local Flurry = SpellBook:GetSpell(44614) |
||||||
|
local IceLance = SpellBook:GetSpell(30455) |
||||||
|
local CometStorm = SpellBook:GetSpell(153595) |
||||||
|
local GlacialSpike = SpellBook:GetSpell(199786) |
||||||
|
local FrozenOrb = SpellBook:GetSpell(84714) |
||||||
|
local ShiftingPower = SpellBook:GetSpell(382440) |
||||||
|
local IcyVeins = SpellBook:GetSpell(12472) |
||||||
|
local Blizzard = SpellBook:GetSpell(190356) |
||||||
|
local IceNova = SpellBook:GetSpell(157997) |
||||||
|
local ArcaneExplosion = SpellBook:GetSpell(1449) |
||||||
|
|
||||||
|
-- Buffs |
||||||
|
local FingersOfFrost = SpellBook:GetSpell(112965) |
||||||
|
local BrainFreeze = SpellBook:GetSpell(190446) |
||||||
|
local WintersChill = SpellBook:GetSpell(228358) |
||||||
|
local DeathsChill = SpellBook:GetSpell(305393) |
||||||
|
|
||||||
|
-- Create APLs |
||||||
|
local DefaultAPL = Bastion.APL:New('default') |
||||||
|
local AoEAPL = Bastion.APL:New('aoe') |
||||||
|
local CooldownAPL = Bastion.APL:New('cooldown') |
||||||
|
|
||||||
|
-- Cooldown APL |
||||||
|
CooldownAPL:AddSpell( |
||||||
|
IcyVeins:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Player) |
||||||
|
) |
||||||
|
|
||||||
|
-- Default (Single Target) APL |
||||||
|
DefaultAPL:AddSpell( |
||||||
|
CometStorm:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and Target:GetAuras():FindMy(WintersChill):IsUp() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
Flurry:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and (Player:GetAuras():FindMy(BrainFreeze):IsUp() or Player:GetComboPoints() == 4) |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
GlacialSpike:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and (Target:GetAuras():FindMy(WintersChill):IsUp() or Player:GetComboPoints() == 5) |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
FrozenOrb:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
ShiftingPower:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and CometStorm:GetCooldownRemaining() > 10 and FrozenOrb:GetCooldownRemaining() > 10 |
||||||
|
end):SetTarget(Player) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
IceLance:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and (Target:GetAuras():FindMy(WintersChill):IsUp() or Player:GetAuras():FindMy(FingersOfFrost):IsUp()) |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
DefaultAPL:AddSpell( |
||||||
|
Frostbolt:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
-- AoE APL |
||||||
|
AoEAPL:AddSpell( |
||||||
|
FrozenOrb:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
Blizzard:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
CometStorm:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(DeathsChill):GetCount() >= 12 |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
IceNova:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and GlacialSpike:GetTimeSinceLastCast() < 1.5 |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
ShiftingPower:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Player) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
GlacialSpike:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
Flurry:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
IceLance:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(FingersOfFrost):IsUp() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
ArcaneExplosion:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() and Player:GetEnemies(10) >= 7 and Player:GetPP() > 30 |
||||||
|
end):SetTarget(Player) |
||||||
|
) |
||||||
|
|
||||||
|
AoEAPL:AddSpell( |
||||||
|
Frostbolt:CastableIf(function(self) |
||||||
|
return self:IsKnownAndUsable() |
||||||
|
end):SetTarget(Target) |
||||||
|
) |
||||||
|
|
||||||
|
FrostMageModule:Sync(function() |
||||||
|
if not Player:IsAffectingCombat() then return end |
||||||
|
|
||||||
|
CooldownAPL:Execute() |
||||||
|
|
||||||
|
if Player:GetEnemies(10) > 2 then |
||||||
|
AoEAPL:Execute() |
||||||
|
else |
||||||
|
DefaultAPL:Execute() |
||||||
|
end |
||||||
|
end) |
||||||
|
|
||||||
|
Bastion:Register(FrostMageModule) |
Loading…
Reference in new issue