Decompiled source of TideOfWar v0.1.1

TideOfWar.dll

Decompiled a week ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using ProjectM;
using Stunlock.Core;
using TideOfWar.SpawnForWar;
using TideOfWar.SpawnForWar.Battlefield;
using Unity.Entities;
using Unity.Mathematics;
using VAMP.Data;
using VAMP.Services;
using VAMP.Utilities;
using VampireCommandFramework;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("TideOfWar")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Created with VRising.ModTemplate, you should edit this.")]
[assembly: AssemblyFileVersion("0.1.10.0")]
[assembly: AssemblyInformationalVersion("0.1.10+1.Branch.main.Sha.c33d0879382e1a0da34861ec55914ba7e637a80e.e325a9c953ed343fca70cc2c0ae2f3bb3b6d3885")]
[assembly: AssemblyProduct("TideOfWar")]
[assembly: AssemblyTitle("TideOfWar")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.10.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace TideOfWar
{
	[BepInPlugin("TideOfWar", "TideOfWar", "0.1.10")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BasePlugin
	{
		private Harmony _harmony;

		public static Plugin Instance { get; private set; }

		public static ManualLogSource LogInstance => ((BasePlugin)Instance).Log;

		public override void Load()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Expected O, but got Unknown
			Instance = this;
			ManualLogSource log = ((BasePlugin)this).Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(38, 2, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("TideOfWar: Plugin ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("TideOfWar");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" version ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("0.1.10");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" is loaded!");
			}
			log.LogInfo(val);
			_harmony = new Harmony("TideOfWar");
			_harmony.PatchAll(Assembly.GetExecutingAssembly());
			CommandRegistry.RegisterAll();
			Core.Init();
		}

		public override bool Unload()
		{
			CommandRegistry.UnregisterAssembly();
			Harmony harmony = _harmony;
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
			return true;
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "TideOfWar";

		public const string PLUGIN_NAME = "TideOfWar";

		public const string PLUGIN_VERSION = "0.1.10";
	}
}
namespace TideOfWar.SpawnForWar
{
	public static class Core
	{
		public static bool mute = true;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		public static Random random = default(Random);

		public static void Init()
		{
			((Random)(ref random)).InitState(1851936439u);
		}

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void SpawnForWarCoL(float3 position)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnForWarCoLSquad(position, withPaladin: true);
				SpawnForWarCoLSquad(position + new float3(0f, 0f, 5f), withPaladin: true);
				SpawnForWarCoLSquad(position + new float3(0f, 0f, -5f), withPaladin: true);
			}
		}

		public static void SpawnForWarCoLSquad(float3 position, bool withPaladin = false)
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_0253: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_0268: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Unknown result type (might be due to invalid IL or missing references)
			//IL_027d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0300: Unknown result type (might be due to invalid IL or missing references)
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_0315: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Unknown result type (might be due to invalid IL or missing references)
			//IL_032a: Unknown result type (might be due to invalid IL or missing references)
			//IL_033a: Unknown result type (might be due to invalid IL or missing references)
			//IL_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_034f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0354: Unknown result type (might be due to invalid IL or missing references)
			//IL_0364: Unknown result type (might be due to invalid IL or missing references)
			//IL_0369: Unknown result type (might be due to invalid IL or missing references)
			//IL_0379: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0411: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				if (withPaladin)
				{
					SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Paladin, position);
				}
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Knight_2H, position + new float3(0f, 0f, 1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Knight_2H, position + new float3(0f, 0f, -1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Cleric, position + new float3(1f, 0f, 1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Cleric, position + new float3(1f, 0f, -1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Knight_Shield, position + new float3(1f, 0f, 0f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Knight_Shield, position + new float3(-1f, 0f, 0f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Lightweaver, position + new float3(-1f, 0f, 1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Lightweaver, position + new float3(-1f, 0f, -1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, position + new float3(2f, 0f, -2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, position + new float3(2f, 0f, -1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, position + new float3(2f, 0f, 0f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, position + new float3(2f, 0f, 1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, position + new float3(2f, 0f, 2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, position + new float3(-2f, 0f, -2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, position + new float3(-2f, 0f, -1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, position + new float3(-2f, 0f, 0f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, position + new float3(-2f, 0f, 1f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, position + new float3(-2f, 0f, 2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Priest, position + new float3(-1f, 0f, 2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Priest, position + new float3(-1f, 0f, -2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Cleric, position + new float3(0f, 0f, 2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Cleric, position + new float3(0f, 0f, -2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Archer, position + new float3(1f, 0f, 2f));
				SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Archer, position + new float3(1f, 0f, -2f));
			}
		}

		public static void SpawnForWarCoLSquadSolider(float3 position)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				int num = ((Random)(ref random)).NextInt(0, 5);
				for (int i = 0; i < num; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Footman, RandPos(position, 1f, num));
				}
				num = ((Random)(ref random)).NextInt(0, 5);
				for (int j = 0; j < num; j++)
				{
					SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Rifleman, RandPos(position, 1f, num));
				}
				num = ((Random)(ref random)).NextInt(0, 5);
				for (int k = 0; k < num; k++)
				{
					SpawnNpcForWar(Prefabs.CHAR_ChurchOfLight_Archer, RandPos(position, 1f, num));
				}
			}
		}

		public static void SpawnForWarCoLSquadRandom(float3 position, bool high = true, bool low = true)
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled || disable_human)
			{
				return;
			}
			int num = ((Random)(ref random)).NextInt(0, 5);
			if (high)
			{
				for (int i = 0; i < num; i++)
				{
					SpawnNpcForWar(Unit.prefabCoLHigh[((Random)(ref random)).NextInt(0, Unit.prefabCoLHigh.Count)], RandPos(position, 1f, num));
				}
			}
			if (low)
			{
				num = ((Random)(ref random)).NextInt((num == 0) ? 1 : 0, 10);
				for (int j = 0; j < num; j++)
				{
					SpawnNpcForWar(Unit.prefabCoLLow[((Random)(ref random)).NextInt(0, Unit.prefabCoLLow.Count)], RandPos(position, 1f, 5f));
				}
			}
		}

		public static void SpawnForWarCoLVBloodRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabCoLVBlood.NextRand(), position);
			}
		}

		public static void SpawnForWarMilitiaSquadRandom(float3 position)
		{
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				int num = ((Random)(ref random)).NextInt(5, 15);
				for (int i = 0; i < num; i++)
				{
					SpawnNpcForWar(Unit.prefabMilitia[((Random)(ref random)).NextInt(0, Unit.prefabMilitia.Count)], RandPos(position, 1f, 5f));
				}
			}
		}

		public static void SpawnForWarMilitiaVBloodRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabMilitiaVBlood.NextRand(), position);
			}
		}

		public static void SpawnForWarHunterVBloodRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabHunterVBlood.NextRand(), position);
			}
		}

		public static void SpawnForWarAllianceVBloodRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabAllianceVBlood.NextRand(), position);
			}
		}

		public static void SpawnForWarLegion(float3 position)
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019e: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0209: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_0259: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_029e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0309: Unknown result type (might be due to invalid IL or missing references)
			//IL_0319: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0329: Unknown result type (might be due to invalid IL or missing references)
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_033e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_0359: Unknown result type (might be due to invalid IL or missing references)
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0369: Unknown result type (might be due to invalid IL or missing references)
			//IL_037f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0384: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_0396: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0401: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				SpawnNpcForWar(Prefabs.CHAR_Legion_Guardian_DraculaMinion, RandPos(position, 0f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Dreadhorn, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Dreadhorn, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Dreadhorn, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Nightmare, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Nightmare, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Nightmare, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, RandPos(position, 1f, 5f));
				for (int i = -5; i < 6; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Shadowkin, position + new float3(0f, 0f, (float)i));
					SpawnNpcForWar(Prefabs.CHAR_Legion_Shadowkin, position + new float3(1f, 0f, (float)i));
				}
				float3 basePosition = RandPos(position, 1f, 5f);
				for (int j = 0; j < 20; j++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_BatSwarm, RandPos(basePosition, 1f, 3f));
				}
			}
		}

		public static void SpawnForWarLegionSquad(float3 position)
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				SpawnNpcForWar(Prefabs.CHAR_Legion_Guardian_DraculaMinion, RandPos(position, 0f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Dreadhorn, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Nightmare, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Nightmare, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, RandPos(position, 1f, 5f));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, RandPos(position, 1f, 5f));
				for (int i = -2; i < 3; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Shadowkin, position + new float3(0f, 0f, (float)i));
					SpawnNpcForWar(Prefabs.CHAR_Legion_Shadowkin, position + new float3(1f, 0f, (float)i));
				}
				float3 basePosition = RandPos(position, 1f, 5f);
				for (int j = 0; j < 6; j++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_BatSwarm, RandPos(basePosition, 1f, 3f));
				}
			}
		}

		public static void SpawnForWarLegionSquadTank(float3 position, int count = 5, float maxRange = 7f)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				for (int i = 0; i < count; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Dreadhorn, RandPos(position, 1f, maxRange));
				}
			}
		}

		public static void SpawnForWarLegionSquadPriest(float3 position, int count = 3, float maxRange = 5f)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				for (int i = 0; i < count; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_BloodProphet, RandPos(position, 1f, maxRange));
				}
			}
		}

		public static void SpawnForWarLegionSquadSuccubus(float3 position, int count = 3, float maxRange = 5f)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				for (int i = 0; i < count; i++)
				{
					float3 val = RandPos(position, 1f, maxRange);
					SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden, val);
					SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, val + new float3(1f, 0f, 1f));
					SpawnNpcForWar(Prefabs.CHAR_Legion_NightMaiden_Lesser, val + new float3(1f, 0f, -1f));
				}
			}
		}

		public static void SpawnForWarLegionSquadDefense(float3 position, int distance = 1)
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, position + new float3((float)distance, 0f, (float)distance));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, position + new float3((float)distance, 0f, (float)(-distance)));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, position + new float3((float)(-distance), 0f, (float)(-distance)));
				SpawnNpcForWar(Prefabs.CHAR_Legion_Gargoyle, position + new float3((float)(-distance), 0f, (float)distance));
			}
		}

		public static void SpawnForWarLegionSquadGuard(float3 position, int count = 2, float maxRange = 4f)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				for (int i = 0; i < count; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Guardian_DraculaMinion, RandPos(position, 1f, maxRange));
				}
			}
		}

		public static void SpawnForWarLegionSquadHunt(float3 position, int count = 3, float maxRange = 5f)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				for (int i = 0; i < count; i++)
				{
					float3 val = RandPos(position, 1f, maxRange);
					SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, val);
					SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, val + new float3(1f, 0f, 1f));
					SpawnNpcForWar(Prefabs.CHAR_Legion_Vargulf, val + new float3(1f, 0f, -1f));
				}
			}
		}

		public static void SpawnForWarLegionSquadMinion(float3 position, int count = 10, float maxRange = 6f, bool withDraculin = false)
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_vampire)
			{
				if (withDraculin)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Guardian_DraculaMinion, RandPos(position, 1f, maxRange));
				}
				for (int i = 0; i < count; i++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Shadowkin, RandPos(position, 1f, maxRange));
				}
			}
		}

		public static void SpawnForWarLegionSquadVampire(float3 position, int count = 10, float maxRange = 6f, bool onlyBats = false)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled || disable_vampire)
			{
				return;
			}
			for (int i = 0; i < count; i++)
			{
				float3 val = RandPos(position, 1f, maxRange);
				if (!onlyBats)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_Assassin, val);
				}
				for (int j = 0; j < 6; j++)
				{
					SpawnNpcForWar(Prefabs.CHAR_Legion_BatSwarm, RandPos(val, 1f, 3f));
				}
			}
		}

		public static void SpawnForWarLegionSquadRandom(float3 position, bool high = true, bool low = true)
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled || disable_vampire)
			{
				return;
			}
			int num = ((Random)(ref random)).NextInt(0, 5);
			if (high)
			{
				for (int i = 0; i < num; i++)
				{
					SpawnNpcForWar(Unit.prefabLegionHigh[((Random)(ref random)).NextInt(0, Unit.prefabLegionHigh.Count)], RandPos(position, 1f, num));
				}
			}
			if (low)
			{
				num = ((Random)(ref random)).NextInt((num == 0) ? 1 : 0, 10);
				for (int j = 0; j < num; j++)
				{
					SpawnNpcForWar(Unit.prefabLegionLow[((Random)(ref random)).NextInt(0, Unit.prefabLegionLow.Count)], RandPos(position, 1f, num));
				}
			}
		}

		public static void SpawnForWarLegionVBloodRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabLegionVBlood.NextRand(), position);
			}
		}

		public static void SpawnForWarLegionVBloodWithDraculaRandom(float3 position)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Unit.prefabLegionVBloodWithDracula.NextRand(), position);
			}
		}

		public static void SpawnForWarLegionVBloodWithDraculaTest(float3 position)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			if (enabled && !disable_human)
			{
				SpawnVBloodForWar(Prefabs.CHAR_Vampire_Dracula_VBlood, position);
			}
		}

		public static void SpawnNpcForWar(PrefabGUID prefab, float3 position, float duration = 120f)
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SpawnService.SpawnUnitWithCallback(prefab, position, 0f, (Action<Entity>)delegate(Entity e)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_000d: Unknown result type (might be due to invalid IL or missing references)
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_0027: Unknown result type (might be due to invalid IL or missing references)
				//IL_002c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				//IL_0067: Unknown result type (might be due to invalid IL or missing references)
				//IL_006c: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Unknown result type (might be due to invalid IL or missing references)
				float num = 350f;
				AggroConsumer val = EntityUtil.Read<AggroConsumer>(e);
				val.MaxDistanceFromPreCombatPosition = num;
				val.ProximityRadius = num;
				EntityUtil.Write<AggroConsumer>(e, val);
				AggroModifiers val2 = EntityUtil.Read<AggroModifiers>(e);
				val2.CircleRadiusFactor = new ModifiableFloat(num);
				val2.ConeRadiusFactor = new ModifiableFloat(num);
				EntityUtil.Write<AggroModifiers>(e, val2);
				LifeTime val3 = default(LifeTime);
				val3.Duration = duration;
				val3.EndAction = (LifeTimeEndAction)1;
				LifeTime val4 = val3;
				EntityUtil.Write<LifeTime>(e, val4);
			});
		}

		public static void SpawnVBloodForWar(PrefabGUID prefab, float3 position, float duration = 300f)
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SpawnService.SpawnUnitWithCallback(prefab, position, 0f, (Action<Entity>)delegate(Entity e)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_000d: Unknown result type (might be due to invalid IL or missing references)
				//IL_001e: Unknown result type (might be due to invalid IL or missing references)
				//IL_001f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_0027: Unknown result type (might be due to invalid IL or missing references)
				//IL_002c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Unknown result type (might be due to invalid IL or missing references)
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_003d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0042: Unknown result type (might be due to invalid IL or missing references)
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				//IL_0067: Unknown result type (might be due to invalid IL or missing references)
				//IL_006c: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Unknown result type (might be due to invalid IL or missing references)
				float num = 350f;
				AggroConsumer val = EntityUtil.Read<AggroConsumer>(e);
				val.MaxDistanceFromPreCombatPosition = num;
				val.ProximityRadius = num;
				EntityUtil.Write<AggroConsumer>(e, val);
				AggroModifiers val2 = EntityUtil.Read<AggroModifiers>(e);
				val2.CircleRadiusFactor = new ModifiableFloat(num);
				val2.ConeRadiusFactor = new ModifiableFloat(num);
				EntityUtil.Write<AggroModifiers>(e, val2);
				LifeTime val3 = default(LifeTime);
				val3.Duration = duration;
				val3.EndAction = (LifeTimeEndAction)2;
				LifeTime val4 = val3;
				EntityUtil.Write<LifeTime>(e, val4);
			});
		}

		public static float3 RandPos(float3 basePosition, float minRange, float maxRange)
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			float num = ((Random)(ref random)).NextFloat(0f, math.PI * 2f);
			float num2 = math.sqrt(((Random)(ref random)).NextFloat(minRange * minRange, maxRange * maxRange));
			float num3 = num2 * math.cos(num);
			float num4 = num2 * math.sin(num);
			return basePosition + new float3(num3, 0f, num4);
		}
	}
	internal static class Unit
	{
		public class VBlood
		{
			private List<PrefabGUID> pool = new List<PrefabGUID>();

			private List<PrefabGUID> poped = new List<PrefabGUID>();

			public VBlood(List<PrefabGUID> vBlood)
			{
				pool = vBlood;
			}

			public VBlood(params VBlood[] vBloods)
			{
				foreach (VBlood vBlood in vBloods)
				{
					pool = pool.Concat(vBlood.pool).ToList();
				}
			}

			public void Add(PrefabGUID vBlood)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				pool.Add(vBlood);
			}

			public void Add(List<PrefabGUID> vBlood)
			{
				pool.Concat(vBlood).ToList();
			}

			public PrefabGUID NextRand()
			{
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				//IL_006b: Unknown result type (might be due to invalid IL or missing references)
				//IL_006e: Unknown result type (might be due to invalid IL or missing references)
				if (pool.Count == 0)
				{
					pool = poped;
					poped = new List<PrefabGUID>();
				}
				int index = ((Random)(ref Core.random)).NextInt(0, pool.Count);
				PrefabGUID val = pool[index];
				poped.Add(val);
				pool.Remove(val);
				return val;
			}
		}

		public static List<PrefabGUID> prefabCoL = new List<PrefabGUID>
		{
			Prefabs.CHAR_ChurchOfLight_Paladin,
			Prefabs.CHAR_ChurchOfLight_Knight_2H,
			Prefabs.CHAR_ChurchOfLight_Cleric,
			Prefabs.CHAR_ChurchOfLight_Knight_Shield,
			Prefabs.CHAR_ChurchOfLight_Lightweaver,
			Prefabs.CHAR_ChurchOfLight_Footman,
			Prefabs.CHAR_ChurchOfLight_Rifleman,
			Prefabs.CHAR_ChurchOfLight_Priest,
			Prefabs.CHAR_ChurchOfLight_Archer
		};

		public static List<PrefabGUID> prefabCoLHigh = new List<PrefabGUID>
		{
			Prefabs.CHAR_ChurchOfLight_Paladin,
			Prefabs.CHAR_ChurchOfLight_Knight_2H,
			Prefabs.CHAR_ChurchOfLight_Knight_Shield,
			Prefabs.CHAR_ChurchOfLight_Lightweaver,
			Prefabs.CHAR_ChurchOfLight_Priest,
			Prefabs.CHAR_ChurchOfLight_Cleric
		};

		public static List<PrefabGUID> prefabCoLLow = new List<PrefabGUID>
		{
			Prefabs.CHAR_ChurchOfLight_Footman,
			Prefabs.CHAR_ChurchOfLight_Rifleman,
			Prefabs.CHAR_ChurchOfLight_Archer
		};

		public static List<PrefabGUID> prefabMilitia = new List<PrefabGUID>
		{
			Prefabs.CHAR_Militia_Bomber,
			Prefabs.CHAR_Militia_Crossbow,
			Prefabs.CHAR_Militia_Devoted,
			Prefabs.CHAR_Militia_Guard,
			Prefabs.CHAR_Militia_Heavy,
			Prefabs.CHAR_Militia_Horseman,
			Prefabs.CHAR_Militia_Hound,
			Prefabs.CHAR_Militia_Light,
			Prefabs.CHAR_Militia_Nun,
			Prefabs.CHAR_Militia_Rider,
			Prefabs.CHAR_Militia_Torchbearer,
			Prefabs.CHAR_ChurchOfLight_Archer
		};

		public static List<PrefabGUID> prefabLegion = new List<PrefabGUID>
		{
			Prefabs.CHAR_Legion_Guardian_DraculaMinion,
			Prefabs.CHAR_Legion_Assassin,
			Prefabs.CHAR_Legion_BloodProphet,
			Prefabs.CHAR_Legion_Dreadhorn,
			Prefabs.CHAR_Legion_Gargoyle,
			Prefabs.CHAR_Legion_NightMaiden,
			Prefabs.CHAR_Legion_NightMaiden_Lesser,
			Prefabs.CHAR_Legion_Nightmare,
			Prefabs.CHAR_Legion_Vargulf,
			Prefabs.CHAR_Legion_Shadowkin,
			Prefabs.CHAR_Legion_BatSwarm
		};

		public static List<PrefabGUID> prefabLegionHigh = new List<PrefabGUID>
		{
			Prefabs.CHAR_Legion_Guardian_DraculaMinion,
			Prefabs.CHAR_Legion_Assassin,
			Prefabs.CHAR_Legion_BloodProphet,
			Prefabs.CHAR_Legion_Dreadhorn,
			Prefabs.CHAR_Legion_Gargoyle,
			Prefabs.CHAR_Legion_NightMaiden,
			Prefabs.CHAR_Legion_Nightmare,
			Prefabs.CHAR_Legion_Vargulf
		};

		public static List<PrefabGUID> prefabLegionLow = new List<PrefabGUID>
		{
			Prefabs.CHAR_Legion_Shadowkin,
			Prefabs.CHAR_Legion_BatSwarm
		};

		public static VBlood prefabLegionVBlood = new VBlood(new List<PrefabGUID>
		{
			Prefabs.CHAR_BatVampire_VBlood,
			Prefabs.CHAR_Vampire_BloodKnight_VBlood,
			Prefabs.CHAR_Vampire_HighLord_VBlood,
			Prefabs.CHAR_Vampire_IceRanger_VBlood
		});

		public static VBlood prefabLegionVBloodWithDracula = new VBlood(prefabLegionVBlood, new VBlood(new List<PrefabGUID> { Prefabs.CHAR_Vampire_Dracula_VBlood }));

		public static VBlood prefabCoLVBlood = new VBlood(new List<PrefabGUID>
		{
			Prefabs.CHAR_ChurchOfLight_Cardinal_VBlood,
			Prefabs.CHAR_ChurchOfLight_Overseer_VBlood
		});

		public static VBlood prefabMilitiaVBlood = new VBlood(new List<PrefabGUID>
		{
			Prefabs.CHAR_Militia_BishopOfDunley_VBlood,
			Prefabs.CHAR_Militia_Fabian_VBlood,
			Prefabs.CHAR_Militia_Guard_VBlood,
			Prefabs.CHAR_Militia_Leader_VBlood,
			Prefabs.CHAR_Militia_Longbowman_LightArrow_Vblood,
			Prefabs.CHAR_Militia_Nun_VBlood
		});

		public static VBlood prefabHunterVBlood = new VBlood(new List<PrefabGUID>
		{
			Prefabs.CHAR_VHunter_Jade_VBlood,
			Prefabs.CHAR_VHunter_Leader_VBlood,
			Prefabs.CHAR_VHunter_CastleMan
		});

		public static VBlood prefabAllianceVBlood = new VBlood(prefabCoLVBlood, prefabMilitiaVBlood, prefabHunterVBlood);
	}
}
namespace TideOfWar.SpawnForWar.Battlefield
{
	internal static class BattlefieldDraculaCourtyardSouthWest
	{
		public static bool mute = false;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		private static float3 battlefieldCenter = new float3(-369f, 0f, -620f);

