Fix for the Bob stuff
This commit is contained in:
@@ -88,8 +88,11 @@ function AmputationHandler:execute(damagePlayer)
|
||||
else
|
||||
-- TODO Send server command to manage items and spawn on another player
|
||||
end
|
||||
|
||||
-- Add it to the list of cut limbs on this local client
|
||||
CachedDataHandler.AddAmputatedLimb(self.patientPl:getUsername(), self.limbName)
|
||||
local username = self.patientPl:getUsername()
|
||||
CachedDataHandler.AddAmputatedLimb(username, self.limbName)
|
||||
CachedDataHandler.CalculateHighestAmputatedLimbs(username)
|
||||
end
|
||||
|
||||
---Deletes the instance
|
||||
|
||||
@@ -6,6 +6,12 @@ local CommonMethods = require("TOC/CommonMethods")
|
||||
---@class CachedDataHandler
|
||||
local CachedDataHandler = {}
|
||||
|
||||
---comment
|
||||
---@param username string
|
||||
function CachedDataHandler.Reset(username)
|
||||
CachedDataHandler.amputatedLimbs[username] = {}
|
||||
CachedDataHandler.highestAmputatedLimbs[username] = {}
|
||||
end
|
||||
|
||||
--* Amputated Limbs caching *--
|
||||
CachedDataHandler.amputatedLimbs = {}
|
||||
@@ -13,6 +19,7 @@ CachedDataHandler.amputatedLimbs = {}
|
||||
---Calcualte the currently amputated limbs for a certain player
|
||||
---@param username string
|
||||
function CachedDataHandler.CalculateAmputatedLimbs(username)
|
||||
CachedDataHandler.amputatedLimbs[username] = {}
|
||||
local modDataHandler = ModDataHandler.GetInstance(username)
|
||||
for i=1, #StaticData.LIMBS_STRINGS do
|
||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
||||
@@ -44,14 +51,18 @@ CachedDataHandler.highestAmputatedLimbs = {}
|
||||
---@param username string
|
||||
function CachedDataHandler.CalculateHighestAmputatedLimbs(username)
|
||||
if CachedDataHandler.amputatedLimbs == nil or CachedDataHandler.amputatedLimbs[username] == nil then
|
||||
--- This function gets ran pretty early, we need to account for the Bob stuff
|
||||
if username == "Bob" then
|
||||
TOC_DEBUG.print("skip, Bob is default char")
|
||||
return
|
||||
end
|
||||
|
||||
TOC_DEBUG.print("Amputated limbs weren't calculated. Trying to calculate them now for " .. username)
|
||||
CachedDataHandler.CalculateAmputatedLimbs(username)
|
||||
return
|
||||
end
|
||||
|
||||
local amputatedLimbs = CachedDataHandler.amputatedLimbs[username]
|
||||
CachedDataHandler.highestAmputatedLimbs[username] = {}
|
||||
TOC_DEBUG.print("Searching highest amputations for " .. username)
|
||||
--TOC_DEBUG.print("Searching highest amputations for " .. username)
|
||||
local modDataHandler = ModDataHandler.GetInstance(username)
|
||||
if modDataHandler == nil then
|
||||
TOC_DEBUG.print("ModDataHandler not found for " .. username)
|
||||
|
||||
@@ -17,7 +17,8 @@ function ModDataHandler:new(username, isResetForced)
|
||||
local o = {}
|
||||
setmetatable(o, self)
|
||||
self.__index = self
|
||||
o.username = username
|
||||
|
||||
o.username = username
|
||||
local key = CommandsData.GetKey(username)
|
||||
|
||||
ModData.request(key)
|
||||
@@ -27,6 +28,9 @@ function ModDataHandler:new(username, isResetForced)
|
||||
TOC_DEBUG.print("tocData in ModDataHandler for " .. username .. " is nil, creating it now")
|
||||
self:setup(key)
|
||||
end
|
||||
|
||||
TOC_DEBUG.print("initialized ModDataHandler for " .. username)
|
||||
|
||||
-- Transmit it to the server
|
||||
ModData.transmit(key)
|
||||
|
||||
@@ -175,6 +179,12 @@ function ModDataHandler:apply()
|
||||
end
|
||||
|
||||
function ModDataHandler.ReceiveData(key, table)
|
||||
if not isClient() then
|
||||
TOC_DEBUG.print("SP, skipping ModDataHandler.ReceiveData")
|
||||
end
|
||||
|
||||
if key == "TOC_Bob" then return end -- TODO Fix this
|
||||
|
||||
TOC_DEBUG.print("receive data for " .. key)
|
||||
if table == {} or table == nil then
|
||||
TOC_DEBUG.print("table is nil... returning")
|
||||
@@ -191,7 +201,7 @@ Events.OnReceiveGlobalModData.Add(ModDataHandler.ReceiveData)
|
||||
---@param username string?
|
||||
---@return ModDataHandler
|
||||
function ModDataHandler.GetInstance(username)
|
||||
if username == nil then
|
||||
if username == nil or username == "Bob" then
|
||||
username = getPlayer():getUsername()
|
||||
end
|
||||
|
||||
|
||||
@@ -21,17 +21,20 @@ local PlayerHandler = {}
|
||||
function PlayerHandler.InitializePlayer(playerObj, isForced)
|
||||
local username = playerObj:getUsername()
|
||||
TOC_DEBUG.print("initializing local player: " .. username)
|
||||
|
||||
ModDataHandler:new(username, isForced)
|
||||
PlayerHandler.playerObj = playerObj
|
||||
|
||||
-- Calculate amputated limbs at startup
|
||||
-- Calculate amputated limbs and highest point of amputations at startup
|
||||
CachedDataHandler.CalculateAmputatedLimbs(username)
|
||||
CachedDataHandler.CalculateHighestAmputatedLimbs(username)
|
||||
|
||||
-- Since isForced is used to reset an existing player data, we're gonna clean their ISHealthPanel table too
|
||||
if isForced then
|
||||
--ISHealthPanel.highestAmputations = {}
|
||||
local ItemsHandler = require("TOC/Handlers/ItemsHandler")
|
||||
ItemsHandler.DeleteAllOldAmputationItems(playerObj)
|
||||
CachedDataHandler.Reset(username)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user