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