121 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Linq;
 | |
| using BepInEx;
 | |
| using BepInEx.Configuration;
 | |
| using HarmonyLib;
 | |
| using HarmonyLib.Tools;
 | |
| 
 | |
| // TODO: Make shield and repair bigger
 | |
| // TODO: Maybe make props faster, thrusters work fine
 | |
| 
 | |
| namespace TerraTech {
 | |
|     [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> xpMultiplier;
 | |
|         public static ConfigEntry<float> moneyMultiplier;
 | |
|         public static ConfigEntry<float> energyGenMultiplier;
 | |
|         public static ConfigEntry<float> heartbeatIntervalMultiplier;
 | |
|         public static ConfigEntry<float> shootingSpeedMultiplier;
 | |
|         public static ConfigEntry<float> muzzleVelocityMultiplier;
 | |
|         public static ConfigEntry<bool> allProjectilesHoming;
 | |
|         public static ConfigEntry<float> magnetStrenghtMultiplier;
 | |
|         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 static ConfigEntry<float> seekingProjectileVisionConeAngleMultiplier;
 | |
|         public static ConfigEntry<float> seekingProjectileVisionRangeMultiplier;
 | |
|         public static ConfigEntry<float> seekingProjectileTurningSpeedMultiplier;
 | |
|         public static ConfigEntry<float> wirelessChargingRadiusMultiplier;
 | |
|         public static ConfigEntry<float> wirelessChargingPowerPerArcMultiplier;
 | |
|         public static ConfigEntry<float> wirelessChargingArcFiringIntervalMultiplier;
 | |
| 
 | |
|         public void Awake() {
 | |
|             xpMultiplier = Config.Bind("General", "XP Multiplier", 1f, new ConfigDescription("XP Multiplier", new AcceptableValueRange<float>(1f, 32f)));
 | |
|             moneyMultiplier = Config.Bind("General", "Money Multiplier", 1f,
 | |
|                 new ConfigDescription("Money Multiplier", new AcceptableValueRange<float>(1f, 32f)));
 | |
|             energyGenMultiplier = Config.Bind("General", "Energy Generation Multiplier", 1f,
 | |
|                 new ConfigDescription("Energy Generation Multiplier", new AcceptableValueRange<float>(1f, 64f)));
 | |
|             heartbeatIntervalMultiplier = Config.Bind("General", "Heartbeat Interval Multiplier", 1f,
 | |
|                 new ConfigDescription("Heartbeat Interval Multiplier", new AcceptableValueRange<float>(0.1f, 2f)));
 | |
| 
 | |
|             shootingSpeedMultiplier = Config.Bind("Weapons", "Shooting Speed Multiplier", 1f,
 | |
|                 new ConfigDescription("Shooting Speed Multiplier", new AcceptableValueRange<float>(0.2f, 8f)));
 | |
|             muzzleVelocityMultiplier = Config.Bind("Weapons", "Muzzle Velocity Multiplier", 1f,
 | |
|                 new ConfigDescription("Muzzle Velocity Multiplier", new AcceptableValueRange<float>(0.2f, 32f)));
 | |
|             seekingProjectileVisionConeAngleMultiplier = Config.Bind("Weapons", "Seeking Projectile Cone Vision Angle Multiplier", 1f,
 | |
|                 new ConfigDescription("Seeking Projectile Cone Vision Angle Multiplier", new AcceptableValueRange<float>(0.2f, 32f)));
 | |
|             seekingProjectileVisionRangeMultiplier = Config.Bind("Weapons", "Seeking Projectile Vision Range Multiplier", 1f,
 | |
|                 new ConfigDescription("Seeking Projectile Vision Range Multiplier", new AcceptableValueRange<float>(0.2f, 32f)));
 | |
|             seekingProjectileTurningSpeedMultiplier = Config.Bind("Weapons", "Seeking Projectile Turn Speed Multiplier", 1f,
 | |
|                 new ConfigDescription("Seeking Projectile Turn Speed Multiplier", new AcceptableValueRange<float>(0.2f, 32f)));
 | |
| 
 | |
|             magnetStrenghtMultiplier = Config.Bind("Attractors", "Magnet Strength Multiplier", 1f,
 | |
|                 new ConfigDescription("Magnet Strength Multiplier", new AcceptableValueRange<float>(1f, 16f)));
 | |
|             magnetRadiusMultiplier = Config.Bind("Attractors", "Magnet Radius Multiplier", 1f,
 | |
|                 new ConfigDescription("Magnet Radius Multiplier", new AcceptableValueRange<float>(1f, 16f)));
 | |
|             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)));
 | |
|                 
 | |
|             wirelessChargingRadiusMultiplier = Config.Bind("Power", "Wireless Charger Radius Multiplier", 1f,
 | |
|                 new ConfigDescription("Wireless Charger Radius Multiplier", new AcceptableValueRange<float>(0.2f, 16f)));
 | |
|             wirelessChargingArcFiringIntervalMultiplier = Config.Bind("Power", "Wireless Charger Arc Firing Interval", 1f,
 | |
|                 new ConfigDescription("Wireless Charger Arc Firing Interval", new AcceptableValueRange<float>(0.02f, 16f)));
 | |
|             wirelessChargingPowerPerArcMultiplier = Config.Bind("Power", "Wireless Charger Power Per Arc", 1f,
 | |
|                 new ConfigDescription("Wireless Charger Power Per Arc", new AcceptableValueRange<float>(0.2f, 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();
 | |
|             wirelessChargingPowerPerArcMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.DoPatch();
 | |
|             wirelessChargingArcFiringIntervalMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.DoPatch();
 | |
|             wirelessChargingRadiusMultiplier.SettingChanged += (sender, args) => WirelessChargerPropertiesManager.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");
 | |
|         }
 | |
|     }
 | |
| } |