85 lines
3.0 KiB
Lua
85 lines
3.0 KiB
Lua
------------------------------------------
|
|
------------- THE ONLY CURE --------------
|
|
------------------------------------------
|
|
---------- PROSTHESIS FUNCTIONS ----------
|
|
|
|
|
|
---Equip a prosthesis transforming a normal item into a clothing item
|
|
---@param partName string
|
|
---@param prosthesisItem any the prosthesis item
|
|
---@param prosthesisBaseName string I don't really remember
|
|
function TOC.EquipProsthesis(partName, prosthesisItem, prosthesisBaseName)
|
|
|
|
-- TODO probably will have to move this from the TOC menu to classic equip to have dynamic durability
|
|
-- TODO We need to pass the original item so we can get its data!
|
|
|
|
local player = getPlayer()
|
|
local TOCModData = player:getModData().TOC
|
|
|
|
local equippedProsthesis = GenerateEquippedProsthesis(prosthesisItem, player:getInventory(), "Hand")
|
|
|
|
|
|
--print("TOC: Test durability new item " .. added_prosthesis_mod_data.TOC.durability)
|
|
|
|
-- TODO equippedProsthesis must have something like the ProsthesisFactor from before!!!
|
|
|
|
if partName ~= nil then
|
|
|
|
if equippedProsthesis ~= nil then
|
|
TOCModData.limbs[partName].isProsthesisEquipped = true
|
|
|
|
|
|
-- Fill equippedProsthesis with the correct stuff
|
|
-- TODO For prosthetics we should fetch the data from a modData INSIDE them!
|
|
|
|
-- TODO Change the value passed, it's wrong
|
|
--TOCModData.limbs[partName].equippedProsthesis = TOCModData.Prosthesis[prosthesisBaseName][partName]
|
|
|
|
if player:isFemale() then
|
|
equippedProsthesis:getVisual():setTextureChoice(1)
|
|
else
|
|
equippedProsthesis:getVisual():setTextureChoice(0)
|
|
end
|
|
player:setWornItem(equippedProsthesis:getBodyLocation(), equippedProsthesis)
|
|
|
|
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
---Unequip a prosthesis clothing item and returns it to the inventory as a normal item
|
|
---@param partName string
|
|
function TOC.UnequipProsthesis(patient, partName, equippedProsthesis)
|
|
|
|
|
|
-- TODO Pass the parameters generated from EquipProsthesis to the re-generated normal item
|
|
|
|
local TOCModData = patient:getModData().TOC
|
|
TOCModData.limbs[partName].isProsthesisEquipped = false
|
|
|
|
|
|
local equippedProstFullType = equippedProsthesis:getFullType()
|
|
|
|
|
|
for _, prostValue in ipairs(GetProsthesisList()) do
|
|
local prostName = string.match(equippedProstFullType, prostValue)
|
|
if prostName then
|
|
-- Get mod data from equipped prosthesis so we can get its parameters
|
|
local equippedProstModData = equippedProsthesis:getModData()
|
|
|
|
|
|
local baseProstItem = patient:getInventory():AddItem("TOC." .. prostName)
|
|
local baseProstItemModData = baseProstItem.getModData()
|
|
baseProstItemModData.TOC = {
|
|
durability = equippedProstModData.TOC.durability,
|
|
speed = equippedProstModData.TOC.speed
|
|
}
|
|
|
|
patient:setWornItem(equippedProsthesis:getBodyLocation(), nil)
|
|
patient:getInventory():Remove(equippedProsthesis)
|
|
TOCModData.limbs[partName].equippedProsthesis = nil
|
|
end
|
|
end
|
|
end |