initial commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
|
||||
local ____exports = {}
|
||||
local CRIT_MULT_KEY_PREFIX
|
||||
require("lib.dota_ts_adapter")
|
||||
function ____exports.getCritMult(self, hero)
|
||||
if not hero or not IsValidEntity(hero) then
|
||||
return 100
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return 100
|
||||
end
|
||||
local key = CRIT_MULT_KEY_PREFIX .. tostring(playerId)
|
||||
local data = CustomNetTables:GetTableValue("custom_stats", key)
|
||||
local ____data_0
|
||||
if data then
|
||||
____data_0 = data.value
|
||||
else
|
||||
____data_0 = 100
|
||||
end
|
||||
return ____data_0
|
||||
end
|
||||
CRIT_MULT_KEY_PREFIX = "crit_mult_"
|
||||
function ____exports.setCritMult(self, hero, critMult)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local playerId = hero:GetPlayerOwnerID()
|
||||
if playerId == nil or playerId == nil or playerId < 0 then
|
||||
return
|
||||
end
|
||||
local key = CRIT_MULT_KEY_PREFIX .. tostring(playerId)
|
||||
CustomNetTables:SetTableValue("custom_stats", key, {value = critMult})
|
||||
end
|
||||
function ____exports.addCritMult(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
local current = ____exports.getCritMult(nil, hero)
|
||||
____exports.setCritMult(nil, hero, current + delta)
|
||||
end
|
||||
function ____exports.reduceCritMult(self, hero, delta)
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
____exports.addCritMult(
|
||||
nil,
|
||||
hero,
|
||||
-math.abs(delta)
|
||||
)
|
||||
end
|
||||
--- Итоговый множитель урона крита (физика и магия): sum(mult/100 из источников) × (крит_мульт героя / 100).
|
||||
--
|
||||
-- @param stackedCritMultSum сумма mult/100 по сработавшим источникам (например 1.75 + 1.6)
|
||||
function ____exports.getFinalStackingCritMultiplier(self, unit, stackedCritMultSum)
|
||||
if stackedCritMultSum <= 0 then
|
||||
return 0
|
||||
end
|
||||
local critMultStat = unit:IsHero() and ____exports.getCritMult(nil, unit) or 100
|
||||
return stackedCritMultSum * (critMultStat / 100)
|
||||
end
|
||||
local g = _G
|
||||
g.setCritMult = ____exports.setCritMult
|
||||
g.addCritMult = ____exports.addCritMult
|
||||
g.reduceCritMult = ____exports.reduceCritMult
|
||||
g.getCritMult = ____exports.getCritMult
|
||||
g.getFinalStackingCritMultiplier = ____exports.getFinalStackingCritMultiplier
|
||||
return ____exports
|
||||
Reference in New Issue
Block a user