function GetInstallableProsthesisList() -- TODO Delete this and re do it -- To make it future proof since i'm gonna add stuff, let's cycle through already known prosthesis local prosthesis_list = GetProsthesisList() local sides = {"right", "left"} local body_parts = {"Hand", "Forearm", "Arm"} local installed_prosthesis_list = {} for _, side in pairs(sides) do for _, prost in pairs(prosthesis_list) do for _, body_part in pairs(body_parts) do local installable_prost = prost .. "_" .. side .. "_no" .. body_part print(installable_prost) table.insert(installed_prosthesis_list, installable_prost) end end end return installed_prosthesis_list end local function PartNameToBodyLocation(name) if name == "Right_Hand" then return "ArmRight_Prot" end if name == "Right_LowerArm" then return "ArmRight_Prot" end if name == "Right_UpperArm" then return "ArmRight_Prot" end if name == "Left_Hand" then return "ArmLeft_Prot" end if name == "Left_LowerArm" then return "ArmLeft_Prot" end if name == "Left_UpperArm" then return "ArmLeft_Prot" end end -- TODO find a better name, this doesnt check for amputation only for prosthetics function FindTocItemWorn(part_name, patient) local worn_items = patient:getWornItems() for i=1,worn_items:size()-1 do -- Maybe wornItems:size()-1 local item = worn_items:get(i):getItem(); if item:getBodyLocation() == PartNameToBodyLocation(part_name) then return item; end end end function TocGetPartNameFromBodyPartType(body_part) if body_part == BodyPartType.Hand_R then return "Right_Hand" elseif body_part == BodyPartType.ForeArm_R then return "Right_LowerArm" elseif body_part == BodyPartType.UpperArm_R then return "Right_UpperArm" elseif body_part == BodyPartType.Hand_L then return "Left_Hand" elseif body_part == BodyPartType.ForeArm_L then return "Left_LowerArm" elseif body_part == BodyPartType.UpperArm_L then return "Left_UpperArm" else return nil end end -- TODO ew function find_clothName_TOC(bodyPart) if bodyPart:getType() == BodyPartType.Hand_R then return "TOC.ArmRight_noHand" elseif bodyPart:getType() == BodyPartType.ForeArm_R then return "TOC.ArmRight_noForearm" elseif bodyPart:getType() == BodyPartType.UpperArm_R then return "TOC.ArmRight_noArm" elseif bodyPart:getType() == BodyPartType.Hand_L then return "TOC.ArmLeft_noHand" elseif bodyPart:getType() == BodyPartType.ForeArm_L then return "TOC.ArmLeft_noForearm" elseif bodyPart:getType() == BodyPartType.UpperArm_L then return "TOC.ArmLeft_noArm" else return nil end end function TocGetDisplayText(part_name) return getText("UI_ContextMenu_" .. part_name) end function TocFindProsthesisFactorFromItem(item) local itemType = item:getType() -- TODO change this if string.find(itemType, "WoodenHook") and string.find(itemType, "noHand") then return 1.5 elseif string.find(itemType, "WoodenHook") and string.find(itemType, "noForearm") then return 1.65 elseif string.find(itemType, "MetalHook") and string.find(itemType, "noHand") then return 1.3 elseif string.find(itemType, "MetalHook") and string.find(itemType, "noForearm") then return 1.45 elseif string.find(itemType, "MetalHand") and string.find(itemType, "noHand") then return 1.1 elseif string.find(itemType, "MetalHand") and string.find(itemType, "noForearm") then return 1.25 end end function TocFindCorrectClothingProsthesis(item_name, part_name) local correct_name = "TOC.Prost_" .. part_name .. "_" .. item_name return correct_name end