initial commit
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
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("<font color='#f6d28b'>[item_test] Фолбэк: катсцена запущена напрямую</font>", 0, 0)
|
||||
else
|
||||
GameRules:SendCustomMessage("<font color='#ff7070'>[item_test] Не удалось запустить катсцену</font>", 0, 0)
|
||||
end
|
||||
else
|
||||
GameRules:SendCustomMessage("<font color='#8be39f'>[item_test] Открыт ready-check катсцены</font>", 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
|
||||
Reference in New Issue
Block a user