Add multipliers for fucking level up stats
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -8,3 +8,5 @@ ConfigurationManager
|
|||||||
Projects/Regiments/Regiments/obj/Release
|
Projects/Regiments/Regiments/obj/Release
|
||||||
|
|
||||||
Projects/CykaOfQud/.vs/
|
Projects/CykaOfQud/.vs/
|
||||||
|
|
||||||
|
Projects/CykaOfQud/.vscode/
|
||||||
|
@@ -4,6 +4,10 @@ using BepInEx.Configuration;
|
|||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using HarmonyLib.Tools;
|
using HarmonyLib.Tools;
|
||||||
|
|
||||||
|
// To make harmony work I had to hack t he game apart a little
|
||||||
|
// The game by default does not like harmony mods and unpatches all methods when running
|
||||||
|
// So to stop it from doing this remove calls to:
|
||||||
|
// System.Void XRL.ModInfo::UnapplyHarmonyPatches()
|
||||||
namespace CykaOfQud {
|
namespace CykaOfQud {
|
||||||
[BepInPlugin(pluginGuid, pluginName, pluginVersion)]
|
[BepInPlugin(pluginGuid, pluginName, pluginVersion)]
|
||||||
public class Main : BaseUnityPlugin {
|
public class Main : BaseUnityPlugin {
|
||||||
@@ -12,78 +16,21 @@ namespace CykaOfQud {
|
|||||||
private const string pluginVersion = "1.0.0";
|
private const string pluginVersion = "1.0.0";
|
||||||
|
|
||||||
public static ConfigEntry<float> xpPerLevelMultiplier;
|
public static ConfigEntry<float> xpPerLevelMultiplier;
|
||||||
|
public static ConfigEntry<float> hitpointsPerLevelMultiplier;
|
||||||
// public static ConfigEntry<float> excavatorMineTileIterationsMultiplier;
|
public static ConfigEntry<float> skillPointsPerLevelMultiplier;
|
||||||
// public static ConfigEntry<int> truckCapacityMultiplier;
|
public static ConfigEntry<float> mutationPointsPerLevelMultiplier;
|
||||||
// public static ConfigEntry<int> cargoShipCapacityMultiplier;
|
public static ConfigEntry<float> attributePointsPerLevelMultiplier;
|
||||||
// public static ConfigEntry<float> excavatorMiningCapacityMultiplier;
|
public static ConfigEntry<float> attributeBonusPerLevelMultiplier;
|
||||||
// public static ConfigEntry<int> excavatorMiningAreaMultiplier;
|
|
||||||
// public static ConfigEntry<float> excavatorMinReachMultiplier;
|
|
||||||
// public static ConfigEntry<float> excavatorMaxReachMultiplier;
|
|
||||||
// public static ConfigEntry<float> bufferCapacityMultiplier;
|
|
||||||
// public static ConfigEntry<float> unityGenerationMultiplier;
|
|
||||||
// public static ConfigEntry<float> depotTransferSpeedMultiplier;
|
|
||||||
// public static ConfigEntry<float> worldMineSpeedMultiplier;
|
|
||||||
// public static ConfigEntry<float> housingCapacityMultiplier;
|
|
||||||
// public static ConfigEntry<float> dumpDelayMultiplier;
|
|
||||||
// public static ConfigEntry<float> transportSpeedMultiplier;
|
|
||||||
// public static ConfigEntry<float> shipyardCargoMultiplier;
|
|
||||||
// public static ConfigEntry<int> autosaveInterval;
|
|
||||||
// public static ConfigEntry<string> recipeMultipliers;
|
|
||||||
// public static Dictionary<string, int> recipeMultipliersDict;
|
|
||||||
|
|
||||||
public static ConfigEntry<bool> debugMode;
|
public static ConfigEntry<bool> debugMode;
|
||||||
|
|
||||||
public void Awake() {
|
public void Awake() {
|
||||||
xpPerLevelMultiplier = Config.Bind("General", "XP Per Level Multiplier", 1f,
|
xpPerLevelMultiplier = Config.Bind("General", "XP Per Level Multiplier", 0.25f, new ConfigDescription("XP Per Level Multiplier"));
|
||||||
new ConfigDescription("XP Per Level Multiplier"));
|
hitpointsPerLevelMultiplier = Config.Bind("General", "Hitpoints Per Level Multiplier", 1f, new ConfigDescription("Hitpoints Per Level Multiplier"));
|
||||||
// excavatorCapacityMultiplier = Config.Bind("General", "Excavator Capacity Multiplier", 1,
|
skillPointsPerLevelMultiplier = Config.Bind("General", "Skill Points Per Level Multiplier", 1f, new ConfigDescription("Skill Points Per Level Multiplier"));
|
||||||
// new ConfigDescription("Excavator Capacity Multiplier"));
|
mutationPointsPerLevelMultiplier = Config.Bind("General", "Mutation Points Per Level Multiplier", 1f, new ConfigDescription("Mutation Points Per Level Multiplier"));
|
||||||
// excavatorMineTileIterationsMultiplier = Config.Bind("General", "Excavator Mine Tile Iterations Multiplier",
|
attributePointsPerLevelMultiplier = Config.Bind("General", "Attribute Points Per Level Multiplier", 1f, new ConfigDescription("Attribute Points Per Level Multiplier"));
|
||||||
// 1f,
|
attributeBonusPerLevelMultiplier = Config.Bind("General", "Attribute Bonus Per Level Multiplier", 1f, new ConfigDescription("Attribute Bonus Per Level Multiplier"));
|
||||||
// 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);
|
|
||||||
// };
|
|
||||||
|
|
||||||
debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode"));
|
debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode"));
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Text;
|
||||||
using CykaOfQud;
|
using CykaOfQud;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
|
||||||
@@ -7,15 +8,63 @@ namespace CykaOfIndustry {
|
|||||||
public class Patches {
|
public class Patches {
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "GetXPForLevel")]
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "GetXPForLevel")]
|
||||||
static int xpPerLevelMultiplier(ref int __result) {
|
static void xpPerLevelMultiplier(ref int __result) {
|
||||||
if (Main.debugMode.Value)
|
if (Main.debugMode.Value)
|
||||||
Console.WriteLine("CykaOfQud: Old XP for level {0}", __result);
|
Console.WriteLine("CykaOfQud: Old XP for level {0}", __result);
|
||||||
__result = (int)(__result * Main.xpPerLevelMultiplier.Value);
|
__result = (int)(__result * Main.xpPerLevelMultiplier.Value);
|
||||||
if (Main.debugMode.Value)
|
if (Main.debugMode.Value)
|
||||||
Console.WriteLine("CykaOfQud: New XP for level {0}", __result);
|
Console.WriteLine("CykaOfQud: New XP for level {0}", __result);
|
||||||
return __result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "AddHitpoints")]
|
||||||
|
static void hitpointsPerLevelMultiplier(StringBuilder sb, ref int HPGain) {
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: Old HP for level {0}", HPGain);
|
||||||
|
HPGain = (int)(HPGain * Main.hitpointsPerLevelMultiplier.Value);
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: New HP for level {0}", HPGain);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "AddSkillPoints")]
|
||||||
|
static void skillPointsPerLevelMultiplier(StringBuilder sb, ref int SPGain) {
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: Old SP for level {0}", SPGain);
|
||||||
|
SPGain = (int)(SPGain * Main.skillPointsPerLevelMultiplier.Value);
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: New SP for level {0}", SPGain);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "AddMutationPoints")]
|
||||||
|
static void mutationPointsPerLevelMultiplier(StringBuilder sb, ref int MPGain) {
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: Old MP for level {0}", MPGain);
|
||||||
|
MPGain = (int)(MPGain * Main.mutationPointsPerLevelMultiplier.Value);
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: New MP for level {0}", MPGain);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "AddAttributePoints")]
|
||||||
|
static void attributePointsPerLevelMultiplier(StringBuilder sb, ref int APGain) {
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: Old AP for level {0}", APGain);
|
||||||
|
APGain = (int)(APGain * Main.attributePointsPerLevelMultiplier.Value);
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: New AP for level {0}", APGain);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPrefix]
|
||||||
|
[HarmonyPatch(typeof(XRL.World.Parts.Leveler), "AddAttributeBonus")]
|
||||||
|
static void attributeBonusPerLevelMultiplier(StringBuilder sb, ref int ABGain) {
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: Old AB for level {0}", ABGain);
|
||||||
|
ABGain = (int)(ABGain * Main.attributeBonusPerLevelMultiplier.Value);
|
||||||
|
if (Main.debugMode.Value)
|
||||||
|
Console.WriteLine("CykaOfQud: New AB for level {0}", ABGain);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// [HarmonyPrefix]
|
// [HarmonyPrefix]
|
||||||
// [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")]
|
// [HarmonyPatch(typeof(ExcavatorProtoBuilder.ExcavatorProtoBuilderState), "SetMinedThicknessByDistanceMeters")]
|
||||||
|
Reference in New Issue
Block a user