diff --git a/Projects/Regiments/Regiments.sln b/Projects/Regiments/Regiments.sln
new file mode 100644
index 0000000..4dd3990
--- /dev/null
+++ b/Projects/Regiments/Regiments.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Regiments", "Regiments\Regiments.csproj", "{DA9D274E-486F-4F82-84FF-CD9388CB0B09}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Projects/Regiments/Regiments.sln.DotSettings.user b/Projects/Regiments/Regiments.sln.DotSettings.user
new file mode 100644
index 0000000..b5f9d9d
--- /dev/null
+++ b/Projects/Regiments/Regiments.sln.DotSettings.user
@@ -0,0 +1,14 @@
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/Projects/Regiments/Regiments/Class1.cs b/Projects/Regiments/Regiments/Class1.cs
new file mode 100644
index 0000000..ca8b6e4
--- /dev/null
+++ b/Projects/Regiments/Regiments/Class1.cs
@@ -0,0 +1,96 @@
+using System.Linq;
+using BepInEx;
+using BepInEx.Configuration;
+using HarmonyLib;
+using HarmonyLib.Tools;
+
+namespace Regiments {
+ [BepInPlugin(pluginGuid, pluginName, pluginVersion)]
+ public class Main : BaseUnityPlugin {
+ private const string pluginGuid = "CykaMod";
+ private const string pluginName = "CykaMod";
+ private const string pluginVersion = "1.0.0";
+
+ public static ConfigEntry SPMultiplier;
+ public static ConfigEntry TPMultiplier;
+ public static ConfigEntry SupplyAOEMultiplier;
+ public static ConfigEntry HQAOEMultiplier;
+ public static ConfigEntry SupplyAmountMultiplier;
+ public static ConfigEntry FireRateMultiplier;
+ public static ConfigEntry AimIntervalMultiplier;
+ public static ConfigEntry SupplyRateMultiplier;
+ // public static ConfigEntry magnetRadiusMultiplier;
+ // public static ConfigEntry beamStrenghtMultiplier;
+ // public static ConfigEntry beamRadiusMultiplier;
+ // public static ConfigEntry fuelTankRefillMultiplier;
+ // public static ConfigEntry fuelTankCapacityMultiplier;
+ // public static ConfigEntry minerGroundArea;
+ // public static ConfigEntry minerMiningSpeed;
+ // public static ConfigEntry wheelTorqueMultiplier;
+ // public static ConfigEntry wheelSpeedMultiplier;
+ // public static ConfigEntry jetThrustMultiplier;
+
+ public void Awake() {
+ SPMultiplier = Config.Bind("General", "SP Multiplier", 1f,
+ new ConfigDescription("SP Multiplier", new AcceptableValueRange(1f, 32f)));
+ TPMultiplier = Config.Bind("General", "TP Multiplier", 1f,
+ new ConfigDescription("TP Multiplier", new AcceptableValueRange(1f, 32f)));
+ SupplyAOEMultiplier = Config.Bind("General", "Supply AOE Multiplier", 1f,
+ new ConfigDescription("Supply AOE Multiplier", new AcceptableValueRange(1f, 32f)));
+ SupplyAmountMultiplier = Config.Bind("General", "Supply Point Amount Multiplier", 1f,
+ new ConfigDescription("Supply Point Amount Multiplier", new AcceptableValueRange(1f, 32f)));
+ SupplyRateMultiplier = Config.Bind("General", "The rate at which HP and ammo is resupplied", 1f,
+ new ConfigDescription("The rate at which HP and ammo is resupplied", new AcceptableValueRange(1f, 16f)));
+ HQAOEMultiplier = Config.Bind("General", "HQ AOE Multiplier", 1f,
+ new ConfigDescription("HQ AOE Multiplier", new AcceptableValueRange(1f, 32f)));
+ FireRateMultiplier = Config.Bind("General", "Fire Rate Multiplier", 1f,
+ new ConfigDescription("Fire Rate Multiplier",
+ new AcceptableValueRange(0.1f, 32f)));
+ AimIntervalMultiplier = Config.Bind("General", "Aiming Interval Multiplier", 1f,
+ new ConfigDescription("Aiming Interval Multiplier", new AcceptableValueRange(0.1f, 32f)));
+ // beamStrenghtMultiplier = Config.Bind("Attractors", "Beam Strength Multiplier", 1f,
+ // new ConfigDescription("Beam Strength Multiplier", new AcceptableValueRange(1f, 16f)));
+ // beamRadiusMultiplier = Config.Bind("Attractors", "Beam Radius Multiplier", 1f,
+ // new ConfigDescription("Beam Radius Multiplier", new AcceptableValueRange(1f, 16f)));
+ //
+ // fuelTankRefillMultiplier = Config.Bind("Propulsion", "Fuel Tank Refill Rate Multiplier", 1f,
+ // new ConfigDescription("Fuel Tank Refill Rate Multiplier", new AcceptableValueRange(1f, 32f)));
+ // fuelTankCapacityMultiplier = Config.Bind("Propulsion", "Fuel Tank Capacity Multiplier", 1f,
+ // new ConfigDescription("Fuel Tank Capacity Multiplier", new AcceptableValueRange(1f, 32f)));
+ // wheelTorqueMultiplier = Config.Bind("Propulsion", "Wheel Torque Multiplier", 1f,
+ // new ConfigDescription("Wheel Torque Multiplier", new AcceptableValueRange(1f, 32f)));
+ // wheelSpeedMultiplier = Config.Bind("Propulsion", "Wheel Max RPM Multiplier", 1f,
+ // new ConfigDescription("Wheel Max RPM Multiplier", new AcceptableValueRange(1f, 32f)));
+ // jetThrustMultiplier = Config.Bind("Propulsion", "Jet Thrust Multiplier", 1f,
+ // new ConfigDescription("Jet Thrust Multiplier", new AcceptableValueRange(1f, 32f)));
+ //
+ // minerGroundArea = Config.Bind("Production", "Miner Ground Deposit Scan Area", 1f,
+ // new ConfigDescription("Miner Ground Deposit Scan Area", new AcceptableValueRange(1f, 32f)));
+ // minerMiningSpeed = Config.Bind("Production", "Miner Mining Speed", 1f,
+ // new ConfigDescription("Miner Mining Speed", new AcceptableValueRange(1f, 32f)));
+ //
+ // allProjectilesHoming = Config.Bind("General", "Make All Projectiles Home", false);
+
+ // shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch();
+ // energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch();
+ // magnetStrenghtMultiplier.SettingChanged += (sender, args) => MagnetPropertiesManager.DoPatch();
+ // magnetRadiusMultiplier.SettingChanged += (sender, args) => MagnetPropertiesManager.DoPatch();
+ // beamStrenghtMultiplier.SettingChanged += (sender, args) => BeamPropertiesManager.DoPatch();
+ // beamRadiusMultiplier.SettingChanged += (sender, args) => BeamPropertiesManager.DoPatch();
+ // fuelTankRefillMultiplier.SettingChanged += (sender, args) => FuelPropertiesManager.DoPatch();
+ // fuelTankCapacityMultiplier.SettingChanged += (sender, args) => FuelPropertiesManager.DoPatch();
+ // wheelTorqueMultiplier.SettingChanged += (sender, args) => WheelPropertiesManager.DoPatch();
+ // wheelSpeedMultiplier.SettingChanged += (sender, args) => WheelPropertiesManager.DoPatch();
+ // jetThrustMultiplier.SettingChanged += (sender, args) => ThrusterPropertiesManager.DoPatch();
+ // minerGroundArea.SettingChanged += (sender, args) => MinerPropertiesManager.DoPatch();
+ // minerMiningSpeed.SettingChanged += (sender, args) => MinerPropertiesManager.DoPatch();
+
+ 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");
+ }
+ }
+}
diff --git a/Projects/Regiments/Regiments/Patches.cs b/Projects/Regiments/Regiments/Patches.cs
index 8bc5ea8..cfac95e 100644
--- a/Projects/Regiments/Regiments/Patches.cs
+++ b/Projects/Regiments/Regiments/Patches.cs
@@ -1,24 +1,167 @@
-using HarmonyLib;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection.Emit;
+using birdseye;
+using birdseye.Regiments;
+using birdseye.Regiments.Commanders;
+using birdseye.Regiments.GameModes;
+using birdseye.Regiments.Menu.GUI;
+using birdseye.Regiments.Platoons;
+using birdseye.Regiments.Platoons.Modules;
+using birdseye.Regiments.Units.WeaponSystems;
+using birdseye.Regiments.Zones;
+using HarmonyLib;
+using UnityEngine;
-namespace TerraTech {
- [HarmonyPatch]
- public class Patches {
- [HarmonyPrefix]
- [HarmonyPatch(typeof(ManLicenses), "AddXP")]
- static void XPMulti(FactionSubTypes corporation, ref int xp, bool showUI = true) {
- xp = (int)(xp * Main.xpMultiplier.Value);
- }
+// Patch maxSupPoints in PlatoonSupplyModule
+// Patch Operational Authority point gain
- [HarmonyPrefix]
- [HarmonyPatch(typeof(ManPlayer), "AddMoney")]
- static void MoneyMulti(ref int amount) {
- amount = (int)(amount * Main.moneyMultiplier.Value);
- }
+namespace Regiments {
+ [HarmonyPatch]
+ public class Patches {
+ private static float baseHqValue = 0;
+ private static float baseSupplyValue = 0;
- [HarmonyPrefix]
- [HarmonyPatch(typeof(TechHolders), "SetHeartbeatInterval")]
- static void HeartbeatMulti(ref float interval) {
- interval *= Main.heartbeatIntervalMultiplier.Value;
- }
- }
-}
\ No newline at end of file
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(SupplyPointsController), "AddSPs")]
+ static void SpMultiplier(ref float value) {
+ if (value == 0) {
+ return;
+ }
+
+ float multiplier = Main.SPMultiplier.Value;
+ // Console.WriteLine("Multiplying SP {0} by {1}", value, multiplier);
+ value *= multiplier;
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TacAidPointsController), "AddTP")]
+ static void TpMultiplier(ref float val) {
+ if (val == 0) {
+ return;
+ }
+
+ float multiplier = Main.TPMultiplier.Value;
+ // Console.WriteLine("Multiplying TP {0} by {1}", val, multiplier);
+ val *= multiplier;
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(MapZoneFactory), "MakeRefitZone")]
+ static void SupplyAoeMultiplier(ref eSides side, ref Vector3 position, ref float size) {
+ float multiplier = Main.SupplyAOEMultiplier.Value;
+ Console.WriteLine("Multiplying supply aoe {0} by {1}", size, multiplier);
+ size *= multiplier;
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(PlatoonHQVisuals), "Start")]
+ static void HqAoeMultiplier(PlatoonHQVisuals __instance) {
+ Console.WriteLine("Patching HQ radius - base range {0}", baseHqValue);
+ if (baseHqValue == 0) {
+ baseHqValue = __instance.platoon.parameters.HQRadius;
+ Console.WriteLine("Base range is 0, assigning new: {0}", baseHqValue);
+ }
+
+ __instance.platoon.parameters.HQRadius = baseHqValue * Main.HQAOEMultiplier.Value;
+ Console.WriteLine("HQ radius patched to: {0}", __instance.platoon.parameters.HQRadius);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(PlatoonSupplyModule), "Start")]
+ static void SupplyAoeMultiplier(PlatoonSupplyModule __instance) {
+ Console.WriteLine("Patching supply amount - base amount {0}", baseSupplyValue);
+ if (baseSupplyValue == 0) {
+ baseSupplyValue = __instance.platoon.parameters.supplyPointsPerUnit;
+ Console.WriteLine("Base amount is 0, assigning new: {0}", baseSupplyValue);
+ }
+
+ __instance.platoon.parameters.supplyPointsPerUnit =
+ (int)(baseSupplyValue * Main.SupplyAmountMultiplier.Value);
+ Console.WriteLine("Supply amount patched to: {0}", __instance.platoon.parameters.supplyPointsPerUnit);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(WeaponAttackBase), "GetReloadInterval")]
+ static void FireRateMultiplier(ref float __result) {
+ Console.WriteLine("Patching fire rate");
+
+ __result *= Main.FireRateMultiplier.Value;
+ Console.WriteLine("Fire rate patched to: {0}", __result);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(WeaponAttackBase), "GetAimInterval")]
+ static void AimingIntervalMultiplier(ref float __result) {
+ Console.WriteLine("Patching aim interval - base amount {0}", baseSupplyValue);
+
+ __result *= Main.AimIntervalMultiplier.Value;
+ Console.WriteLine("Aim interval patched to: {0}", __result);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TimerManager), "GetPersistentTimer")]
+ static void Transpiler(ref float interval, ref string hint) {
+ if (hint == "burst") {
+ Console.WriteLine("Patching burst interval from: {0}", interval);
+ interval *= Main.FireRateMultiplier.Value;
+ Console.WriteLine("Burst interval patched to: {0}", interval);
+ }
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(RefitZone), "OnRefitStep")]
+ static void SupplyRateMultiplier(ref float hpVal, ref float ammoVal) {
+ Console.WriteLine("Patching refit step from: {0} {1}", hpVal, ammoVal);
+ hpVal *= Main.SupplyRateMultiplier.Value;
+ ammoVal *= Main.SupplyRateMultiplier.Value;
+ Console.WriteLine("Patching refit step to: {0} {1}", hpVal, ammoVal);
+ }
+
+ // [HarmonyPatch(typeof(AdvancedRulesData), "Validate")]
+ // static IEnumerable Transpiler(IEnumerable instructions) {
+ // var codes = new List(instructions);
+ //
+ // foreach (var code in codes) {
+ // if (code.opcode == OpCodes.Ldc_R4) {
+ // Console.WriteLine("Changing " + code);
+ // code.operand = (float)code.operand * 2;
+ // Console.WriteLine("Changed " + code);
+ // }
+ // }
+ //
+ // return codes.AsEnumerable();
+ // }
+
+ // [HarmonyPatch(typeof(AdvancedRulesData), "IsWithinLimits")]
+ // static IEnumerable Transpiler2(IEnumerable instructions) {
+ // var codes = new List(instructions);
+ //
+ // foreach (var code in codes) {
+ // if (code.opcode == OpCodes.Ldc_R4) {
+ // Console.WriteLine("Changing " + code);
+ // code.operand = (float)code.operand * 2;
+ // Console.WriteLine("Changed " + code);
+ // }
+ // }
+ //
+ // return codes.AsEnumerable();
+ // }
+
+ // private static float baseAccuracy;
+ //
+ // [HarmonyPostfix]
+ // [HarmonyPatch(typeof(SkirmishAdvancedRules), "Update")]
+ // static void AccuracyPatch(SkirmishAdvancedRules __instance) {
+ // var accMod = Traverse.Create(__instance).Field("currentARD").Field("accuracyModifier");
+ // if (baseAccuracy == 0) {
+ // baseAccuracy = (float)accMod.GetValue();
+ // Console.WriteLine("Base accuracy set to {0}", baseAccuracy);
+ // }
+ //
+ // accMod.SetValue(baseAccuracy * 4f);
+ // Console.WriteLine("Accuracy now: {0}", accMod.GetValue());
+ // }
+ }
+}
diff --git a/Projects/Regiments/Regiments/Properties/AssemblyInfo.cs b/Projects/Regiments/Regiments/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..659f97b
--- /dev/null
+++ b/Projects/Regiments/Regiments/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Regiments")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Regiments")]
+[assembly: AssemblyCopyright("Copyright © 2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("DA9D274E-486F-4F82-84FF-CD9388CB0B09")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/Projects/Regiments/Regiments/Regiments.csproj b/Projects/Regiments/Regiments/Regiments.csproj
new file mode 100644
index 0000000..4b89eb4
--- /dev/null
+++ b/Projects/Regiments/Regiments/Regiments.csproj
@@ -0,0 +1,76 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}
+ Library
+ Properties
+ Regiments
+ Regiments
+ v4.8.1
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ libs\0Harmony.dll
+
+
+ libs\Assembly-CSharp.dll
+
+
+ libs\BepInEx.dll
+
+
+ libs\ConfigurationManager.dll
+
+
+ libs\MainAssembly.dll
+
+
+
+
+
+
+ libs\UnityEngine.dll
+
+
+ libs\UnityEngine.CoreModule.dll
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Projects/Regiments/Regiments/Transpiler.cs b/Projects/Regiments/Regiments/Transpiler.cs
index 6a9a782..2bc9b04 100644
--- a/Projects/Regiments/Regiments/Transpiler.cs
+++ b/Projects/Regiments/Regiments/Transpiler.cs
@@ -1,5 +1,274 @@
-namespace Regiments {
- public class Transpiler {
-
- }
-}
\ No newline at end of file
+// using System;
+// using System.Collections.Generic;
+// using System.Linq;
+// using System.Reflection.Emit;
+// using BepInEx;
+// using BepInEx.Configuration;
+// using HarmonyLib;
+// using HarmonyLib.Tools;
+//
+// namespace Regiments {
+// [BepInPlugin(pluginGuid, pluginName, pluginVersion)]
+// public class Main : BaseUnityPlugin {
+// private const string pluginGuid = "CykaMod";
+// private const string pluginName = "CykaMod";
+// private const string pluginVersion = "1.0.0";
+//
+// public static ConfigEntry skillCap;
+// public static ConfigEntry workSpeed;
+// public static ConfigEntry workResult;
+// public static ConfigEntry alwaysCritical;
+// public static ConfigEntry gameSpeed;
+// public static ConfigEntry fans;
+// public static ConfigEntry money;
+//
+// //
+// // private void Awake()
+// // {
+// // configGreeting = Config.Bind("General", // The section under which the option is shown
+// // "GreetingText", // The key of the configuration option in the configuration file
+// // "Hello, world!", // The default value
+// // "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+// //
+//
+// public void Awake() {
+// skillCap = Config.Bind("General", "Skill Cap", 100f);
+// workSpeed = Config.Bind("General", "Work Speed Multiplier", 4f);
+// workResult = Config.Bind("General", "Work Result Multiplier", 4f);
+// alwaysCritical = Config.Bind("General", "Work Always Critical", false);
+// gameSpeed = Config.Bind("General", "Game Speed Multiplier", 3f);
+// fans = Config.Bind("General", "Fans Multiplier", 2);
+// money = Config.Bind("General", "Money Multiplier", 2L);
+//
+// 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");
+// }
+//
+// public static bool IsMatch(List codes, int index, List matcher) {
+// for (var i = 0; i < matcher.Count; i++) {
+// if (codes[index + i].opcode != matcher[i].opcode) {
+// return false;
+// }
+// }
+// return true;
+// }
+//
+// public static void InsertAt(List codes, int index, List toInsert) {
+// for (var i = 0; i < toInsert.Count; i++) {
+// codes.Insert(index + i, toInsert[i]);
+// }
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "GetSkillCap")]
+// public class SkillCapPatch {
+// static void Postfix(ref float __result) {
+// // Console.WriteLine("GetSkillCap Postfix! Result is " + __result);
+// __result = Main.skillCap.Value;
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "GetSkillCap_Skill")]
+// public class SkillCapSkillPatch {
+// static void Postfix(ref float __result) {
+// // Console.WriteLine("GetSkillCap_Skill Postfix! Result is " + __result);
+// __result = Main.skillCap.Value;
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "GetWorkSpeed")]
+// public class GetWorkSpeedPatch {
+// static void Postfix(ref float __result) {
+// // Console.WriteLine("GetWorkSpeed Postfix! Result is " + __result);
+// __result *= Main.workSpeed.Value;
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "GetWorkResult")]
+// public class GetWorkResultPatch {
+// static void Prefix(ref float f) {
+// // Console.WriteLine("GetWorkResult Postfix! f is " + f);
+// f *= Main.workResult.Value;
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "GetCritic")]
+// public class GetCriticPatch {
+// static void Postfix(ref bool __result) {
+// // Console.WriteLine("GetWorkResult Postfix! f is " + f);
+// if (Main.alwaysCritical.Value) {
+// __result = true;
+// }
+// }
+// }
+//
+// [HarmonyPatch(typeof(mainScript), "SetGameSpeed")]
+// public class GameSpeedPatch {
+// static void Prefix(ref float f) {
+// // Console.WriteLine("SetGameSpeed Prefix! Argument is " + f);
+// if (f > 1) {
+// f *= Main.gameSpeed.Value;
+// // Console.WriteLine("Argument modified to " + f);
+// }
+// }
+// }
+//
+// [HarmonyPatch(typeof(characterScript), "Learn")]
+// public static class LearnManyPatch {
+// static IEnumerable Transpiler(IEnumerable instructions) {
+// var codes = new List(instructions);
+//
+// for (var i = 0; i < 5; i++) {
+// if (codes[i].opcode == OpCodes.Ldc_R4) {
+// Console.WriteLine("Changing " + codes[i]);
+// codes[i].operand = (float)codes[i].operand * 64;
+// Console.WriteLine("Changed " + codes[i]);
+// }
+// }
+//
+// return codes.AsEnumerable();
+// }
+// }
+//
+// [HarmonyPatch(typeof(arbeitsmarkt), "ArbeitsmarktUpdaten")]
+// public static class ManyEmployeesPatch {
+// static IEnumerable Transpiler(IEnumerable instructions) {
+// var codes = new List(instructions);
+//
+// for (var i = codes.Count - 1; i > 0; i--) {
+// if (codes[i].opcode == OpCodes.Ldc_I4_3) {
+// Console.WriteLine("Changing " + codes[i]);
+// codes[i] = new CodeInstruction(OpCodes.Ldc_I4, 64);
+// Console.WriteLine("Changed " + codes[i]);
+// break;
+// }
+// }
+//
+// return codes.AsEnumerable();
+// }
+// }
+//
+// // [HarmonyPatch(typeof(AILerp), "MovementUpdate")]
+// public class MovementSpeedPatch {
+// static void Prefix(ref float deltaTime) {
+// Console.WriteLine("MovementUpdate Prefix! deltaTime is " + deltaTime);
+// deltaTime *= 16f;
+// }
+// }
+//
+// // [HarmonyPatch(typeof(movementScript), "Move")]
+// public static class EmployeeMovementSpeedPatch {
+// static IEnumerable Transpiler(IEnumerable instructions) {
+// var codes = new List(instructions);
+//
+// List matcher = new List();
+// matcher.Add(new CodeInstruction(OpCodes.Ldarg_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldfld, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldarg_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldfld, null));
+// matcher.Add(new CodeInstruction(OpCodes.Mul, null));
+//
+// List patch = new List();
+// patch.Add(new CodeInstruction(OpCodes.Ldc_R4, 8));
+// patch.Add(new CodeInstruction(OpCodes.Mul, null));
+//
+// for (var i = codes.Count - 1; i > 0; i--) {
+// if (Main.IsMatch(codes, i, matcher)) {
+// Main.InsertAt(codes, i + 5, patch);
+// Console.WriteLine("Movement speed patched");
+// for (var j = 0; j < 15; j++) {
+// Console.WriteLine(codes[i + j]);
+// }
+// break;
+// }
+// }
+// Console.WriteLine("Return");
+// return codes.AsEnumerable();
+// }
+// }
+//
+// [HarmonyPatch(typeof(mainScript), "WochenUpdates")]
+// public static class ContractWorkAmount {
+// static IEnumerable Transpiler(IEnumerable instructions) {
+// var codes = new List(instructions);
+// int methodIndex = -1;
+// List pattern = new List();
+//
+// List matcher = new List();
+// matcher.Add(new CodeInstruction(OpCodes.Ldarg_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldfld, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldc_I4_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Callvirt, null));
+//
+// for (var i = 0; i < codes.Count; i++) {
+// if (codes[i].operand != null) {
+// if (codes[i].operand.ToString().Contains("UpdateContractWork")) {
+// methodIndex = i;
+// pattern.Add(codes[i - 3]);
+// pattern.Add(codes[i - 2]);
+// pattern.Add(codes[i - 1]);
+// pattern.Add(codes[i]);
+// break;
+// }
+// }
+// }
+// pattern[2].opcode = OpCodes.Ldc_I4_1;
+//
+// for (int i = 0; i < 16; i++) {
+// for (int j = 0; j < pattern.Count; j++) {
+// codes.Insert(methodIndex + i + j, pattern[j]);
+// }
+// }
+//
+// return codes.AsEnumerable();
+// }
+// }
+//
+// [HarmonyPatch(typeof(platformScript), "SellPlayer")]
+// public static class ConsoleProductionReductionPatch {
+// static IEnumerable Transpiler(IEnumerable instructions) {
+// var codes = new List(instructions);
+//
+// List matcher = new List();
+// matcher.Add(new CodeInstruction(OpCodes.Ldarg_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldarg_0, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldfld, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldc_R4, null));
+// matcher.Add(new CodeInstruction(OpCodes.Ldc_R4, null));
+// matcher.Add(new CodeInstruction(OpCodes.Call, null));
+// matcher.Add(new CodeInstruction(OpCodes.Add, null));
+// matcher.Add(new CodeInstruction(OpCodes.Stfld, null));
+//
+// for (var i = 0; i < codes.Count; i++) {
+// if (Main.IsMatch(codes, i, matcher)) {
+// codes[i + 3].operand = (float)codes[i + 3].operand * 8f;
+// codes[i + 4].operand = (float)codes[i + 4].operand * 8f;
+// Console.WriteLine("ConsoleProductionReductionPatch patched");
+// break;
+// }
+// }
+//
+// return codes.AsEnumerable();
+// }
+// }
+//
+// [HarmonyPatch(typeof(mainScript), "AddFans")]
+// public static class AddFansPatch {
+// static void Prefix(ref int i) {
+// // Console.WriteLine("GetWorkResult Postfix! f is " + f);
+// i *= Main.fans.Value;
+// }
+// }
+//
+// [HarmonyPatch(typeof(mainScript), "Earn")]
+// public static class AddMoneyPatch {
+// static void Prefix(ref long amount) {
+// // Console.WriteLine("GetWorkResult Postfix! f is " + f);
+// amount *= Main.money.Value;
+// }
+// }
+// }
diff --git a/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs b/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs
new file mode 100644
index 0000000..5d01041
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
diff --git a/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs b/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..0af6d86
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Debug/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
diff --git a/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.AssemblyReference.cache b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..30db482
Binary files /dev/null and b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.AssemblyReference.cache differ
diff --git a/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.CopyComplete b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.CoreCompileInputs.cache b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..61cfb55
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+609c169d30d10d3da64fccb9258a6c7730d0c5b3
diff --git a/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.FileListAbsolute.txt b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..d53cbab
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Debug/Regiments.csproj.FileListAbsolute.txt
@@ -0,0 +1,26 @@
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.AssemblyReference.cache
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Regiments.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Regiments.pdb
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\0Harmony.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Assembly-CSharp.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\BepInEx.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\MainAssembly.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\UnityEngine.CoreModule.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\UnityEngine.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.CopyComplete
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.dll
+C:\Users\Administrator\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Regiments.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Regiments.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\0Harmony.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\Assembly-CSharp.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\BepInEx.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\ConfigurationManager.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\UnityEngine.CoreModule.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Debug\UnityEngine.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.AssemblyReference.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.csproj.CopyComplete
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Debug\Regiments.pdb
diff --git a/Projects/Regiments/Regiments/obj/Release/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs b/Projects/Regiments/Regiments/obj/Release/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..0af6d86
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Release/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
diff --git a/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.AssemblyReference.cache b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..feb07ab
Binary files /dev/null and b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.AssemblyReference.cache differ
diff --git a/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.CopyComplete b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.CoreCompileInputs.cache b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..6c21eb7
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+62832bf141ce1cb53e10d7dfb818aaddf62d910680fd3ce46ffa60a38ed43870
diff --git a/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.FileListAbsolute.txt b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..ac86d51
--- /dev/null
+++ b/Projects/Regiments/Regiments/obj/Release/Regiments.csproj.FileListAbsolute.txt
@@ -0,0 +1,14 @@
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\Regiments.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\Regiments.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\0Harmony.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\Assembly-CSharp.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\BepInEx.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\ConfigurationManager.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\UnityEngine.CoreModule.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\UnityEngine.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Release\Regiments.csproj.AssemblyReference.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Release\Regiments.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Release\Regiments.csproj.CopyComplete
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Release\Regiments.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\obj\Release\Regiments.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\Regiments\Regiments\bin\Release\MainAssembly.dll
diff --git a/Projects/Regiments/deploy.sh b/Projects/Regiments/deploy.sh
new file mode 100644
index 0000000..c27608f
--- /dev/null
+++ b/Projects/Regiments/deploy.sh
@@ -0,0 +1 @@
+cp 'C:/Users/Administrator/RiderProjects/Bepinex/Projects/Regiments/Regiments/obj/Release/Regiments.dll' 'C:/Program Files (x86)/Steam/steamapps/common/Regiments/BepInEx/plugins'
\ No newline at end of file