local ____lualib = require("lualib_bundle") local __TS__Class = ____lualib.__TS__Class local __TS__ClassExtends = ____lualib.__TS__ClassExtends local __TS__ArrayMap = ____lualib.__TS__ArrayMap 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 registerModifier = ____dota_ts_adapter.registerModifier local ____WaveManager = require("WaveManager") local WaveManager = ____WaveManager.WaveManager local ____dota_ts_adapter = require("lib.dota_ts_adapter") local registerAbility = ____dota_ts_adapter.registerAbility local ____crystal_currency = require("crystal_currency") local CrystalCurrency = ____crystal_currency.CrystalCurrency local ____dps_tracker = require("abilities.modifiers.dps_tracker") local dps_tracker = ____dps_tracker.dps_tracker ____exports.item_test = __TS__Class() local item_test = ____exports.item_test item_test.name = "item_test" item_test.____file_path = "scripts/vscripts/items/default_items/item_test.lua" __TS__ClassExtends(item_test, BaseItem) function item_test.prototype.OnSpellStart(self) if not IsServer() then return end local caster = self:GetCaster() local winnerTeam = caster:GetTeamNumber() local readyCheckStarted = WaveManager:getInstance():StartCutsceneReadyCheck("camera_start_ending") if not readyCheckStarted then local mgr = GameRules.CutsceneManager if mgr and not mgr:isCutsceneActive() then mgr:startScene("camera_start_ending", {force = true}) GameRules:SendCustomMessage("[item_test] Фолбэк: катсцена запущена напрямую", 0, 0) else GameRules:SendCustomMessage("[item_test] Не удалось запустить катсцену", 0, 0) end else GameRules:SendCustomMessage("[item_test] Открыт ready-check катсцены", 0, 0) end self:GetCaster():AddAbility(dps_tracker.name) self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_effects_effect", {} ) local cursorTarget = self:GetCursorTarget() print("[item_test] Cursor target: " .. (cursorTarget and cursorTarget:GetName() or "none")) local owner = self:GetCaster() local modifiers = owner:FindAllModifiers() local modifierNames = __TS__ArrayMap( modifiers, function(____, mod) return mod:GetName() end ) print("[item_test] Modifiers on owner: " .. table.concat(modifierNames, ", ")) CrystalCurrency:getInstance():addCrystals( self:GetCaster():GetPlayerID(), 100 ) addLuck( nil, self:GetCaster(), 10 ) addCritMult( nil, self:GetCaster(), 30 ) if self:GetCaster():HasModifier("modifier_test_inf") then self:GetCaster():RemoveModifierByName("modifier_test_inf") else self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_test_inf", {} ) end end item_test = __TS__Decorate( item_test, item_test, {registerAbility(nil)}, {kind = "class", name = "item_test"} ) ____exports.item_test = item_test ____exports.modifier_test = __TS__Class() local modifier_test = ____exports.modifier_test modifier_test.name = "modifier_test" modifier_test.____file_path = "scripts/vscripts/items/default_items/item_test.lua" __TS__ClassExtends(modifier_test, BaseModifier) function modifier_test.prototype.IsHidden(self) return true end function modifier_test.prototype.IsDebuff(self) return false end function modifier_test.prototype.IsPurgable(self) return false end function modifier_test.prototype.GetAttributes(self) return MODIFIER_ATTRIBUTE_MULTIPLE end function modifier_test.prototype.OnCreated(self) if not IsServer() then return end local stackingCritMod = self:GetParent():FindModifierByName("modifier_stacking_crit") if stackingCritMod then local ability = self:GetAbility() stackingCritMod:AddCustomCrit(0, 500, "item_test", ability) end end function modifier_test.prototype.OnDestroy(self) if IsClient() then return end local parent = self:GetParent() if not parent or not IsValidEntity(parent) then return end local stackingCritModifier = parent:FindModifierByName("modifier_stacking_crit") if not stackingCritModifier then return end local ability = self:GetAbility() stackingCritModifier:RemoveCrit("item_test", ability) end function modifier_test.prototype.GetStatusEffectName(self) return "particles/status_fx/status_effect_abaddon_borrowed_time.vpcf" end function modifier_test.prototype.GetEffectName(self) return "particles/units/heroes/hero_abaddon/abaddon_borrowed_time.vpcf" end function modifier_test.prototype.StatusEffectPriority(self) return 10 end modifier_test = __TS__Decorate( modifier_test, modifier_test, {registerModifier(nil)}, {kind = "class", name = "modifier_test"} ) ____exports.modifier_test = modifier_test ____exports.modifier_test_inf = __TS__Class() local modifier_test_inf = ____exports.modifier_test_inf modifier_test_inf.name = "modifier_test_inf" modifier_test_inf.____file_path = "scripts/vscripts/items/default_items/item_test.lua" __TS__ClassExtends(modifier_test_inf, BaseModifier) function modifier_test_inf.prototype.____constructor(self, ...) BaseModifier.prototype.____constructor(self, ...) self.bonusStrength = 1000000 self.bonusAgility = 1000000 self.bonusIntelligence = 1000000 end function modifier_test_inf.prototype.DeclareFunctions(self) return {MODIFIER_PROPERTY_STATS_STRENGTH_BONUS, MODIFIER_PROPERTY_STATS_AGILITY_BONUS, MODIFIER_PROPERTY_STATS_INTELLECT_BONUS} end function modifier_test_inf.prototype.GetModifierBonusStats_Strength(self) return self.bonusStrength end function modifier_test_inf.prototype.GetModifierBonusStats_Agility(self) return self.bonusAgility end function modifier_test_inf.prototype.GetModifierBonusStats_Intellect(self) return self.bonusIntelligence end modifier_test_inf = __TS__Decorate( modifier_test_inf, modifier_test_inf, {registerModifier(nil)}, {kind = "class", name = "modifier_test_inf"} ) ____exports.modifier_test_inf = modifier_test_inf ____exports.modifier_test_agi = __TS__Class() local modifier_test_agi = ____exports.modifier_test_agi modifier_test_agi.name = "modifier_test_agi" modifier_test_agi.____file_path = "scripts/vscripts/items/default_items/item_test.lua" __TS__ClassExtends(modifier_test_agi, BaseModifier) function modifier_test_agi.prototype.____constructor(self, ...) BaseModifier.prototype.____constructor(self, ...) self.AgiPct = 1000 self.Lock = false end function modifier_test_agi.prototype.DeclareFunctions(self) return {MODIFIER_PROPERTY_STATS_AGILITY_BONUS} end function modifier_test_agi.prototype.GetModifierBonusStats_Agility(self) if not IsServer() then return 0 end if self.Lock then return 0 end self.Lock = true local agi = self:GetParent():GetAgility() self.Lock = false local bonus = self.AgiPct * agi / 100 return bonus end modifier_test_agi = __TS__Decorate( modifier_test_agi, modifier_test_agi, {registerModifier(nil)}, {kind = "class", name = "modifier_test_agi"} ) ____exports.modifier_test_agi = modifier_test_agi return ____exports