diff --git a/BetterStuff.csproj b/BetterStuff.csproj index 0c5d851..2d03814 100644 --- a/BetterStuff.csproj +++ b/BetterStuff.csproj @@ -4,7 +4,7 @@ net6.0 BetterStuff Better Stuff - 1.0.0 + 1.1.0 true latest diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..6cc7188 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.1.0] - 2026-01-25 + +### Added +- Increased the walk speed of janitors, security guards and customer helpers +- Increased the scanning speed of customer helpers, customers and player on self checkouts +- Config contains the default gamevalues of each option + +## [1.0.0] - 2026-01-09 + +### Added +- Initial release +- Increased the scanning speed of cashiers +- Increased the time until the paymentprocess is finished +- Increased the time between scanningprocess an paymentprocess +- Increased the walk speed of Restockers \ No newline at end of file diff --git a/Plugin.cs b/Plugin.cs index a6fadad..e868058 100644 --- a/Plugin.cs +++ b/Plugin.cs @@ -1,25 +1,30 @@ -using System; -using BepInEx; +using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using BepInEx.Unity.IL2CPP; using HarmonyLib; -using UnityEngine; -using UnityEngine.Playables; namespace BetterStuff; -[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)] +[BepInPlugin(PLUGIN_GUID, PLUGIN_NAME, PLUGIN_VERSION)] public class Plugin : BasePlugin { + public const string PLUGIN_GUID = "de.mpburgmann.BetterStuff"; + public const string PLUGIN_NAME = "Better Stuff"; + public const string PLUGIN_VERSION = "1.1.0"; internal static new ManualLogSource Log; - private static ConfigEntry scanTimeMin; - private static ConfigEntry scanTimeMax; + private static ConfigEntry scanTime; private static ConfigEntry finishDuration; private static ConfigEntry timeAfterScans; - private static ConfigEntry restockerSpeed; + private static ConfigEntry selfcheckoutCustomerSpeed; + private static ConfigEntry selfcheckoutPlayerSpeed; + private static ConfigEntry customerHelperScanningSpeed; + private static ConfigEntry customerHelperSpeed; + private static ConfigEntry securityGuardSpeed; + private static ConfigEntry janitorSpeed; + public override void Load() { @@ -27,54 +32,113 @@ public class Plugin : BasePlugin Log = base.Log; Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!"); - Plugin.scanTimeMin = Config.Bind("Cashier Scantime", "min", 0.2f); - Plugin.scanTimeMax = Config.Bind("Cashier Scantime", "max", 0.8f); - Plugin.finishDuration = Config.Bind("Cashier PaymentTime", "FinishingDuration", 1f); - Plugin.timeAfterScans = Config.Bind("Cashier PaymentTime", "TimeAfterAllScans", 0.5f); + scanTime = Config.Bind("Cashier", "Scanning Speed", 0.7f, "Default vanilla value is 1.5."); + finishDuration = Config.Bind("Cashier", "FinishingDuration", 1f, "Default vanilla value is 2."); + timeAfterScans = Config.Bind("Cashier", "TimeAfterAllScans", 0.5f, "Default vanilla value is 1."); - Plugin.restockerSpeed = Config.Bind("Restocker", "Speed", 5f); + restockerSpeed = Config.Bind("Restocker", "Speed", 5f, "Default value is 2."); - Harmony harmony = new(MyPluginInfo.PLUGIN_GUID); + selfcheckoutCustomerSpeed = Config.Bind("Selfcheckout", "Customer Speed", 0.6f, "Default vanilla value is 1.8."); + selfcheckoutPlayerSpeed = Config.Bind("Selfcheckout", "Player Speed", 0.3f, "Default vanilla value is 0.6."); + + customerHelperScanningSpeed = Config.Bind("Customer Helper", "Scanning Speed", 0.5f, "Default vanilla value is 1.5."); + customerHelperSpeed = Config.Bind("Customer Helper", "Speed", 5f, "Default value is 2."); + + securityGuardSpeed = Config.Bind("Security Guard", "Speed", 5f, "Default value is 2."); + + janitorSpeed = Config.Bind("Janitor", "Speed", 5f, "Default value is 2."); + + + Harmony harmony = new(PLUGIN_GUID); harmony.PatchAll(); } - public static class CashierPatch + [HarmonyPatch(typeof(Cashier), "Start")] + public static class Cashier_Start_Patch { - [HarmonyPatch(typeof(Cashier), "Start")] - public static class Cashier_Start_Patch + [HarmonyPostfix] + public static void Postfix(Cashier __instance) { - [HarmonyPostfix] - public static void Postfix(Cashier __instance) - { - __instance.ScanningInterval = UnityEngine.Random.Range(Plugin.scanTimeMin.Value, Plugin.scanTimeMax.Value); - } - } + __instance.ScanningInterval = scanTime.Value; + } + } - [HarmonyPatch(typeof(Checkout), "FinishedScanning")] - public static class Cashier_Checkout_Patch + [HarmonyPatch(typeof(Checkout), "FinishedScanning")] + public static class Cashier_Checkout_Patch + { + [HarmonyPostfix] + public static void Postfix(Checkout __instance) { - [HarmonyPostfix] - public static void Postfix(Checkout __instance) + if(!__instance.m_IsSelfCheckout) { - __instance.m_AutomatedCheckout.m_FinishingPaymentDuration = Plugin.finishDuration.Value; - __instance.m_AutomatedCheckout.m_IntervalAfterScanningAll = Plugin.timeAfterScans.Value; + __instance.m_AutomatedCheckout.m_FinishingPaymentDuration = finishDuration.Value; + __instance.m_AutomatedCheckout.m_IntervalAfterScanningAll = timeAfterScans.Value; } } } - public static class RestockerPatch + [HarmonyPatch(typeof(Restocker), "Start")] + public static class Restocker_Start_Patch { - [HarmonyPatch(typeof(Restocker), "Start")] - public static class Restocker_Start_Patch + [HarmonyPostfix] + public static void Postfix(Restocker __instance) { - [HarmonyPostfix] - public static void Postfix(Restocker __instance) + __instance.m_Agent.speed = restockerSpeed.Value; + __instance.m_Agent.acceleration *= 200f; + __instance.m_Agent.angularSpeed *= 200f; + } + } + + [HarmonyPatch(typeof(Checkout), "Start")] + public static class Selfcheckout_Start_Patch + { + [HarmonyPostfix] + public static void Postfix(Checkout __instance) + { + if (__instance.m_IsSelfCheckout) { - __instance.m_Agent.speed = Plugin.restockerSpeed.Value; - __instance.m_Agent.acceleration *= 200f; - __instance.m_Agent.angularSpeed *= 200f; + __instance.m_SelfCheckout.m_CustomerScanningInterval = selfcheckoutCustomerSpeed.Value; + __instance.m_SelfCheckout.m_PlayerScanningInterval = selfcheckoutPlayerSpeed.Value; } } } -} + [HarmonyPatch(typeof(CustomerHelper), "Start")] + public static class CustomerHelper_Start_Patch + { + [HarmonyPostfix] + public static void Postfix(CustomerHelper __instance) + { + __instance.ScanningInterval = customerHelperScanningSpeed.Value; + __instance.m_CustomerHelperScanIntervals = new Il2CppSystem.Collections.Generic.List(1); + __instance.m_CustomerHelperScanIntervals.Add(customerHelperScanningSpeed.Value); + __instance.m_Agent.speed = customerHelperSpeed.Value; + __instance.m_Agent.acceleration *= 200f; + __instance.m_Agent.angularSpeed *= 200f; + } + } + + [HarmonyPatch(typeof(SecurityGuard), "Start")] + public static class SecurityGuard_Start_Patch + { + [HarmonyPostfix] + public static void Postfix(SecurityGuard __instance) + { + __instance.m_AnimController.m_Agent.speed = securityGuardSpeed.Value; + __instance.m_AnimController.m_Agent.acceleration *= 200f; + __instance.m_AnimController.m_Agent.angularSpeed *= 200f; + } + } + + [HarmonyPatch(typeof(Janitor), "Start")] + public static class Janitor_Start_Patch + { + [HarmonyPostfix] + public static void Postfix(Janitor __instance) + { + __instance.m_Agent.speed = janitorSpeed.Value; + __instance.m_Agent.acceleration *= 200f; + __instance.m_Agent.angularSpeed *= 200f; + } + } +} \ No newline at end of file