Add movement speed patch

This commit is contained in:
2024-07-24 00:01:01 +02:00
parent c3120e0914
commit c204838602
2 changed files with 60 additions and 105 deletions

View File

@@ -1,96 +1,53 @@
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<float> SPMultiplier;
public static ConfigEntry<float> TPMultiplier;
public static ConfigEntry<float> SupplyAOEMultiplier;
public static ConfigEntry<float> HQAOEMultiplier;
public static ConfigEntry<float> SupplyAmountMultiplier;
public static ConfigEntry<float> FireRateMultiplier;
public static ConfigEntry<float> AimIntervalMultiplier;
public static ConfigEntry<float> SupplyRateMultiplier;
// public static ConfigEntry<float> magnetRadiusMultiplier;
// public static ConfigEntry<float> beamStrenghtMultiplier;
// public static ConfigEntry<float> beamRadiusMultiplier;
// public static ConfigEntry<float> fuelTankRefillMultiplier;
// public static ConfigEntry<float> fuelTankCapacityMultiplier;
// public static ConfigEntry<float> minerGroundArea;
// public static ConfigEntry<float> minerMiningSpeed;
// public static ConfigEntry<float> wheelTorqueMultiplier;
// public static ConfigEntry<float> wheelSpeedMultiplier;
// public static ConfigEntry<float> jetThrustMultiplier;
public void Awake() {
SPMultiplier = Config.Bind("General", "SP Multiplier", 1f,
new ConfigDescription("SP Multiplier", new AcceptableValueRange<float>(1f, 32f)));
TPMultiplier = Config.Bind("General", "TP Multiplier", 1f,
new ConfigDescription("TP Multiplier", new AcceptableValueRange<float>(1f, 32f)));
SupplyAOEMultiplier = Config.Bind("General", "Supply AOE Multiplier", 1f,
new ConfigDescription("Supply AOE Multiplier", new AcceptableValueRange<float>(1f, 32f)));
SupplyAmountMultiplier = Config.Bind("General", "Supply Point Amount Multiplier", 1f,
new ConfigDescription("Supply Point Amount Multiplier", new AcceptableValueRange<float>(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<float>(1f, 16f)));
HQAOEMultiplier = Config.Bind("General", "HQ AOE Multiplier", 1f,
new ConfigDescription("HQ AOE Multiplier", new AcceptableValueRange<float>(1f, 32f)));
FireRateMultiplier = Config.Bind("General", "Fire Rate Multiplier", 1f,
new ConfigDescription("Fire Rate Multiplier",
new AcceptableValueRange<float>(0.1f, 32f)));
AimIntervalMultiplier = Config.Bind("General", "Aiming Interval Multiplier", 1f,
new ConfigDescription("Aiming Interval Multiplier", new AcceptableValueRange<float>(0.1f, 32f)));
// beamStrenghtMultiplier = Config.Bind("Attractors", "Beam Strength Multiplier", 1f,
// new ConfigDescription("Beam Strength Multiplier", new AcceptableValueRange<float>(1f, 16f)));
// beamRadiusMultiplier = Config.Bind("Attractors", "Beam Radius Multiplier", 1f,
// new ConfigDescription("Beam Radius Multiplier", new AcceptableValueRange<float>(1f, 16f)));
//
// fuelTankRefillMultiplier = Config.Bind("Propulsion", "Fuel Tank Refill Rate Multiplier", 1f,
// new ConfigDescription("Fuel Tank Refill Rate Multiplier", new AcceptableValueRange<float>(1f, 32f)));
// fuelTankCapacityMultiplier = Config.Bind("Propulsion", "Fuel Tank Capacity Multiplier", 1f,
// new ConfigDescription("Fuel Tank Capacity Multiplier", new AcceptableValueRange<float>(1f, 32f)));
// wheelTorqueMultiplier = Config.Bind("Propulsion", "Wheel Torque Multiplier", 1f,
// new ConfigDescription("Wheel Torque Multiplier", new AcceptableValueRange<float>(1f, 32f)));
// wheelSpeedMultiplier = Config.Bind("Propulsion", "Wheel Max RPM Multiplier", 1f,
// new ConfigDescription("Wheel Max RPM Multiplier", new AcceptableValueRange<float>(1f, 32f)));
// jetThrustMultiplier = Config.Bind("Propulsion", "Jet Thrust Multiplier", 1f,
// new ConfigDescription("Jet Thrust Multiplier", new AcceptableValueRange<float>(1f, 32f)));
//
// minerGroundArea = Config.Bind("Production", "Miner Ground Deposit Scan Area", 1f,
// new ConfigDescription("Miner Ground Deposit Scan Area", new AcceptableValueRange<float>(1f, 32f)));
// minerMiningSpeed = Config.Bind("Production", "Miner Mining Speed", 1f,
// new ConfigDescription("Miner Mining Speed", new AcceptableValueRange<float>(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");
}
}
}
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<float> SPMultiplier;
public static ConfigEntry<float> TPMultiplier;
public static ConfigEntry<float> SupplyAOEMultiplier;
public static ConfigEntry<float> HQAOEMultiplier;
public static ConfigEntry<float> SupplyAmountMultiplier;
public static ConfigEntry<float> FireRateMultiplier;
public static ConfigEntry<float> AimIntervalMultiplier;
public static ConfigEntry<float> SupplyRateMultiplier;
public static ConfigEntry<float> MovementSpeedMultiplier;
public void Awake() {
SPMultiplier = Config.Bind("General", "SP Multiplier", 1f,
new ConfigDescription("SP Multiplier", new AcceptableValueRange<float>(1f, 32f)));
TPMultiplier = Config.Bind("General", "TP Multiplier", 1f,
new ConfigDescription("TP Multiplier", new AcceptableValueRange<float>(1f, 32f)));
SupplyAOEMultiplier = Config.Bind("General", "Supply AOE Multiplier", 1f,
new ConfigDescription("Supply AOE Multiplier", new AcceptableValueRange<float>(1f, 32f)));
SupplyAmountMultiplier = Config.Bind("General", "Supply Point Amount Multiplier", 1f,
new ConfigDescription("Supply Point Amount Multiplier", new AcceptableValueRange<float>(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<float>(1f, 16f)));
HQAOEMultiplier = Config.Bind("General", "HQ AOE Multiplier", 1f,
new ConfigDescription("HQ AOE Multiplier", new AcceptableValueRange<float>(1f, 32f)));
FireRateMultiplier = Config.Bind("General", "Fire Rate Multiplier", 1f,
new ConfigDescription("Fire Rate Multiplier",
new AcceptableValueRange<float>(0.1f, 32f)));
AimIntervalMultiplier = Config.Bind("General", "Aiming Interval Multiplier", 1f,
new ConfigDescription("Aiming Interval Multiplier", new AcceptableValueRange<float>(0.1f, 32f)));
MovementSpeedMultiplier = Config.Bind("General", "Movement Speed Multiplier", 1f,
new ConfigDescription("Movement Speed Multiplier", new AcceptableValueRange<float>(0.1f, 32f)));
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");
}
}
}

View File

@@ -1,22 +1,14 @@
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.Rigging;
using birdseye.Regiments.Units.WeaponSystems;
using birdseye.Regiments.Zones;
using HarmonyLib;
using UnityEngine;
// Patch maxSupPoints in PlatoonSupplyModule
// Patch Operational Authority point gain
namespace Regiments {
[HarmonyPatch]
public class Patches {
@@ -120,6 +112,12 @@ namespace Regiments {
Console.WriteLine("Patching refit step to: {0} {1}", hpVal, ammoVal);
}
[HarmonyPostfix]
[HarmonyPatch(typeof(UnitMovementRig), nameof(UnitMovementRig.maxSpeed), MethodType.Getter)]
static void MovementSpeedMultiplier(ref float __result) {
__result *= Main.MovementSpeedMultiplier.Value;
}
// [HarmonyPatch(typeof(AdvancedRulesData), "Validate")]
// static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions) {
// var codes = new List<CodeInstruction>(instructions);