using System.Linq; using BepInEx; using BepInEx.Configuration; using HarmonyLib; 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 { [BepInPlugin(pluginGuid, pluginName, pluginVersion)] public class Main : BaseUnityPlugin { private const string pluginGuid = "CykaOfQud"; private const string pluginName = "CykaOfQud"; private const string pluginVersion = "1.0.0"; public static ConfigEntry xpPerLevelMultiplier; public static ConfigEntry hitpointsPerLevelMultiplier; public static ConfigEntry skillPointsPerLevelMultiplier; public static ConfigEntry mutationPointsPerLevelMultiplier; public static ConfigEntry attributePointsPerLevelMultiplier; public static ConfigEntry attributeBonusPerLevelMultiplier; public static ConfigEntry debugMode; public void Awake() { xpPerLevelMultiplier = Config.Bind("General", "XP Per Level Multiplier", 0.25f, new ConfigDescription("XP Per Level Multiplier")); hitpointsPerLevelMultiplier = Config.Bind("General", "Hitpoints Per Level Multiplier", 1f, new ConfigDescription("Hitpoints Per Level Multiplier")); skillPointsPerLevelMultiplier = Config.Bind("General", "Skill Points Per Level Multiplier", 1f, new ConfigDescription("Skill Points Per Level Multiplier")); mutationPointsPerLevelMultiplier = Config.Bind("General", "Mutation Points Per Level Multiplier", 1f, new ConfigDescription("Mutation Points Per Level Multiplier")); attributePointsPerLevelMultiplier = Config.Bind("General", "Attribute Points Per Level Multiplier", 1f, new ConfigDescription("Attribute Points Per Level Multiplier")); attributeBonusPerLevelMultiplier = Config.Bind("General", "Attribute Bonus Per Level Multiplier", 1f, new ConfigDescription("Attribute Bonus Per Level Multiplier")); debugMode = Config.Bind("General", "Debug Mode", false, new ConfigDescription("Debug Mode")); Logger.LogInfo("Cyka mod loaded"); HarmonyFileLog.Enabled = true; Harmony harmony = new Harmony(pluginGuid); harmony.PatchAll(); var originalMethods = harmony.GetPatchedMethods(); Logger.LogInfo("Patched " + originalMethods.Count() + " methods"); foreach (var method in originalMethods) { Logger.LogInfo("Patched " + method.Name); } } } }