cleaned naming for StaticData
This commit is contained in:
@@ -76,7 +76,7 @@ function AmputationHandler:damageAfterAmputation(surgeonFactor)
|
|||||||
local patientStats = self.patientPl:getStats()
|
local patientStats = self.patientPl:getStats()
|
||||||
local bd = self.patientPl:getBodyDamage()
|
local bd = self.patientPl:getBodyDamage()
|
||||||
local bodyPart = bd:getBodyPart(self.bodyPartType)
|
local bodyPart = bd:getBodyPart(self.bodyPartType)
|
||||||
local baseDamage = StaticData.LIMBS_BASE_DAMAGE[self.limbName]
|
local baseDamage = StaticData.LIMBS_BASE_DAMAGE_IND_NUM[self.limbName]
|
||||||
|
|
||||||
bodyPart:AddDamage(baseDamage - surgeonFactor)
|
bodyPart:AddDamage(baseDamage - surgeonFactor)
|
||||||
bodyPart:setAdditionalPain(baseDamage - surgeonFactor)
|
bodyPart:setAdditionalPain(baseDamage - surgeonFactor)
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ CachedDataHandler.amputatedLimbs = {}
|
|||||||
function CachedDataHandler.CalculateAmputatedLimbs(username)
|
function CachedDataHandler.CalculateAmputatedLimbs(username)
|
||||||
CachedDataHandler.amputatedLimbs[username] = {}
|
CachedDataHandler.amputatedLimbs[username] = {}
|
||||||
local modDataHandler = ModDataHandler.GetInstance(username)
|
local modDataHandler = ModDataHandler.GetInstance(username)
|
||||||
for i=1, #StaticData.LIMBS_STRINGS do
|
for i=1, #StaticData.LIMBS_STR do
|
||||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
local limbName = StaticData.LIMBS_STR[i]
|
||||||
if modDataHandler:getIsCut(limbName) then
|
if modDataHandler:getIsCut(limbName) then
|
||||||
CachedDataHandler.AddAmputatedLimb(username, limbName)
|
CachedDataHandler.AddAmputatedLimb(username, limbName)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ end
|
|||||||
---@param limbName string
|
---@param limbName string
|
||||||
function ItemsHandler.DeleteOldAmputationItem(playerObj, limbName)
|
function ItemsHandler.DeleteOldAmputationItem(playerObj, limbName)
|
||||||
local side = CommonMethods.GetSide(limbName)
|
local side = CommonMethods.GetSide(limbName)
|
||||||
for partName, _ in pairs(StaticData.PARTS_STRINGS) do
|
for partName, _ in pairs(StaticData.PARTS_IND_STR) do
|
||||||
local othLimbName = partName .. "_" .. side
|
local othLimbName = partName .. "_" .. side
|
||||||
local othClothingItemName = StaticData.AMPUTATION_CLOTHING_ITEM_BASE .. othLimbName
|
local othClothingItemName = StaticData.AMPUTATION_CLOTHING_ITEM_BASE .. othLimbName
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ end
|
|||||||
---@param playerObj IsoPlayer
|
---@param playerObj IsoPlayer
|
||||||
function ItemsHandler.DeleteAllOldAmputationItems(playerObj)
|
function ItemsHandler.DeleteAllOldAmputationItems(playerObj)
|
||||||
|
|
||||||
for i=1, #StaticData.LIMBS_STRINGS do
|
for i=1, #StaticData.LIMBS_STR do
|
||||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
local limbName = StaticData.LIMBS_STR[i]
|
||||||
local clothItemName = StaticData.AMPUTATION_CLOTHING_ITEM_BASE .. limbName
|
local clothItemName = StaticData.AMPUTATION_CLOTHING_ITEM_BASE .. limbName
|
||||||
local clothItem = playerObj:getInventory():FindAndReturn(clothItemName)
|
local clothItem = playerObj:getInventory():FindAndReturn(clothItemName)
|
||||||
---@cast clothItem InventoryItem
|
---@cast clothItem InventoryItem
|
||||||
|
|||||||
@@ -61,15 +61,15 @@ function ModDataHandler:setup(key)
|
|||||||
|
|
||||||
-- Initialize limbs
|
-- Initialize limbs
|
||||||
|
|
||||||
for i=1, #StaticData.LIMBS_STRINGS do
|
for i=1, #StaticData.LIMBS_STR do
|
||||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
local limbName = StaticData.LIMBS_STR[i]
|
||||||
self.tocData.limbs[limbName] = {}
|
self.tocData.limbs[limbName] = {}
|
||||||
self:setLimbParams(StaticData.LIMBS_STRINGS[i], defaultParams, 0)
|
self:setLimbParams(StaticData.LIMBS_STR[i], defaultParams, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
local prosthesesGroups = {"top", "bottom"}
|
-- Initialize prostheses stuff
|
||||||
for i=1, #prosthesesGroups do
|
for i=1, #StaticData.PROSTHESES_GROUPS do
|
||||||
local group = prosthesesGroups[i]
|
local group = StaticData.PROSTHESES_GROUPS[i]
|
||||||
self.tocData.prostheses[group] = {
|
self.tocData.prostheses[group] = {
|
||||||
isEquipped = false,
|
isEquipped = false,
|
||||||
prostFactor = 0
|
prostFactor = 0
|
||||||
@@ -181,15 +181,15 @@ end
|
|||||||
function ModDataHandler:setCutLimb(limbName, isOperated, isCicatrized, isCauterized, surgeonFactor)
|
function ModDataHandler:setCutLimb(limbName, isOperated, isCicatrized, isCauterized, surgeonFactor)
|
||||||
local cicatrizationTime = 0
|
local cicatrizationTime = 0
|
||||||
if isCicatrized == false or isCauterized == false then
|
if isCicatrized == false or isCauterized == false then
|
||||||
cicatrizationTime = StaticData.LIMBS_CICATRIZATION_TIME[limbName] - surgeonFactor
|
cicatrizationTime = StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[limbName] - surgeonFactor
|
||||||
end
|
end
|
||||||
|
|
||||||
---@type partData
|
---@type partData
|
||||||
local params = {isCut = true, isInfected = false, isOperated = isOperated, isCicatrized = isCicatrized, isCauterized = isCauterized, isVisible = true}
|
local params = {isCut = true, isInfected = false, isOperated = isOperated, isCicatrized = isCicatrized, isCauterized = isCauterized, isVisible = true}
|
||||||
self:setLimbParams(limbName, params, cicatrizationTime)
|
self:setLimbParams(limbName, params, cicatrizationTime)
|
||||||
|
|
||||||
for i=1, #StaticData.LIMBS_DEPENDENCIES[limbName] do
|
for i=1, #StaticData.LIMBS_DEPENDENCIES_IND_STR[limbName] do
|
||||||
local dependedLimbName = StaticData.LIMBS_DEPENDENCIES[limbName][i]
|
local dependedLimbName = StaticData.LIMBS_DEPENDENCIES_IND_STR[limbName][i]
|
||||||
|
|
||||||
-- We don't care about isOperated, isCicatrized, isCauterized since this is depending on another limb
|
-- We don't care about isOperated, isCicatrized, isCauterized since this is depending on another limb
|
||||||
-- Same story for cicatrizationTime, which will be 0
|
-- Same story for cicatrizationTime, which will be 0
|
||||||
@@ -213,8 +213,6 @@ function ModDataHandler:setLimbParams(limbName, ampStatus, cicatrizationTime)
|
|||||||
if ampStatus.isCicatrized ~= nil then limbData.isCicatrized = ampStatus.isCicatrized end
|
if ampStatus.isCicatrized ~= nil then limbData.isCicatrized = ampStatus.isCicatrized end
|
||||||
if ampStatus.isCauterized ~= nil then limbData.isCauterized = ampStatus.isCauterized end
|
if ampStatus.isCauterized ~= nil then limbData.isCauterized = ampStatus.isCauterized end
|
||||||
if ampStatus.isVisible ~= nil then limbData.isVisible = ampStatus.isVisible end
|
if ampStatus.isVisible ~= nil then limbData.isVisible = ampStatus.isVisible end
|
||||||
if ampStatus.isProstEquipped ~= nil then limbData.isProstEquipped = ampStatus.isProstEquipped end
|
|
||||||
if ampStatus.prostFactor ~= nil then limbData.prostFactor = ampStatus.prostFactor end
|
|
||||||
|
|
||||||
if cicatrizationTime ~= nil then limbData.cicatrizationTime = cicatrizationTime end
|
if cicatrizationTime ~= nil then limbData.cicatrizationTime = cicatrizationTime end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ function PlayerHandler.CheckInfection(character)
|
|||||||
local bd = character:getBodyDamage()
|
local bd = character:getBodyDamage()
|
||||||
local modDataHandler = ModDataHandler.GetInstance()
|
local modDataHandler = ModDataHandler.GetInstance()
|
||||||
|
|
||||||
for i=1, #StaticData.LIMBS_STRINGS do
|
for i=1, #StaticData.LIMBS_STR do
|
||||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
local limbName = StaticData.LIMBS_STR[i]
|
||||||
local bptEnum = StaticData.BODYPARTSTYPES_ENUM[limbName]
|
local bptEnum = StaticData.BODYLOCS_IND_BPT[limbName]
|
||||||
local bodyPart = bd:getBodyPart(bptEnum)
|
local bodyPart = bd:getBodyPart(bptEnum)
|
||||||
|
|
||||||
if bodyPart:bitten() or bodyPart:IsInfected() then
|
if bodyPart:bitten() or bodyPart:IsInfected() then
|
||||||
@@ -82,8 +82,8 @@ function PlayerHandler.CheckInfection(character)
|
|||||||
-- We can skip this loop if the player has been infected. The one before we kinda need it to handle correctly the bites in case the player wanna cut stuff off anyway
|
-- We can skip this loop if the player has been infected. The one before we kinda need it to handle correctly the bites in case the player wanna cut stuff off anyway
|
||||||
if ModDataHandler.GetInstance():getIsIgnoredPartInfected() then return end
|
if ModDataHandler.GetInstance():getIsIgnoredPartInfected() then return end
|
||||||
|
|
||||||
for i=1, #StaticData.IGNORED_PARTS_STRINGS do
|
for i=1, #StaticData.IGNORED_BODYLOCS_IND_BPT do
|
||||||
local bodyPartType = BodyPartType[StaticData.IGNORED_PARTS_STRINGS[i]]
|
local bodyPartType = StaticData.IGNORED_BODYLOCS_IND_BPT[i]
|
||||||
local bodyPart = bd:getBodyPart(bodyPartType)
|
local bodyPart = bd:getBodyPart(bodyPartType)
|
||||||
if bodyPart and (bodyPart:bitten() or bodyPart:IsInfected()) then
|
if bodyPart and (bodyPart:bitten() or bodyPart:IsInfected()) then
|
||||||
ModDataHandler.GetInstance():setIsIgnoredPartInfected(true)
|
ModDataHandler.GetInstance():setIsIgnoredPartInfected(true)
|
||||||
@@ -124,7 +124,7 @@ function ISBaseTimedAction:adjustMaxTime(maxTime)
|
|||||||
local perkLevel = pl:getPerkLevel(perk)
|
local perkLevel = pl:getPerkLevel(perk)
|
||||||
local perkLevelScaled
|
local perkLevelScaled
|
||||||
if perkLevel ~= 0 then perkLevelScaled = perkLevel / 10 else perkLevelScaled = 0 end
|
if perkLevel ~= 0 then perkLevelScaled = perkLevel / 10 else perkLevelScaled = 0 end
|
||||||
time = time * (StaticData.LIMBS_TIME_MULTIPLIER[limbName] - perkLevelScaled)
|
time = time * (StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[limbName] - perkLevelScaled)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -138,7 +138,7 @@ function ISBaseTimedAction:perform()
|
|||||||
og_ISBaseTimedAction_perform(self)
|
og_ISBaseTimedAction_perform(self)
|
||||||
|
|
||||||
if ModDataHandler.GetInstance():getIsAnyLimbCut() then
|
if ModDataHandler.GetInstance():getIsAnyLimbCut() then
|
||||||
for side, _ in pairs(StaticData.SIDES_STRINGS) do
|
for side, _ in pairs(StaticData.SIDES_IND_STR) do
|
||||||
local limbName = "Hand_" .. side
|
local limbName = "Hand_" .. side
|
||||||
if ModDataHandler.GetInstance():getIsCut(limbName) then
|
if ModDataHandler.GetInstance():getIsCut(limbName) then
|
||||||
PlayerHandler.playerObj:getXp():AddXP(Perks["Side_" .. side], 2) -- TODO Make it dynamic
|
PlayerHandler.playerObj:getXp():AddXP(Perks["Side_" .. side], 2) -- TODO Make it dynamic
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ local CachedDataHandler = require("TOC/Handlers/CachedDataHandler")
|
|||||||
---@class ProsthesisHandler
|
---@class ProsthesisHandler
|
||||||
local ProsthesisHandler = {}
|
local ProsthesisHandler = {}
|
||||||
|
|
||||||
local bodyLocArmProst = StaticData.BODYLOCATIONS_BASE_STRINGS.TOC_ArmProst
|
local bodyLocArmProst = StaticData.MOD_BODYLOCS_BASE_IND_STR.TOC_ArmProst
|
||||||
|
|
||||||
---comment
|
---comment
|
||||||
---@param item InventoryItem
|
---@param item InventoryItem
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ local function AddInventoryAmputationOptions(surgeonNum, context, item)
|
|||||||
local option = context:addOption(getText("ContextMenu_Amputate"), nil)
|
local option = context:addOption(getText("ContextMenu_Amputate"), nil)
|
||||||
local subMenu = context:getNew(context)
|
local subMenu = context:getNew(context)
|
||||||
context:addSubMenu(option, subMenu)
|
context:addSubMenu(option, subMenu)
|
||||||
for i = 1, #StaticData.LIMBS_STRINGS do
|
for i = 1, #StaticData.LIMBS_STR do
|
||||||
local limbName = StaticData.LIMBS_STRINGS[i]
|
local limbName = StaticData.LIMBS_STR[i]
|
||||||
if not ModDataHandler.GetInstance():getIsCut(limbName) then
|
if not ModDataHandler.GetInstance():getIsCut(limbName) then
|
||||||
local limbTranslatedName = getText("ContextMenu_Limb_" .. limbName)
|
local limbTranslatedName = getText("ContextMenu_Limb_" .. limbName)
|
||||||
subMenu:addOption(limbTranslatedName, surgeonObj, PerformAction, surgeonObj, limbName, item) -- TODO Should be patient, not surgeon
|
subMenu:addOption(limbTranslatedName, surgeonObj, PerformAction, surgeonObj, limbName, item) -- TODO Should be patient, not surgeon
|
||||||
@@ -82,7 +82,7 @@ end
|
|||||||
---@param context ISContextMenu
|
---@param context ISContextMenu
|
||||||
function CutLimbHandler:addToMenu(context)
|
function CutLimbHandler:addToMenu(context)
|
||||||
local types = self:getAllItemTypes(self.items.ITEMS)
|
local types = self:getAllItemTypes(self.items.ITEMS)
|
||||||
if #types > 0 and StaticData.BODYPARTSTYPES_ENUM[self.limbName] then
|
if #types > 0 and StaticData.BODYLOCS_IND_BPT[self.limbName] then
|
||||||
TOC_DEBUG.print("addToMenu, types > 0")
|
TOC_DEBUG.print("addToMenu, types > 0")
|
||||||
if not ModDataHandler.GetInstance():getIsCut(self.limbName) then
|
if not ModDataHandler.GetInstance():getIsCut(self.limbName) then
|
||||||
context:addOption(getText("ContextMenu_Amputate"), self, self.onMenuOptionSelected)
|
context:addOption(getText("ContextMenu_Amputate"), self, self.onMenuOptionSelected)
|
||||||
@@ -92,7 +92,7 @@ end
|
|||||||
|
|
||||||
function CutLimbHandler:dropItems(items)
|
function CutLimbHandler:dropItems(items)
|
||||||
local types = self:getAllItemTypes(items)
|
local types = self:getAllItemTypes(items)
|
||||||
if #self.items.ITEMS > 0 and #types == 1 and StaticData.BODYPARTSTYPES_ENUM[self.limbName] then
|
if #self.items.ITEMS > 0 and #types == 1 and StaticData.BODYLOCS_IND_BPT[self.limbName] then
|
||||||
self:onMenuOptionSelected(types[1])
|
self:onMenuOptionSelected(types[1])
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,43 +1,112 @@
|
|||||||
---@alias partData { isCut : boolean?, isInfected : boolean?, isOperated : boolean?, isCicatrized : boolean?, isCauterized : boolean?, isVisible : boolean?, cicatrizationTime : number, isProstEquipped : boolean, prostFactor : number}
|
---@alias partData { isCut : boolean?, isInfected : boolean?, isOperated : boolean?, isCicatrized : boolean?, isCauterized : boolean?, isVisible : boolean?, cicatrizationTime : number }
|
||||||
---@alias limbsTable {Hand_L : partData, ForeArm_L : partData, UpperArm_L : partData, Hand_R : partData, ForeArm_R : partData, UpperArm_R : partData,}
|
---@alias limbsTable {Hand_L : partData, ForeArm_L : partData, UpperArm_L : partData, Hand_R : partData, ForeArm_R : partData, UpperArm_R : partData }
|
||||||
---@alias prosthesisData {isEquipped : boolean, prostFactor : number }
|
---@alias prosthesisData {isEquipped : boolean, prostFactor : number }
|
||||||
---@alias prosthesesTable {top : table, bottom : table }
|
---@alias prosthesesTable {top : table, bottom : table }
|
||||||
---@alias tocModData { limbs : limbsTable, prostheses : prosthesesTable, isIgnoredPartInfected : boolean, isAnyLimbCut : boolean }
|
---@alias tocModData { limbs : limbsTable, prostheses : prosthesesTable, isIgnoredPartInfected : boolean, isAnyLimbCut : boolean }
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
|
||||||
|
-- _STR = Only strings, no index
|
||||||
|
-- _IND_STR = indexed Strings
|
||||||
|
-- _IND_BPT = Indexed BodyPartType
|
||||||
|
|
||||||
|
-- PART = Single part, could be hand, forearm, etc
|
||||||
|
-- LIMB = Part + side
|
||||||
|
-- BODYLOCS = Body Locations
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local StaticData = {}
|
local StaticData = {}
|
||||||
|
|
||||||
|
---Mod name, used to setup Global Mod Data and various stuff
|
||||||
StaticData.MOD_NAME = "TOC"
|
StaticData.MOD_NAME = "TOC"
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
--* Base
|
||||||
|
|
||||||
StaticData.PARTS_STRINGS = {
|
StaticData.SIDES_IND_STR = {
|
||||||
|
R = "R",
|
||||||
|
L = "L"
|
||||||
|
}
|
||||||
|
StaticData.PARTS_IND_STR = {
|
||||||
Hand = "Hand",
|
Hand = "Hand",
|
||||||
ForeArm = "ForeArm",
|
ForeArm = "ForeArm",
|
||||||
UpperArm = "UpperArm"
|
UpperArm = "UpperArm"
|
||||||
}
|
}
|
||||||
|
StaticData.MOD_BODYLOCS_BASE_IND_STR = {
|
||||||
StaticData.BODYLOCATIONS_BASE_STRINGS = {
|
|
||||||
TOC_ArmProst = "TOC_ArmProst",
|
TOC_ArmProst = "TOC_ArmProst",
|
||||||
TOC_Arm = "TOC_Arm",
|
TOC_Arm = "TOC_Arm",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- No "MAX" here.
|
-- No "MAX" here.
|
||||||
StaticData.IGNORED_PARTS_STRINGS = { "Foot_L", "Foot_R", "Groin", "Head", "LowerLeg_L", "LowerLeg_R", "Neck", "Torso_Lower", "Torso_Upper", "UpperLeg_L", "UpperLeg_R" }
|
StaticData.IGNORED_BODYLOCS_IND_BPT = {
|
||||||
|
BodyPartType.Foot_L, BodyPartType.Foot_R, BodyPartType.Groin, BodyPartType.Head,
|
||||||
StaticData.SIDES_STRINGS = {
|
BodyPartType.LowerLeg_L, BodyPartType.LowerLeg_R, BodyPartType.Neck, BodyPartType.Torso_Lower,
|
||||||
R = "R",
|
BodyPartType.Torso_Upper, BodyPartType.UpperLeg_L, BodyPartType.UpperLeg_R
|
||||||
L = "L"
|
|
||||||
}
|
}
|
||||||
-- Assembled BodyParts string
|
|
||||||
---@enum
|
|
||||||
StaticData.LIMBS_STRINGS = {}
|
|
||||||
StaticData.BODYPARTSTYPES_ENUM = {}
|
|
||||||
StaticData.LIMBS_DEPENDENCIES = {}
|
|
||||||
StaticData.LIMBS_CICATRIZATION_TIME = {}
|
|
||||||
StaticData.LIMBS_BASE_DAMAGE = {}
|
|
||||||
StaticData.LIMBS_TIME_MULTIPLIER = {}
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Assembled BodyParts string
|
||||||
|
StaticData.LIMBS_STR = {}
|
||||||
|
StaticData.LIMBS_DEPENDENCIES_IND_STR = {}
|
||||||
|
StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM = {}
|
||||||
|
StaticData.LIMBS_BASE_DAMAGE_IND_NUM = {}
|
||||||
|
StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM = {}
|
||||||
|
StaticData.BODYLOCS_IND_BPT = {}
|
||||||
|
|
||||||
|
local function AssembleHandData(assembledName)
|
||||||
|
StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 60
|
||||||
|
StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 1700
|
||||||
|
StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 2
|
||||||
|
StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local function AssembleForearmData(assembledName, side)
|
||||||
|
StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 80
|
||||||
|
StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 1800
|
||||||
|
StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 3
|
||||||
|
StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = { StaticData.PARTS_IND_STR.Hand .. "_" .. side }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function AssembleUpperarmData(assembledName, side)
|
||||||
|
StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 100
|
||||||
|
StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 2000
|
||||||
|
StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 4
|
||||||
|
StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = { StaticData.PARTS_IND_STR.Hand .. "_" .. side,
|
||||||
|
StaticData.PARTS_IND_STR.ForeArm .. "_" .. side }
|
||||||
|
end
|
||||||
|
|
||||||
|
for side, _ in pairs(StaticData.SIDES_IND_STR) do
|
||||||
|
for part, _ in pairs(StaticData.PARTS_IND_STR) do
|
||||||
|
local assembledName = part .. "_" .. side
|
||||||
|
|
||||||
|
-- Assembled strings
|
||||||
|
table.insert(StaticData.LIMBS_STR, assembledName) -- We need a table like this to cycle through it easily
|
||||||
|
StaticData.BODYLOCS_IND_BPT[assembledName] = BodyPartType[assembledName]
|
||||||
|
|
||||||
|
-- Dependencies and cicatrization time
|
||||||
|
if part == StaticData.PARTS_IND_STR.Hand then
|
||||||
|
AssembleHandData(assembledName)
|
||||||
|
elseif part == StaticData.PARTS_IND_STR.ForeArm then
|
||||||
|
AssembleForearmData(assembledName, side)
|
||||||
|
elseif part == StaticData.PARTS_IND_STR.UpperArm then
|
||||||
|
AssembleUpperarmData(assembledName, side)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
--* Prostheses
|
||||||
|
|
||||||
|
StaticData.PROSTHESES_GROUPS = {
|
||||||
|
top = "top",
|
||||||
|
bottom = "bottom"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
--* Traits
|
||||||
|
|
||||||
-- Link a trait to a specific body part
|
-- Link a trait to a specific body part
|
||||||
StaticData.TRAITS_BP = {
|
StaticData.TRAITS_BP = {
|
||||||
AmputeeHand = "Hand_L",
|
AmputeeHand = "Hand_L",
|
||||||
@@ -45,50 +114,8 @@ StaticData.TRAITS_BP = {
|
|||||||
AmputeeUpeerArm = "UpperArm_L"
|
AmputeeUpeerArm = "UpperArm_L"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
local function AssembleHandData(assembledName)
|
|
||||||
StaticData.LIMBS_BASE_DAMAGE[assembledName] = 60
|
|
||||||
StaticData.LIMBS_CICATRIZATION_TIME[assembledName] = 1700
|
|
||||||
StaticData.LIMBS_TIME_MULTIPLIER[assembledName] = 2
|
|
||||||
StaticData.LIMBS_DEPENDENCIES[assembledName] = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local function AssembleForearmData(assembledName, side)
|
|
||||||
StaticData.LIMBS_BASE_DAMAGE[assembledName] = 80
|
|
||||||
StaticData.LIMBS_CICATRIZATION_TIME[assembledName] = 1800
|
|
||||||
StaticData.LIMBS_TIME_MULTIPLIER[assembledName] = 3
|
|
||||||
StaticData.LIMBS_DEPENDENCIES[assembledName] = { StaticData.PARTS_STRINGS.Hand .. "_" .. side }
|
|
||||||
end
|
|
||||||
|
|
||||||
local function AssembleUpperarmData(assembledName, side)
|
|
||||||
StaticData.LIMBS_BASE_DAMAGE[assembledName] = 100
|
|
||||||
StaticData.LIMBS_CICATRIZATION_TIME[assembledName] = 2000
|
|
||||||
StaticData.LIMBS_TIME_MULTIPLIER[assembledName] = 4
|
|
||||||
StaticData.LIMBS_DEPENDENCIES[assembledName] = { StaticData.PARTS_STRINGS.Hand .. "_" .. side,
|
|
||||||
StaticData.PARTS_STRINGS.ForeArm .. "_" .. side }
|
|
||||||
end
|
|
||||||
|
|
||||||
for side, _ in pairs(StaticData.SIDES_STRINGS) do
|
|
||||||
for part, _ in pairs(StaticData.PARTS_STRINGS) do
|
|
||||||
local assembledName = part .. "_" .. side
|
|
||||||
|
|
||||||
-- Assembled strings
|
|
||||||
table.insert(StaticData.LIMBS_STRINGS, assembledName) -- We need a table like this to cycle through it easily
|
|
||||||
StaticData.BODYPARTSTYPES_ENUM[assembledName] = BodyPartType[assembledName]
|
|
||||||
|
|
||||||
-- Dependencies and cicatrization time
|
|
||||||
if part == StaticData.PARTS_STRINGS.Hand then
|
|
||||||
AssembleHandData(assembledName)
|
|
||||||
elseif part == StaticData.PARTS_STRINGS.ForeArm then
|
|
||||||
AssembleForearmData(assembledName, side)
|
|
||||||
elseif part == StaticData.PARTS_STRINGS.UpperArm then
|
|
||||||
AssembleUpperarmData(assembledName, side)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
-- Visuals and clothing
|
--* Visuals and clothing
|
||||||
|
|
||||||
--- Textures
|
--- Textures
|
||||||
-- TODO We need male variations
|
-- TODO We need male variations
|
||||||
|
|||||||
Reference in New Issue
Block a user