initial commit
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
||||
local ____exports = {}
|
||||
local manageVampirismModifier
|
||||
require("lib.dota_ts_adapter")
|
||||
local ____modifier_vampirism = require("abilities.modifiers.modifier_vampirism")
|
||||
local modifier_vampirism = ____modifier_vampirism.modifier_vampirism
|
||||
function ____exports.getPhysicalVampirism(self, hero)
|
||||
if not hero or not IsValidEntity(hero) then
|
||||
return 0
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return 0
|
||||
end
|
||||
local key = "physical_vampirism_" .. tostring(playerId)
|
||||
local data = CustomNetTables:GetTableValue("custom_stats", key)
|
||||
local ____data_0
|
||||
if data then
|
||||
____data_0 = data.value
|
||||
else
|
||||
____data_0 = 0
|
||||
end
|
||||
local value = ____data_0
|
||||
return value
|
||||
end
|
||||
function ____exports.getMagicalVampirism(self, hero)
|
||||
if not hero or not IsValidEntity(hero) then
|
||||
return 0
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return 0
|
||||
end
|
||||
local key = "magical_vampirism_" .. tostring(playerId)
|
||||
local data = CustomNetTables:GetTableValue("custom_stats", key)
|
||||
local ____data_1
|
||||
if data then
|
||||
____data_1 = data.value
|
||||
else
|
||||
____data_1 = 0
|
||||
end
|
||||
local value = ____data_1
|
||||
return value
|
||||
end
|
||||
function manageVampirismModifier(self, hero)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local physicalVampirism = ____exports.getPhysicalVampirism(nil, hero)
|
||||
local magicalVampirism = ____exports.getMagicalVampirism(nil, hero)
|
||||
local hasVampirism = physicalVampirism > 0 or magicalVampirism > 0
|
||||
local hasModifier = hero:HasModifier("modifier_vampirism")
|
||||
if hasVampirism and not hasModifier then
|
||||
hero:AddNewModifier(
|
||||
hero,
|
||||
getModifierSourceAbility(nil, hero),
|
||||
modifier_vampirism.name,
|
||||
{}
|
||||
)
|
||||
elseif not hasVampirism and hasModifier then
|
||||
hero:RemoveModifierByName("modifier_vampirism")
|
||||
end
|
||||
end
|
||||
--- Партикл эффекта вампиризма (modifier без своего Precache в KV)
|
||||
function ____exports.precacheVampirismParticle(self, context)
|
||||
PrecacheResource("particle", "particles/units/heroes/hero_bloodseeker/bloodseeker_bloodbath.vpcf", context)
|
||||
end
|
||||
local playerIdToPhysicalVampirism = {}
|
||||
local playerIdToMagicalVampirism = {}
|
||||
if not playerIdToPhysicalVampirism then
|
||||
playerIdToPhysicalVampirism = {}
|
||||
end
|
||||
if not playerIdToMagicalVampirism then
|
||||
playerIdToMagicalVampirism = {}
|
||||
end
|
||||
local function getPlayerKey(self, hero, ____type)
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return nil
|
||||
end
|
||||
return (____type .. "_") .. tostring(playerId)
|
||||
end
|
||||
function ____exports.setPhysicalVampirism(self, hero, vampirism)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
local key = "physical_vampirism_" .. tostring(playerId)
|
||||
CustomNetTables:SetTableValue("custom_stats", key, {value = vampirism})
|
||||
end
|
||||
function ____exports.addPhysicalVampirism(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local current = ____exports.getPhysicalVampirism(nil, hero)
|
||||
local newValue = current + delta
|
||||
____exports.setPhysicalVampirism(nil, hero, newValue)
|
||||
manageVampirismModifier(nil, hero)
|
||||
end
|
||||
function ____exports.reducePhysicalVampirism(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local current = ____exports.getPhysicalVampirism(nil, hero)
|
||||
local newValue = math.max(0, current - delta)
|
||||
____exports.setPhysicalVampirism(nil, hero, newValue)
|
||||
manageVampirismModifier(nil, hero)
|
||||
end
|
||||
function ____exports.setMagicalVampirism(self, hero, vampirism)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return
|
||||
end
|
||||
local key = "magical_vampirism_" .. tostring(playerId)
|
||||
CustomNetTables:SetTableValue("custom_stats", key, {value = vampirism})
|
||||
end
|
||||
function ____exports.addMagicalVampirism(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local current = ____exports.getMagicalVampirism(nil, hero)
|
||||
local newValue = current + delta
|
||||
____exports.setMagicalVampirism(nil, hero, newValue)
|
||||
manageVampirismModifier(nil, hero)
|
||||
end
|
||||
function ____exports.reduceMagicalVampirism(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local current = ____exports.getMagicalVampirism(nil, hero)
|
||||
local newValue = math.max(0, current - delta)
|
||||
____exports.setMagicalVampirism(nil, hero, newValue)
|
||||
manageVampirismModifier(nil, hero)
|
||||
end
|
||||
local g = _G
|
||||
g.setPhysicalVampirism = ____exports.setPhysicalVampirism
|
||||
g.addPhysicalVampirism = ____exports.addPhysicalVampirism
|
||||
g.reducePhysicalVampirism = ____exports.reducePhysicalVampirism
|
||||
g.getPhysicalVampirism = ____exports.getPhysicalVampirism
|
||||
g.setMagicalVampirism = ____exports.setMagicalVampirism
|
||||
g.addMagicalVampirism = ____exports.addMagicalVampirism
|
||||
g.reduceMagicalVampirism = ____exports.reduceMagicalVampirism
|
||||
g.getMagicalVampirism = ____exports.getMagicalVampirism
|
||||
return ____exports
|
||||
Reference in New Issue
Block a user