From bbcf1f229d028e818167351531346694af0e3b98 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sun, 8 Dec 2024 23:53:37 +0100 Subject: [PATCH] Add xp multiplier.. of some variety --- Projects/CykaOfQud/CavesOfQud.csproj | 4 + Projects/CykaOfQud/Class1.cs | 133 ++++++++++++++------------- Projects/CykaOfQud/Patches.cs | 27 +++--- 3 files changed, 87 insertions(+), 77 deletions(-) diff --git a/Projects/CykaOfQud/CavesOfQud.csproj b/Projects/CykaOfQud/CavesOfQud.csproj index 5fbdea5..a4a5369 100644 --- a/Projects/CykaOfQud/CavesOfQud.csproj +++ b/Projects/CykaOfQud/CavesOfQud.csproj @@ -41,5 +41,9 @@ $(GAME_MANAGED)/UnityEngine.CoreModule.dll False + + $(GAME_MANAGED)/Assembly-CSharp.dll + False + \ No newline at end of file diff --git a/Projects/CykaOfQud/Class1.cs b/Projects/CykaOfQud/Class1.cs index ef88486..db57449 100644 --- a/Projects/CykaOfQud/Class1.cs +++ b/Projects/CykaOfQud/Class1.cs @@ -13,76 +13,79 @@ namespace CykaOfQud { private const string pluginName = "CykaOfQud"; private const string pluginVersion = "1.0.0"; - public static ConfigEntry excavatorCapacityMultiplier; - public static ConfigEntry excavatorMineTileIterationsMultiplier; - public static ConfigEntry truckCapacityMultiplier; - public static ConfigEntry cargoShipCapacityMultiplier; - public static ConfigEntry excavatorMiningCapacityMultiplier; - public static ConfigEntry excavatorMiningAreaMultiplier; - public static ConfigEntry excavatorMinReachMultiplier; - public static ConfigEntry excavatorMaxReachMultiplier; - public static ConfigEntry bufferCapacityMultiplier; - public static ConfigEntry unityGenerationMultiplier; - public static ConfigEntry depotTransferSpeedMultiplier; - public static ConfigEntry worldMineSpeedMultiplier; - public static ConfigEntry housingCapacityMultiplier; - public static ConfigEntry dumpDelayMultiplier; - public static ConfigEntry transportSpeedMultiplier; - public static ConfigEntry shipyardCargoMultiplier; - public static ConfigEntry autosaveInterval; - public static ConfigEntry recipeMultipliers; - public static Dictionary recipeMultipliersDict; + public static ConfigEntry xpPerLevelMultiplier; + +// public static ConfigEntry excavatorMineTileIterationsMultiplier; +// public static ConfigEntry truckCapacityMultiplier; +// public static ConfigEntry cargoShipCapacityMultiplier; +// public static ConfigEntry excavatorMiningCapacityMultiplier; +// public static ConfigEntry excavatorMiningAreaMultiplier; +// public static ConfigEntry excavatorMinReachMultiplier; +// public static ConfigEntry excavatorMaxReachMultiplier; +// public static ConfigEntry bufferCapacityMultiplier; +// public static ConfigEntry unityGenerationMultiplier; +// public static ConfigEntry depotTransferSpeedMultiplier; +// public static ConfigEntry worldMineSpeedMultiplier; +// public static ConfigEntry housingCapacityMultiplier; +// public static ConfigEntry dumpDelayMultiplier; +// public static ConfigEntry transportSpeedMultiplier; +// public static ConfigEntry shipyardCargoMultiplier; +// public static ConfigEntry autosaveInterval; +// public static ConfigEntry recipeMultipliers; +// public static Dictionary recipeMultipliersDict; public static ConfigEntry debugMode; public void Awake() { - excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, - new ConfigDescription("Excavator Capacity Multiplier")); - excavatorMineTileIterationsMultiplier = Config.Bind("General", "Excavator Mine Tile Iterations Multiplier", - 1f, - new ConfigDescription("Excavator Mine Tile Iterations Multiplier")); - truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1, - new ConfigDescription("Truck Capacity Multiplier")); - cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1, - new ConfigDescription("Cargo Ship Capacity Multiplier")); - excavatorMiningAreaMultiplier = Config.Bind("General", "Excavator Mining Area Multiplier", 1, - new ConfigDescription("Excavator Mining Area Multiplier")); - excavatorMiningCapacityMultiplier = Config.Bind("General", "Excavator Mining Capacity Multiplier", 1f, - new ConfigDescription("Excavator Mining Capacity Multiplier")); - excavatorMinReachMultiplier = Config.Bind("General", "Excavator Min Reach Multiplier", 1f, - new ConfigDescription("Excavator Min Reach Multiplier")); - excavatorMaxReachMultiplier = Config.Bind("General", "Excavator Max Reach Multiplier", 1f, - new ConfigDescription("Excavator Max Reach Multiplier")); - bufferCapacityMultiplier = Config.Bind("General", "Buffer Capacity Multiplier", 1f, - new ConfigDescription("Buffer Capacity Multiplier")); - unityGenerationMultiplier = Config.Bind("General", "Unity Generation Multiplier", 1f, - new ConfigDescription("Unity Generation Multiplier")); - depotTransferSpeedMultiplier = Config.Bind("General", "Depot Transfer Speed Multiplier", 1f, - new ConfigDescription("Depot Transfer Speed Multiplier")); - worldMineSpeedMultiplier = Config.Bind("General", "World Mine Speed Multiplier", 1f, - new ConfigDescription("World Mine Speed Multiplier")); - housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, - new ConfigDescription("Housing Capacity Multiplier")); - dumpDelayMultiplier = Config.Bind("General", "Dump Delay Multiplier", 1f, - new ConfigDescription("Dump Delay Multiplier")); - transportSpeedMultiplier = Config.Bind("General", "Transport Speed Multiplier", 1f, - new ConfigDescription("Transport Speed Multiplier")); - shipyardCargoMultiplier = Config.Bind("General", "Shipyard Cargo Multiplier", 1f, - new ConfigDescription("Shipyard Cargo Multiplier")); - autosaveInterval = Config.Bind("General", "Autosave Interval", 1, - new ConfigDescription("Autosave Interval in minutes")); - recipeMultipliers = Config.Bind("General", "Recipe Multipliers", "dirt:4", - new ConfigDescription("Recipe Multipliers")); + xpPerLevelMultiplier = Config.Bind("General", "XP Per Level Multiplier", 1f, + new ConfigDescription("XP Per Level Multiplier")); + // excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1, + // new ConfigDescription("Excavator Capacity Multiplier")); + // excavatorMineTileIterationsMultiplier = Config.Bind("General", "Excavator Mine Tile Iterations Multiplier", + // 1f, + // new ConfigDescription("Excavator Mine Tile Iterations Multiplier")); + // truckCapacityMultiplier = Config.Bind("General", "Truck Capacity Multiplier", 1, + // new ConfigDescription("Truck Capacity Multiplier")); + // cargoShipCapacityMultiplier = Config.Bind("General", "Cargo Ship Capacity Multiplier", 1, + // new ConfigDescription("Cargo Ship Capacity Multiplier")); + // excavatorMiningAreaMultiplier = Config.Bind("General", "Excavator Mining Area Multiplier", 1, + // new ConfigDescription("Excavator Mining Area Multiplier")); + // excavatorMiningCapacityMultiplier = Config.Bind("General", "Excavator Mining Capacity Multiplier", 1f, + // new ConfigDescription("Excavator Mining Capacity Multiplier")); + // excavatorMinReachMultiplier = Config.Bind("General", "Excavator Min Reach Multiplier", 1f, + // new ConfigDescription("Excavator Min Reach Multiplier")); + // excavatorMaxReachMultiplier = Config.Bind("General", "Excavator Max Reach Multiplier", 1f, + // new ConfigDescription("Excavator Max Reach Multiplier")); + // bufferCapacityMultiplier = Config.Bind("General", "Buffer Capacity Multiplier", 1f, + // new ConfigDescription("Buffer Capacity Multiplier")); + // unityGenerationMultiplier = Config.Bind("General", "Unity Generation Multiplier", 1f, + // new ConfigDescription("Unity Generation Multiplier")); + // depotTransferSpeedMultiplier = Config.Bind("General", "Depot Transfer Speed Multiplier", 1f, + // new ConfigDescription("Depot Transfer Speed Multiplier")); + // worldMineSpeedMultiplier = Config.Bind("General", "World Mine Speed Multiplier", 1f, + // new ConfigDescription("World Mine Speed Multiplier")); + // housingCapacityMultiplier = Config.Bind("General", "Housing Capacity Multiplier", 1f, + // new ConfigDescription("Housing Capacity Multiplier")); + // dumpDelayMultiplier = Config.Bind("General", "Dump Delay Multiplier", 1f, + // new ConfigDescription("Dump Delay Multiplier")); + // transportSpeedMultiplier = Config.Bind("General", "Transport Speed Multiplier", 1f, + // new ConfigDescription("Transport Speed Multiplier")); + // shipyardCargoMultiplier = Config.Bind("General", "Shipyard Cargo Multiplier", 1f, + // new ConfigDescription("Shipyard Cargo Multiplier")); + // autosaveInterval = Config.Bind("General", "Autosave Interval", 1, + // new ConfigDescription("Autosave Interval in minutes")); + // recipeMultipliers = Config.Bind("General", "Recipe Multipliers", "dirt:4", + // new ConfigDescription("Recipe Multipliers")); - recipeMultipliersDict = recipeMultipliers.Value.Split(',') - .ToDictionary(x => x.Split(':')[0], x => int.Parse(x.Split(':')[1])); - recipeMultipliers.SettingChanged += (sender, args) => { - recipeMultipliersDict = recipeMultipliers.Value.Split(',') - .ToDictionary(x => x.Split(':')[0], x => int.Parse(x.Split(':')[1])); - Console.WriteLine("IndustrialCyka: Recipe multipliers parsed as:"); - foreach (var kvp in recipeMultipliersDict) - Console.WriteLine("\tIndustrialCyka: {0} x {1}", kvp.Key, kvp.Value); - }; + // recipeMultipliersDict = recipeMultipliers.Value.Split(',') + // .ToDictionary(x => x.Split(':')[0], x => int.Parse(x.Split(':')[1])); + // recipeMultipliers.SettingChanged += (sender, args) => { + // recipeMultipliersDict = recipeMultipliers.Value.Split(',') + // .ToDictionary(x => x.Split(':')[0], x => int.Parse(x.Split(':')[1])); + // Console.WriteLine("IndustrialCyka: Recipe multipliers parsed as:"); + // foreach (var kvp in recipeMultipliersDict) + // Console.WriteLine("\tIndustrialCyka: {0} x {1}", kvp.Key, kvp.Value); + // }; debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode")); diff --git a/Projects/CykaOfQud/Patches.cs b/Projects/CykaOfQud/Patches.cs index f265670..0feeea5 100644 --- a/Projects/CykaOfQud/Patches.cs +++ b/Projects/CykaOfQud/Patches.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; +using CykaOfQud; using HarmonyLib; //using Mafi; //using Mafi.Collections.ImmutableCollections; @@ -28,18 +29,20 @@ using HarmonyLib; //using Mafi.Core.World.Entities; namespace CykaOfIndustry { -// [HarmonyPatch] -// public class Patches { -// [HarmonyPrefix] -// [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetCapacity")] -// static void excavatorCapacityMultiplier(ref int quantity) { -// if (Main.debugMode.Value) -// Console.WriteLine("IndustrialCyka: Old excavator capacity {0}", quantity); -// quantity *= Main.excavatorCapacityMultiplier.Value; -// if (Main.debugMode.Value) -// Console.WriteLine("IndustrialCyka: New excavator capacity {0}", quantity); -// } -// + [HarmonyPatch] + public class Patches { + [HarmonyPostfix] + [HarmonyPatch(typeof(XRL.World.Parts.Leveler), "GetXPForLevel")] + static int xpPerLevelMultiplier(ref int __result) { + if (Main.debugMode.Value) + Console.WriteLine("CykaOfQud: Old XP for level {0}", __result); + __result = (int)(__result * Main.xpPerLevelMultiplier.Value); + if (Main.debugMode.Value) + Console.WriteLine("CykaOfQud: New XP for level {0}", __result); + return __result; + } + + } // [HarmonyPrefix] // [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")] // static void excavatorMiningAreaMultiplier(ref float[] thicknessMeters) {