still more stuff
This commit is contained in:
@@ -3,29 +3,31 @@
|
||||
------------------------------------------
|
||||
--------- OPERATE LIMB FUNCTIONS ---------
|
||||
|
||||
local function FixSingleBodyPartType(body_part_type, use_oven)
|
||||
body_part_type:setDeepWounded(false) --Basically like stitching
|
||||
body_part_type:setDeepWoundTime(0)
|
||||
if use_oven then
|
||||
body_part_type:AddDamage(100)
|
||||
body_part_type:setAdditionalPain(100);
|
||||
body_part_type:setBleeding(false)
|
||||
body_part_type:setBleedingTime(0) -- no bleeding since it's been cauterized
|
||||
local function FixSingleBodyPartType(bodyPartType, useOven)
|
||||
bodyPartType:setDeepWounded(false) --Basically like stitching
|
||||
bodyPartType:setDeepWoundTime(0)
|
||||
if useOven then
|
||||
bodyPartType:AddDamage(100)
|
||||
bodyPartType:setAdditionalPain(100);
|
||||
bodyPartType:setBleeding(false)
|
||||
bodyPartType:setBleedingTime(0) -- no bleeding since it's been cauterized
|
||||
else
|
||||
-- TODO Think a little better about this, do we want to trigger bleeding or not?
|
||||
body_part_type:setBleeding(false)
|
||||
bodyPartType:setBleeding(false)
|
||||
|
||||
--body_part_type:setBleedingTime(ZombRand(1, 5)) -- Reset the bleeding, maybe make it random
|
||||
end
|
||||
end
|
||||
|
||||
local function SetBodyPartsStatusAfterOperation(player, limbs_data, part_name, use_oven)
|
||||
local body_part_type = player:getBodyDamage():getBodyPart(TocGetAdjacentBodyPartFromPartName(part_name))
|
||||
FixSingleBodyPartType(body_part_type, use_oven)
|
||||
local function SetBodyPartsStatusAfterOperation(player, limbParameters, partName, useOven)
|
||||
|
||||
for _, v in pairs(limbs_data[part_name].depends_on) do
|
||||
local depended_body_part_type = player:getBodyDamage():getBodyPart(TocGetAdjacentBodyPartFromPartName(v))
|
||||
FixSingleBodyPartType(depended_body_part_type, use_oven)
|
||||
|
||||
local bodyPartType = player:getBodyDamage():getBodyPart(TocGetAdjacentBodyPartFromPartName(partName))
|
||||
FixSingleBodyPartType(bodyPartType, useOven)
|
||||
|
||||
for _, v in pairs(limbParameters[partName].dependsOn) do
|
||||
local dependedBodyPartType = player:getBodyDamage():getBodyPart(TocGetAdjacentBodyPartFromPartName(v))
|
||||
FixSingleBodyPartType(dependedBodyPartType, useOven)
|
||||
|
||||
end
|
||||
end
|
||||
@@ -34,33 +36,37 @@ end
|
||||
|
||||
|
||||
---Main function to operate a limb after amputation
|
||||
---@param part_name any
|
||||
---@param surgeon_factor any
|
||||
---@param use_oven boolean wheter using oven instead of a kit or not
|
||||
function TocOperateLimb(part_name, surgeon_factor, use_oven)
|
||||
---@param partName any
|
||||
---@param surgeonFactor any
|
||||
---@param useOven boolean wheter using oven instead of a kit or not
|
||||
function JCIO.OperateLimb(partName, surgeonFactor, useOven)
|
||||
|
||||
local player = getPlayer()
|
||||
local limbs_data = player:getModData().TOC.Limbs
|
||||
|
||||
if use_oven then
|
||||
|
||||
local jcioModData = player:getModData().JCIO
|
||||
|
||||
local limbParameters = jcioModData.limbParameters
|
||||
local limbsData = jcioModData.limbs
|
||||
|
||||
if useOven then
|
||||
local stats = player:getStats()
|
||||
stats:setEndurance(100)
|
||||
stats:setStress(100)
|
||||
end
|
||||
|
||||
if limbs_data[part_name].is_operated == false and limbs_data[part_name].is_cut == true then
|
||||
limbs_data[part_name].is_operated = true
|
||||
limbs_data[part_name].cicatrization_time = limbs_data[part_name].cicatrization_time - (surgeon_factor * 200)
|
||||
if use_oven then limbs_data[part_name].is_cauterized = true end
|
||||
for _, depended_v in pairs(limbs_data[part_name].depends_on) do
|
||||
limbs_data[depended_v].is_operated = true
|
||||
limbs_data[depended_v].cicatrization_time = limbs_data[depended_v].cicatrization_time -
|
||||
(surgeon_factor * 200)
|
||||
if use_oven then limbs_data[depended_v].is_cauterized = true end -- TODO does this make sense?
|
||||
|
||||
if limbsData[partName].isOperated == false and limbsData[partName].isCut == true then
|
||||
limbsData[partName].isOperated = true
|
||||
limbsData[partName].cicatrizationTime = limbsData[partName].cicatrizationTime - (surgeonFactor * 200)
|
||||
if useOven then limbsData[partName].is_cauterized = true end
|
||||
for _, depended_v in pairs(limbParameters[partName].depends_on) do
|
||||
limbsData[depended_v].isOperated = true
|
||||
limbsData[depended_v].cicatrizationTime = limbsData[depended_v].cicatrizationTime -
|
||||
(surgeonFactor * 200)
|
||||
if useOven then limbsData[depended_v].isCauterized = true end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
SetBodyPartsStatusAfterOperation(player, limbs_data, part_name, use_oven)
|
||||
SetBodyPartsStatusAfterOperation(player, limbParameters, partName, useOven)
|
||||
end
|
||||
|
||||
@@ -5,36 +5,42 @@
|
||||
|
||||
|
||||
---Equip a prosthesis transforming a normal item into a clothing item
|
||||
---@param part_name string
|
||||
---@param prosthesis_item any the prosthesis item
|
||||
---@param prosthesis_base_name string
|
||||
function TocEquipProsthesis(part_name, prosthesis_item, prosthesis_base_name)
|
||||
---@param partName string
|
||||
---@param prosthesisItem any the prosthesis item
|
||||
---@param prosthesisBaseName string
|
||||
function JCIO.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 toc_data = player:getModData().TOC
|
||||
local jcioModData = player:getModData().JCIO
|
||||
|
||||
local equipped_prosthesis = GenerateEquippedProsthesis(prosthesis_item, player:getInventory(), "Hand")
|
||||
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
|
||||
jcioModData.limbs[partName].isProsthesisEquipped = true
|
||||
|
||||
|
||||
if part_name ~= nil then
|
||||
-- Fill equippedProsthesis with the correct stuff
|
||||
-- TODO For prosthetics we should fetch the data from a modData INSIDE them!
|
||||
|
||||
if equipped_prosthesis ~= nil then
|
||||
toc_data.Limbs[part_name].is_prosthesis_equipped = true
|
||||
toc_data.Limbs[part_name].equipped_prosthesis = toc_data.Prosthesis[prosthesis_base_name][part_name] -- TODO Change this, it's old
|
||||
-- TODO Change the value passed, it's wrong
|
||||
--jcioModData.limbs[partName].equippedProsthesis = jcioModData.Prosthesis[prosthesisBaseName][partName]
|
||||
|
||||
if player:isFemale() then
|
||||
equipped_prosthesis:getVisual():setTextureChoice(1)
|
||||
equippedProsthesis:getVisual():setTextureChoice(1)
|
||||
else
|
||||
equipped_prosthesis:getVisual():setTextureChoice(0)
|
||||
equippedProsthesis:getVisual():setTextureChoice(0)
|
||||
end
|
||||
player:setWornItem(equipped_prosthesis:getBodyLocation(), equipped_prosthesis)
|
||||
player:setWornItem(equippedProsthesis:getBodyLocation(), equippedProsthesis)
|
||||
|
||||
|
||||
|
||||
@@ -44,37 +50,36 @@ end
|
||||
|
||||
|
||||
---Unequip a prosthesis clothing item and returns it to the inventory as a normal item
|
||||
---@param part_name string
|
||||
function TocUnequipProsthesis(patient, part_name, equipped_prosthesis)
|
||||
---@param partName string
|
||||
function JCIO.UnequipProsthesis(patient, partName, equippedProsthesis)
|
||||
|
||||
|
||||
-- TODO Pass the parameters generated from EquipProsthesis to the re-generated normal item
|
||||
|
||||
local toc_data = patient:getModData().TOC
|
||||
toc_data.Limbs[part_name].is_prosthesis_equipped = false
|
||||
local jcioModData = patient:getModData().JCIO
|
||||
jcioModData.limbs[partName].isProsthesisEquipped = false
|
||||
|
||||
|
||||
local equipped_prosthesis_full_type = equipped_prosthesis:getFullType()
|
||||
local equippedProstFullType = equippedProsthesis:getFullType()
|
||||
|
||||
|
||||
for _, prost_v in ipairs(GetProsthesisList()) do
|
||||
local prosthesis_name = string.match(equipped_prosthesis_full_type, prost_v)
|
||||
if prosthesis_name then
|
||||
|
||||
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 equipped_prosthesis_mod_data = equipped_prosthesis:getModData()
|
||||
local equippedProstModData = equippedProsthesis:getModData()
|
||||
|
||||
|
||||
local base_prosthesis_item = patient:getInventory():AddItem("TOC." .. prosthesis_name)
|
||||
local base_prosthesis_item_mod_data = base_prosthesis_item.getModData()
|
||||
base_prosthesis_item_mod_data.TOC = {
|
||||
durability = equipped_prosthesis_mod_data.TOC.durability,
|
||||
speed = equipped_prosthesis_mod_data.TOC.speed
|
||||
local baseProstItem = patient:getInventory():AddItem("JCIO." .. prostName)
|
||||
local baseProstItemModData = baseProstItem.getModData()
|
||||
baseProstItemModData.JCIO = {
|
||||
durability = equippedProstModData.JCIO.durability,
|
||||
speed = equippedProstModData.JCIO.speed
|
||||
}
|
||||
|
||||
patient:setWornItem(equipped_prosthesis:getBodyLocation(), nil)
|
||||
patient:getInventory():Remove(equipped_prosthesis)
|
||||
toc_data.Limbs[part_name].equipped_prosthesis = nil
|
||||
patient:setWornItem(equippedProsthesis:getBodyLocation(), nil)
|
||||
patient:getInventory():Remove(equippedProsthesis)
|
||||
jcioModData.Limbs[partName].equipped_prosthesis = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -228,6 +228,7 @@ local function InitializeJustCutItOff()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--------------------------
|
||||
|
||||
JCIO.InitializeTraits()
|
||||
|
||||
@@ -13,10 +13,10 @@ local pairs = pairs
|
||||
function CheckIfCanBeCut(part_name, limbs_data)
|
||||
|
||||
if limbs_data == nil then
|
||||
limbs_data = getPlayer():getModData().TOC.Limbs
|
||||
|
||||
limbs_data = getPlayer():getModData().JCIO.limbs
|
||||
end
|
||||
local check = (not limbs_data[part_name].is_cut) and
|
||||
|
||||
local check = (not limbs_data[part_name].isCut) and
|
||||
(not CheckIfProsthesisAlreadyInstalled(limbs_data, part_name))
|
||||
|
||||
return check
|
||||
|
||||
@@ -57,7 +57,7 @@ end
|
||||
ServerCommands.OperateLimb = function(arg)
|
||||
|
||||
local data = arg["toSend"]
|
||||
TocOperateLimb(data[1], data[2], data[3])
|
||||
JCIO.OperateLimb(data[1], data[2], data[3])
|
||||
end
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ ServerCommands.EquipProsthesis = function(arg)
|
||||
-- prosthesis_name = arg[3]
|
||||
|
||||
local data = arg["toSend"]
|
||||
TocEquipProsthesis(data[1], data[2], data[3])
|
||||
JCIO.EquipProsthesis(data[1], data[2], data[3])
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -9,45 +9,57 @@ function ISBaseTimedAction:adjustMaxTime(maxTime)
|
||||
|
||||
-- TODO we can customize it better through clothing items modifier, you mook
|
||||
-- RunSpeedModifier = 0.93 for example
|
||||
local original_max_time = og_ISBaseTimedActionAdjustMaxTime(self, maxTime)
|
||||
local originalMaxTime = og_ISBaseTimedActionAdjustMaxTime(self, maxTime)
|
||||
|
||||
if originalMaxTime ~= -1 then
|
||||
|
||||
|
||||
local modData = getPlayer():getModData()
|
||||
|
||||
local limbParameters = modData.JCIO.limbParameters
|
||||
local limbsData = modData.JCIO.limbs
|
||||
|
||||
local modifiedMaxTime = originalMaxTime
|
||||
local burnFactor = 1.3 -- TODO Move this crap
|
||||
|
||||
for _, partName in pairs(GetBodyParts()) do
|
||||
if limbsData[partName].isCut then
|
||||
|
||||
|
||||
|
||||
|
||||
if original_max_time ~= -1 then
|
||||
local mod_data = getPlayer():getModData()
|
||||
|
||||
local limbs_data = mod_data.TOC.Limbs
|
||||
local modified_max_time = original_max_time
|
||||
local burn_factor = 1.3 -- TODO Move this crap
|
||||
|
||||
for _, part_name in pairs(GetBodyParts()) do
|
||||
if limbs_data[part_name].is_cut then
|
||||
|
||||
--Equipped prosthesis or not
|
||||
if limbs_data[part_name].is_prosthesis_equipped then
|
||||
modified_max_time = modified_max_time * limbs_data[part_name].equipped_prosthesis.prosthesis_factor
|
||||
if limbsData[partName].isProsthesisEquipped then
|
||||
-- FIXME We should apply the correct values to equippedProsthesis once we equip it
|
||||
|
||||
--modifiedMaxTime = modifiedMaxTime * limbsData[partName].equipped_prosthesis.prosthesis_factor
|
||||
else
|
||||
-- TODO this should depend on the limb?
|
||||
modified_max_time = modified_max_time * 1.5
|
||||
modifiedMaxTime = modifiedMaxTime * 1.5
|
||||
end
|
||||
|
||||
-- Cauterization check
|
||||
if limbs_data[part_name].is_cauterized then
|
||||
modified_max_time = modified_max_time * burn_factor
|
||||
if limbsData[partName].is_cauterized then
|
||||
modifiedMaxTime = modifiedMaxTime * burnFactor
|
||||
end
|
||||
|
||||
-- Perk scaling
|
||||
if part_name == "Right_Hand" or part_name == "Left_Hand" then
|
||||
modified_max_time = modified_max_time *
|
||||
(1 + (9 - self.character:getPerkLevel(Perks[part_name])) / 20)
|
||||
if partName == "Right_Hand" or partName == "Left_Hand" then
|
||||
modifiedMaxTime = modifiedMaxTime *
|
||||
(1 + (9 - self.character:getPerkLevel(Perks[partName])) / 20)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
if modified_max_time > 10 * original_max_time then modified_max_time = 10 * original_max_time end
|
||||
return modified_max_time
|
||||
if modifiedMaxTime > 10 * originalMaxTime then modifiedMaxTime = 10 * originalMaxTime end
|
||||
return modifiedMaxTime
|
||||
|
||||
end
|
||||
|
||||
return original_max_time
|
||||
return originalMaxTime
|
||||
|
||||
|
||||
end
|
||||
@@ -181,11 +193,11 @@ function ISWearClothing:isValid()
|
||||
local item_full_type = self.item:getFullType()
|
||||
|
||||
-- TODO Sides
|
||||
local limbs_data = self.character:getModData().TOC.Limbs
|
||||
local limbs_data = self.character:getModData().JCIO.limbs
|
||||
|
||||
for _, side in pairs(JCIO.sideNames) do
|
||||
if string.find(item_full_type, "Test_Tourniquet_" .. side) then
|
||||
if limbs_data[side .. "_UpperArm"].is_cut then
|
||||
if limbs_data[side .. "_UpperArm"].isCut then
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ function ISInstallProsthesis:perform()
|
||||
|
||||
SendEquipProsthesis(self.patient, self.part_name, self.item, prosthesis_base_name)
|
||||
else
|
||||
TocEquipProsthesis(self.part_name, self.item, prosthesis_base_name)
|
||||
JCIO.EquipProsthesis(self.part_name, self.item, prosthesis_base_name)
|
||||
|
||||
end
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ function ISOperateLimb:perform()
|
||||
if self.patient ~= self.surgeon and isClient() then
|
||||
SendOperateLimb(self.patient, self.part_name, surgeon_factor, use_oven)
|
||||
else
|
||||
TocOperateLimb(self.part_name, surgeon_factor, use_oven)
|
||||
JCIO.OperateLimb(self.part_name, surgeon_factor, use_oven)
|
||||
end
|
||||
self.surgeon:getXp():AddXP(Perks.Doctor, 400)
|
||||
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
DisplayName_EN = {
|
||||
|
||||
ItemName_TOC.Amputation_Right_Hand = "Amputated Right Hand",
|
||||
ItemName_TOC.Amputation_Right_LowerArm = "Amputated Right Forearm",
|
||||
ItemName_TOC.Amputation_Right_UpperArm = "Amputated Entire Right Arm",
|
||||
ItemName_TOC.Amputation_Left_Hand = "Amputated Left Hand",
|
||||
ItemName_TOC.Amputation_Left_LowerArm = "Amputated Left Forearm",
|
||||
ItemName_TOC.Amputation_Left_UpperArm = "Amputated Entire Left Arm",
|
||||
ItemName_JCIO.Amputation_Right_Hand = "Amputated Right Hand",
|
||||
ItemName_JCIO.Amputation_Right_LowerArm = "Amputated Right Forearm",
|
||||
ItemName_JCIO.Amputation_Right_UpperArm = "Amputated Entire Right Arm",
|
||||
ItemName_JCIO.Amputation_Left_Hand = "Amputated Left Hand",
|
||||
ItemName_JCIO.Amputation_Left_LowerArm = "Amputated Left Forearm",
|
||||
ItemName_JCIO.Amputation_Left_UpperArm = "Amputated Entire Left Arm",
|
||||
|
||||
ItemName_TOC.Improvised_surgeon_kit = "Improvised surgeon kit",
|
||||
ItemName_TOC.Surgeon_kit = "Surgeon kit",
|
||||
ItemName_TOC.Real_surgeon_kit = "Real surgeon kit",
|
||||
ItemName_JCIO.Improvised_surgeon_kit = "Improvised surgeon kit",
|
||||
ItemName_JCIO.Surgeon_kit = "Surgeon kit",
|
||||
ItemName_JCIO.Real_surgeon_kit = "Real surgeon kit",
|
||||
|
||||
ItemName_TOC.Prost_Right_Hand_WoodenHook = "Right Hand - Wooden Hook",
|
||||
ItemName_TOC.Prost_Left_Hand_WoodenHook = "Left Hand - Wooden Hook",
|
||||
ItemName_TOC.Prost_Right_LowerArm_WoodenHook = "Right Forearm - Wooden Hook",
|
||||
ItemName_TOC.Prost_Left_LowerArm_WoodenHook = "Left Forearm - Wooden Hook",
|
||||
ItemName_TOC.Prost_Right_Hand_MetalHook = "Right Hand - Metal Hook",
|
||||
ItemName_TOC.Prost_Left_Hand_MetalHook = "Left Hand - Metal Hook",
|
||||
ItemName_TOC.Prost_Right_LowerArm_MetalHook = "Right Forearm - Metal Hook",
|
||||
ItemName_TOC.Prost_Left_LowerArm_MetalHook = "Left Forearm - Metal Hook",
|
||||
ItemName_TOC.Prost_Right_Hand_MetalHand = "Right Hand - Metal Hand",
|
||||
ItemName_TOC.Prost_Left_Hand_MetalHand = "Left Hand - Metal Hand",
|
||||
ItemName_TOC.Prost_Right_LowerArm_MetalHand = "Right Forearm - Metal Hand",
|
||||
ItemName_TOC.Prost_Left_LowerArm_MetalHand = "Left Forearm - Metal Hand",
|
||||
ItemName_JCIO.Prost_Right_Hand_WoodenHook = "Right Hand - Wooden Hook",
|
||||
ItemName_JCIO.Prost_Left_Hand_WoodenHook = "Left Hand - Wooden Hook",
|
||||
ItemName_JCIO.Prost_Right_LowerArm_WoodenHook = "Right Forearm - Wooden Hook",
|
||||
ItemName_JCIO.Prost_Left_LowerArm_WoodenHook = "Left Forearm - Wooden Hook",
|
||||
ItemName_JCIO.Prost_Right_Hand_MetalHook = "Right Hand - Metal Hook",
|
||||
ItemName_JCIO.Prost_Left_Hand_MetalHook = "Left Hand - Metal Hook",
|
||||
ItemName_JCIO.Prost_Right_LowerArm_MetalHook = "Right Forearm - Metal Hook",
|
||||
ItemName_JCIO.Prost_Left_LowerArm_MetalHook = "Left Forearm - Metal Hook",
|
||||
ItemName_JCIO.Prost_Right_Hand_MetalHand = "Right Hand - Metal Hand",
|
||||
ItemName_JCIO.Prost_Left_Hand_MetalHand = "Left Hand - Metal Hand",
|
||||
ItemName_JCIO.Prost_Right_LowerArm_MetalHand = "Right Forearm - Metal Hand",
|
||||
ItemName_JCIO.Prost_Left_LowerArm_MetalHand = "Left Forearm - Metal Hand",
|
||||
|
||||
ItemName_TOC.WoodenHook = "Wooden Hook",
|
||||
ItemName_TOC.MetalHook = "Metal Hook",
|
||||
ItemName_TOC.MetalHand = "Metal Hand",
|
||||
ItemName_TOC.ProstheticKnife = "Prosthetic Knife",
|
||||
ItemName_JCIO.WoodenHook = "Wooden Hook",
|
||||
ItemName_JCIO.MetalHook = "Metal Hook",
|
||||
ItemName_JCIO.MetalHand = "Metal Hand",
|
||||
ItemName_JCIO.ProstheticKnife = "Prosthetic Knife",
|
||||
|
||||
ItemName_TOC.SurgeonMag1 = "Surgeon magazine for dummies",
|
||||
ItemName_TOC.SurgeonMag2 = "Surgeon magazine for students",
|
||||
ItemName_TOC.SurgeonMag3 = "Surgeon magazine for experts",
|
||||
ItemName_TOC.ProthesisMag1 = "Prothesis magazine for dummies",
|
||||
ItemName_TOC.ProthesisMag2 = "Prothesis magazine for experienced",
|
||||
ItemName_TOC.ProthesisMag3 = "Prothesis magazine for experts",
|
||||
ItemName_JCIO.SurgeonMag1 = "Surgeon magazine for dummies",
|
||||
ItemName_JCIO.SurgeonMag2 = "Surgeon magazine for students",
|
||||
ItemName_JCIO.SurgeonMag3 = "Surgeon magazine for experts",
|
||||
ItemName_JCIO.ProthesisMag1 = "Prothesis magazine for dummies",
|
||||
ItemName_JCIO.ProthesisMag2 = "Prothesis magazine for experienced",
|
||||
ItemName_JCIO.ProthesisMag3 = "Prothesis magazine for experts",
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
module TOC
|
||||
module JCIO
|
||||
{
|
||||
imports
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
module TOC
|
||||
module JCIO
|
||||
{
|
||||
model MetalHook
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
module TOC
|
||||
module JCIO
|
||||
{
|
||||
imports
|
||||
{
|
||||
Reference in New Issue
Block a user