diff --git a/media/lua/client/UI/TOC_CutLimbInteractions.lua b/media/lua/client/UI/TOC_CutLimbInteractions.lua index f24b327..37fde7d 100644 --- a/media/lua/client/UI/TOC_CutLimbInteractions.lua +++ b/media/lua/client/UI/TOC_CutLimbInteractions.lua @@ -22,7 +22,7 @@ end ---Adds the actions to the inventory context menu ---@param surgeonNum number ----@param context ISUIElement +---@param context ISContextMenu local function AddInventoryAmputationOptions(surgeonNum, context) local surgeonObj = getSpecificPlayer(surgeonNum) local option = context:addOption(getText("ContextMenu_Amputate"), nil) diff --git a/media/lua/client/UI/TOC_SurgeryInteractions.lua b/media/lua/client/UI/TOC_SurgeryInteractions.lua index c3e0092..5deab99 100644 --- a/media/lua/client/UI/TOC_SurgeryInteractions.lua +++ b/media/lua/client/UI/TOC_SurgeryInteractions.lua @@ -20,33 +20,54 @@ local function Cauterize(limbName) end - +---comment +---@param playerNum any +---@param context ISContextMenu +---@param worldObjects any +---@param test any local function AddOvenContextMenu(playerNum, context, worldObjects, test) local pl = getSpecificPlayer(playerNum) if not ModDataHandler.GetInstance():getIsAnyLimbCut() then return end local amputatedLimbs = PlayerHandler.GetAmputatedLimbs() - local foundStove = false + local stoveObj = nil for _, obj in pairs(worldObjects) do - if instanceof(obj, "IsoStove") and obj:getCurrentTemperature() > 250 then - foundStove = true + if instanceof(obj, "IsoStove") then + stoveObj = obj break end end + if stoveObj == nil then return end - if foundStove == false then return end - local option = context:addOption(getText("ContextMenu_Cauterize"), nil) - local subMenu = context:getNew(context) - context:addSubMenu(option, subMenu) - if pl:HasTrait("Brave") or pl:getPerkLevel(Perks.Strength) > 5 then + --if pl:HasTrait("Brave") or pl:getPerkLevel(Perks.Strength) > 5 then + local isTempLow = stoveObj:getCurrentTemperature() < 250 + local tempTooltip = ISToolTip:new() + tempTooltip:initialise() + tempTooltip:setName("ContextMenu_Cauterize_TempTooLow_tooltip") + tempTooltip.description = getText("Tooltip_Surgery_TempTooLow") + tempTooltip:setVisible(false) + + local optionMain = context:addOption(getText("ContextMenu_Cauterize"), nil) + local subMenu = context:getNew(context) + --subMenu.toolTip = tempTooltip + -- if isTempLow then + -- print("TOC: show tooltip") + -- subMenu:showTooltip(subMenu) -- Thank you TIS for this awful overriding you did + -- end + + context:addSubMenu(optionMain, subMenu) for i=1, #amputatedLimbs do local limbName = amputatedLimbs[i] - subMenu:addOption(getText("ContextMenu_Limb_" .. limbName), limbName, Cauterize) + local option = subMenu:addOption(getText("ContextMenu_Limb_" .. limbName), limbName, Cauterize) + option.notAvailable = isTempLow + if isTempLow then + option.toolTip = tempTooltip + end end - end + --end end diff --git a/media/lua/shared/Translate/EN/ContextMenu_EN.txt b/media/lua/shared/Translate/EN/ContextMenu_EN.txt index 8f9ec91..eaeb164 100644 --- a/media/lua/shared/Translate/EN/ContextMenu_EN.txt +++ b/media/lua/shared/Translate/EN/ContextMenu_EN.txt @@ -2,6 +2,7 @@ ContextMenu_EN = { ContextMenu_Amputate = "Amputate", ContextMenu_Cauterize = "Cauterize", + ContextMenu_Cauterize_TempTooLow_tooltip = "Temperature too low", ContextMenu_Limb_Hand_L = "Left Hand", ContextMenu_Limb_ForeArm_L = "Left forearm", diff --git a/media/lua/shared/Translate/EN/Tooltip_EN.txt b/media/lua/shared/Translate/EN/Tooltip_EN.txt new file mode 100644 index 0000000..7fa281a --- /dev/null +++ b/media/lua/shared/Translate/EN/Tooltip_EN.txt @@ -0,0 +1,3 @@ +Tooltip_EN = { + Tooltip_Surgery_TempTooLow = "Turn on the oven and wait for it to heat up before cauterizing your wound.", +} \ No newline at end of file