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;
// Общие сведения об этой сборке предоставляются следующим набором