Auto-commit: changes committed

main
Emlembow 5 months ago
parent aab26cbbc7
commit e7e473f6f4
  1. 65
      DiscPriest.lua

@ -9,7 +9,6 @@ local SpellBook = Bastion.SpellBook:New()
-- Spells
local PowerWordShield = SpellBook:GetSpell(17)
local PurgeTheWicked = SpellBook:GetSpell(204197)
local Penance = SpellBook:GetSpell(47540)
local PowerWordRadiance = SpellBook:GetSpell(194509)
local Shadowfiend = SpellBook:GetSpell(34433)
@ -31,7 +30,6 @@ local Voidwraith = SpellBook:GetSpell(406786)
-- Buffs and Debuffs
local Atonement = SpellBook:GetSpell(194384)
local PurgeTheWickedDebuff = SpellBook:GetSpell(204213)
local PowerOfTheDarkSide = SpellBook:GetSpell(198068)
local ShadowCovenantBuff = SpellBook:GetSpell(322105)
local WeakenedSoul = SpellBook:GetSpell(6788)
@ -95,15 +93,17 @@ local AtoneTarget = Bastion.UnitManager:CreateCustomUnit('atonetarget', function
return target or Player
end)
local PurgeTheWickedTarget = Bastion.UnitManager:CreateCustomUnit('purgethewickedtarget', function(unit)
-- Target the highest HP enemy for DPS APL
local HighestHPTarget = Bastion.UnitManager:CreateCustomUnit('highesthptarget', function(unit)
local target = nil
local highestHP = 0
Bastion.UnitManager:EnumEnemies(function(unit)
if unit:IsAffectingCombat() and Player:IsWithinCombatDistance(unit, 40) and Player:CanSee(unit) then
local aura = unit:GetAuras():FindMy(PurgeTheWickedDebuff)
if not aura:IsUp() then
local hp = unit:GetHP()
if hp > highestHP then
target = unit
return true
highestHP = hp
end
end
end)
@ -144,6 +144,13 @@ DefaultAPL:AddSpell(
end):SetTarget(Player)
)
DefaultAPL:AddSpell(
Penance:CastableIf(function(self)
return AtoneTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and not AtoneTarget:GetAuras():FindMy(Atonement):IsUp()
end):SetTarget(AtoneTarget)
)
DefaultAPL:AddSpell(
Renew:CastableIf(function(self)
return Lowest:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
@ -184,13 +191,13 @@ CooldownAPL:AddSpell(
Shadowfiend:CastableIf(function(self)
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and not VoidwraithTalent:IsKnownAndUsable()
end):SetTarget(Target)
end):SetTarget(HighestHPTarget)
)
CooldownAPL:AddSpell(
Voidwraith:CastableIf(function(self)
return self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
end):SetTarget(Target)
end):SetTarget(HighestHPTarget)
)
-- Defensive APL
@ -216,47 +223,39 @@ DefensiveAPL:AddSpell(
)
-- DPS APL
DpsAPL:AddSpell(
PurgeTheWicked:CastableIf(function(self)
return PurgeTheWickedTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and not PurgeTheWickedTarget:GetAuras():FindMy(PurgeTheWickedDebuff):IsUp()
and Player:IsWithinCombatDistance(PurgeTheWickedTarget, 40)
end):SetTarget(PurgeTheWickedTarget)
)
DpsAPL:AddSpell(
Schism:CastableIf(function(self)
return Target:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(Target, 40)
end):SetTarget(Target)
return HighestHPTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(HighestHPTarget, 40)
end):SetTarget(HighestHPTarget)
)
DpsAPL:AddSpell(
Penance:CastableIf(function(self)
return Target:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(Target, 40)
end):SetTarget(Target)
return HighestHPTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(HighestHPTarget, 40)
end):SetTarget(HighestHPTarget)
)
DpsAPL:AddSpell(
MindBlast:CastableIf(function(self)
return Target:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(Target, 40)
end):SetTarget(Target)
return HighestHPTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(HighestHPTarget, 40)
end):SetTarget(HighestHPTarget)
)
DpsAPL:AddSpell(
ShadowWordDeath:CastableIf(function(self)
return Target:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Target:GetHP() < 20 and Player:IsWithinCombatDistance(Target, 40)
end):SetTarget(Target)
return HighestHPTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and HighestHPTarget:GetHP() < 20 and Player:IsWithinCombatDistance(HighestHPTarget, 40)
end):SetTarget(HighestHPTarget)
)
DpsAPL:AddSpell(
Smite:CastableIf(function(self)
return Target:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(Target, 40)
end):SetTarget(Target)
return HighestHPTarget:Exists() and self:IsKnownAndUsable() and not Player:IsCastingOrChanneling()
and Player:IsWithinCombatDistance(HighestHPTarget, 40)
end):SetTarget(HighestHPTarget)
)
-- Module Sync
@ -280,6 +279,8 @@ DiscPriestModule:Sync(function()
Renew:Cast(AtoneTarget)
elseif AtoneTarget:GetHP() < 80 then
FlashHeal:Cast(AtoneTarget)
elseif AtoneTarget:GetAuras():FindMy(Atonement):IsUp() and Penance:IsKnownAndUsable() then
Penance:Cast(AtoneTarget)
end
end
@ -292,4 +293,4 @@ DiscPriestModule:Sync(function()
end
end)
Bastion:Register(DiscPriestModule)
Bastion:Register(DiscPriestModule)

Loading…
Cancel
Save