You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.1 KiB

--- ============================ HEADER ============================
-- HeroLib
local HL = HeroLib
local Cache = HeroCache
local Unit = HL.Unit
local Player = Unit.Player
local Pet = Unit.Pet
local Target = Unit.Target
local Spell = HL.Spell
local Item = HL.Item
-- HeroRotation
local HR = HeroRotation
-- Spells
local SpellDeva = Spell.Evoker.Devastation
-- Lua
-- API
local GetPowerRegenForPowerType = GetPowerRegenForPowerType
local EssencePowerType = Enum.PowerType.Essence
--- ============================ CONTENT ============================
-- Devastation, ID: 1467
local DevOldIsCastable
DevOldIsCastable = HL.AddCoreOverride ("Spell.IsCastable",
function (self, BypassRecovery, Range, AoESpell, ThisUnit, Offset)
local RangeOK = true
if Range then
local RangeUnit = ThisUnit or Target
RangeOK = RangeUnit:IsInRange( Range, AoESpell )
end
local BaseCheck = DevOldIsCastable(self, BypassRecovery, Range, AoESpell, ThisUnit, Offset)
if self == SpellDeva.Firestorm then
return BaseCheck and not Player:IsCasting(self)
elseif self == SpellDeva.TipTheScales then
return BaseCheck and not Player:BuffUp(self)
else
return BaseCheck
end
end
, 1467)
HL.AddCoreOverride ("Player.EssenceTimeToMax",
function()
local Deficit = Player:EssenceDeficit()
if Deficit == 0 then return 0; end
local Regen = GetPowerRegenForPowerType(EssencePowerType)
if not Regen or Regen < 0.2 then Regen = 0.2; end
local TimeToOneEssence = 1 / Regen
local LastUpdate = Cache.Persistent.Player.LastPowerUpdate
return Deficit * TimeToOneEssence - (GetTime() - LastUpdate)
end
, 1467)
HL.AddCoreOverride ("Player.EssenceTimeToX",
function(Amount)
local Essence = Player:Essence()
if Essence >= Amount then return 0; end
local Regen = GetPowerRegenForPowerType(EssencePowerType)
local TimeToOneEssence = 1 / Regen
local LastUpdate = Cache.Persistent.Player.LastPowerUpdate
return ((Amount - Essence) * TimeToOneEssence) - (GetTime() - LastUpdate)
end
, 1467)
-- Preservation, ID: ????