Files
Dota-Zombie-Invasion/scripts/vscripts/items/util_items/item_meat.lua
T
2026-05-29 15:11:31 +07:00

87 lines
2.9 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 ____modifier_general_hunger = require("abilities.modifiers.modifier_general_hunger")
local modifier_general_hunger = ____modifier_general_hunger.modifier_general_hunger
local ____dota_ts_adapter = require("lib.dota_ts_adapter")
local BaseItem = ____dota_ts_adapter.BaseItem
local ____dota_ts_adapter = require("lib.dota_ts_adapter")
local registerAbility = ____dota_ts_adapter.registerAbility
____exports.item_meat = __TS__Class()
local item_meat = ____exports.item_meat
item_meat.name = "item_meat"
item_meat.____file_path = "scripts/vscripts/items/util_items/item_meat.lua"
__TS__ClassExtends(item_meat, BaseItem)
function item_meat.prototype.CastFilterResultTarget(self, target)
if IsServer() then
if not target:IsRealHero() then
return UF_FAIL_CUSTOM
end
if self:GetCurrentCharges() < self:GetInitialCharges() then
return UF_FAIL_CUSTOM
end
return UF_SUCCESS
end
return UF_SUCCESS
end
function item_meat.prototype.GetCustomCastErrorTarget(self, target)
if IsServer() then
if not target:IsRealHero() then
return "#dota_hud_error_cheese_bad_target"
end
if self:GetCurrentCharges() < self:GetInitialCharges() then
return "#dota_hud_error_havent_charges"
end
end
return ""
end
function item_meat.prototype.OnSpellStart(self)
local target = self:GetCursorTarget()
local item = self
local healAmount = self:GetSpecialValueFor("heal")
if target ~= nil then
target:EmitSound("DOTA_Item.Cheese.Activate")
target:Heal(healAmount, self)
SendOverheadEventMessage(
nil,
OVERHEAD_ALERT_HEAL,
target,
healAmount,
target:GetPlayerOwner()
)
end
if target and target:IsRealHero() then
local modifier = target:AddNewModifier(
self:GetCaster(),
self,
modifier_general_hunger.name,
{}
)
if modifier then
local hunger_bonus = self:GetSpecialValueFor("hunger_bonus")
do
local i = 0
while i < hunger_bonus do
modifier:IncrementStackCount()
i = i + 1
end
end
if item:GetCurrentCharges() <= item:GetInitialCharges() then
UTIL_Remove(item)
return
end
item:SetCurrentCharges(item:GetCurrentCharges() - item:GetInitialCharges())
end
end
end
item_meat = __TS__Decorate(
item_meat,
item_meat,
{registerAbility(nil)},
{kind = "class", name = "item_meat"}
)
____exports.item_meat = item_meat
return ____exports