Compare commits
17 Commits
dev-fix-se
...
v2.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be4588fc43 | ||
|
|
4bafb3a15c | ||
|
|
fd056aea1e | ||
|
|
100abab2aa | ||
|
|
789b0635e0 | ||
|
|
d6d9ba7028 | ||
|
|
a182fb07e5 | ||
|
|
528a43247a | ||
|
|
b281ce7d12 | ||
|
|
9db3a1c944 | ||
|
|
a74e33134d | ||
|
|
1caf4a4b49 | ||
|
|
5f71cebdc0 | ||
|
|
4714bd7b82 | ||
|
|
4d20cc2559 | ||
|
|
5ec0ec1a9b | ||
|
|
89a28e846a |
@@ -25,16 +25,16 @@ local og_ISUnequipAction_complete = ISUnequipAction.complete
|
|||||||
function ISUnequipAction:complete()
|
function ISUnequipAction:complete()
|
||||||
-- Horrendous workaround. For B42, as of now, it will basically happen two times, once with :perform and once with :complete. Shouldn't
|
-- Horrendous workaround. For B42, as of now, it will basically happen two times, once with :perform and once with :complete. Shouldn't
|
||||||
-- matter for performance but it's really ugly.
|
-- matter for performance but it's really ugly.
|
||||||
local isProst = ProsthesisHandler.SearchAndSetupProsthesis(self.item, false)
|
-- local isProst = ProsthesisHandler.SearchAndSetupProsthesis(self.item, false)
|
||||||
local group
|
-- local group
|
||||||
if isProst then
|
-- if isProst then
|
||||||
group = BodyLocations.getGroup("Human")
|
-- group = BodyLocations.getGroup("Human")
|
||||||
group:setMultiItem("TOC_ArmProst", false)
|
-- group:setMultiItem("TOC_ArmProst", false)
|
||||||
end
|
-- end
|
||||||
og_ISUnequipAction_complete(self)
|
og_ISUnequipAction_complete(self)
|
||||||
|
|
||||||
if isProst then
|
-- if isProst then
|
||||||
group:setMultiItem("TOC_ArmProst", true)
|
-- group:setMultiItem("TOC_ArmProst", true)
|
||||||
end
|
-- end
|
||||||
|
|
||||||
end
|
end
|
||||||
53
42/media/scripts/TOC_recipes.txt
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
module TOC
|
||||||
|
{
|
||||||
|
imports
|
||||||
|
{
|
||||||
|
Base
|
||||||
|
}
|
||||||
|
/*************Craft Prosthetics*******************/
|
||||||
|
craftRecipe Craft Prosthetic Arm
|
||||||
|
{
|
||||||
|
timedAction = BuildMetalStructureSmall,
|
||||||
|
Time = 150,
|
||||||
|
Tags = InHandCraft,
|
||||||
|
category = Welding,
|
||||||
|
NeedToBeLearn = false,
|
||||||
|
SkillRequired = MetalWelding:4,
|
||||||
|
xpAward = MetalWelding:50,
|
||||||
|
inputs
|
||||||
|
{
|
||||||
|
item 4 [MetalPipe],
|
||||||
|
item 2 [Plank],
|
||||||
|
item 4 [Base.BlowTorch] flags[DontRecordInput],
|
||||||
|
item 4 [Base.WeldingRods] flags[DontRecordInput],
|
||||||
|
|
||||||
|
}
|
||||||
|
outputs
|
||||||
|
{
|
||||||
|
item 1 TOC.Prost_NormalArm_L,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
craftRecipe Craft Prosthetic Hook
|
||||||
|
{
|
||||||
|
timedAction = BuildMetalStructureSmall,
|
||||||
|
Time = 100,
|
||||||
|
Tags = InHandCraft,
|
||||||
|
category = Welding,
|
||||||
|
NeedToBeLearn = false,
|
||||||
|
SkillRequired = MetalWelding:2,
|
||||||
|
xpAward = MetalWelding:30,
|
||||||
|
inputs
|
||||||
|
{
|
||||||
|
item 2 [MetalPipe],
|
||||||
|
item 1 [Plank],
|
||||||
|
item 4 [Base.BlowTorch] flags[DontRecordInput],
|
||||||
|
item 2 [Base.WeldingRods] flags[DontRecordInput],
|
||||||
|
|
||||||
|
}
|
||||||
|
outputs
|
||||||
|
{
|
||||||
|
item 1 TOC.Prost_HookArm_L,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ 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.2
|
modversion=2.2.2
|
||||||
versionMin=42.6
|
versionMin=42.6
|
||||||
|
|
||||||
loadModAfter=\FancyHandwork,\BrutalHandwork,\TwoWeaponsOnBackRework
|
loadModAfter=\FancyHandwork,\BrutalHandwork,\TwoWeaponsOnBackRework
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<clothingItem>
|
<clothingItem>
|
||||||
<m_MaleModel>Amputation\Amputation_FA_LR</m_MaleModel>
|
<m_MaleModel>Amputation\Amputation_Left_LowerArm_Male</m_MaleModel>
|
||||||
<m_FemaleModel>Amputation\Amputation_Left_LowerArm_Female</m_FemaleModel>
|
<m_FemaleModel>Amputation\Amputation_Left_LowerArm_Female</m_FemaleModel>
|
||||||
<m_GUID>d3816fe0-48e1-4cf5-a8e4-48c72595edb4</m_GUID>
|
<m_GUID>d3816fe0-48e1-4cf5-a8e4-48c72595edb4</m_GUID>
|
||||||
<m_Static>false</m_Static>
|
<m_Static>false</m_Static>
|
||||||
<m_AllowRandomHue>false</m_AllowRandomHue>
|
<m_AllowRandomHue>false</m_AllowRandomHue>
|
||||||
<m_AllowRandomTint>false</m_AllowRandomTint>
|
<m_AllowRandomTint>false</m_AllowRandomTint>
|
||||||
|
|
||||||
<m_UnderlayMasksFolder>media/textures/Amputations/Masks/TestDouble</m_UnderlayMasksFolder>
|
|
||||||
|
|
||||||
<m_Masks>4</m_Masks>
|
<m_Masks>4</m_Masks>
|
||||||
<m_Masks>6</m_Masks>
|
<m_Masks>3</m_Masks>
|
||||||
|
|
||||||
|
<!-- <m_UnderlayMasksFolder>media/textures/Amputations/Masks</m_UnderlayMasksFolder> -->
|
||||||
|
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<clothingItem>
|
|
||||||
<m_MaleModel>Amputation\Amputation_FA_LR</m_MaleModel>
|
|
||||||
<m_FemaleModel>Amputation\Amputation_FA_LR</m_FemaleModel>
|
|
||||||
<m_GUID>8e5bc1b4-d79b-4a17-b86b-71dab6ace816</m_GUID>
|
|
||||||
<m_Static>false</m_Static>
|
|
||||||
<m_AllowRandomHue>false</m_AllowRandomHue>
|
|
||||||
<m_AllowRandomTint>false</m_AllowRandomTint>
|
|
||||||
|
|
||||||
<m_Masks>4</m_Masks>
|
|
||||||
<m_Masks>6</m_Masks>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- HUMAN -->
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_b</textureChoices>
|
|
||||||
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_hairy_b</textureChoices>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- HUMAN AFTER CICATRIZATION -->
|
|
||||||
|
|
||||||
<textureChoices>Body\MaleBody01</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody02</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody03</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody04</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody05</textureChoices>
|
|
||||||
|
|
||||||
<textureChoices>Body\MaleBody01a</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody02a</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody03a</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody04</textureChoices>
|
|
||||||
<textureChoices>Body\MaleBody05a</textureChoices>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ZOMBIE -->
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin01_l1</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin01_l2</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin01_l3</textureChoices>
|
|
||||||
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin02_l1</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin02_l2</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin02_l3</textureChoices>
|
|
||||||
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin03_l1</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin03_l2</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin03_l3</textureChoices>
|
|
||||||
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin04_l1</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin04_l2</textureChoices>
|
|
||||||
<textureChoices>Amputations\Zombie\Forearm\z_skin04_l3</textureChoices>
|
|
||||||
|
|
||||||
</clothingItem>
|
|
||||||
@@ -10,6 +10,8 @@
|
|||||||
<m_Masks>5</m_Masks>
|
<m_Masks>5</m_Masks>
|
||||||
<m_Masks>6</m_Masks>
|
<m_Masks>6</m_Masks>
|
||||||
|
|
||||||
|
<!-- <m_UnderlayMasksFolder>media/textures/Amputations/Masks</m_UnderlayMasksFolder> -->
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_b</textureChoices>
|
<textureChoices>Amputations\Human\Forearm\skin01_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_b</textureChoices>
|
<textureChoices>Amputations\Human\Forearm\skin02_b</textureChoices>
|
||||||
|
|||||||
@@ -7,18 +7,33 @@
|
|||||||
<m_AllowRandomHue>false</m_AllowRandomHue>
|
<m_AllowRandomHue>false</m_AllowRandomHue>
|
||||||
<m_AllowRandomTint>false</m_AllowRandomTint>
|
<m_AllowRandomTint>false</m_AllowRandomTint>
|
||||||
<m_Masks>4</m_Masks>
|
<m_Masks>4</m_Masks>
|
||||||
<m_MasksFolder>none</m_MasksFolder>
|
<!-- <m_MasksFolder>none</m_MasksFolder> -->
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin01_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin02_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin03_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin04_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin05_b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\Human\Hand\skin01_hairy_b</textureChoices>
|
||||||
|
<textureChoices>Amputations\Human\Hand\skin02_hairy_b</textureChoices>
|
||||||
|
<textureChoices>Amputations\Human\Hand\skin03_hairy_b</textureChoices>
|
||||||
|
<textureChoices>Amputations\Human\Hand\skin04_hairy_b</textureChoices>
|
||||||
|
<textureChoices>Amputations\Human\Hand\skin05_hairy_b</textureChoices>
|
||||||
|
|
||||||
|
<!-- HUMAN AFTER CICATRIZATION -->
|
||||||
|
|
||||||
|
<textureChoices>Body\MaleBody01</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody02</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody03</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody04</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody05</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Body\MaleBody01a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody02a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody03a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody04</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody05a</textureChoices>
|
||||||
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_hairy_b</textureChoices>
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_hairy_b</textureChoices>
|
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -6,18 +6,32 @@
|
|||||||
<m_AllowRandomHue>false</m_AllowRandomHue>
|
<m_AllowRandomHue>false</m_AllowRandomHue>
|
||||||
<m_AllowRandomTint>false</m_AllowRandomTint>
|
<m_AllowRandomTint>false</m_AllowRandomTint>
|
||||||
<m_Masks>6</m_Masks>
|
<m_Masks>6</m_Masks>
|
||||||
<m_MasksFolder>none</m_MasksFolder>
|
<!-- <m_MasksFolder>none</m_MasksFolder> -->
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin01_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin02_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin03_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin04_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin05_b</textureChoices>
|
||||||
|
|
||||||
<textureChoices>Amputations\Human\Forearm\skin01_hairy_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin01_hairy_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin02_hairy_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin02_hairy_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin03_hairy_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin03_hairy_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin04_hairy_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin04_hairy_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Forearm\skin05_hairy_b</textureChoices>
|
<textureChoices>Amputations\Human\Hand\skin05_hairy_b</textureChoices>
|
||||||
|
|
||||||
|
<!-- HUMAN AFTER CICATRIZATION -->
|
||||||
|
|
||||||
|
<textureChoices>Body\MaleBody01</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody02</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody03</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody04</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody05</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Body\MaleBody01a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody02a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody03a</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody04</textureChoices>
|
||||||
|
<textureChoices>Body\MaleBody05a</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -9,6 +9,8 @@
|
|||||||
<m_Masks>3</m_Masks>
|
<m_Masks>3</m_Masks>
|
||||||
<m_Masks>4</m_Masks>
|
<m_Masks>4</m_Masks>
|
||||||
|
|
||||||
|
<!-- <m_UnderlayMasksFolder>media/textures/Amputations/Masks</m_UnderlayMasksFolder> -->
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
<textureChoices>Amputations\Human\Upperarm\skin01_b</textureChoices>
|
<textureChoices>Amputations\Human\Upperarm\skin01_b</textureChoices>
|
||||||
<textureChoices>Amputations\Human\Upperarm\skin02_b</textureChoices>
|
<textureChoices>Amputations\Human\Upperarm\skin02_b</textureChoices>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
<m_AllowRandomTint>false</m_AllowRandomTint>
|
<m_AllowRandomTint>false</m_AllowRandomTint>
|
||||||
<m_Masks>5</m_Masks>
|
<m_Masks>5</m_Masks>
|
||||||
<m_Masks>6</m_Masks>
|
<m_Masks>6</m_Masks>
|
||||||
|
<!-- <m_UnderlayMasksFolder>media/textures/Amputations/Masks</m_UnderlayMasksFolder> -->
|
||||||
|
|
||||||
<!-- HUMAN -->
|
<!-- HUMAN -->
|
||||||
<textureChoices>Amputations\Human\Upperarm\skin01_b</textureChoices>
|
<textureChoices>Amputations\Human\Upperarm\skin01_b</textureChoices>
|
||||||
|
|||||||
@@ -57,11 +57,5 @@
|
|||||||
<guid>9a5fe063-63c7-4e6f-81ca-ee77c6678e0d</guid>
|
<guid>9a5fe063-63c7-4e6f-81ca-ee77c6678e0d</guid>
|
||||||
</files>
|
</files>
|
||||||
|
|
||||||
<!-- TEST -->
|
|
||||||
<files>
|
|
||||||
<path>media/clothing/clothingItems/Amputation_ForeArm_LR.xml</path>
|
|
||||||
<guid>8e5bc1b4-d79b-4a17-b86b-71dab6ace816</guid>
|
|
||||||
</files>
|
|
||||||
|
|
||||||
|
|
||||||
</fileGuidTable>
|
</fileGuidTable>
|
||||||
@@ -17,7 +17,6 @@ ItemsController.Player = {}
|
|||||||
---@return number
|
---@return number
|
||||||
---@private
|
---@private
|
||||||
function ItemsController.Player.GetAmputationTexturesIndex(playerObj, isCicatrized)
|
function ItemsController.Player.GetAmputationTexturesIndex(playerObj, isCicatrized)
|
||||||
-- todo
|
|
||||||
local textureString = playerObj:getHumanVisual():getSkinTexture()
|
local textureString = playerObj:getHumanVisual():getSkinTexture()
|
||||||
local isHairy = textureString:sub(-1) == "a"
|
local isHairy = textureString:sub(-1) == "a"
|
||||||
|
|
||||||
|
|||||||
@@ -64,18 +64,18 @@ end
|
|||||||
---@param obj any self
|
---@param obj any self
|
||||||
---@param wrappedFunc function
|
---@param wrappedFunc function
|
||||||
function TourniquetController.WrapClothingAction(obj, wrappedFunc)
|
function TourniquetController.WrapClothingAction(obj, wrappedFunc)
|
||||||
local isTourniquet = TourniquetController.IsItemTourniquet(obj.item:getFullType())
|
-- local isTourniquet = TourniquetController.IsItemTourniquet(obj.item:getFullType())
|
||||||
local group
|
-- local group
|
||||||
if isTourniquet then
|
-- if isTourniquet then
|
||||||
group = BodyLocations.getGroup("Human")
|
-- group = BodyLocations.getGroup("Human")
|
||||||
group:setMultiItem(TourniquetController.bodyLoc, false)
|
-- group:setMultiItem(TourniquetController.bodyLoc, false)
|
||||||
end
|
-- end
|
||||||
|
|
||||||
local ogValue = wrappedFunc(obj)
|
local ogValue = wrappedFunc(obj)
|
||||||
|
|
||||||
if isTourniquet then
|
-- if isTourniquet then
|
||||||
group:setMultiItem(TourniquetController.bodyLoc, true)
|
-- group:setMultiItem(TourniquetController.bodyLoc, true)
|
||||||
end
|
-- end
|
||||||
|
|
||||||
return ogValue -- Needed for isValid
|
return ogValue -- Needed for isValid
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ local OverridenMethodsArchive = require("TOC/OverridenMethodsArchive")
|
|||||||
---@class ProsthesisHandler
|
---@class ProsthesisHandler
|
||||||
local ProsthesisHandler = {}
|
local ProsthesisHandler = {}
|
||||||
|
|
||||||
local bodyLocArmProst = StaticData.MOD_BODYLOCS_BASE_IND_STR.TOC_ArmProst
|
local bodylocArmProstBaseline = "TOC_ArmProst"
|
||||||
local bodyLocLegProst = StaticData.MOD_BODYLOCS_BASE_IND_STR.TOC_LegProst
|
--local bodyLocLegProst = "TOC_LegProst"
|
||||||
|
|
||||||
---Check if the following item is a prosthesis or not
|
---Check if the following item is a prosthesis or not
|
||||||
---@param item InventoryItem?
|
---@param item InventoryItem?
|
||||||
@@ -23,7 +23,7 @@ function ProsthesisHandler.CheckIfProst(item)
|
|||||||
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
return item:getBodyLocation():contains(bodyLocArmProst)
|
return item:getBodyLocation():contains(bodylocArmProstBaseline)
|
||||||
end
|
end
|
||||||
|
|
||||||
---Get the grouping for the prosthesis
|
---Get the grouping for the prosthesis
|
||||||
@@ -33,13 +33,10 @@ function ProsthesisHandler.GetGroup(item)
|
|||||||
local fullType = item:getFullType()
|
local fullType = item:getFullType()
|
||||||
local side = CommonMethods.GetSide(fullType)
|
local side = CommonMethods.GetSide(fullType)
|
||||||
|
|
||||||
|
|
||||||
local bodyLocation = item:getBodyLocation()
|
local bodyLocation = item:getBodyLocation()
|
||||||
local position
|
local position
|
||||||
if bodyLocation == bodyLocArmProst then
|
if bodyLocation:contains(bodylocArmProstBaseline) then
|
||||||
position = "Top_"
|
position = "Top_"
|
||||||
elseif bodyLocation == bodyLocLegProst then
|
|
||||||
position = "Bottom_"
|
|
||||||
else
|
else
|
||||||
TOC_DEBUG.print("Something is wrong, no position in this item")
|
TOC_DEBUG.print("Something is wrong, no position in this item")
|
||||||
position = nil
|
position = nil
|
||||||
@@ -167,15 +164,15 @@ function ISUnequipAction:perform()
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
local isProst = ProsthesisHandler.SearchAndSetupProsthesis(self.item, false)
|
local isProst = ProsthesisHandler.SearchAndSetupProsthesis(self.item, false)
|
||||||
local group
|
-- local group
|
||||||
if isProst then
|
-- if isProst then
|
||||||
group = BodyLocations.getGroup("Human")
|
-- group = BodyLocations.getGroup("Human")
|
||||||
group:setMultiItem("TOC_ArmProst", false)
|
-- group:setMultiItem("TOC_ArmProst", false)
|
||||||
end
|
-- end
|
||||||
og_ISUnequipAction_perform(self)
|
og_ISUnequipAction_perform(self)
|
||||||
|
|
||||||
if isProst then
|
if isProst then
|
||||||
group:setMultiItem("TOC_ArmProst", true)
|
-- group:setMultiItem("TOC_ArmProst", true)
|
||||||
|
|
||||||
-- we need to fetch the limbname associated to the prosthesis
|
-- we need to fetch the limbname associated to the prosthesis
|
||||||
local side = CommonMethods.GetSide(self.item:getFullType())
|
local side = CommonMethods.GetSide(self.item:getFullType())
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ require("TOC/Events")
|
|||||||
|
|
||||||
---@class Main
|
---@class Main
|
||||||
local Main = {
|
local Main = {
|
||||||
_version = "2.1.6"
|
_version = "2.2.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Main.Start()
|
function Main.Start()
|
||||||
|
|||||||
@@ -143,26 +143,6 @@ function ISHealthPanel:render()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- local og_ISHealthPanel_update = ISHealthPanel.update
|
|
||||||
-- function ISHealthPanel:update()
|
|
||||||
-- og_ISHealthPanel_update(self)
|
|
||||||
-- -- TODO Listen for changes on other player side instead of looping this
|
|
||||||
|
|
||||||
|
|
||||||
-- -- FIX Re-enable it, just for test
|
|
||||||
-- if self.character then
|
|
||||||
-- local locPlUsername = getPlayer():getUsername()
|
|
||||||
-- local remPlUsername = self.character:getUsername()
|
|
||||||
-- if locPlUsername ~= remPlUsername and self:isReallyVisible() then
|
|
||||||
-- -- Request update for TOC DATA
|
|
||||||
-- local key = CommandsData.GetKey(remPlUsername)
|
|
||||||
-- --ModData.request(key)
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- We need to override this to force the alpha to 1
|
-- We need to override this to force the alpha to 1
|
||||||
local og_ISCharacterInfoWindow_render = ISCharacterInfoWindow.prerender
|
local og_ISCharacterInfoWindow_render = ISCharacterInfoWindow.prerender
|
||||||
function ISCharacterInfoWindow:prerender()
|
function ISCharacterInfoWindow:prerender()
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ function BaseHandler:checkItems()
|
|||||||
local containers = ISInventoryPaneContextMenu.getContainers(self:getDoctor())
|
local containers = ISInventoryPaneContextMenu.getContainers(self:getDoctor())
|
||||||
local done = {}
|
local done = {}
|
||||||
local childContainers = {}
|
local childContainers = {}
|
||||||
for i=1,containers:size() do
|
if containers ~= nil then
|
||||||
|
for i=1, containers:size() do
|
||||||
local container = containers:get(i-1)
|
local container = containers:get(i-1)
|
||||||
done[container] = true
|
done[container] = true
|
||||||
table.wipe(childContainers)
|
table.wipe(childContainers)
|
||||||
@@ -45,6 +46,7 @@ function BaseHandler:checkItems()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function BaseHandler:checkContainerItems(container, childContainers)
|
function BaseHandler:checkContainerItems(container, childContainers)
|
||||||
@@ -101,7 +103,7 @@ function BaseHandler:getItemOfTag(items, type)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function BaseHandler:getAllItemsOfType(items, type)
|
function BaseHandler:getAllItemsOfType(items, type)
|
||||||
local items = {}
|
items = {}
|
||||||
for _,item in ipairs(items) do
|
for _,item in ipairs(items) do
|
||||||
if item:getFullType() == type then
|
if item:getFullType() == type then
|
||||||
table.insert(items, item)
|
table.insert(items, item)
|
||||||
|
|||||||
@@ -9,8 +9,19 @@ local group = BodyLocations.getGroup("Human")
|
|||||||
---@type ArrayList
|
---@type ArrayList
|
||||||
local list = customGetVal(group, 1)
|
local list = customGetVal(group, 1)
|
||||||
|
|
||||||
-- TODO Not sure if this method actually works as intende with b42, but for our use case it's fine...
|
---@param bodyLoc string
|
||||||
|
function BodyLocationsAPI.New(bodyLoc)
|
||||||
|
local curItem
|
||||||
|
if StaticData.COMPAT_42 then
|
||||||
|
curItem = BodyLocation.new(group, bodyLoc) -- create new item
|
||||||
|
group:getAllLocations():add(curItem) -- add to the list
|
||||||
|
else
|
||||||
|
curItem = group:getOrCreateLocation(bodyLoc) -- get current item - or create
|
||||||
|
end
|
||||||
|
return curItem
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TODO Not sure if this method actually works as intende with b42, but for our use case it's fine...
|
||||||
---@param toRelocateOrCreate string
|
---@param toRelocateOrCreate string
|
||||||
---@param locationElement string
|
---@param locationElement string
|
||||||
---@param afterBoolean boolean
|
---@param afterBoolean boolean
|
||||||
@@ -23,14 +34,7 @@ function BodyLocationsAPI.MoveOrCreateBeforeOrAfter(toRelocateOrCreate, location
|
|||||||
-- Check type of arg 1 == string - if not, error out.
|
-- Check type of arg 1 == string - if not, error out.
|
||||||
if type(toRelocateOrCreate) ~= "string" then error("Argument 1 is not of type string. Please re-check!", 2) end
|
if type(toRelocateOrCreate) ~= "string" then error("Argument 1 is not of type string. Please re-check!", 2) end
|
||||||
|
|
||||||
local curItem
|
local curItem = BodyLocationsAPI.New(toRelocateOrCreate)
|
||||||
if StaticData.COMPAT_42 then
|
|
||||||
curItem = BodyLocation.new(group, toRelocateOrCreate) -- create new item
|
|
||||||
group:getAllLocations():add(curItem) -- add to the list
|
|
||||||
else
|
|
||||||
curItem = group:getOrCreateLocation(toRelocateOrCreate) -- get current item - or create
|
|
||||||
|
|
||||||
end
|
|
||||||
list:remove(curItem) -- remove from the list
|
list:remove(curItem) -- remove from the list
|
||||||
local index = group:indexOf(locationElement) -- get current index after removal of the location to move to
|
local index = group:indexOf(locationElement) -- get current index after removal of the location to move to
|
||||||
if afterBoolean then index = index + 1 end -- if we want it after it, we increase the index to move to by one
|
if afterBoolean then index = index + 1 end -- if we want it after it, we increase the index to move to by one
|
||||||
@@ -43,29 +47,33 @@ function BodyLocationsAPI.MoveOrCreateBeforeOrAfter(toRelocateOrCreate, location
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function TestBodyLocations()
|
|
||||||
local group = BodyLocations.getGroup("Human")
|
|
||||||
local x = group:getAllLocations()
|
|
||||||
|
|
||||||
for i=0, x:size() -1 do
|
|
||||||
|
|
||||||
---@type BodyLocation
|
-- function TestBodyLocations()
|
||||||
local bl = x:get(i)
|
-- local group = BodyLocations.getGroup("Human")
|
||||||
|
-- local x = group:getAllLocations()
|
||||||
|
|
||||||
print(bl:getId())
|
-- for i=0, x:size() -1 do
|
||||||
end
|
|
||||||
end
|
-- ---@type BodyLocation
|
||||||
|
-- local bl = x:get(i)
|
||||||
|
|
||||||
|
-- print(bl:getId())
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
|
||||||
-- MultiItem causes a ton of issues... fucking hell
|
-- MultiItem causes a ton of issues... fucking hell
|
||||||
|
|
||||||
-- BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_Arm", "Shirt", true)
|
-- local curItem = BodyLocation.new(group, "TOC_Arm_L")
|
||||||
-- group:setMultiItem("TOC_Arm", true)
|
-- group:getAllLocations():add(curItem)
|
||||||
|
|
||||||
local curItem = BodyLocation.new(group, "TOC_Arm") -- create new item
|
-- local curItem = BodyLocation.new(group, "TOC_Arm_R")
|
||||||
group:getAllLocations():add(curItem) -- add to the list
|
-- group:getAllLocations():add(curItem)
|
||||||
|
|
||||||
BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_ArmProst", "TOC_Arm", true)
|
|
||||||
group:setMultiItem("TOC_ArmProst", true)
|
|
||||||
|
|
||||||
BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_ArmAccessory", "TOC_ArmProst", true)
|
BodyLocationsAPI.New("TOC_Arm_L")
|
||||||
group:setMultiItem("TOC_ArmAccessory", true)
|
BodyLocationsAPI.New("TOC_Arm_R")
|
||||||
|
BodyLocationsAPI.New("TOC_ArmProst_L")
|
||||||
|
BodyLocationsAPI.New("TOC_ArmProst_R")
|
||||||
|
BodyLocationsAPI.New("TOC_ArmAccessory_L")
|
||||||
|
BodyLocationsAPI.New("TOC_ArmAccessory_R")
|
||||||
@@ -13,10 +13,12 @@ end
|
|||||||
---Print debug
|
---Print debug
|
||||||
---@param string string
|
---@param string string
|
||||||
function TOC_DEBUG.print(string)
|
function TOC_DEBUG.print(string)
|
||||||
--if isDebugEnabled() then
|
if isDebugEnabled() then
|
||||||
local runningFile = TOC_DEBUG.getRunningFile()
|
local runningFile = TOC_DEBUG.getRunningFile()
|
||||||
print("[TOC]" .. "[" .. runningFile .. "] " .. tostring(string))
|
print("[TOC]" .. "[" .. runningFile .. "] " .. tostring(string))
|
||||||
--end
|
else
|
||||||
|
print(string)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
---Horrendous but I don't really care about performance for this
|
---Horrendous but I don't really care about performance for this
|
||||||
|
|||||||
@@ -49,11 +49,14 @@ StaticData.PARTS_STR = {
|
|||||||
"UpperArm"
|
"UpperArm"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- TODO make it a bit more elegant
|
||||||
StaticData.MOD_BODYLOCS_BASE_IND_STR = {
|
StaticData.MOD_BODYLOCS_BASE_IND_STR = {
|
||||||
TOC_ArmProst = "TOC_ArmProst",
|
TOC_ArmProst_L = "TOC_ArmProst_L",
|
||||||
TOC_LegProst = "TOC_LegProst",
|
TOC_ArmProst_R = "TOC_ArmProst_R",
|
||||||
TOC_Arm = "TOC_Arm",
|
TOC_Arm_L = "TOC_Arm_L",
|
||||||
|
TOC_Arm_R = "TOC_Arm_R",
|
||||||
|
|
||||||
|
--TOC_LegProst = "TOC_LegProst",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- No "MAX" here.
|
-- No "MAX" here.
|
||||||
@@ -149,6 +152,7 @@ StaticData.AMP_GROUPS_BASE_IND_STR = {
|
|||||||
Bottom = "Bottom"
|
Bottom = "Bottom"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- FIX This should be aligned with the body locs, no reason anymore to keep it separated
|
||||||
StaticData.AMP_GROUPS_IND_STR = {}
|
StaticData.AMP_GROUPS_IND_STR = {}
|
||||||
StaticData.AMP_GROUPS_STR = {}
|
StaticData.AMP_GROUPS_STR = {}
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_Hand_R,
|
ClothingItem = Amputation_Hand_R,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_R,
|
||||||
|
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.9,
|
CombatSpeedModifier = 0.9,
|
||||||
@@ -27,9 +28,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_ForeArm_R,
|
ClothingItem = Amputation_ForeArm_R,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_R,
|
||||||
|
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.8,
|
CombatSpeedModifier = 0.8,
|
||||||
@@ -44,9 +46,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_UpperArm_R,
|
ClothingItem = Amputation_UpperArm_R,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_R,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.7,
|
CombatSpeedModifier = 0.7,
|
||||||
@@ -60,9 +63,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_Hand_L,
|
ClothingItem = Amputation_Hand_L,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_L,
|
||||||
|
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.9,
|
CombatSpeedModifier = 0.9,
|
||||||
@@ -78,9 +82,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_ForeArm_L,
|
ClothingItem = Amputation_ForeArm_L,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_L,
|
||||||
|
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.8,
|
CombatSpeedModifier = 0.8,
|
||||||
@@ -96,9 +101,10 @@ module TOC
|
|||||||
{
|
{
|
||||||
Type = Clothing,
|
Type = Clothing,
|
||||||
DisplayCategory = Amputation,
|
DisplayCategory = Amputation,
|
||||||
|
hidden = true,
|
||||||
|
|
||||||
ClothingItem = Amputation_UpperArm_L,
|
ClothingItem = Amputation_UpperArm_L,
|
||||||
BodyLocation = TOC_Arm,
|
BodyLocation = TOC_Arm_L,
|
||||||
|
|
||||||
Weight = 0,
|
Weight = 0,
|
||||||
CombatSpeedModifier = 0.7,
|
CombatSpeedModifier = 0.7,
|
||||||
@@ -109,24 +115,4 @@ module TOC
|
|||||||
CanHaveHoles = false,
|
CanHaveHoles = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
item Amputation_FA_LR
|
|
||||||
{
|
|
||||||
Type = Clothing,
|
|
||||||
DisplayCategory = Amputation,
|
|
||||||
|
|
||||||
ClothingItem = Amputation_ForeArm_LR,
|
|
||||||
BodyLocation = TOC_Arm,
|
|
||||||
|
|
||||||
Weight = 0,
|
|
||||||
CombatSpeedModifier = 0.7,
|
|
||||||
BloodLocation = UpperArms;UpperBody,
|
|
||||||
Insulation = 1.0,
|
|
||||||
WindResistance = 1.0,
|
|
||||||
WaterResistance = 1.0,
|
|
||||||
CanHaveHoles = false,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -16,7 +16,7 @@ module TOC
|
|||||||
ClothingItemExtra = Prost_HookArm_R,
|
ClothingItemExtra = Prost_HookArm_R,
|
||||||
ClothingItemExtraOption = InstallProstRight,
|
ClothingItemExtraOption = InstallProstRight,
|
||||||
clothingExtraSubmenu = InstallProstLeft,
|
clothingExtraSubmenu = InstallProstLeft,
|
||||||
BodyLocation = TOC_ArmProst,
|
BodyLocation = TOC_ArmProst_L,
|
||||||
Weight = 1.5,
|
Weight = 1.5,
|
||||||
CombatSpeedModifier = 1.05,
|
CombatSpeedModifier = 1.05,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
@@ -38,7 +38,7 @@ module TOC
|
|||||||
ClothingItemExtra = Prost_HookArm_L,
|
ClothingItemExtra = Prost_HookArm_L,
|
||||||
ClothingItemExtraOption = InstallProstLeft,
|
ClothingItemExtraOption = InstallProstLeft,
|
||||||
clothingExtraSubmenu = InstallProstRight,
|
clothingExtraSubmenu = InstallProstRight,
|
||||||
BodyLocation = TOC_ArmProst,
|
BodyLocation = TOC_ArmProst_R,
|
||||||
Weight = 1.5,
|
Weight = 1.5,
|
||||||
CombatSpeedModifier = 1.05,
|
CombatSpeedModifier = 1.05,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
@@ -60,7 +60,7 @@ module TOC
|
|||||||
ClothingItemExtra = Prost_NormalArm_R,
|
ClothingItemExtra = Prost_NormalArm_R,
|
||||||
ClothingItemExtraOption = InstallProstRight,
|
ClothingItemExtraOption = InstallProstRight,
|
||||||
clothingExtraSubmenu = InstallProstLeft,
|
clothingExtraSubmenu = InstallProstLeft,
|
||||||
BodyLocation = TOC_ArmProst,
|
BodyLocation = TOC_ArmProst_L,
|
||||||
Weight = 2,
|
Weight = 2,
|
||||||
CombatSpeedModifier = 1.1,
|
CombatSpeedModifier = 1.1,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
@@ -82,7 +82,7 @@ module TOC
|
|||||||
ClothingItemExtra = Prost_NormalArm_L,
|
ClothingItemExtra = Prost_NormalArm_L,
|
||||||
ClothingItemExtraOption = InstallProstLeft,
|
ClothingItemExtraOption = InstallProstLeft,
|
||||||
clothingExtraSubmenu = InstallProstRight,
|
clothingExtraSubmenu = InstallProstRight,
|
||||||
BodyLocation = TOC_ArmProst,
|
BodyLocation = TOC_ArmProst_R,
|
||||||
Weight = 2,
|
Weight = 2,
|
||||||
CombatSpeedModifier = 1.1,
|
CombatSpeedModifier = 1.1,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ module TOC
|
|||||||
ClothingItemExtra = Surg_Arm_Tourniquet_R,
|
ClothingItemExtra = Surg_Arm_Tourniquet_R,
|
||||||
ClothingItemExtraOption = PutTourniquetArmRight,
|
ClothingItemExtraOption = PutTourniquetArmRight,
|
||||||
clothingExtraSubmenu = PutTourniquetArmLeft,
|
clothingExtraSubmenu = PutTourniquetArmLeft,
|
||||||
BodyLocation = TOC_ArmAccessory,
|
BodyLocation = TOC_ArmAccessory_L,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
|
|
||||||
Weight = 0.25,
|
Weight = 0.25,
|
||||||
@@ -35,7 +35,7 @@ module TOC
|
|||||||
ClothingItemExtra = Surg_Arm_Tourniquet_L,
|
ClothingItemExtra = Surg_Arm_Tourniquet_L,
|
||||||
ClothingItemExtraOption = PutTourniquetArmLeft,
|
ClothingItemExtraOption = PutTourniquetArmLeft,
|
||||||
clothingExtraSubmenu = PutTourniquetArmRight,
|
clothingExtraSubmenu = PutTourniquetArmRight,
|
||||||
BodyLocation = TOC_ArmAccessory,
|
BodyLocation = TOC_ArmAccessory_R,
|
||||||
BloodLocation = UpperArms;UpperBody,
|
BloodLocation = UpperArms;UpperBody,
|
||||||
|
|
||||||
Weight = 0.25,
|
Weight = 0.25,
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 55 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin01_b.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin01_hairy_b.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin02_b.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin02_hairy_b.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin03_b.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin03_hairy_b.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin04_b.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin04_hairy_b.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin05_b.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
common/media/textures/Amputations/Human/Hand/skin05_hairy_b.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
BIN
common/media/textures/Amputations/Masks/Chest.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
common/media/textures/Amputations/Masks/LeftArm.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
common/media/textures/Amputations/Masks/LeftHand.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
common/media/textures/Amputations/Masks/RightArm.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
common/media/textures/Amputations/Masks/RightHand.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 826 B |
|
Before Width: | Height: | Size: 644 B |
|
Before Width: | Height: | Size: 844 B |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
BIN
dev_stuff/FemaleBody_fix.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
dev_stuff/female_mask.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,46 +1,65 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
import os
|
||||||
|
|
||||||
input_bodies_path = Path('input/body')
|
input_bodies_path = Path('input/body')
|
||||||
input_wound_texture = Path('input/wound.png')
|
input_wound_texture = Path('input/wound.png')
|
||||||
# 48, 33 TEXTURE
|
# 45, 33 TEXTURE
|
||||||
|
|
||||||
|
|
||||||
# 256,256
|
# 256,256
|
||||||
|
|
||||||
IMG_WIDTH = 256
|
IMG_WIDTH = 256
|
||||||
|
|
||||||
|
|
||||||
COORDS_L = {
|
COORDS_L = {
|
||||||
#"H": (0, 115),
|
"H": (2, 100),
|
||||||
"F": (0, 59),
|
"F": (2, 59),
|
||||||
"U": (0,21),
|
"U": (2,21),
|
||||||
}
|
}
|
||||||
|
|
||||||
COORDS_R = {
|
COORDS_R = {
|
||||||
#"H": (IMG_WIDTH - 50- COORDS_L['H'][0], COORDS_L['H'][1]),
|
"H": (IMG_WIDTH - 43- COORDS_L['H'][0], COORDS_L['H'][1]),
|
||||||
"F": (IMG_WIDTH - 48 - COORDS_L['F'][0], COORDS_L['F'][1]),
|
"F": (IMG_WIDTH - 43 - COORDS_L['F'][0], COORDS_L['F'][1]),
|
||||||
"U": (IMG_WIDTH - 48 - COORDS_L['U'][0], COORDS_L['U'][1]),
|
"U": (IMG_WIDTH - 43 - COORDS_L['U'][0], COORDS_L['U'][1]),
|
||||||
}
|
}
|
||||||
|
|
||||||
STATES = ["BOTH"]
|
FULL_COORDS = {key: (COORDS_L[key], COORDS_R[key]) for key in COORDS_L}
|
||||||
|
|
||||||
|
|
||||||
|
print(FULL_COORDS)
|
||||||
overlay = Image.open(input_wound_texture)
|
overlay = Image.open(input_wound_texture)
|
||||||
|
|
||||||
for filepath in input_bodies_path.glob('*.png'): # Only PNG files
|
for filepath in input_bodies_path.glob('*.png'): # Only PNG files
|
||||||
|
print(f'Processing {filepath.name}...')
|
||||||
base = Image.open(filepath)
|
base = Image.open(filepath)
|
||||||
body_name = filepath.stem
|
|
||||||
|
|
||||||
|
|
||||||
for key_L, value_L in COORDS_L.items():
|
body_name = filepath.stem.replace('MaleBody', 'skin')
|
||||||
for key_R, value_R in COORDS_R.items():
|
if body_name.endswith('a'):
|
||||||
for state in STATES:
|
body_name = body_name[:-1] + '_hairy_b'
|
||||||
|
else:
|
||||||
|
body_name = body_name + '_b'
|
||||||
|
|
||||||
|
for key, (value_L, value_R) in FULL_COORDS.items():
|
||||||
|
print(key)
|
||||||
result = base.copy()
|
result = base.copy()
|
||||||
|
|
||||||
if state == "BOTH" or state == "ONLY_LEFT":
|
|
||||||
result.paste(overlay, value_L, mask=overlay)
|
result.paste(overlay, value_L, mask=overlay)
|
||||||
if state == "BOTH" or state == "ONLY_RIGHT":
|
|
||||||
result.paste(overlay, value_R, mask=overlay)
|
result.paste(overlay, value_R, mask=overlay)
|
||||||
|
|
||||||
result.save(f'output/{body_name}_{key_L}_{key_R}_{state}.png')
|
output_path = 'output/'
|
||||||
|
|
||||||
|
if key == "H":
|
||||||
|
os.makedirs('output/Hand', exist_ok=True)
|
||||||
|
output_path = 'output/Hand'
|
||||||
|
|
||||||
|
if key == "F":
|
||||||
|
os.makedirs('output/Forearm', exist_ok=True)
|
||||||
|
output_path = 'output/Forearm'
|
||||||
|
|
||||||
|
if key == "U":
|
||||||
|
os.makedirs('output/UpperArm', exist_ok=True)
|
||||||
|
output_path = 'output/UpperArm'
|
||||||
|
|
||||||
|
result.save(f'{output_path}/{body_name}.png')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
3
dev_stuff/logos/gude-2025-10-04.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
16:46:38:807 [CRITICAL] SharedConnection - Failed to open WinHTTP Session. The parameter is incorrect.
|
||||||
|
|
||||||
|
, last error code = 87
|
||||||
@@ -4,26 +4,21 @@
|
|||||||
[h1]You're bitten. You have two choices.[/h1]
|
[h1]You're bitten. You have two choices.[/h1]
|
||||||
Wait until you succumb to the virus or take matters into your hands. Cut off that infected part and live to die another day.
|
Wait until you succumb to the virus or take matters into your hands. Cut off that infected part and live to die another day.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
[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]
|
|
||||||
[b]The older version will be delisted shortly and it will not be supported anymore.[/b]
|
|
||||||
[h1]Supports [b]Single Player[/b] and [b]Multiplayer[/b]. Host Mode is currently [b]UNSUPPORTED![/b][/h1]
|
|
||||||
|
|
||||||
[h1]Setup[/h1]
|
[h1]Setup[/h1]
|
||||||
Use it with the following mods for the intended experience:
|
[strike]Use it with the following mods for the intended experience:
|
||||||
[list]
|
[list]
|
||||||
[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2904920097]Fancy Handwork[/url]
|
[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2904920097]Fancy Handwork[/url]
|
||||||
[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2934621024]Brutal Handwork[/url]
|
[*] [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2934621024]Brutal Handwork[/url]
|
||||||
[/list]
|
[/list]
|
||||||
|
|
||||||
Place them [b]BEFORE[/b] The Only Cure in your mod list!
|
Place them [b]BEFORE[/b] The Only Cure in your mod list![/strike]
|
||||||
|
[b]At the moment, the mods listed here aren't compatible with B42.[/b]
|
||||||
|
|
||||||
[hr][/hr]
|
[hr][/hr]
|
||||||
|
|
||||||
[h1]Quick guide[/h1]
|
[h1]Quick guide[/h1]
|
||||||
[h2]Amputation[/h2]
|
[h2]Amputation[/h2]
|
||||||
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.
|
Get a [i]Saw[/i]/[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.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
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.
|
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.
|
||||||
@@ -77,8 +72,8 @@ Got any issues or found some pesky bugs? Report them on GitHub!
|
|||||||
[th]Compatibility API[/th]
|
[th]Compatibility API[/th]
|
||||||
[/tr]
|
[/tr]
|
||||||
[tr]
|
[tr]
|
||||||
[th]JCloudJalix[/th]
|
[th]JCloudJalix, Rinary1, pllq, ttaeo, pgmbru[/th]
|
||||||
[th]German translation[/th]
|
[th]Translation[/th]
|
||||||
[/tr]
|
[/tr]
|
||||||
[/table]
|
[/table]
|
||||||
|
|
||||||
|
|||||||
7
mod.info
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
name=The Only Cure
|
||||||
|
poster=poster.png
|
||||||
|
description=You've been bitten. You have only two choices.
|
||||||
|
id=TheOnlyCure
|
||||||
|
icon=icon.png
|
||||||
|
url=https://github.com/ZioPao/The-Only-Cure
|
||||||
|
modversion=2.2.1
|
||||||
@@ -4,4 +4,4 @@ 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.1.7
|
modversion=2.2.1
|
||||||
BIN
poster.png
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 210 KiB |
BIN
poster_b41.png
Normal file
|
After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 74 KiB |
BIN
workshop_files/preview_b41.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
@@ -1,6 +1,6 @@
|
|||||||
version=1
|
version=1
|
||||||
id=3236152598
|
id=3580276809
|
||||||
title=The Only Cure - Rebuilt
|
title=[B42] The Only Cure
|
||||||
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=
|
||||||
@@ -27,7 +27,7 @@ description=
|
|||||||
|
|
||||||
description=[h1]Setup[/h1]
|
description=[h1]Setup[/h1]
|
||||||
|
|
||||||
description=Use it with the following mods for the intended experience:
|
description=[strike]Use it with the following mods for the intended experience:
|
||||||
|
|
||||||
description=[list]
|
description=[list]
|
||||||
|
|
||||||
@@ -39,10 +39,12 @@ 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![/strike]
|
||||||
|
|
||||||
description=
|
description=
|
||||||
|
|
||||||
|
description=[b]At the moment, the mods listed here aren't compatible with B42.
|
||||||
|
|
||||||
description=[hr][/hr]
|
description=[hr][/hr]
|
||||||
|
|
||||||
description=
|
description=
|
||||||
@@ -181,5 +183,5 @@ description=
|
|||||||
|
|
||||||
description=[hr][/hr]
|
description=[hr][/hr]
|
||||||
|
|
||||||
tags=Build 41;Balance;Interface;Items;Misc;Multiplayer;Realistic;Textures
|
tags=Build 42;Balance;Interface;Items;Misc;Multiplayer;Realistic;Textures
|
||||||
visibility=public
|
visibility=public
|
||||||
|
|||||||