refactoring

This commit is contained in:
ZioPao
2023-11-06 13:12:42 +01:00
parent 16c510c79f
commit 4035423590

View File

@@ -46,57 +46,44 @@ end
---Set a limb and its dependend limbs as cut ---Set a limb and its dependend limbs as cut
---@param limbName string ---@param limbName string
---@param amputationStatus amputationTable {isOperated, isCicatrized, isCauterized} ---@param ampStatus amputationTable {isOperated, isCicatrized, isCauterized}
---@param surgeonFactor number ---@param surgeonFactor number
function ModDataHandler:setCutLimb(limbName, amputationStatus, surgeonFactor) function ModDataHandler:setCutLimb(limbName, ampStatus, surgeonFactor)
local cicatrizationTime = -1 local cicatrizationTime = -1
if amputationStatus.isCicatrized == false or amputationStatus.isCauterized == false then if ampStatus.isCicatrized == false or ampStatus.isCauterized == false then
cicatrizationTime = StaticData.LIMBS_CICATRIZATION_TIME[limbName] - surgeonFactor cicatrizationTime = StaticData.LIMBS_CICATRIZATION_TIME[limbName] - surgeonFactor
end end
---@type amputationTable ---@type amputationTable
local params = {isCut = true, isInfected = false, isOperated = amputationStatus.isOperated, isCicatrized = amputationStatus.isCicatrized, isCauterized = amputationStatus.isCauterized, isDependant = false} local params = {isCut = true, isInfected = false, isOperated = ampStatus.isOperated, isCicatrized = ampStatus.isCicatrized, isCauterized = ampStatus.isCauterized, isDependant = false}
self:setLimbParams(limbName, params, cicatrizationTime) self:setLimbParams(limbName, params, cicatrizationTime)
local dependentParams = {isCut = true, isInfected = false, isDependant = true}
for i=1, #StaticData.LIMBS_DEPENDENCIES[limbName] do for i=1, #StaticData.LIMBS_DEPENDENCIES[limbName] do
local dependedLimbName = StaticData.LIMBS_DEPENDENCIES[limbName][i] local dependedLimbName = StaticData.LIMBS_DEPENDENCIES[limbName][i]
-- We don't care about isOperated, isCicatrized and isCauterized since this is depending on another limb -- We don't care about isOperated, isCicatrized, isCauterized since this is depending on another limb
self:setLimbParams(dependedLimbName, dependentParams, cicatrizationTime) -- Same story for cicatrizationTime, which will be 0
self:setLimbParams(dependedLimbName, {isCut = true, isInfected = false, isDependant = true}, 0)
end end
end end
---Internal use only, set a limb data ---Internal use only, set a limb data
---@param limbName string ---@param limbName string
---@param amputationStatus amputationTable {isCut, isInfected, isOperated, isCicatrized, isCauterized, isDependant} ---@param ampStatus amputationTable {isCut, isInfected, isOperated, isCicatrized, isCauterized, isDependant}
---@param cicatrizationTime integer ---@param cicatrizationTime integer?
---@private ---@private
function ModDataHandler:setLimbParams(limbName, amputationStatus, cicatrizationTime) function ModDataHandler:setLimbParams(limbName, ampStatus, cicatrizationTime)
local limbData = self.playerObj:getModData()[StaticData.MOD_NAME][limbName] local limbData = self.playerObj:getModData()[StaticData.MOD_NAME][limbName]
if amputationStatus.isCut ~= nil then if ampStatus.isCut ~= nil then limbData.isCut = ampStatus.isCut end
limbData.isCut = amputationStatus.isCut if ampStatus.isInfected ~= nil then limbData.isInfected = ampStatus.isInfected end
end if ampStatus.isOperated ~= nil then limbData.isOperated = ampStatus.isOperated end
if amputationStatus.isInfected ~= nil then if ampStatus.isCicatrized ~= nil then limbData.isCicatrized = ampStatus.isCicatrized end
limbData.isInfected = amputationStatus.isInfected if ampStatus.isCauterized ~= nil then limbData.isCauterized = ampStatus.isCauterized end
end if ampStatus.isDependant ~= nil then limbData.isDependant = ampStatus.isDependant end
if amputationStatus.isOperated ~= nil then
limbData.isOperated = amputationStatus.isOperated if cicatrizationTime ~= nil then limbData.cicatrizationTime = cicatrizationTime end
end
if amputationStatus.isCicatrized ~= nil then
limbData.isCicatrized = amputationStatus.isCicatrized
end
if amputationStatus.isCauterized ~= nil then
limbData.isCauterized = amputationStatus.isCauterized
end
if amputationStatus.isDependant ~= nil then
limbData.isDependant = amputationStatus.isDependant
end
if cicatrizationTime ~= nil then
limbData.cicatrizationTime = cicatrizationTime
end
end end