Initial work for legs amputations

This commit is contained in:
Pao
2023-02-06 23:13:42 +01:00
parent 490d09edf2
commit be5148210e
29 changed files with 232 additions and 51 deletions

View File

@@ -8,7 +8,7 @@ if not TheOnlyCure then
end
TOC_sides = { "Left", "Right" }
TOC_limbs = { "Hand", "LowerArm", "UpperArm" }
TOC_limbs = { "Hand", "LowerArm", "UpperArm", "Foot"}
local function TocCutLimbForTrait(player, limbs_data, part_name)
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_" .. part_name)
@@ -27,6 +27,33 @@ local function TocCutLimbForTrait(player, limbs_data, part_name)
limbs_data[v].is_cicatrized = true
end
end
local function InitSpecificPart(mod_data, part_name)
if mod_data.TOC.Limbs[part_name] == nil then
mod_data.TOC.Limbs[part_name] = {}
end
mod_data.TOC.Limbs[part_name].is_cut = false
mod_data.TOC.Limbs[part_name].is_infected = false
mod_data.TOC.Limbs[part_name].is_operated = false
mod_data.TOC.Limbs[part_name].is_cicatrized = false
mod_data.TOC.Limbs[part_name].is_cauterized = false
mod_data.TOC.Limbs[part_name].is_amputation_shown = false
mod_data.TOC.Limbs[part_name].cicatrization_time = 0
mod_data.TOC.Limbs[part_name].is_prosthesis_equipped = false
mod_data.TOC.Limbs[part_name].equipped_prosthesis = {}
end
local function TocUpdateBaseData(mod_data)
-- TODO The prosthetic knife needs to be a weapon first and foremost, so other than a
@@ -37,12 +64,25 @@ local function TocUpdateBaseData(mod_data)
local accepted_prosthesis_hand = { "WoodenHook", "MetalHook", "MetalHand", "ProstheticKnife" }
local accepted_prosthesis_lowerarm = { "WoodenHook", "MetalHook", "MetalHand", "ProstheticKnife" }
local accepted_prosthesis_upperarm = {} -- For future stuff
local accepted_prosthesis_foot = {}
for _, side in ipairs(TOC_sides) do
for _, limb in ipairs(TOC_limbs) do
local part_name = side .. "_" .. limb
-- Check if part was initialized
if mod_data.TOC.Limbs[part_name] == nil then
InitSpecificPart(mod_data, part_name)
end
if limb == "Hand" then
mod_data.TOC.Limbs[part_name].cicatrization_base_time = 1700
mod_data.TOC.Limbs[part_name].depends_on = {}
@@ -69,6 +109,11 @@ local function TocUpdateBaseData(mod_data)
mod_data.TOC.Limbs[part_name].cicatrization_base_time = 2000
mod_data.TOC.Limbs[part_name].depends_on = { side .. "_Hand", side .. "_LowerArm", }
mod_data.TOC.Prosthesis.Accepted_Prosthesis[part_name] = accepted_prosthesis_upperarm
elseif limb == "Foot" then
mod_data.TOC.Limbs[part_name].cicatrization_base_time = 1700
mod_data.TOC.Limbs[part_name].depends_on = {}
mod_data.TOC.Prosthesis.Accepted_Prosthesis[part_name] = accepted_prosthesis_foot
end
end
@@ -102,6 +147,10 @@ local function TocSetInitData(mod_data, player)
Left_Hand = {},
Left_LowerArm = {},
Left_UpperArm = {},
Left_Foot = {},
Right_Foot = {},
is_other_bodypart_infected = false
},
Prosthesis = {