diff --git a/src/Aki/RequestHandler.cs b/src/Aki/RequestHandler.cs index cc84ba3..f2191a8 100644 --- a/src/Aki/RequestHandler.cs +++ b/src/Aki/RequestHandler.cs @@ -1,8 +1,8 @@ -using System; +using Aki.Common; +using astealz.SmartSpawnController.Utils; +using System; using System.Collections.Generic; using System.Text; -using Aki.Common; -using astealz.SmartSpawnController.Utils; namespace Aki.SinglePlayer.Utils { diff --git a/src/Aki/ZLib.cs b/src/Aki/ZLib.cs index a8b76fd..af1ddeb 100644 --- a/src/Aki/ZLib.cs +++ b/src/Aki/ZLib.cs @@ -1,127 +1,127 @@ -using System; +using ComponentAce.Compression.Libs.zlib; +using System; using System.IO; -using ComponentAce.Compression.Libs.zlib; namespace Aki.Common { - public enum ZlibCompression - { - Store = 0, - Fastest = 1, - Fast = 3, - Normal = 5, - Ultra = 7, - Maximum = 9 - } + public enum ZlibCompression + { + Store = 0, + Fastest = 1, + Fast = 3, + Normal = 5, + Ultra = 7, + Maximum = 9 + } - public static class Zlib - { - // Level | CM/CI FLG - // ----- | --------- - // 1 | 78 01 - // 2 | 78 5E - // 3 | 78 5E - // 4 | 78 5E - // 5 | 78 5E - // 6 | 78 9C - // 7 | 78 DA - // 8 | 78 DA - // 9 | 78 DA + public static class Zlib + { + // Level | CM/CI FLG + // ----- | --------- + // 1 | 78 01 + // 2 | 78 5E + // 3 | 78 5E + // 4 | 78 5E + // 5 | 78 5E + // 6 | 78 9C + // 7 | 78 DA + // 8 | 78 DA + // 9 | 78 DA - /// - /// Check if the file is ZLib compressed - /// - /// Data - /// If the file is Zlib compressed - public static bool IsCompressed(byte[] Data) - { - // We need the first two bytes; - // First byte: Info (CM/CINFO) Header, should always be 0x78 - // Second byte: Flags (FLG) Header, should define our compression level. + /// + /// Check if the file is ZLib compressed + /// + /// Data + /// If the file is Zlib compressed + public static bool IsCompressed(byte[] Data) + { + // We need the first two bytes; + // First byte: Info (CM/CINFO) Header, should always be 0x78 + // Second byte: Flags (FLG) Header, should define our compression level. - if (Data == null || Data.Length < 3 || Data[0] != 0x78) - { - return false; - } + if (Data == null || Data.Length < 3 || Data[0] != 0x78) + { + return false; + } - switch (Data[1]) - { - case 0x01: // fastest - case 0x5E: // low - case 0x9C: // normal - case 0xDA: // max - return true; - } + switch (Data[1]) + { + case 0x01: // fastest + case 0x5E: // low + case 0x9C: // normal + case 0xDA: // max + return true; + } - return false; - } + return false; + } - /// - /// Deflate data. - /// - public static byte[] Compress(byte[] data, ZlibCompression level) - { - byte[] buffer = new byte[data.Length + 24]; + /// + /// Deflate data. + /// + public static byte[] Compress(byte[] data, ZlibCompression level) + { + byte[] buffer = new byte[data.Length + 24]; - ZStream zs = new ZStream() - { - avail_in = data.Length, - next_in = data, - next_in_index = 0, - avail_out = buffer.Length, - next_out = buffer, - next_out_index = 0 - }; + ZStream zs = new ZStream() + { + avail_in = data.Length, + next_in = data, + next_in_index = 0, + avail_out = buffer.Length, + next_out = buffer, + next_out_index = 0 + }; - zs.deflateInit((int)level); - zs.deflate(zlibConst.Z_FINISH); + zs.deflateInit((int)level); + zs.deflate(zlibConst.Z_FINISH); - data = new byte[zs.next_out_index]; - Array.Copy(zs.next_out, 0, data, 0, zs.next_out_index); + data = new byte[zs.next_out_index]; + Array.Copy(zs.next_out, 0, data, 0, zs.next_out_index); - return data; - } + return data; + } - /// - /// Inflate data. - /// - public static byte[] Decompress(byte[] data) - { - byte[] buffer = new byte[4096]; + /// + /// Inflate data. + /// + public static byte[] Decompress(byte[] data) + { + byte[] buffer = new byte[4096]; - ZStream zs = new ZStream() - { - avail_in = data.Length, - next_in = data, - next_in_index = 0, - avail_out = buffer.Length, - next_out = buffer, - next_out_index = 0 - }; + ZStream zs = new ZStream() + { + avail_in = data.Length, + next_in = data, + next_in_index = 0, + avail_out = buffer.Length, + next_out = buffer, + next_out_index = 0 + }; - zs.inflateInit(); + zs.inflateInit(); - using (MemoryStream ms = new MemoryStream()) - { - do - { - zs.avail_out = buffer.Length; - zs.next_out = buffer; - zs.next_out_index = 0; + using (MemoryStream ms = new MemoryStream()) + { + do + { + zs.avail_out = buffer.Length; + zs.next_out = buffer; + zs.next_out_index = 0; - int result = zs.inflate(0); + int result = zs.inflate(0); - if (result != 0 && result != 1) - { - break; - } + if (result != 0 && result != 1) + { + break; + } - ms.Write(zs.next_out, 0, zs.next_out_index); - } - while (zs.avail_in > 0 || zs.avail_out == 0); + ms.Write(zs.next_out, 0, zs.next_out_index); + } + while (zs.avail_in > 0 || zs.avail_out == 0); - return ms.ToArray(); - } - } - } + return ms.ToArray(); + } + } + } } \ No newline at end of file diff --git a/src/Behaviors/BotUnspawnController.cs b/src/Behaviors/BotUnspawnController.cs index 516f92d..58c9e70 100644 --- a/src/Behaviors/BotUnspawnController.cs +++ b/src/Behaviors/BotUnspawnController.cs @@ -2,7 +2,6 @@ using EFT; using System; using System.Collections.Generic; -using System.Linq; using UnityEngine; namespace astealz.SmartSpawnController.Behaviors @@ -22,12 +21,12 @@ namespace astealz.SmartSpawnController.Behaviors private readonly List players = new List(playersPool); private readonly Dictionary playerCounters = new Dictionary(playersPool); - private readonly List rolesToLeave = - new List(Enum.GetValues(typeof(WildSpawnType)).Length) { - WildSpawnType.assault, - WildSpawnType.assaultGroup, - WildSpawnType.cursedAssault, - WildSpawnType.pmcBot + private readonly List rolesToLeave = + new List(Enum.GetValues(typeof(WildSpawnType)).Length) { + WildSpawnType.assault, + WildSpawnType.assaultGroup, + WildSpawnType.cursedAssault, + WildSpawnType.pmcBot }; public bool DEBUG_ENABLED => Globals.Config.Debug; diff --git a/src/Config.cs b/src/Config.cs index f836d02..9164f69 100644 --- a/src/Config.cs +++ b/src/Config.cs @@ -1,10 +1,5 @@ using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace astealz.SmartSpawnController { diff --git a/src/Extensions.cs b/src/Extensions.cs index 2c5e162..cd8fcaf 100644 --- a/src/Extensions.cs +++ b/src/Extensions.cs @@ -1,12 +1,6 @@ using astealz.SmartSpawnController.Utils; using EFT; using HarmonyLib; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; using UnityEngine; namespace astealz.SmartSpawnController diff --git a/src/Globals.cs b/src/Globals.cs index 15ce537..7fca865 100644 --- a/src/Globals.cs +++ b/src/Globals.cs @@ -1,10 +1,6 @@ using Comfort.Common; using EFT; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using UnityEngine; namespace astealz.SmartSpawnController @@ -13,8 +9,10 @@ namespace astealz.SmartSpawnController { public static Config Config { get; set; } - public static MapConfig CurrentMapConfig { - get { + public static MapConfig CurrentMapConfig + { + get + { MapConfig config = null; if (!Config.Maps.TryGetValue(LocationId, out config)) { @@ -22,10 +20,11 @@ namespace astealz.SmartSpawnController return new MapConfig(); } return config; - } + } } - public static string LocationId { + public static string LocationId + { get { var game = GameObject.Find("GAME"); diff --git a/src/Module.cs b/src/Module.cs index b6cb4d2..eeae376 100644 --- a/src/Module.cs +++ b/src/Module.cs @@ -1,14 +1,6 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using astealz.SmartSpawnController.Utils; -using Comfort.Common; -using EFT; +using astealz.SmartSpawnController.Utils; using Newtonsoft.Json; +using System; namespace astealz.SmartSpawnController { @@ -25,13 +17,13 @@ namespace astealz.SmartSpawnController { // start console initialization EFT.StaticManager.Instance.StaticUpdate += Instance_StaticUpdate; - + // get config from server var json = Aki.SinglePlayer.Utils.RequestHandler.GetJson($"/mods/{Name.ToLower()}/config"); var config = JsonConvert.DeserializeObject(json); Globals.Config = config; - + // apply patches isApplyPatchesSuccess = Patches.BotSpawnerPatches.Apply(); } diff --git a/src/Patches/BotSpawnerPatch.Extensions.cs b/src/Patches/BotSpawnerPatch.Extensions.cs index 399c79a..1605405 100644 --- a/src/Patches/BotSpawnerPatch.Extensions.cs +++ b/src/Patches/BotSpawnerPatch.Extensions.cs @@ -1,10 +1,7 @@ using EFT; using System; using System.Collections.Generic; -using System.Linq; -using System.Runtime.CompilerServices; using System.Text; -using System.Threading.Tasks; namespace astealz.SmartSpawnController.Patches { diff --git a/src/Patches/BotSpawnerPatches.BotSpawnManager.cs b/src/Patches/BotSpawnerPatches.BotSpawnManager.cs index c75a7fc..c11a33c 100644 --- a/src/Patches/BotSpawnerPatches.BotSpawnManager.cs +++ b/src/Patches/BotSpawnerPatches.BotSpawnManager.cs @@ -15,7 +15,7 @@ namespace astealz.SmartSpawnController.Patches class BotSpawnManager { const int poolSize = 20; - + private bool enabled; /// /// internal spawn wave counter @@ -83,7 +83,7 @@ namespace astealz.SmartSpawnController.Patches if (DEBUG_ENABLED) Utils.Logger.Debug("OnStart(botZones)"); var mapConfig = Globals.CurrentMapConfig; - + this.enabled = mapConfig.EnableSpawnControl; if (mapConfig.EnableUnspawn) @@ -113,7 +113,7 @@ namespace astealz.SmartSpawnController.Patches this.botsPerZoneBase = mapConfig.BotsPerZoneBase; this.scavSpawnZones.Clear(); this.bossSpawnZones.Clear(); - + SetScavRoles(mapConfig.ScavRoles); SetBossRoles(mapConfig.BossRoles); diff --git a/src/Patches/BotSpawnerPatches.BotSpawnerDelayPatch.cs b/src/Patches/BotSpawnerPatches.BotSpawnerDelayPatch.cs index a6e50e0..44531c5 100644 --- a/src/Patches/BotSpawnerPatches.BotSpawnerDelayPatch.cs +++ b/src/Patches/BotSpawnerPatches.BotSpawnerDelayPatch.cs @@ -1,10 +1,7 @@ -using HarmonyLib; -using System.Collections.Generic; +using astealz.SmartSpawnController.Utils; using System.Linq; using System.Reflection; -using System.Reflection.Emit; using UnityEngine; -using astealz.SmartSpawnController.Utils; namespace astealz.SmartSpawnController.Patches { @@ -14,7 +11,8 @@ namespace astealz.SmartSpawnController.Patches { private static float scavWaveRetrySpawnDeltaTime = 15f; private static float lastCheckTime = 0f; - public BotSpawnerDelayPatch() : base(prefix: nameof(PatchPrefix)) { + public BotSpawnerDelayPatch() : base(prefix: nameof(PatchPrefix)) + { scavWaveRetrySpawnDeltaTime = Globals.Config.ScavWaveRetryInterval; } diff --git a/src/Patches/BotSpawnerPatches.BotSpawnerOnBossActivationPatch.cs b/src/Patches/BotSpawnerPatches.BotSpawnerOnBossActivationPatch.cs index 2080b14..df25a63 100644 --- a/src/Patches/BotSpawnerPatches.BotSpawnerOnBossActivationPatch.cs +++ b/src/Patches/BotSpawnerPatches.BotSpawnerOnBossActivationPatch.cs @@ -1,12 +1,9 @@ using astealz.SmartSpawnController.Utils; using EFT; -using HarmonyLib; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using System.Text; -using System.Threading.Tasks; namespace astealz.SmartSpawnController.Patches { @@ -38,7 +35,8 @@ namespace astealz.SmartSpawnController.Patches var bossSpawnerType = botSpawnerType.GetField("BossSpawner").FieldType; var bossLateSpawnMethod = bossSpawnerType .GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) - .Single(m => { + .Single(m => + { var mp = m.GetParameters(); if (mp.Length < methodParams.Count) return false; @@ -59,7 +57,7 @@ namespace astealz.SmartSpawnController.Patches bossWaveDataWrapper.SetData(wave, botZone); botSpawnManager.OnActivateBoss(bossWaveDataWrapper); - + botSpawnManager.Callback(false); bossWaveDataWrapper.ResetData(); @@ -75,11 +73,13 @@ namespace astealz.SmartSpawnController.Patches public WildSpawnType WildSpawnType { get; private set; } - public string ZoneName { - get => nameZone; - set { + public string ZoneName + { + get => nameZone; + set + { Logger.Info("Can't change boss 'ZoneName'"); - } + } } public int Count => 1; diff --git a/src/Patches/BotSpawnerPatches.MaxBotsAliveOnMapPatch.cs b/src/Patches/BotSpawnerPatches.MaxBotsAliveOnMapPatch.cs index 645c12b..157675a 100644 --- a/src/Patches/BotSpawnerPatches.MaxBotsAliveOnMapPatch.cs +++ b/src/Patches/BotSpawnerPatches.MaxBotsAliveOnMapPatch.cs @@ -1,11 +1,6 @@ using astealz.SmartSpawnController.Utils; -using System; -using System.Collections.Generic; using System.Linq; using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using UnityEngine; namespace astealz.SmartSpawnController.Patches { diff --git a/src/Patches/BotSpawnerPatches.cs b/src/Patches/BotSpawnerPatches.cs index de6a619..2f392ea 100644 --- a/src/Patches/BotSpawnerPatches.cs +++ b/src/Patches/BotSpawnerPatches.cs @@ -1,9 +1,6 @@ -using astealz.SmartSpawnController.Utils; -using System; +using System; using System.Linq; using System.Reflection; -using System.Text; -using System.Threading.Tasks; namespace astealz.SmartSpawnController.Patches { diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs index 2b60bc8..cbb58cc 100644 --- a/src/Properties/AssemblyInfo.cs +++ b/src/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // Общие сведения об этой сборке предоставляются следующим набором