Files
2026-05-29 15:11:31 +07:00

107 lines
4.3 KiB
Lua

local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local __TS__Decorate = ____lualib.__TS__Decorate
local ____exports = {}
local ____dota_ts_adapter = require("lib.dota_ts_adapter")
local BaseItem = ____dota_ts_adapter.BaseItem
local BaseModifier = ____dota_ts_adapter.BaseModifier
local registerAbility = ____dota_ts_adapter.registerAbility
local registerModifier = ____dota_ts_adapter.registerModifier
local ____modifier_stats_multiplier = require("modifiers.modifier_stats_multiplier")
local removeStatsMultiplierSource = ____modifier_stats_multiplier.removeStatsMultiplierSource
local setStatsMultiplierSource = ____modifier_stats_multiplier.setStatsMultiplierSource
local ULTIMATE_CROWN_SOURCE_PREFIX = "item_ultimate_crown"
____exports.item_ultimate_crown = __TS__Class()
local item_ultimate_crown = ____exports.item_ultimate_crown
item_ultimate_crown.name = "item_ultimate_crown"
item_ultimate_crown.____file_path = "scripts/vscripts/items/default_items/item_ultimate_crown.lua"
__TS__ClassExtends(item_ultimate_crown, BaseItem)
function item_ultimate_crown.prototype.GetIntrinsicModifierName(self)
return ____exports.modifier_item_ultimate_crown.name
end
item_ultimate_crown = __TS__Decorate(
item_ultimate_crown,
item_ultimate_crown,
{registerAbility(nil)},
{kind = "class", name = "item_ultimate_crown"}
)
____exports.item_ultimate_crown = item_ultimate_crown
____exports.modifier_item_ultimate_crown = __TS__Class()
local modifier_item_ultimate_crown = ____exports.modifier_item_ultimate_crown
modifier_item_ultimate_crown.name = "modifier_item_ultimate_crown"
modifier_item_ultimate_crown.____file_path = "scripts/vscripts/items/default_items/item_ultimate_crown.lua"
__TS__ClassExtends(modifier_item_ultimate_crown, BaseModifier)
function modifier_item_ultimate_crown.prototype.____constructor(self, ...)
BaseModifier.prototype.____constructor(self, ...)
self.statsSourceId = ""
end
function modifier_item_ultimate_crown.prototype.IsHidden(self)
return true
end
function modifier_item_ultimate_crown.prototype.IsPurgable(self)
return false
end
function modifier_item_ultimate_crown.prototype.RemoveOnDeath(self)
return false
end
function modifier_item_ultimate_crown.prototype.GetAttributes(self)
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function modifier_item_ultimate_crown.prototype.OnCreated(self)
if not IsServer() then
return
end
local hero = self:GetParent()
if not (hero and hero:IsRealHero()) then
return
end
self.statsSourceId = (ULTIMATE_CROWN_SOURCE_PREFIX .. "_") .. tostring(hero:entindex())
local ability = self:GetAbility()
setStatsMultiplierSource(
nil,
hero,
self.statsSourceId,
function()
if not hero or not IsValidEntity(hero) or not hero:IsRealHero() then
return 0
end
return ability and ability:GetSpecialValueFor("all_stats_pct") or 0
end,
"all_stats_pct"
)
end
function modifier_item_ultimate_crown.prototype.OnDestroy(self)
if not IsServer() then
return
end
if self.statsSourceId == "" then
return
end
local hero = self:GetParent()
if hero and IsValidEntity(hero) then
removeStatsMultiplierSource(nil, hero, self.statsSourceId)
end
self.statsSourceId = ""
end
function modifier_item_ultimate_crown.prototype.DeclareFunctions(self)
return {MODIFIER_PROPERTY_STATS_STRENGTH_BONUS, MODIFIER_PROPERTY_STATS_AGILITY_BONUS, MODIFIER_PROPERTY_STATS_INTELLECT_BONUS}
end
function modifier_item_ultimate_crown.prototype.GetModifierBonusStats_Strength(self)
return self:GetAbility():GetSpecialValueFor("bonus_all_stats")
end
function modifier_item_ultimate_crown.prototype.GetModifierBonusStats_Agility(self)
return self:GetAbility():GetSpecialValueFor("bonus_all_stats")
end
function modifier_item_ultimate_crown.prototype.GetModifierBonusStats_Intellect(self)
return self:GetAbility():GetSpecialValueFor("bonus_all_stats")
end
modifier_item_ultimate_crown = __TS__Decorate(
modifier_item_ultimate_crown,
modifier_item_ultimate_crown,
{registerModifier(nil)},
{kind = "class", name = "modifier_item_ultimate_crown"}
)
____exports.modifier_item_ultimate_crown = modifier_item_ultimate_crown
return ____exports