diff --git a/Projects/AgainstTheStorm/AgainstTheStorm.sln b/Projects/AgainstTheStorm/AgainstTheStorm.sln
new file mode 100644
index 0000000..91fb4d8
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm.sln
@@ -0,0 +1,16 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgainstTheStorm", "AgainstTheStorm\AgainstTheStorm.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/AgainstTheStorm/AgainstTheStorm.sln.DotSettings.user b/Projects/AgainstTheStorm/AgainstTheStorm.sln.DotSettings.user
new file mode 100644
index 0000000..caf3465
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm.sln.DotSettings.user
@@ -0,0 +1,21 @@
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/AgainstTheStorm.csproj b/Projects/AgainstTheStorm/AgainstTheStorm/AgainstTheStorm.csproj
new file mode 100644
index 0000000..9dee184
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/AgainstTheStorm.csproj
@@ -0,0 +1,82 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {DA9D274E-486F-4F82-84FF-CD9388CB0B09}
+ Library
+ Properties
+ AgainstTheStorm
+ AgainstTheStorm
+ 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\Sirenix.Serialization.dll
+
+
+
+
+
+
+ libs\UnityEngine.dll
+
+
+ libs\UnityEngine.CoreModule.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/Class1.cs b/Projects/AgainstTheStorm/AgainstTheStorm/Class1.cs
new file mode 100644
index 0000000..dff0789
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/Class1.cs
@@ -0,0 +1,91 @@
+using System.Linq;
+using BepInEx;
+using BepInEx.Configuration;
+using HarmonyLib;
+using HarmonyLib.Tools;
+
+namespace AgainstTheStorm {
+ [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 ProductionMultiplier;
+ public static ConfigEntry DepositChargesMultiplier;
+ public static ConfigEntry VillagerSpeedMultiplier;
+ public static ConfigEntry ProductionSpeedMultiplier;
+ public static ConfigEntry NewcomverRateMultiplier;
+ public static ConfigEntry VillagerCapacityMultiplier;
+ public static ConfigEntry TraderRateMultiplier;
+ public static ConfigEntry TraderMerchMultiplier;
+ public static ConfigEntry HearthRangeMultiplier;
+ public static ConfigEntry HouseCapacityMultiplier;
+ public static ConfigEntry NewcomerBonusMultiplier;
+ public static ConfigEntry GameSpeedMultiplier;
+ public static ConfigEntry AdditionalNewcomerBonus;
+ public static ConfigEntry MetaCurrencyMultiplier;
+ public static ConfigEntry TradeRouteSpeedMultiplier;
+ // public static ConfigEntry wheelTorqueMultiplier;
+ // public static ConfigEntry wheelSpeedMultiplier;
+ // public static ConfigEntry jetThrustMultiplier;
+
+ public void Awake() {
+ ProductionMultiplier = Config.Bind("General", "ProductionMultiplier", 1,
+ new ConfigDescription("ProductionMultiplier", new AcceptableValueRange(1, 512)));
+ DepositChargesMultiplier = Config.Bind("General", "DepositChargesMultiplier", 1,
+ new ConfigDescription("DepositChargesMultiplier", new AcceptableValueRange(1, 512)));
+ VillagerSpeedMultiplier = Config.Bind("General", "VillagerSpeedMultiplier", 1f,
+ new ConfigDescription("VillagerSpeedMultiplier", new AcceptableValueRange(1f, 128f)));
+ ProductionSpeedMultiplier = Config.Bind("General", "ProductionSpeedMultiplier", 1f,
+ new ConfigDescription("ProductionSpeedMultiplier", new AcceptableValueRange(1f, 256f)));
+ NewcomverRateMultiplier = Config.Bind("General", "NewcomverRateMultiplier", 1f,
+ new ConfigDescription("NewcomverRateMultiplier", new AcceptableValueRange(1f, 128f)));
+ VillagerCapacityMultiplier = Config.Bind("General", "VillagerCapacityMultiplier", 1,
+ new ConfigDescription("VillagerCapacityMultiplier", new AcceptableValueRange(1, 32)));
+ TraderRateMultiplier = Config.Bind("General", "TraderRateMultiplier", 1f,
+ new ConfigDescription("TraderRateMultiplier", new AcceptableValueRange(1f, 128f)));
+ TraderMerchMultiplier = Config.Bind("General", "TraderMerchMultiplier", 1,
+ new ConfigDescription("TraderMerchMultiplier", new AcceptableValueRange(1, 128)));
+ HearthRangeMultiplier = Config.Bind("General", "HearthRangeMultiplier", 1f,
+ new ConfigDescription("HearthRangeMultiplier", new AcceptableValueRange(1f, 128f)));
+ HouseCapacityMultiplier = Config.Bind("General", "HouseCapacityMultiplier", 1f,
+ new ConfigDescription("HouseCapacityMultiplier", new AcceptableValueRange(1f, 32f)));
+ NewcomerBonusMultiplier = Config.Bind("General", "NewcomerBonusMultiplier", 1f,
+ new ConfigDescription("NewcomerBonusMultiplier", new AcceptableValueRange(1f, 32f)));
+ GameSpeedMultiplier = Config.Bind("General", "GameSpeedMultiplier", 1,
+ new ConfigDescription("GameSpeedMultiplier", new AcceptableValueRange(1, 32)));
+ AdditionalNewcomerBonus = Config.Bind("General", "AdditionalNewcomerBonus", 0,
+ new ConfigDescription("AdditionalNewcomerBonus", new AcceptableValueRange(0, 512)));
+ MetaCurrencyMultiplier = Config.Bind("General", "MetaCurrencyMultiplier", 1f,
+ new ConfigDescription("MetaCurrencyMultiplier", new AcceptableValueRange(1f, 512f)));
+ TradeRouteSpeedMultiplier = Config.Bind("General", "TradeRouteSpeedMultiplier", 1f,
+ new ConfigDescription("TradeRouteSpeedMultiplier", new AcceptableValueRange(1f, 512f)));
+ // 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/AgainstTheStorm/AgainstTheStorm/Patches.cs b/Projects/AgainstTheStorm/AgainstTheStorm/Patches.cs
new file mode 100644
index 0000000..f9fac42
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/Patches.cs
@@ -0,0 +1,458 @@
+using System;
+using System.Collections.Generic;
+using Eremite.Buildings;
+using Eremite.Model;
+using Eremite.Model.Meta;
+using Eremite.Services;
+using HarmonyLib;
+
+// Patch maxSupPoints in PlatoonSupplyModule
+// Patch Operational Authority point gain
+
+namespace AgainstTheStorm {
+ [HarmonyPatch]
+ public class Patches {
+ static Dictionary baseValues = new Dictionary();
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(BonusEmbarkRangeMetaRewardModel), "OnConsume")]
+ static void Test(BonusEmbarkRangeMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(BonusFarmAreaMetaRewardModel), "OnConsume")]
+ static void Test(BonusFarmAreaMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(ConstructionSpeedMetaRewardModel), "OnConsume")]
+ static void Test(ConstructionSpeedMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(CornerstonesRerollsMetaRewardModel), "OnConsume")]
+ static void Test(CornerstonesRerollsMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(CurrencyMultiplayerMetaRewardModel), "OnConsume")]
+ static void Test(CurrencyMultiplayerMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(EmbarkGoodsAmountMetaRewardModel), "OnConsume")]
+ static void Test(EmbarkGoodsAmountMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(FarmingRateMetaRewardModel), "OnConsume")]
+ static void Test(FarmingRateMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(FuelRateMetaRewardModel), "OnConsume")]
+ static void Test(FuelRateMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GlobalBuildingStorageMetaRewardModel), "OnConsume")]
+ static void Test(GlobalBuildingStorageMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GlobalCapacityMetaRewardModel), "OnConsume")]
+ static void Test(GlobalCapacityMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GlobalExtraProductionChanceMetaRewardModel), "OnConsume")]
+ static void Test(GlobalExtraProductionChanceMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GlobalProductionSpeedMetaRewardModel), "OnConsume")]
+ static void Test(GlobalProductionSpeedMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GracePeriodMetaRewardModel), "OnConsume")]
+ static void Test(GracePeriodMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(GrassAmountMetaRewardModel), "OnConsume")]
+ static void Test(GrassAmountMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(HearthSacraficeTimeRateMetaRewardModel), "OnConsume")]
+ static void Test(HearthSacraficeTimeRateMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(NewcommersGoodsRateMetaRewardModel), "OnConsume")]
+ static void Test(NewcommersGoodsRateMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(PreparationPointsMetaRewardModel), "OnConsume")]
+ static void Test(PreparationPointsMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(RawDepositsChargesMetaRewardModel), "OnConsume")]
+ static void Test(RawDepositsChargesMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(RelicsWorkingSpeedMetaRewardModel), "OnConsume")]
+ static void Test(RelicsWorkingSpeedMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(ReputationPenaltyRateMetaRewardModel), "OnConsume")]
+ static void Test(ReputationPenaltyRateMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(ReputationRewardPicksMetaRewardModel), "OnConsume")]
+ static void Test(ReputationRewardPicksMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(SeasonRewardsAmountMetaRewardModel), "OnConsume")]
+ static void Test(SeasonRewardsAmountMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TownsVisionRangeMetaRewardModel), "OnConsume")]
+ static void Test(TownsVisionRangeMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TraderIntervalMetaRewardModel), "OnConsume")]
+ static void Test(TraderIntervalMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TraderMerchAmountMetaRewardModel), "OnConsume")]
+ static void Test(TraderMerchAmountMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TraderMerchandisePriceReductionMetaRewardModel), "OnConsume")]
+ static void Test(TraderMerchandisePriceReductionMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TradeRoutesLimitMetaReward), "OnConsume")]
+ static void Test(TradeRoutesLimitMetaReward __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TraderSellPriceMetaRewardModel), "OnConsume")]
+ static void Test(TraderSellPriceMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(VillagersSpeedMetaRewardModel), "OnConsume")]
+ static void Test(VillagersSpeedMetaRewardModel __instance) {
+ DoPatch(__instance);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(ProductionCalculator), nameof(ProductionCalculator.GetProductionMultiplier))]
+ static void PatchProductionCalculator(ref int __result) {
+ // Console.WriteLine("ProdMulti {0}", __result);
+ __result *= Main.ProductionMultiplier.Value;
+ }
+
+ // There seems to be a lot of good shit in effetsService!!
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetRawDepositsChargesBonus))]
+ static void PatchEffectsService(ref int __result) {
+ __result *= Main.DepositChargesMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetActorSpeed))]
+ static void PatchEffectsService2(ref float __result) {
+ __result *= Main.VillagerSpeedMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetBuildingProductionRate))]
+ static void PatchEffectsService3(ref float __result) {
+ __result *= Main.ProductionSpeedMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetNewcomersIntervalRate))]
+ static void PatchEffectsService4(ref float __result) {
+ __result *= Main.NewcomverRateMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetVillagerCapacity))]
+ static void PatchEffectsService5(ref int __result) {
+ __result *= Main.VillagerCapacityMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetTraderIntervalRate))]
+ static void PatchEffectsService6(ref float __result) {
+ __result *= Main.TraderRateMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetTraderMerchsAmount))]
+ static void PatchEffectsService7(ref int __result) {
+ __result *= Main.TraderMerchMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetHearthRange))]
+ static void PatchEffectsService8(ref float __result) {
+ __result *= Main.HearthRangeMultiplier.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetHouseCapacity), typeof(HouseModel))]
+ static void PatchEffectsService9(ref int __result) {
+ __result = (int)(Main.HouseCapacityMultiplier.Value * __result);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetHouseCapacity), typeof(House))]
+ static void PatchEffectsService9_2(ref int __result) {
+ __result = (int)(Main.HouseCapacityMultiplier.Value * __result);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetNewcomersBonus))]
+ static void PatchEffectsService10(ref int __result) {
+ __result = (int)(Main.NewcomerBonusMultiplier.Value * __result);
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetNewcomersRaceBonus))]
+ static void PatchEffectsService11(ref int __result) {
+ __result += Main.AdditionalNewcomerBonus.Value;
+ }
+
+ [HarmonyPostfix]
+ [HarmonyPatch(typeof(EffectsService), nameof(EffectsService.GetTradeRoutesSpeed))]
+ static void PatchEffectsService12(ref float __result) {
+ __result += Main.TradeRouteSpeedMultiplier.Value;
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(TimeScaleService), "SetScale")]
+ static void PatchGameSpeeds(ref float scale) {
+ scale *= Main.GameSpeedMultiplier.Value;
+ }
+
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(MetaEconomyService), nameof(MetaEconomyService.Add))]
+ static void PatchMetaCurrencyGain(ref MetaCurrency currency) {
+ currency.amount = (int)(currency.amount * Main.MetaCurrencyMultiplier.Value);
+ }
+
+ static void DoPatch(BasePercentageMetaReward model) {
+ string upgName = model.displayName.ToString();
+ if (!baseValues.ContainsKey(upgName)) {
+ Console.WriteLine("Base value does not exist yet for {0} (class: {1}), adding", upgName,
+ model.GetType().Name);
+ baseValues.Add(upgName, model.amount);
+ }
+
+ if (Math.Abs(baseValues[upgName] - model.amount) < 0.01f) {
+ float newValue = baseValues[upgName] * 64;
+ Console.WriteLine("Base value is different for {0}, updating from {1} to {2}", upgName,
+ baseValues[upgName],
+ newValue);
+ baseValues[upgName] = newValue;
+ }
+ else {
+ Console.WriteLine("Base value is the same for {0}, skipping {1}", upgName, baseValues[upgName]);
+ }
+ }
+
+ static void DoPatch(BaseFlatMetaReward model) {
+ string upgName = model.displayName.ToString();
+ if (!baseValues.ContainsKey(upgName)) {
+ Console.WriteLine("Base value does not exist yet for {0} (class: {1}), adding", upgName,
+ model.GetType().Name);
+ baseValues.Add(upgName, model.amount);
+ }
+
+ if (Math.Abs(baseValues[upgName] - model.amount) < 0.01f) {
+ float newValue = baseValues[upgName] * 64;
+ Console.WriteLine("Base value is different for {0}, updating from {1} to {2}", upgName,
+ baseValues[upgName],
+ newValue);
+ baseValues[upgName] = newValue;
+ }
+ else {
+ Console.WriteLine("Base value is the same for {0}, skipping {1}", upgName, baseValues[upgName]);
+ }
+ }
+
+ // [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/AgainstTheStorm/AgainstTheStorm/Properties/AssemblyInfo.cs b/Projects/AgainstTheStorm/AgainstTheStorm/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..659f97b
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/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/AgainstTheStorm/AgainstTheStorm/Transpiler.cs b/Projects/AgainstTheStorm/AgainstTheStorm/Transpiler.cs
new file mode 100644
index 0000000..2bc9b04
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/Transpiler.cs
@@ -0,0 +1,274 @@
+// 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/AgainstTheStorm/AgainstTheStorm/deploy.sh b/Projects/AgainstTheStorm/AgainstTheStorm/deploy.sh
index e69de29..f49ff3c 100644
--- a/Projects/AgainstTheStorm/AgainstTheStorm/deploy.sh
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/deploy.sh
@@ -0,0 +1,2 @@
+echo $(pwd)
+cp AgainstTheStorm/obj/Release/AgainstTheStorm.dll /c/Games/Against.the.Storm.v1.0.2r/BepInEx/Plugins
\ No newline at end of file
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/libs/copyLibs.sh b/Projects/AgainstTheStorm/AgainstTheStorm/libs/copyLibs.sh
new file mode 100644
index 0000000..e828291
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/libs/copyLibs.sh
@@ -0,0 +1 @@
+for lib in $(cat libs.txt); do find 'C:\Games\Against.the.Storm.v1.0.2r' -name "$lib" | sed 's|\\|/|g' | xargs -I% -- cp '%' .; done
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/libs/libs.txt b/Projects/AgainstTheStorm/AgainstTheStorm/libs/libs.txt
new file mode 100644
index 0000000..02f19f0
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/libs/libs.txt
@@ -0,0 +1,6 @@
+0Harmony.dll
+Assembly-CSharp.dll
+BepInEx.dll
+ConfigurationManager.dll
+UnityEngine.CoreModule.dll
+UnityEngine.dll
\ No newline at end of file
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..0af6d86
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/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/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.AssemblyReference.cache b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..d9736af
Binary files /dev/null and b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.AssemblyReference.cache differ
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.CopyComplete b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.CoreCompileInputs.cache b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..7286ee8
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+151279b84fdcbaafd9f0fcb1f7663654a57733b1df3836fc5634a1051692a2db
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.FileListAbsolute.txt b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..ad193b7
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Debug/AgainstTheStorm.csproj.FileListAbsolute.txt
@@ -0,0 +1,14 @@
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\AgainstTheStorm.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\AgainstTheStorm.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\0Harmony.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\Assembly-CSharp.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\BepInEx.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\ConfigurationManager.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\Sirenix.Serialization.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\UnityEngine.CoreModule.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Debug\UnityEngine.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Debug\AgainstTheStorm.csproj.AssemblyReference.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Debug\AgainstTheStorm.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Debug\AgainstTheStorm.csproj.CopyComplete
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Debug\AgainstTheStorm.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Debug\AgainstTheStorm.pdb
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/.NETFramework,Version=v4.8.1.AssemblyAttributes.cs
new file mode 100644
index 0000000..0af6d86
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/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/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.AssemblyReference.cache b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..209083b
Binary files /dev/null and b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.AssemblyReference.cache differ
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.CopyComplete b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.CoreCompileInputs.cache b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..a970dfe
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+ef6aa2e7dd51f8c26904ab7a46caec336a18dcec6a799e1d69986db92f6c2b64
diff --git a/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.FileListAbsolute.txt b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..c8dd06d
--- /dev/null
+++ b/Projects/AgainstTheStorm/AgainstTheStorm/obj/Release/AgainstTheStorm.csproj.FileListAbsolute.txt
@@ -0,0 +1,14 @@
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\AgainstTheStorm.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\AgainstTheStorm.pdb
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\0Harmony.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\Assembly-CSharp.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\BepInEx.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\ConfigurationManager.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\Sirenix.Serialization.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\UnityEngine.CoreModule.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\bin\Release\UnityEngine.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Release\AgainstTheStorm.csproj.AssemblyReference.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Release\AgainstTheStorm.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Release\AgainstTheStorm.csproj.CopyComplete
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Release\AgainstTheStorm.dll
+C:\Users\Administrator\Seafile\Jetbrains\RiderProjects\Bepinex\Projects\AgainstTheStorm\AgainstTheStorm\obj\Release\AgainstTheStorm.pdb
diff --git a/Projects/AgainstTheStorm/Regiments.sln.DotSettings.user b/Projects/AgainstTheStorm/Regiments.sln.DotSettings.user
new file mode 100644
index 0000000..caf3465
--- /dev/null
+++ b/Projects/AgainstTheStorm/Regiments.sln.DotSettings.user
@@ -0,0 +1,21 @@
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/Projects/AgainstTheStorm/deploy.sh b/Projects/AgainstTheStorm/deploy.sh
new file mode 100644
index 0000000..c27608f
--- /dev/null
+++ b/Projects/AgainstTheStorm/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
diff --git a/Projects/AgainstTheStorm/test123 b/Projects/AgainstTheStorm/test123
new file mode 100644
index 0000000..e69de29