		private static float3 humanBaseCenter = new float3(-421f, 0f, -624f) + new float3(50f, 0f, 0f);

		private static float3 vampireBaseCenter = new float3(-313f, 0f, -619f) + new float3(-50f, 0f, 0f);

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void StartWar()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			if (enabled)
			{
				if (!disable_human)
				{
					Core.SpawnForWarCoL(humanBaseCenter);
				}
				if (!disable_vampire)
				{
					Core.SpawnForWarLegion(vampireBaseCenter);
					Core.SpawnForWarLegionSquadGuard(battlefieldCenter, 1);
				}
			}
		}

		public static void SupplyWar()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0176: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled)
			{
				return;
			}
			float3 position = humanBaseCenter;
			float3 position2 = vampireBaseCenter;
			int num = 0;
			bool flag = default(bool);
			if (!disable_human)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(18, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Human force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarCoLVBloodRandom(position);
				}
				else if (num <= 10)
				{
					Core.SpawnForWarHunterVBloodRandom(position);
				}
				else if (num <= 35)
				{
					Core.SpawnForWarCoLSquadRandom(position, high: true, low: false);
					Core.SpawnForWarCoLSquadRandom(position, high: true, low: false);
				}
				else
				{
					Core.SpawnForWarCoLSquadRandom(position, high: true, low: false);
				}
			}
			if (!disable_vampire)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance2 = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(20, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Vampire force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance2.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarLegionVBloodWithDraculaRandom(position);
				}
				else if (num <= 30)
				{
					Core.SpawnForWarLegionSquadRandom(position2, high: true, low: false);
					Core.SpawnForWarLegionSquadRandom(position2, high: true, low: false);
				}
				else
				{
					Core.SpawnForWarLegionSquadRandom(position2, high: true, low: false);
				}
				Core.SpawnForWarLegionSquadGuard(battlefieldCenter);
			}
		}
	}
	internal static class BattlefieldDraculaCourtyardNorthWest
	{
		public static bool mute = false;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		private static float3 battlefieldCenter = new float3(-366f, 0f, -550f);

		private static float3 humanBaseCenter = new float3(-414f, 0f, -548f) + new float3(25f, 0f, 0f);

		private static float3 vampireBaseCenter = new float3(-326f, 0f, -550f) + new float3(-25f, 0f, 0f);

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void StartWar()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			if (enabled)
			{
				float3 position = humanBaseCenter;
				float3 position2 = vampireBaseCenter;
				if (!disable_human)
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
				if (!disable_vampire)
				{
					Core.SpawnForWarLegionSquadGuard(position2, 4, ((Random)(ref Core.random)).NextInt(0, 8));
				}
			}
		}

		public static void SupplyWar()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled)
			{
				return;
			}
			float3 position = humanBaseCenter;
			float3 position2 = vampireBaseCenter;
			int num = 0;
			bool flag = default(bool);
			if (!disable_human)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(18, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Human force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarCoLVBloodRandom(position);
				}
				else if (num <= 30)
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
				else
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
			}
			if (!disable_vampire)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance2 = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(20, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Vampire force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance2.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarLegionVBloodRandom(position);
				}
				else if (num <= 20)
				{
					Core.SpawnForWarLegionSquadDefense(position2, ((Random)(ref Core.random)).NextInt(1, 2));
				}
				else if (num <= 30)
				{
					Core.SpawnForWarLegionSquadHunt(position2, ((Random)(ref Core.random)).NextInt(1, 3), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else
				{
					Core.SpawnForWarLegionSquadGuard(position2, ((Random)(ref Core.random)).NextInt(2, 5), ((Random)(ref Core.random)).NextInt(0, 6));
				}
			}
		}
	}
	internal static class BattlefieldDraculaCourtyardNorth
	{
		public static bool mute = false;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		private static float3 battlefieldCenter = new float3(-330f, 0f, -496f);

		private static float3 humanBaseCenter = new float3(-342f, 0f, -455f) + new float3(15f, 0f, -25f);

		private static float3 vampireBaseCenter = new float3(-326f, 0f, -550f) + new float3(0f, 0f, 35f);

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void StartWar()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			if (enabled)
			{
				float3 position = humanBaseCenter;
				float3 position2 = vampireBaseCenter;
				if (!disable_human)
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
				if (!disable_vampire)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7));
					Core.SpawnForWarLegionSquadVampire(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7), onlyBats: true);
				}
			}
		}

		public static void SupplyWar()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled)
			{
				return;
			}
			float3 position = humanBaseCenter;
			float3 position2 = vampireBaseCenter;
			int num = 0;
			bool flag = default(bool);
			if (!disable_human)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(18, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Human force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarCoLVBloodRandom(position);
				}
				else if (num <= 30)
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
				else
				{
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
			}
			if (!disable_vampire)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance2 = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(20, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Vampire force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance2.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarLegionVBloodRandom(position);
				}
				else if (num <= 30)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 21), ((Random)(ref Core.random)).NextInt(0, 7));
					Core.SpawnForWarLegionSquadVampire(position2, ((Random)(ref Core.random)).NextInt(1, 21), ((Random)(ref Core.random)).NextInt(0, 7), onlyBats: true);
				}
				else if (num <= 65)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 21), ((Random)(ref Core.random)).NextInt(0, 7));
				}
				else
				{
					Core.SpawnForWarLegionSquadVampire(position2, ((Random)(ref Core.random)).NextInt(1, 21), ((Random)(ref Core.random)).NextInt(0, 7), onlyBats: true);
				}
			}
		}
	}
	internal static class BattlefieldDraculaGardenWest
	{
		public static bool mute = false;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		private static float3 battlefieldCenter = new float3(-398f, 0f, -690f);

		private static float3 humanBaseCenter = new float3(-438f, 0f, -689f);

		private static float3 vampireBaseCenter = new float3(-361f, 0f, -690f);

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void StartWar()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			if (enabled)
			{
				if (!disable_human)
				{
					Core.SpawnForWarCoL(humanBaseCenter);
				}
				if (!disable_vampire)
				{
					Core.SpawnForWarLegion(vampireBaseCenter);
				}
			}
		}

		public static void SupplyWar()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_0251: Unknown result type (might be due to invalid IL or missing references)
			//IL_0286: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled)
			{
				return;
			}
			float3 position = humanBaseCenter;
			float3 position2 = vampireBaseCenter;
			int num = 0;
			bool flag = default(bool);
			if (!disable_human)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(18, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Human force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarMilitiaVBloodRandom(position);
				}
				else if (num <= 10)
				{
					Core.SpawnForWarCoLSquadRandom(position);
				}
				else if (num <= 20)
				{
					Core.SpawnForWarMilitiaSquadRandom(position);
					Core.SpawnForWarCoLSquadSolider(position);
				}
				else if (num <= 60)
				{
					Core.SpawnForWarCoLSquadSolider(position);
				}
				else
				{
					Core.SpawnForWarMilitiaSquadRandom(position);
				}
			}
			if (!disable_vampire)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance2 = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(20, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Vampire force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance2.LogDebug(val);
				if (num <= 3)
				{
					Core.SpawnForWarLegionVBloodRandom(position);
				}
				else if (num <= 10)
				{
					Core.SpawnForWarLegionSquad(position2);
				}
				else if (num <= 15)
				{
					Core.SpawnForWarLegionSquadTank(position2, ((Random)(ref Core.random)).NextInt(1, 5), ((Random)(ref Core.random)).NextInt(0, 8));
				}
				else if (num <= 25)
				{
					Core.SpawnForWarLegionSquadPriest(position2, ((Random)(ref Core.random)).NextInt(1, 4), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 40)
				{
					Core.SpawnForWarLegionSquadSuccubus(position2, ((Random)(ref Core.random)).NextInt(1, 6), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 50)
				{
					Core.SpawnForWarLegionSquadDefense(position2, ((Random)(ref Core.random)).NextInt(1, 3));
				}
				else if (num <= 55)
				{
					Core.SpawnForWarLegionSquadHunt(position2, ((Random)(ref Core.random)).NextInt(1, 3), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 65)
				{
					Core.SpawnForWarLegionSquadGuard(position2, ((Random)(ref Core.random)).NextInt(2, 5), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 73)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7));
				}
				else if (num <= 75)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7), withDraculin: true);
				}
				else if (num <= 85)
				{
					Core.SpawnForWarLegionSquadVampire(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7));
				}
				else
				{
					Core.SpawnForWarLegionSquadRandom(position2);
				}
			}
		}
	}
	internal static class BattlefieldDunleyMortiumMiddle
	{
		public static bool mute = false;

		public static bool enabled = true;

		public static bool disable_human = false;

		public static bool disable_vampire = false;

		private static float3 battlefieldCenter = new float3(-800f, 0f, -600f);

		private static float3 humanBaseCenter = new float3(-875f, 0f, -615f);

		private static float3 vampireBaseCenter = new float3(-810f, 0f, -620f);

		public static void StopWar()
		{
			enabled = false;
		}

		public static void ResumeWar()
		{
			enabled = true;
		}

		public static void ToggleHuman()
		{
			disable_human = !disable_human;
		}

		public static void ToggleVampire()
		{
			disable_vampire = !disable_vampire;
		}

		public static void ToggleMute()
		{
			mute = !mute;
		}

		public static void StartWar()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			if (enabled)
			{
				if (!disable_human)
				{
					Core.SpawnForWarCoL(humanBaseCenter);
				}
				if (!disable_vampire)
				{
					Core.SpawnForWarLegion(vampireBaseCenter);
				}
			}
		}

		public static void SupplyWar()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Expected O, but got Unknown
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0201: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			if (!enabled)
			{
				return;
			}
			float3 position = humanBaseCenter;
			float3 position2 = vampireBaseCenter;
			int num = 0;
			bool flag = default(bool);
			if (!disable_human)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(18, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Human force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance.LogDebug(val);
				if (num == 0)
				{
					Core.SpawnForWarCoLSquad(position, withPaladin: true);
				}
				else if (num <= 2)
				{
					Core.SpawnForWarCoLSquad(position);
				}
				else if (num <= 50)
				{
					Core.SpawnForWarCoLSquadRandom(position);
				}
				else if (num <= 70)
				{
					Core.SpawnForWarMilitiaSquadRandom(position);
				}
				else
				{
					Core.SpawnForWarCoLSquadSolider(position);
				}
			}
			if (!disable_vampire)
			{
				num = ((Random)(ref Core.random)).NextInt(0, 100);
				ManualLogSource logInstance2 = Plugin.LogInstance;
				BepInExDebugLogInterpolatedStringHandler val = new BepInExDebugLogInterpolatedStringHandler(20, 1, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Vampire force rand: ");
					((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(num);
				}
				logInstance2.LogDebug(val);
				if (num == 0)
				{
					Core.SpawnForWarLegionSquad(position2);
				}
				else if (num <= 10)
				{
					Core.SpawnForWarLegionSquadTank(position2, ((Random)(ref Core.random)).NextInt(1, 6), ((Random)(ref Core.random)).NextInt(0, 8));
				}
				else if (num <= 20)
				{
					Core.SpawnForWarLegionSquadPriest(position2, ((Random)(ref Core.random)).NextInt(1, 4), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 30)
				{
					Core.SpawnForWarLegionSquadSuccubus(position2, ((Random)(ref Core.random)).NextInt(1, 4), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 40)
				{
					Core.SpawnForWarLegionSquadDefense(position2, ((Random)(ref Core.random)).NextInt(1, 3));
				}
				else if (num <= 50)
				{
					Core.SpawnForWarLegionSquadHunt(position2, ((Random)(ref Core.random)).NextInt(1, 4), ((Random)(ref Core.random)).NextInt(0, 6));
				}
				else if (num <= 58)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7));
				}
				else if (num <= 60)
				{
					Core.SpawnForWarLegionSquadMinion(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7), withDraculin: true);
				}
				else if (num <= 70)
				{
					Core.SpawnForWarLegionSquadVampire(position2, ((Random)(ref Core.random)).NextInt(1, 11), ((Random)(ref Core.random)).NextInt(0, 7));
				}
				else
				{
					Core.SpawnForWarLegionSquadRandom(position2);
				}
			}
		}
	}
}
namespace TideOfWar.Commands
{
	internal class UnitSpawnCommand
	{
		[CommandGroup("tideofwartest", "towt")]
		public class TestCommand
		{
			[Command("churchoflight", "c", "churchoflight <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestCoL(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarCoLVBloodRandom(position);
			}

			[Command("militia", "m", "militia <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestMilitia(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarMilitiaVBloodRandom(position);
			}

			[Command("hunter", "h", "hunter <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestHunter(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarHunterVBloodRandom(position);
			}

			[Command("legion", "l", "legion <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestLegion(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarLegionVBloodRandom(position);
			}

			[Command("dracula", "d", "dracula <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestDracula(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarLegionVBloodWithDraculaTest(position);
			}

			[Command("withdracula", "dd", "withdracula <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestWithDracula(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarLegionVBloodWithDraculaRandom(position);
			}

			[Command("alliance", "a", "alliance <x> <z>", "Spawns boss at specified position.", null, true)]
			public static void CustomSpawnNpcTestAlliance(ChatCommandContext ctx, float x, float z)
			{
				//IL_006a: Unknown result type (might be due to invalid IL or missing references)
				ctx.Reply($"{Format.Color("[debug]", Color.Red)} TideOfWar spawn test input: {x} {z}");
				float3 position = default(float3);
				((float3)(ref position))..ctor(x, 0f, z);
				Core.SpawnForWarAllianceVBloodRandom(position);
			}
		}

		[CommandGroup("warhuman", "warh")]
		public class HumanForceEnableCommand
		{
			[Command("all", null, "all", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceAll(ChatCommandContext ctx)
			{
				Core.ToggleHuman();
				string text = (Core.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}

			[Command("dunleymortiummiddle", "dmm", "dunleymortiummiddle", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceDunleyMortium(ChatCommandContext ctx)
			{
				BattlefieldDunleyMortiumMiddle.ToggleHuman();
				string text = (BattlefieldDunleyMortiumMiddle.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}

			[Command("draculacourtyardsouthwest", "dcsw", "draculacourtyardsouthwest", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceDraculaCourtyardSouthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardSouthWest.ToggleHuman();
				string text = (BattlefieldDraculaCourtyardSouthWest.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}

			[Command("draculacourtyardnorthwest", "dcnw", "draculacourtyardnorthwest", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceDraculaCourtyardNorthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorthWest.ToggleHuman();
				string text = (BattlefieldDraculaCourtyardNorthWest.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}

			[Command("draculacourtyardnorth", "dcn", "draculacourtyardnorthwest", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceDraculaCourtyardNorth(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorth.ToggleHuman();
				string text = (BattlefieldDraculaCourtyardNorth.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}

			[Command("draculagardenwest", "dgw", "draculagardenwest", "Enable/Disable human force to join the war, re-enter to toggle", null, true)]
			public static void ToggleHumanForceDraculaGardenWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaGardenWest.ToggleHuman();
				string text = (BattlefieldDraculaGardenWest.disable_human ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Human force is now " + text + "!");
			}
		}

		[CommandGroup("warvampire", "warv")]
		public class VampireForceEnableCommand
		{
			[Command("all", null, "all", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceAll(ChatCommandContext ctx)
			{
				Core.ToggleVampire();
				string text = (Core.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}

			[Command("dunleymortiummiddle", "dmm", "dunleymortiummiddle", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceDunleyMortium(ChatCommandContext ctx)
			{
				BattlefieldDunleyMortiumMiddle.ToggleVampire();
				string text = (BattlefieldDunleyMortiumMiddle.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}

			[Command("draculacourtyardsouthwest", "dcsw", "draculacourtyardsouthwest", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceDraculaCourtyardSouthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardSouthWest.ToggleVampire();
				string text = (BattlefieldDraculaCourtyardSouthWest.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}

			[Command("draculacourtyardnorthwest", "dcnw", "draculacourtyardnorthwest", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceDraculaCourtyardNorthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorthWest.ToggleVampire();
				string text = (BattlefieldDraculaCourtyardNorthWest.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}

			[Command("draculacourtyardnorth", "dcn", "draculacourtyardnorthwest", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceDraculaCourtyardNorth(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorth.ToggleVampire();
				string text = (BattlefieldDraculaCourtyardNorth.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}

			[Command("draculagardenwest", "dgw", "draculagardenwest", "Enable/Disable vampire force to join the war, re-enter to toggle", null, true)]
			public static void ToggleVampireForceDraculaGardenWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaGardenWest.ToggleVampire();
				string text = (BattlefieldDraculaGardenWest.disable_vampire ? "disabled" : "enabled");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Vampire force is now " + text + "!");
			}
		}

		[CommandGroup("warmute", "warm")]
		public class MuteCommand
		{
			[Command("all", null, "all", "Mute repetitive message from Tide of War MOD, re-enter to toggle", null, true)]
			public static void MuteAll(ChatCommandContext ctx)
			{
				Core.ToggleMute();
				string text = (Core.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}

			[Command("dunleymortiummiddle", "dmm", "dunleymortiummiddle", "Mute repetitive message for this battlefield, re-enter to toggle", null, true)]
			public static void MuteDunleyMortium(ChatCommandContext ctx)
			{
				BattlefieldDunleyMortiumMiddle.ToggleMute();
				string text = (BattlefieldDunleyMortiumMiddle.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}

			[Command("draculacourtyardsouthwest", "dcsw", "draculacourtyardsouthwest", "Mute repetitive message for this battlefield, re-enter to toggle", null, true)]
			public static void MuteDraculaCourtyardSouthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardSouthWest.ToggleMute();
				string text = (BattlefieldDraculaCourtyardSouthWest.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}

			[Command("draculacourtyardnorthwest", "dcnw", "draculacourtyardnorthwest", "Mute repetitive message for this battlefield, re-enter to toggle", null, true)]
			public static void MuteDraculaCourtyardNorthWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorthWest.ToggleMute();
				string text = (BattlefieldDraculaCourtyardNorthWest.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}

			[Command("draculacourtyardnorth", "dcn", "draculacourtyardnorthwest", "Mute repetitive message for this battlefield, re-enter to toggle", null, true)]
			public static void MuteDraculaCourtyardNorth(ChatCommandContext ctx)
			{
				BattlefieldDraculaCourtyardNorth.ToggleMute();
				string text = (BattlefieldDraculaCourtyardNorth.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}

			[Command("draculagardenwest", "dgw", "draculagardenwest", "Mute repetitive message for this battlefield, re-enter to toggle", null, true)]
			public static void MuteDraculaGardenWest(ChatCommandContext ctx)
			{
				BattlefieldDraculaGardenWest.ToggleMute();
				string text = (BattlefieldDraculaGardenWest.mute ? "mute" : "unmute");
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " Repetitive message is now " + text + "!");
			}
		}

		[CommandGroup("warstop", null)]
		public class StopWarCommand
		{
			[Command("all", null, "all", "Stop new mobs from spawning for all wars", null, true)]
			public static void StopWarAll(ChatCommandContext ctx)
			{
				Core.StopWar();
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " All wars are stopped, new mobs will not spawn");
			}

			[Command("dunleymortiummiddle", "dmm", "dunleymortiummiddle", "Stop new mobs from spawning for all wars", null, true)]
			public static void StopWarDunleyMortium(ChatCommandContext ctx)
			{
				BattlefieldDunleyMortiumMiddle.StopWar();
				ctx.Reply(Format.Color("[TideOfWar]", Color.Red) + " War at " + battlefieldDunleyMortiumMiddle + " is stopped, new mobs will not spawn");
			}

			[Command("