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 registerAbility = ____dota_ts_adapter.registerAbility ____exports.item_banana = __TS__Class() local item_banana = ____exports.item_banana item_banana.name = "item_banana" item_banana.____file_path = "scripts/vscripts/items/util_items/item_banana.lua" __TS__ClassExtends(item_banana, BaseItem) function item_banana.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_banana.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_banana.prototype.OnSpellStart(self) local target = self:GetCursorTarget() local item = self if not target then return end local manaAmount = self:GetSpecialValueFor("mana") target:EmitSound("DOTA_Item.Cheese.Activate") if manaAmount > 0 then target:GiveMana(manaAmount) SendOverheadEventMessage( nil, OVERHEAD_ALERT_MANA_ADD, target, manaAmount, target:GetPlayerOwner() ) end if 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 end if item:GetCurrentCharges() <= item:GetInitialCharges() then UTIL_Remove(item) return end item:SetCurrentCharges(item:GetCurrentCharges() - item:GetInitialCharges()) end end item_banana = __TS__Decorate( item_banana, item_banana, {registerAbility(nil)}, {kind = "class", name = "item_banana"} ) ____exports.item_banana = item_banana return ____exports