Merge pull request #93 from ZioPao/dev

v2.0.15
This commit is contained in:
Pao
2024-07-13 19:30:30 +02:00
committed by GitHub
20 changed files with 316 additions and 104 deletions
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
# Open the Main.lua file in read mode
while IFS= read -r line; do
# Check if the current line contains _version
if [[ $line == *_version* ]]; then
# Get the current version number from the line
current_version=$(echo $line | cut -d '"' -f 2)
# Increment the version number by 1
new_version=$((current_version + 1))
# Replace the old version number with the new one in the file
echo "$line" | sed "s/$current_version/$new_version/g" > media/lua/client/Main.lua
fi
done < media/lua/client/Main.lua
# Open the mod.info file in read mode
while IFS= read -r line; do
# Check if the current line contains modversion
if [[ $line == *modversion* ]]; then
# Get the current version number from the line
current_version=$(echo $line | cut -d '"' -f 2)
# Increment the version number by 1
new_version=$((current_version + 1))
# Replace the old version number with the new one in the file
echo "$line" | sed "s/$current_version/$new_version/g" > mod.info
fi
done < mod.info
@@ -58,12 +58,15 @@ function LocalPlayerController.ManageTraits()
for k, v in pairs(StaticData.TRAITS_BP) do for k, v in pairs(StaticData.TRAITS_BP) do
if playerObj:HasTrait(k) then if playerObj:HasTrait(k) then
-- Once we find one, we should be done since they're exclusive -- Once we find one, we should be done since they're exclusive
TOC_DEBUG.print("Player has amputation trait " .. k .. ", executing it")
local tempHandler = AmputationHandler:new(v, playerObj) local tempHandler = AmputationHandler:new(v, playerObj)
tempHandler:execute(false) -- No damage tempHandler:execute(false) -- No damage
tempHandler:close() tempHandler:close()
-- The wound should be already cicatrized -- The wound should be already cicatrized
local dcInst = DataController.GetInstance()
LocalPlayerController.HandleSetCicatrization(DataController.GetInstance(), playerObj, v) LocalPlayerController.HandleSetCicatrization(DataController.GetInstance(), playerObj, v)
dcInst:apply()
return return
end end
end end
@@ -310,7 +313,7 @@ end
---@param playerObj IsoPlayer ---@param playerObj IsoPlayer
---@param limbName string ---@param limbName string
function LocalPlayerController.HandleSetCicatrization(dcInst, playerObj, limbName) function LocalPlayerController.HandleSetCicatrization(dcInst, playerObj, limbName)
TOC_DEBUG.print(tostring(limbName) .. " is cicatrized") TOC_DEBUG.print("Setting cicatrization to " .. tostring(limbName))
dcInst:setIsCicatrized(limbName, true) dcInst:setIsCicatrized(limbName, true)
dcInst:setCicatrizationTime(limbName, 0) dcInst:setCicatrizationTime(limbName, 0)
@@ -89,9 +89,12 @@ end
---@param stitchesItem InventoryItem ---@param stitchesItem InventoryItem
---@return ISStitch ---@return ISStitch
function AmputationHandler.PrepareStitchesAction(prevAction, limbName, surgeonPl, patientPl, stitchesItem) function AmputationHandler.PrepareStitchesAction(prevAction, limbName, surgeonPl, patientPl, stitchesItem)
local bptEnum = StaticData.LIMBS_TO_BODYLOCS_IND_BPT[limbName]
local bd = patientPl:getBodyDamage() local bd = patientPl:getBodyDamage()
local bodyPart = bd:getBodyPart(bptEnum)
-- we need the adjacent one, not the actual one
local adjacentLimb = StaticData.LIMBS_ADJACENT_IND_STR[limbName]
local bodyPart = bd:getBodyPart(BodyPartType[adjacentLimb])
local stitchesAction = ISStitch:new(surgeonPl, patientPl, stitchesItem, bodyPart, true) local stitchesAction = ISStitch:new(surgeonPl, patientPl, stitchesItem, bodyPart, true)
ISTimedActionQueue.addAfter(prevAction, stitchesAction) ISTimedActionQueue.addAfter(prevAction, stitchesAction)
@@ -106,9 +109,11 @@ end
---@param bandageItem InventoryItem ---@param bandageItem InventoryItem
---@return ISApplyBandage ---@return ISApplyBandage
function AmputationHandler.PrepareBandagesAction(prevAction, limbName, surgeonPl, patientPl, bandageItem) function AmputationHandler.PrepareBandagesAction(prevAction, limbName, surgeonPl, patientPl, bandageItem)
local bptEnum = StaticData.LIMBS_TO_BODYLOCS_IND_BPT[limbName]
local bd = patientPl:getBodyDamage() local bd = patientPl:getBodyDamage()
local bodyPart = bd:getBodyPart(bptEnum) -- we need the adjacent one, not the actual one
local adjacentLimb = StaticData.LIMBS_ADJACENT_IND_STR[limbName]
local bodyPart = bd:getBodyPart(BodyPartType[adjacentLimb])
local bandageAction = ISApplyBandage:new(surgeonPl, patientPl, bandageItem, bodyPart, true) local bandageAction = ISApplyBandage:new(surgeonPl, patientPl, bandageItem, bodyPart, true)
ISTimedActionQueue.addAfter(prevAction, bandageAction) ISTimedActionQueue.addAfter(prevAction, bandageAction)
+1 -1
View File
@@ -6,7 +6,7 @@ require("TOC/Events")
---@class Main ---@class Main
local Main = { local Main = {
_version = "2.0.14" _version = "2.0.15"
} }
function Main.Start() function Main.Start()
@@ -38,9 +38,8 @@ local function GetStitchesConsumableItem(player)
-- Suture needle has priority -- Suture needle has priority
local sutureNeedle = plInv:FindAndReturn("Base.SutureNeedle") local sutureNeedle = plInv:FindAndReturn("Base.SutureNeedle")
---@cast sutureNeedle DrainableComboItem
if sutureNeedle and sutureNeedle:getUsedDelta() > 0 then if sutureNeedle then
return sutureNeedle return sutureNeedle
else else
-- Didn't find the suture one, so let's search for the normal one + thread -- Didn't find the suture one, so let's search for the normal one + thread
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,33 @@
ContextMenu_UA = {
ContextMenu_Amputate = "Àìïóòóâàòè",
ContextMenu_Amputate_Bandage = "Àìïóòóâàòè òà ïåðåâ'ÿçàòè",
ContextMenu_Amputate_Stitch = "Àìïóòóâàòè òà íàêëàñòè øâè",
ContextMenu_Amputate_Stitch_Bandage = "Àìïóòóâàòè, íàêëàñòè øâè òà ïåðåâ'ÿçàòè",
ContextMenu_Cauterize = "Ïðèïåêòè",
ContextMenu_Limb_Hand_L = "˳âà Ðóêà",
ContextMenu_Limb_ForeArm_L = "˳âå Ïåðåäïë³÷÷ÿ",
ContextMenu_Limb_UpperArm_L = "˳âå Ïëå÷å"
ContextMenu_Limb_Hand_R = "Ïðàâà Ðóêà",
ContextMenu_Limb_ForeArm_R = "Ïðàâå Ïåðåäïë³÷÷ÿ",
ContextMenu_Limb_UpperArm_R = "Ïðàâå Ïëå÷å",
ContextMenu_InstallProstRight = "Óñòàíîâèòè ïðîòåç íà ïðàâó ðóêó",
ContextMenu_InstallProstLeft = "Óñòàíîâèòè ïðîòåç íà ë³âó ðóêó",
ContextMenu_PutTourniquetArmLeft = "Íàêëàñòè äæãóò íà ë³âó ðóêó",
ContextMenu_PutTourniquetLegL = "Íàêëàñòè äæãóò íà ë³âó íîãó",
ContextMenu_PutTourniquetArmRight = "Íàêëàñòè äæãóò íà ïðàâó ðóêó",
ContextMenu_PutTourniquetLegR = "Íàêëàñòè äæãóò íà ïðàâó íîãó",
ContextMenu_CleanWound = "Î÷èñòèòè ðàíó",
ContextMenu_Admin_TOC = "TOC",
ContextMenu_Admin_ResetTOC = "Ñêèíóòè Àìïóòàö³¿",
ContextMenu_Admin_ForceAmputation = "Ïðèìóñîâî Àìïóòóâàòè",
}
@@ -0,0 +1,18 @@
IG_UI_UA = {
IGUI_perks_Amputations = "Ŕěďóňŕöłż",
IGUI_perks_Side_R = "Ďđŕâŕ ńňîđîíŕ",
IGUI_perks_Side_L = "Ëłâŕ ńňîđîíŕ",
IGUI_perks_Prosthesis = "Ďđîňĺç",
IGUI_perks_ProstFamiliarity= "Ďđčńňîńîâŕíłńňü",
IGUI_ItemCat_Prosthesis = "Ďđîňĺç",
IGUI_ItemCat_Surgery = "Őłđóđăł˙",
IGUI_ItemCat_Amputation = "Ŕěďóňŕöł˙"
IGUI_HealthPanel_Cicatrization = "Đóáöţâŕíí˙",
IGUI_HealthPanel_Cicatrized = "Çŕđóáöüîâŕíŕ",
IGUI_HealthPanel_Cauterized = "Ďđčďĺ÷ĺíŕ",
IGUI_HealthPanel_WoundDirtyness = "Çŕáđóäíĺíŕ đŕíŕ",
IGUI_HealthPanel_ProstEquipped = "Ďđîňĺç óńňŕíîâëĺíî",
}
@@ -0,0 +1,11 @@
ItemName_UA = {
ItemName_TOC.Surg_Arm_Tourniquet_L = "Äæãóò",
ItemName_TOC.Surg_Arm_Tourniquet_R = "Äæãóò",
ItemName_TOC.Prost_NormalArm_L = "Ïðîòåç Ðóêè",
ItemName_TOC.Prost_NormalArm_R = "Ïðîòåç Ðóêè",
ItemName_TOC.Prost_HookArm_L = "Ïðîòåç Ðóêè - Ãàê",
ItemName_TOC.Prost_HookArm_R = "Ïðîòåç Ðóêè - Ãàê",
}
@@ -0,0 +1,4 @@
Recipes_UA = {
Recipe_Craft_Prosthetic_Arm = "Створити Протез Руки",
Recipe_Craft_Prosthetic_Hook = "Створити Протез Руки - Гак",
}
@@ -0,0 +1,7 @@
Sandbox_UA = {
Sandbox_TOC = "The Only Cure",
Sandbox_TOC_CicatrizationSpeed = "Øâèäê³ñòü ðóáöþâàííÿ",
Sandbox_TOC_WoundDirtynessMultiplier = "Ìíîæíèê çàáðóäíåííÿ ðàíè",
Sandbox_TOC_SurgeonAbilityImportance = "Âàæëèâ³ñòü ìåäè÷íèõ íàâè÷îê ë³êàðÿ",
}
@@ -0,0 +1,10 @@
Tooltip_UA = {
Tooltip_Surgery_CantCauterize = "Не можна припекти рану",
Tooltip_Surgery_And = " та "
Tooltip_Surgery_TempTooLow = "Температура занадто низька",
Tooltip_Surgery_Coward = "Вам не вистачає сміливості зробити це",
Tooltip_Surgery_LimbNotFree = "Спочатку необхідно зняти протез",
}
+1 -1
View File
@@ -4,5 +4,5 @@ description=You've been bitten. You have only two choices.
id=TheOnlyCure id=TheOnlyCure
icon=icon.png icon=icon.png
url=https://github.com/ZioPao/The-Only-Cure url=https://github.com/ZioPao/The-Only-Cure
modversion=2.0.14 modversion=2.0.15
pzversion=41.65 pzversion=41.65
+185 -95
View File
@@ -1,95 +1,185 @@
version=1 version=1
id=3236152598 id=3236152598
title=The Only Cure - Rebuilt title=The Only Cure - Rebuilt
description=[img]https://raw.githubusercontent.com/ZioPao/The-Only-Cure/551125bb50cb65608ad89ca81ef0daccb3b02c4c/dev_stuff/logos/title.png[/img] description=[img]https://raw.githubusercontent.com/ZioPao/The-Only-Cure/551125bb50cb65608ad89ca81ef0daccb3b02c4c/dev_stuff/logos/title.png[/img]
description= description=
description= description=
description=[h1]You're bitten. You have two choices.[/h1] description=[h1]You're bitten. You have two choices.[/h1]
description=Wait until you succumb to the virus or take matters into your hands. Cut off that infected part and live to die another day. description=Wait until you succumb to the virus or take matters into your hands. Cut off that infected part and live to die another day.
description= description=
description=This version of [b]The Only Cure[/b] has been rebuilt from scratch to support future additions and to feel as close as possible as a vanilla mechanic. description=This version of [b]The Only Cure[/b] has been rebuilt from scratch to support future additions and to feel as close as possible as a vanilla mechanic.
description= description=
description=[b]If you're using an older version of The Only Cure and want to switch with this, you're gonna need to create a new character\save to prevent issues.[/b] description=[b]If you're using an older version of The Only Cure and want to switch with this, you're gonna need to create a new character\save to prevent issues.[/b]
description=[b]The older version will be delisted shortly and it will not be supported anymore.[/b] description=[b]The older version will be delisted shortly and it will not be supported anymore.[/b]
description=[h1]Supports [b]Single Player[/b] and [b]Multiplayer[/b]. Host Mode is currently [b]UNSUPPORTED![/b][/h1] description=[h1]Supports [b]Single Player[/b] and [b]Multiplayer[/b]. Host Mode is currently [b]UNSUPPORTED![/b][/h1]
description= description=
description=[h1]Setup[/h1] description=[h1]Setup[/h1]
description=Use it with the following mods for the intended experience: description=Use it with the following mods for the intended experience:
description=[list] description=[list]
description=[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2904920097]Fancy Handwork[/url] description=[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2904920097]Fancy Handwork[/url]
description=[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2934621024]Brutal Handwork[/url] description=[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2934621024]Brutal Handwork[/url]
description=[/list] description=[/list]
description= description=
description=Place them [b]BEFORE[/b] The Only Cure in your mod list! description=Place them [b]BEFORE[/b] The Only Cure in your mod list!
description= description=
description=[hr][/hr] description=[hr][/hr]
description= description=
description=[h1]Quick guide[/h1] description=[h1]Quick guide[/h1]
description=[h2]Amputation[/h2] description=[h2]Amputation[/h2]
description=Get a [i]Saw[/i] or a [i]Garden Saw[/i], right click on it, and choose which limb to amputate. You can also drag n' drop your Saw item directly into the afflicted area to start cutting it off. description=Get a [i]Saw[/i] or a [i]Garden Saw[/i], right click on it, and choose which limb to amputate. You can also drag n' drop your Saw item directly into the afflicted area to start cutting it off.
description= description=
description=If you have some [i]bandages[/i] and\or [i]stitches[/i] in your inventory you will automatically use them, multiplying the chances of your survival. description=If you have some [i]bandages[/i] and\or [i]stitches[/i] in your inventory you will automatically use them, multiplying the chances of your survival.
description=If you have a [i]tourniquet[/i], place it on the correct side to dampen the amount of damage you will take after you're done amputating the limb. description=If you have a [i]tourniquet[/i], place it on the correct side to dampen the amount of damage you will take after you're done amputating the limb.
description= description=
description=Keep in mind that if you amputate your [b]upper arm[/b], you won't be able to equip any prosthesis. description=Keep in mind that if you amputate your [b]upper arm[/b], you won't be able to equip any prosthesis.
description= description=
description=After you've amputated a limb, you will gain [b]skill points[/b] for the amputated side, making timed actions faster in due time. description=After you've amputated a limb, you will gain [b]skill points[/b] for the amputated side, making timed actions faster in due time.
description= description=
description=[h2]Cicatrization[/h2] description=[h2]Cicatrization[/h2]
description=You can check the cicatrization status of an amputated limb from your [b]Health Panel[/b] description=You can check the cicatrization status of an amputated limb from your [b]Health Panel[/b]
description=From time to time, you should clean your wounds with a bandage to help the cicatrization process. description=From time to time, you should clean your wounds with a bandage to help the cicatrization process.
description=If your limb isn't completely cicatrized, you can still equip prosthetic limbs, but that can trigger random bleedings from that area. description=If your limb isn't completely cicatrized, you can still equip prosthetic limbs, but that can trigger random bleedings from that area.
description= description=
description=[h2]Prosthetics[/h2] description=[h2]Prosthetics[/h2]
description=If you're missing a hand, you won't be able to do a lot of things, such as equipping two-handed weapons. With prosthetics limbs, you can fix that. description=If you're missing a hand, you won't be able to do a lot of things, such as equipping two-handed weapons. With prosthetics limbs, you can fix that.
description=There are two prosthesis type that can be crafted\found in medical areas: description=There are two prosthesis type that can be crafted\found in medical areas:
description=[list] description=[list]
description=[*] Hook Prosthesis description=[*] Hook Prosthesis
description=[*] Arm Prosthesis description=[*] Arm Prosthesis
description=[/list] description=[/list]
description=
description=The main difference between the twos is that your actions will take longer with the Hook Prosthesis.
description=When you equip a prosthetic limb, you will slowly gain skill points in the [b]Prosthesis Familiarity[/b] perk, making actions more speedy in due time.
description=
description=[h2]Admin tools[/h2]
description=If something strange happened, an admin can reset TOC mechanics on any player by right clicking on them and select [i]"Reset Amputations"[/i]. They could also do the opposite by clicking on [i]"Force Amputation"[/i] for each amputable limb.
description=
description=[hr][/hr]
description=
description=[h1]Issues and bugs?[/h1]
description=Got any issues or found some pesky bugs? Report them on GitHub!
description=
description=[url=https://github.com/ZioPao/The-Only-Cure][img]https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white[/img][/url]
description=
description=[h1]Credits[/h1]
description=[table]
description= [tr]
description= [th]Pao[/th]
description= [th]Developer[/th]
description= [/tr]
description= [tr]
description= [th]Mr. Bounty[/th]
description= [th]Original Developer[/th]
description= [/tr]
description= [tr]
description= [th]Chuckleberry Finn[/th]
description= [th]Logo and Icon[/th]
description= [/tr]
description= [tr]
description= [th]dhert[/th]
description= [th]Compatibility API[/th]
description= [/tr]
description= [tr]
description= [th]JCloudJalix, Rinary1[/th]
description= [th]Translations[/th]
description= [/tr]
description=[/table]
description=
description=[hr][/hr]
description=
description=[h1]Want to support me?[/h1]
description=[url=https://ko-fi.com/M4M7IERNW][img]https://storage.ko-fi.com/cdn/kofi3.png[/img][/url]
description=
description=[hr][/hr]
tags=Build 41;Balance;Interface;Items;Misc;Multiplayer;Realistic;Textures
visibility=public