diff --git a/media/lua/client/TOC_HelperFunctions.lua b/media/lua/client/TOC_HelperFunctions.lua index 9fb0b9e..0cdf092 100644 --- a/media/lua/client/TOC_HelperFunctions.lua +++ b/media/lua/client/TOC_HelperFunctions.lua @@ -99,4 +99,21 @@ function CheckIfItemIsAmputatedLimb(item) return is_amputated_limb +end + +function CheckIfItemIsProsthesis(item) + local item_full_type = item:getFullType() + local prosthesis_list = GetProsthesisList() + --return (item_full_type == "TOC.WoodenHook" or item_full_type == "TOC.MetalHook" or item_full_type == "TOC.MetalHand") + local check = prosthesis_list[item_full_type] + return check + +end + +function CheckIfItemIsInstalledProsthesis(item) + local item_full_type = item:getFullType() + local installable_prosthesis_list = GetInstallableProsthesisList() + local check = installable_prosthesis_list[item_full_type] + return check + end \ No newline at end of file diff --git a/media/lua/client/TimedActions/ISUninstallProsthesis.lua b/media/lua/client/TimedActions/ISUninstallProsthesis.lua index bbf1a6a..3ca1129 100644 --- a/media/lua/client/TimedActions/ISUninstallProsthesis.lua +++ b/media/lua/client/TimedActions/ISUninstallProsthesis.lua @@ -53,15 +53,16 @@ function ISUninstallProsthesis:perform() if self.bodyPart:getType() == v then local part_name = FindTocBodyPartNameFromBodyPartType(v) + print("Found prost in " .. part_name) if part_name then toc_data[part_name].is_prosthesis_equipped = false toc_data[part_name].prosthesis_factor = 1 --local side = string.gsub(part_name, "Hand" or "Forearm", "") - - + local item_full_type = self.item:getFullType() + print("Searching for " .. item_full_type) for _, prost_v in ipairs(GetProsthesisList()) do - local prosthesis_name = string.match(self.item:getName(), prost_v) + local prosthesis_name = string.match(item_full_type, prost_v) if prosthesis_name then self.character:getInventory():AddItem(prosthesis_name) diff --git a/media/lua/client/TimedActions/OverridenFunctions.lua b/media/lua/client/TimedActions/OverridenFunctions.lua index 71bc291..0d927b8 100644 --- a/media/lua/client/TimedActions/OverridenFunctions.lua +++ b/media/lua/client/TimedActions/OverridenFunctions.lua @@ -113,6 +113,11 @@ end -- end +-- TODO override equip action + + + + local og_ISUnequipActionPerform = ISUnequipAction.perform function ISUnequipAction:perform() @@ -126,12 +131,17 @@ function ISUnequipAction:perform() -- -- end -- -- end - - - if not CheckIfItemIsAmputatedLimb(self.item) then + if CheckIfItemIsAmputatedLimb(self.item) == false and CheckIfItemIsInstalledProsthesis(self.item) == false then og_ISUnequipActionPerform(self) end + -- if not CheckIfItemIsAmputatedLimb(self.item) then + -- og_ISUnequipActionPerform(self) + -- end + + -- if CheckIfItemIsInstalledProsthesis(self.item) then + -- og_ISUnequipActionPerform(self) + -- end end @@ -140,11 +150,14 @@ local og_ISDropItemActionPerform = ISDropItemAction.perform function ISDropItemAction:perform() - if not CheckIfItemIsAmputatedLimb(self.item) then + if not CheckIfItemIsAmputatedLimb(self.item)then og_ISDropItemActionPerform(self) end + + + end -- TODO Add "Clean Wound" to make the cicatrization faster diff --git a/media/lua/client/Utils/UsefulFunctions.lua b/media/lua/client/Utils/UsefulFunctions.lua index 74199a6..55a7e75 100644 --- a/media/lua/client/Utils/UsefulFunctions.lua +++ b/media/lua/client/Utils/UsefulFunctions.lua @@ -6,6 +6,37 @@ end function GetProsthesisList() return {"TOC.WoodenHook", "TOC.MetalHook", "TOC.MetalHand"} +end + +function GetInstallableProsthesisList() + + + -- To make it future proff 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 + table.insert(installed_prosthesis_list, installable_prost) + end + + + + end + + + + end + + return installed_prosthesis_list + + + end function GetLimbsBodyPartTypes() diff --git a/media/scripts/TOC_items.txt b/media/scripts/TOC_items.txt index 8676aea..01c409b 100644 --- a/media/scripts/TOC_items.txt +++ b/media/scripts/TOC_items.txt @@ -149,10 +149,11 @@ imports { Weight = 1, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_woodenHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_woodenHook, ClothingItem = ArmRight_WoodenHook, BodyLocation = ArmRight_Prot, + BloodLocation = Hands, Icon = woodenHook, Tooltip = Tooltip_equip_prothesis_hand, WaterResistance = 15, @@ -162,10 +163,11 @@ imports { Weight = 1, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_woodenHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_woodenHook, ClothingItem = ArmLeft_WoodenHook, BodyLocation = ArmLeft_Prot, + BloodLocation = Hands, Icon = woodenHook, Tooltip = Tooltip_equip_prothesis_hand, WaterResistance = 15, @@ -175,10 +177,11 @@ imports { Weight = 0.5, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHook, ClothingItem = ArmRight_MetalHook, BodyLocation = ArmRight_Prot, + BloodLocation = Hands, Icon = metalHook, Tooltip = Tooltip_equip_prothesis_hand, WaterResistance = 13, @@ -188,10 +191,11 @@ imports { Weight = 0.5, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHook, ClothingItem = ArmLeft_MetalHook, BodyLocation = ArmLeft_Prot, + BloodLocation = Hands, Icon = metalHook, Tooltip = Tooltip_equip_prothesis_hand, WaterResistance = 13, @@ -201,10 +205,11 @@ imports { Weight = 0.3, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHand,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHand, ClothingItem = ArmRight_MetalHamd, BodyLocation = ArmRight_Prot, + BloodLocation = Hands, Icon = metalHand, Tooltip = Tooltip_equip_prothesis_hand, WaterResistance = 11, @@ -214,10 +219,11 @@ imports { Weight = 0.3, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHand,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHand, ClothingItem = ArmLeft_MetalHand, BodyLocation = ArmLeft_Prot, + BloodLocation = Hands, Icon = metalHand, Tooltip = Tooltip_equip_prothesis_hand", WaterResistance = 11, @@ -227,10 +233,11 @@ imports { Weight = 2, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_woodenHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_woodenHook, ClothingItem = ArmRight_WoodenHook_fore, BodyLocation = ArmRight_Prot, + BloodLocation = LowerArms;Hands, Icon = woodenHook, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 16, @@ -240,10 +247,12 @@ imports { Weight = 2, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_woodenHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_woodenHook, ClothingItem = ArmLeft_WoodenHook_fore, BodyLocation = ArmLeft_Prot, + BloodLocation = LowerArms;Hands, + Icon = woodenHook, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 16, @@ -253,10 +262,11 @@ imports { Weight = 1.5, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHook, ClothingItem = ArmRight_MetalHook_fore, BodyLocation = ArmRight_Prot, + BloodLocation = LowerArms;Hands, Icon = metalHook, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 14, @@ -266,10 +276,12 @@ imports { Weight = 1.5, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHook,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHook, ClothingItem = ArmLeft_MetalHook_fore, BodyLocation = ArmLeft_Prot, + BloodLocation = LowerArms;Hands, + Icon = metalHook, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 14, @@ -279,10 +291,11 @@ imports { Weight = 1.2, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHand,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHand, ClothingItem = ArmRight_MetalHand_fore, BodyLocation = ArmRight_Prot, + BloodLocation = LowerArms;Hands, Icon = metalHand, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 12, @@ -292,10 +305,11 @@ imports { Weight = 1.2, Type = Clothing, - /*DisplayCategory = Prosthesis, - DisplayName = DisplayName_metalHand,*/ + DisplayCategory = Prosthesis, + DisplayName = DisplayName_metalHand, ClothingItem = ArmLeft_MetalHand_fore, BodyLocation = ArmLeft_Prot, + BloodLocation = LowerArms;Hands, Icon = metalHand, Tooltip = Tooltip_equip_prothesis_fore, WaterResistance = 12, @@ -303,6 +317,7 @@ imports /************************ Prothese items ************************/ +/* TODO make it clothing same as amputations */ item WoodenHook { Weight = 1, diff --git a/media/textures/Clothes/metal.png b/media/textures/Clothes/metal.png index ee45b2b..93206ff 100644 Binary files a/media/textures/Clothes/metal.png and b/media/textures/Clothes/metal.png differ diff --git a/media/textures/Clothes/wood.png b/media/textures/Clothes/wood.png index 9e964ac..a028265 100644 Binary files a/media/textures/Clothes/wood.png and b/media/textures/Clothes/wood.png differ