forked from Bastion/Bastion
parent
df988ab750
commit
e0c2e15a47
@ -0,0 +1,69 @@ |
|||||||
|
local Tinkr, _Bastion = ... |
||||||
|
|
||||||
|
---@type Bastion |
||||||
|
local Bastion = _Bastion |
||||||
|
|
||||||
|
local Player = Bastion.UnitManager:Get('player') |
||||||
|
local Target = Bastion.UnitManager:Get('target') |
||||||
|
local None = Bastion.UnitManager:Get('none') |
||||||
|
|
||||||
|
local _HammerOfWrath = Bastion.SpellBook:GetSpell(24275) |
||||||
|
local AvengingWrath = Bastion.SpellBook:GetSpell(389539) |
||||||
|
|
||||||
|
local HammerOfWrathTarget = Bastion.UnitManager:CreateCustomUnit('hammerofwrath', function() |
||||||
|
if not _HammerOfWrath:IsKnownAndUsable() then return None end |
||||||
|
|
||||||
|
if Player:GetAuras():FindMy(AvengingWrath):IsUp() and _HammerOfWrath:IsKnownAndUsable() and Target:Exists() and Target:IsEnemy() and Target:IsAffectingCombat() and _HammerOfWrath:IsInRange(Target) then |
||||||
|
return Target |
||||||
|
end |
||||||
|
|
||||||
|
local how = nil |
||||||
|
|
||||||
|
Bastion.UnitManager:EnumEnemies(function(unit) |
||||||
|
if unit:IsDead() then |
||||||
|
return false |
||||||
|
end |
||||||
|
|
||||||
|
if not Player:CanSee(unit) then |
||||||
|
return false |
||||||
|
end |
||||||
|
|
||||||
|
if not Player:IsFacing(unit) then |
||||||
|
return false |
||||||
|
end |
||||||
|
|
||||||
|
if not _HammerOfWrath:IsInRange(unit) then |
||||||
|
return false |
||||||
|
end |
||||||
|
|
||||||
|
if Player:GetAuras():FindMy(AvengingWrath):IsUp() then |
||||||
|
how = unit |
||||||
|
return true |
||||||
|
end |
||||||
|
|
||||||
|
if unit:GetHealthPercent() <= 20 then |
||||||
|
how = unit |
||||||
|
return true |
||||||
|
end |
||||||
|
|
||||||
|
return false |
||||||
|
end) |
||||||
|
|
||||||
|
if how == nil then |
||||||
|
how = None |
||||||
|
end |
||||||
|
|
||||||
|
return how |
||||||
|
end) |
||||||
|
|
||||||
|
---@alias HammerOfWrath fun():boolean |
||||||
|
|
||||||
|
---@type HammerOfWrath |
||||||
|
function HammerOfWrath() |
||||||
|
if HammerOfWrathTarget:Exists() and not Player:IsCastingOrChanneling() then |
||||||
|
return _HammerOfWrath:Cast(HammerOfWrathTarget) |
||||||
|
end |
||||||
|
return false |
||||||
|
end |
||||||
|
|
||||||
|
return HammerOfWrath |
Loading…
Reference in new issue