Refactoring even more since why not at this point pt2

This commit is contained in:
Pao
2023-02-20 13:20:42 +01:00
parent 33d4a322a1
commit 1d78da49f7
4 changed files with 61 additions and 38 deletions

7
.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT" />
<option name="description" value="" />
</component>
</project>

17
.idea/runConfigurations/Run_Zomboid.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Zomboid" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="" />
<option name="INDEPENDENT_SCRIPT_PATH" value="false" />
<option name="SCRIPT_PATH" value="E:/Steam/steamapps/common/ProjectZomboid/ProjectZomboid64 - nosteam-debug.bat" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="true" />
<envs />
<method v="2" />
</configuration>
</component>

View File

@@ -5,7 +5,6 @@
if not TOC then if not TOC then
TOC = {} TOC = {}
end end
local function TocCutLimbForTrait(player, limbs_data, part_name) local function TocCutLimbForTrait(player, limbs_data, part_name)
@@ -26,12 +25,7 @@ local function TocCutLimbForTrait(player, limbs_data, part_name)
end end
end end
local function InitSpecificPart(mod_data, part_name) TOC.InitPart = function(mod_data, part_name)
if mod_data.TOC.Limbs[part_name] == nil then
mod_data.TOC.Limbs[part_name] = {}
end
mod_data.TOC.Limbs[part_name].is_cut = false mod_data.TOC.Limbs[part_name].is_cut = false
mod_data.TOC.Limbs[part_name].is_infected = false mod_data.TOC.Limbs[part_name].is_infected = false
@@ -50,9 +44,8 @@ local function InitSpecificPart(mod_data, part_name)
end end
local function TocUpdateBaseData(mod_data) local function TocUpdateBaseData(mod_data)
-- TODO Gonna delete this soon, overhauling the whole init thing
-- TODO The prosthetic knife needs to be a weapon first and foremost, so other than a -- TODO The prosthetic knife needs to be a weapon first and foremost, so other than a
-- clothing item it needs to be a weapon too (an invisible one maybe?) -- clothing item it needs to be a weapon too (an invisible one maybe?)
@@ -70,9 +63,9 @@ local function TocUpdateBaseData(mod_data)
local part_name = side .. "_" .. limb local part_name = side .. "_" .. limb
-- Check if part was initialized -- Check if part was initialized, in case of previous errors
if mod_data.TOC.Limbs[part_name] == nil then if mod_data.TOC.Limbs[part_name] == nil then
InitSpecificPart(mod_data, part_name) TOC.InitPart(mod_data, part_name)
end end
@@ -117,8 +110,7 @@ local function TocUpdateBaseData(mod_data)
end end
local function TocSetInitData(mod_data, player) TOC.SetInitData = function(mod_data, player)
print("TOC: Creating mod_data.TOC") print("TOC: Creating mod_data.TOC")
-------- --------
-- NEW NAMING SCHEME -- NEW NAMING SCHEME
@@ -202,30 +194,13 @@ local function TocSetInitData(mod_data, player)
for _, side in pairs(TOC.side_names) do for _, side in pairs(TOC.side_names) do
for _, limb in pairs(TOC.limb_names) do for _, limb in pairs(TOC.limb_names) do
local part_name = side .. "_" .. limb local part_name = side .. "_" .. limb
TOC.InitPart(mod_data, part_name)
mod_data.TOC.Limbs[part_name].is_cut = false
mod_data.TOC.Limbs[part_name].is_infected = false
mod_data.TOC.Limbs[part_name].is_operated = false
mod_data.TOC.Limbs[part_name].is_cicatrized = false
mod_data.TOC.Limbs[part_name].is_cauterized = false
mod_data.TOC.Limbs[part_name].is_amputation_shown = false
mod_data.TOC.Limbs[part_name].cicatrization_time = 0
mod_data.TOC.Limbs[part_name].is_prosthesis_equipped = false
mod_data.TOC.Limbs[part_name].equipped_prosthesis = {}
-- Even if there are some duplicates, this is just easier in the end since we're gonna get fairly easily part_name
end end
end end
-- Set data like prosthesis lists, cicatrization time etc -- Set data like prosthesis lists, cicatrization time etc
-- TODO Change this
TocUpdateBaseData(mod_data) TocUpdateBaseData(mod_data)
-- Setup traits -- Setup traits
@@ -242,10 +217,13 @@ end
function TOC.Init(_, player) function TOC.Init(_, player)
local mod_data = player:getModData() local mod_data = player:getModData()
if mod_data.TOC == nil then if mod_data.TOC == nil then
TocSetInitData(mod_data, player) TOC.SetInitData(mod_data, player)
else else
TocCheckCompatibilityWithOlderVersions(mod_data) TocCheckCompatibilityWithOlderVersions(mod_data)
-- TODO This is gonna be deleted and moved directly to TOC
TocUpdateBaseData(mod_data) -- Since it's gonna be common to update stuff TocUpdateBaseData(mod_data) -- Since it's gonna be common to update stuff
TocCheckLegsAmputations(mod_data) TocCheckLegsAmputations(mod_data)
end end
@@ -283,14 +261,35 @@ end
-- Rewrite 2 Electirc Bogaloo -- Rewrite 2 Electirc Bogaloo
local function InitializeTheOnlyCure() local function InitializeTheOnlyCure()
-- Initializes global lists -- Initializes static values in a global table
TOC.side_names = {"Left", "Right"} TOC.side_names = {"Left", "Right"}
TOC.limb_names = { "Hand", "LowerArm", "UpperArm", "Foot"} TOC.limb_names = { "Hand", "LowerArm", "UpperArm", "Foot"}
TOC.limb_parameters = {}
for _, side in pairs(TOC.side_names) do
for _, limb in pairs(TOC.limb_names) do
local part_name = side .. "_" .. limb
if limb == "Hand" then
TOC.limb_parameters[part_name].cicatrization_base_time = 1700
TOC.limb_parameters[part_name].depends_on = {}
elseif limb == "LowerArm" then
TOC.limb_parameters[part_name].cicatrization_base_time = 1800
TOC.limb_parameters[part_name].depends_on = { side .. "_Hand", }
elseif limb == "UpperArm" then
TOC.limb_parameters[part_name].cicatrization_base_time = 2000
TOC.limb_parameters[part_name].depends_on = { side .. "_Hand", side .. "_LowerArm", }
elseif limb == "Foot" then
TOC.limb_parameters[part_name].cicatrization_base_time = 1700
TOC.limb_parameters[part_name].depends_on = {}
end
end
end
InitializeTraits() InitializeTraits()
Events.OnCreatePlayer.Add(TOC.Init) Events.OnCreatePlayer.Add(TOC.Init)
end end

View File

@@ -23,12 +23,12 @@ UI_EN = {
UI_ContextMenu_Left_Hand = "Left hand", UI_ContextMenu_Left_Hand = "Left hand",
UI_ContextMenu_Left_LowerArm = "Left forearm", UI_ContextMenu_Left_LowerArm = "Left forearm",
UI_ContextMenu_Left_UpperArm = "Left arm", UI_ContextMenu_Left_UpperArm = "Left arm",
UI_ContextMenu_Left_Foot = "Left foot",
UI_ContextMenu_Right_Foot = "Right foot"
UI_ContextMenu_My = "My ", UI_ContextMenu_My = "My ",
UI_ContextMenu_Now_cut = " is now healed!", UI_ContextMenu_Now_cut = " is now healed!",
UI_ContextMenu_Heal_from_zomb = "I think I'm gonna be fine!",
UI_ContextMenu_Cut_for_nothing = "I did it for nothing..."