restructure

This commit is contained in:
2021-11-10 08:48:00 -05:00
parent d3eac6b70e
commit aaa089715d
12018 changed files with 6424 additions and 135034 deletions

View File

@@ -0,0 +1,128 @@
-- 此通用方法会加重资源消耗,改为单个
modifier_ability_power_common = class({})
local public = modifier_ability_power_common
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
-- 有个显示bug_Description描述中引用了值名称的不会变单独的会变
}
-- function public:IsHidden()
-- return true
-- end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:OnCreated( kv )
-- self.bDirty = true --本地时在其它函数不起作用
if IsServer() then
-- local playerId = self:GetParent():GetPlayerOwnerID()
-- CustomNetTables:SetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(playerId), GameRules.player_power_enabled[playerId])
-- print("---- is Server")
-- DeepPrintTable(GameRules.player_power_enabled[playerId])
-- else --这里可以生效,但在其它函数里失效
-- self:GetParent().PowerAbilityUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
-- print("---- not Server")
-- DeepPrintTable(self:GetParent().PowerAbilityUpgrades)
end
end
-- function public:OnCreated( kv )
-- if not IsServer() then return end
-- self:OnRefresh( kv )
-- end
-- function public:OnRefresh( kv )
-- -- 设置层数仅本地会触发无层数设置为1层时不触发
-- -- 使用 modifier:ForceRefresh() 会双端触发
-- if not IsServer() then return end
-- end
function public:GetModifierOverrideAbilitySpecial( params )
-- 这两个必须在双端跑
if self:GetParent() == nil or params.ability == nil then
return 0
end
-- 本地取值失效并且从NetTable取值后每次生成新的一张table下同
-- local hUpgrades = self:GetParent().PowerAbilityUpgrades
-- if hUpgrades == nil then
-- hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
-- print("---- hUpgrades == nil CustomNetTables:GetTableValue")
-- print(hUpgrades)
-- end
local hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
local szUnitName = self:GetParent():GetUnitName()
local szAbilityName = params.ability:GetAbilityName()
local szSpecialValueName = params.ability_special_value
if hUpgrades == nil or hUpgrades[szUnitName] == nil or hUpgrades[szUnitName][szAbilityName] == nil then
return 0
end
if hUpgrades[szUnitName][szAbilityName][szSpecialValueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
-- 这两个必须在双端跑
local hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
local szUnitName = self:GetParent():GetUnitName()
local szAbilityName = params.ability:GetAbilityName()
local szSpecialValueName = params.ability_special_value
local nSpecialLevel = params.ability_special_level
if hUpgrades == nil or hUpgrades[szUnitName] == nil or hUpgrades[szUnitName][szAbilityName] == nil then
return 0
end
local flBaseValue = params.ability:GetLevelSpecialValueNoOverride(szSpecialValueName, nSpecialLevel)
local SpecialValueUpgrade = hUpgrades[szUnitName][szAbilityName][szSpecialValueName]
if SpecialValueUpgrade ~= nil then
return flBaseValue + SpecialValueUpgrade
-- 本地不起作用
-- if self.bDirty == false and SpecialValueUpgrade["cached_result"] ~= nil and SpecialValueUpgrade["cached_result"][nSpecialLevel] ~= nil then
-- print("---- return cached_result")
-- return SpecialValueUpgrade["cached_result"][nSpecialLevel]
-- end
-- local flResult = flBaseValue + SpecialValueUpgrade["value"]
-- if SpecialValueUpgrade["cached_result"] == nil then
-- SpecialValueUpgrade["cached_result"] = {}
-- end
-- SpecialValueUpgrade["cached_result"][nSpecialLevel] = flResult
-- self.bDirty = false
-- return flResult
end
return flBaseValue
end