diff --git a/src/models/RolePlugin.lua b/src/models/RolePlugin.lua index 42208c7..960030c 100644 --- a/src/models/RolePlugin.lua +++ b/src/models/RolePlugin.lua @@ -2788,30 +2788,32 @@ function RolePlugin.bind(Role) end local function appendAdvBnous(dstBnous, srcBnous) - if not dstBnous and not srcBnous then return end + if not dstBnous and not srcBnous then return {} end + local result = clone(dstBnous or {}) for time, set in pairs(srcBnous) do - if not dstBnous[time] then - dstBnous[time] = {} + if not result[time] then + result[time] = {} end for key, value in pairs(set) do - dstBnous[time][key] = (dstBnous[time][key] or 0) + value + result[time][key] = (result[time][key] or 0) + value end end + return result end local function appendTableBnous(dstBnous, srcBnous) - if not dstBnous and not srcBnous then return end + if not dstBnous and not srcBnous then return {} end + local result = clone(dstBnous or {}) for k, v in pairs(srcBnous) do - dstBnous[k] = (dstBnous[k] or 0) + v + result[k] = (result[k] or 0) + v end + return result end function Role:getBnousAdv() local towerBnous = self:getTowerBnousActive() local levelBnous = self:getLevelBnous() local adv = levelBnous[SystemBnousType.Adv] or {} - towerBnous[SystemBnousType.Adv] = towerBnous[SystemBnousType.Adv] or {} - appendAdvBnous(towerBnous[SystemBnousType.Adv], adv) - return towerBnous[SystemBnousType.Adv] + return appendAdvBnous(towerBnous[SystemBnousType.Adv], adv) end function Role:getBnousHangTime() @@ -2825,18 +2827,14 @@ function RolePlugin.bind(Role) local towerBnous = self:getTowerBnousActive() local levelBnous = self:getLevelBnous() local pvpTicket = levelBnous[SystemBnousType.PvpTicket] or {} - towerBnous[SystemBnousType.PvpTicket] = towerBnous[SystemBnousType.PvpTicket] or {} - appendTableBnous(towerBnous[SystemBnousType.PvpTicket], pvpTicket) - return towerBnous[SystemBnousType.PvpTicket] + return appendTableBnous(towerBnous[SystemBnousType.PvpTicket], pvpTicket) end function Role:getBnousSweep() local towerBnous = self:getTowerBnousActive() local levelBnous = self:getLevelBnous() local sweepReward = levelBnous[SystemBnousType.SweepReward] or {} - towerBnous[SystemBnousType.SweepReward] = towerBnous[SystemBnousType.SweepReward] or {} - appendTableBnous(towerBnous[SystemBnousType.SweepReward], sweepReward) - return towerBnous[SystemBnousType.SweepReward] + return appendTableBnous(towerBnous[SystemBnousType.SweepReward], sweepReward) end function Role:getBnousDismantlingMaximum() -- libgit2 0.21.2