|
|
|
@ -8,7 +8,20 @@ local Player = Bastion.UnitManager:Get('player') |
|
|
|
|
local Target = Bastion.UnitManager:Get('target') |
|
|
|
|
local None = Bastion.UnitManager:Get('none') |
|
|
|
|
|
|
|
|
|
local PurifyingBrew = Bastion.SpellBook:GetSpell(119582) |
|
|
|
|
local CelestialBrew = Bastion.SpellBook:GetSpell(322507) |
|
|
|
|
local PurifiedChi = Bastion.SpellBook:GetSpell(325092) |
|
|
|
|
local AutoAttack = Bastion.SpellBook:GetSpell(6603) |
|
|
|
|
local ImpCelestialBrew = Bastion.SpellBook:GetSpell(322510) |
|
|
|
|
local ChiWave = Bastion.SpellBook:GetSpell(115098) |
|
|
|
|
local RushingJadeWind = Bastion.SpellBook:GetSpell(116847) |
|
|
|
|
local BreathOfFire = Bastion.SpellBook:GetSpell(115181) |
|
|
|
|
local KegSmash = Bastion.SpellBook:GetSpell(121253) |
|
|
|
|
local WeaponsOfOrder = Bastion.SpellBook:GetSpell(387184) |
|
|
|
|
local BlackoutKick = Bastion.SpellBook:GetSpell(205523) |
|
|
|
|
local RisingSunKick = Bastion.SpellBook:GetSpell(107428) |
|
|
|
|
|
|
|
|
|
local CDsEnabled = false |
|
|
|
|
|
|
|
|
|
---@return boolean |
|
|
|
|
local function CombatRotation() |
|
|
|
@ -17,6 +30,50 @@ local function CombatRotation() |
|
|
|
|
AutoAttack:Cast(Target) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
local Stagger = UnitStagger("player") |
|
|
|
|
|
|
|
|
|
if Stagger > 10000 and PurifyingBrew:IsKnownAndUsable() and PurifyingBrew:GetChargesRemaining() > 1 or (PurifyingBrew:GetNextChargeCooldown() <= 3 and PurifyingBrew:GetChargesRemaining() == 1) then |
|
|
|
|
PurifyingBrew:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if CelestialBrew:IsKnownAndUsable() and (not ImpCelestialBrew:IsKnown() or (ImpCelestialBrew:IsKnown() and Player:GetAuras():FindMy(PurifiedChi):IsUp())) then |
|
|
|
|
return CelestialBrew:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if not Player:InMelee(Target) then |
|
|
|
|
if not Player:GetAuras():FindMy(RushingJadeWind):IsUp() and RushingJadeWind:IsKnownAndUsable() then |
|
|
|
|
return RushingJadeWind:Cast(Player) |
|
|
|
|
end |
|
|
|
|
if ChiWave:IsKnownAndUsable() and Target:Exists() and ChiWave:IsInRange(Target) then |
|
|
|
|
return ChiWave:Cast(Target) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if BreathOfFire:IsKnownAndUsable() and BreathOfFire:IsInRange(Target) then |
|
|
|
|
return BreathOfFire:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if KegSmash:IsKnownAndUsable() and Target:Exists() and KegSmash:IsInRange(Target) and (KegSmash:GetChargesRemaining() == KegSmash:GetMaxCharges() or (KegSmash:GetChargesRemaining() == (KegSmash:GetMaxCharges() - 1)) and KegSmash:GetNextChargeCooldown() <= 2) then |
|
|
|
|
return KegSmash:Cast(Target) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if WeaponsOfOrder:IsKnownAndUsable() and CDsEnabled then |
|
|
|
|
return WeaponsOfOrder:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Exploding Keg in AOE here |
|
|
|
|
-- Rising Sun Kick In AOE here |
|
|
|
|
|
|
|
|
|
if BlackoutKick:IsKnownAndUsable() and Target:Exists() and BlackoutKick:IsInRange(Target) then |
|
|
|
|
return BlackoutKick:Cast(Target) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if RisingSunKick:IsKnownAndUsable() and Target:Exists() and RisingSunKick:IsInRange(Target) then |
|
|
|
|
return RisingSunKick:Cast(Target) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Exploding Keg in ST here |
|
|
|
|
|
|
|
|
|
return false |
|
|
|
|
end |
|
|
|
|
|
|
|
|
@ -37,7 +94,7 @@ BrewModule:Sync(function() |
|
|
|
|
return false |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if Player:IsAffectingCombat() then |
|
|
|
|
if Player:IsAffectingCombat() or IsCurrentSpell(AutoAttack:GetID()) then |
|
|
|
|
-- Combat Rotation |
|
|
|
|
return CombatRotation() |
|
|
|
|
else |
|
|
|
|