Decompiled source of Missing Content v1.0.5

Missing Content.dll

Decompiled 3 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using BepInEx;
using DM;
using FhpSLib;
using HarmonyLib;
using Landfall.TABS;
using Landfall.TABS.UnitEditor;
using Landfall.TABS.Workshop;
using MonoMod.Utils;
using SLMA;
using TFBGames;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Events;
using WebSocketSharp;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("MissingContent")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Castleron")]
[assembly: AssemblyProduct("MissingContent")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("7acfaef0-7669-4401-8bff-5a9a02e18c75")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
namespace AzzymoofMoreItems.Properties
{
	[CompilerGenerated]
	[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
	internal sealed class Settings : ApplicationSettingsBase
	{
		private static Settings defaultInstance = (Settings)(object)SettingsBase.Synchronized((SettingsBase)(object)new Settings());

		public static Settings Default => defaultInstance;
	}
}
namespace MissingContent
{
	public class BundleManager : MonoBehaviour
	{
		public static GameObject ring;

		public static GameObject wheel;

		public static GameObject CannonBase;

		public static GameObject CannonShot;

		public static GameObject UltraBox;

		public static GameObject PSBase;

		public static GameObject PS;

		public static GameObject Cannon;

		public static GameObject NeonSheild;

		public static GameObject FlameThrower;

		public void Awake()
		{
			LoadBundle("AzzymoofMoreItems.missingcontent");
		}

		public static string[] BundleNames()
		{
			return Assembly.GetExecutingAssembly().GetManifestResourceNames();
		}

		public static void LoadBundle(string assetBundleName)
		{
			using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(assetBundleName);
			UManager.bundle = AssetBundle.LoadFromStream(stream);
		}
	}
	public class Electrecial_Charge : MonoBehaviour
	{
		private void Awake()
		{
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Expected O, but got Unknown
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)((Component)((Component)this).transform.root).GetComponent<Unit>()))
			{
				((MonoBehaviour)this).StartCoroutine(AddCharge());
				((Component)this).gameObject.AddComponent<RemoveAfterSeconds>().seconds = 0.6f;
				((Component)this).gameObject.AddComponent<UnitDontWalkFor>().time = 0.6f;
				((Component)this).gameObject.GetComponent<UnitDontWalkFor>().Go();
				Object.Destroy((Object)(object)((Component)this).GetComponent<GenericBaseEffect>());
				GameObject val = Object.Instantiate<GameObject>((GameObject)SLMALoader.SDic["explosions"]["Leg_SuperBoxer_W"]);
				val.transform.position = ((Component)((Component)this).transform.root).GetComponent<Unit>().data.mainRig.position;
				Transform transform = val.transform;
				transform.localScale *= 5f;
				val.GetComponentInChildren<Explosion>().Explode();
			}
		}

		private IEnumerator AddCharge()
		{
			float a = float.Parse(((Component)((Component)this).transform.root).GetComponent<Unit>().data.muscleControl.ToString());
			float b = float.Parse(((Component)((Component)this).transform.root).GetComponent<Unit>().data.ragdollControl.ToString());
			float c = float.Parse(((Component)((Component)this).transform.root).GetComponentInChildren<Balance>().forceMultiplier.ToString());
			((Component)((Component)this).transform.root).GetComponentInChildren<Balance>().Fall();
			((Component)((Component)this).transform.root).GetComponent<Unit>().data.muscleControl = 0f;
			((Component)((Component)this).transform.root).GetComponentInChildren<Balance>().forceMultiplier = 0f - c;
			((Component)((Component)this).transform.root).GetComponent<Unit>().data.ragdollControl = 0f;
			yield return (object)new WaitForSeconds(0.5f);
			((Component)((Component)this).transform.root).GetComponent<Unit>().data.muscleControl = a;
			((Component)((Component)this).transform.root).GetComponent<Unit>().data.ragdollControl = b;
			((Component)((Component)this).transform.root).GetComponentInChildren<Balance>().forceMultiplier = c;
		}
	}
	public static class Existing_Units
	{
		public const string EnergyPistol = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSw3OSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OSwtMSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIlRBQkcgaGVsbWV0IDA2IiwiRmFybWVyIHNoaXJ0IDAyIiwiTmVvbiBhcm0gZ3VhcmQgMDEiLCJPdHRvbWFuIHBhbnRzIDAxIiwiUGlyYXRlIHNob2VzIDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6Ik5lb24gQnJlYWsgQmxhc3RlciIsImFiaWxpdGVzIjpbXSwiVm9jYWxQYXRoRGF0YSI6eyJDYXRlZ29yeSI6IkxlZ2FjeSBBdHRhY2sgVm9jYWxzIiwiRWZmZWN0IjoiRmxhZ0JlYXJlclN0YXkiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiTGVnYWN5IEF0dGFjayBWb2NhbHMvRmxhZ0JlYXJlclN0YXkiLCJMZWdhY3kgRGVhdGggVm9jYWxzL0ZsYWdCZWFyZXJTdGF5Il0sInBpdGNoIjowLjg5NDM5NjQyNDI5MzUxODF9";

		public const string EnergySword = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSw3OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSwtMSw3OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OSw3OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIlRBQkcgU25vd2JvYXJkIGhlbG1ldCAwMCIsIlRBQkcgYmFsYWtsYXZhIDAwIiwiRmFudGFzeSBHb29kIGNoZXN0IGFybW9yIDAwIiwid2lsbnlsIHBhbnRzIDAwIiwiRmFybWVyIGJlbHQgMDAiLCJQaXJhdGUgc2hvZXMgMDAiLCJOZW9uIGFybSBndWFyZCAwMSJdLCJMV25hbWUiOiIiLCJSV25hbWUiOiJOZW9uIFNoYXR0ZXJpbmcgU2hhcnBuZXNzIDAxIiwiYWJpbGl0ZXMiOltdLCJWb2NhbFBhdGhEYXRhIjp7IkNhdGVnb3J5IjoiUGlyYXRlIEF0dGFjayBWb2NhbHMiLCJFZmZlY3QiOiJUaHJvd2VyX0JvbWIiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiUGlyYXRlIEF0dGFjayBWb2NhbHMvVGhyb3dlcl9Cb21iIiwiUGlyYXRlIERlYXRoIFZvY2Fscy9UaHJvd2VyX0JvbWIiXSwicGl0Y2giOjAuOTIyNTQ2NzQ0MzQ2NjE4N30=";

		public const string Tesla = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSw3OSwtMSw0OCw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OF0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkZhbnRhc3kgRXZpbCBzaGlydCBhbmQgYXByb24gMDAiLCJNZWRpZXZhbCBwYW50cyAwMSIsIlJlbmFpc3NhbmNlIHNob2VzIDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6Ik5lb24gVGVzbGEgVG9ycmVudCIsImFiaWxpdGVzIjpbXSwiVm9jYWxQYXRoRGF0YSI6eyJDYXRlZ29yeSI6IkFuY2llbnQgQXR0YWNrIFZvY2FscyIsIkVmZmVjdCI6IlpldXMiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiQW5jaWVudCBBdHRhY2sgVm9jYWxzL1pldXMiLCJBbmNpZW50IERlYXRoIFZvY2Fscy9aZXVzIl0sInBpdGNoIjoxLjIzMjIwMDg2MDk3NzE3Mjl9";

		public const string GravityDude = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSw3OSw3OSwtMSw0OSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkxlZ2FjeSBzaGlydCAwNyIsIlJlbmFpc3NhbmNlIHBhbnRzIDAyIiwiTmVvbiBhcm0gZ3VhcmQgMDEiLCJOZW9uIG5lY2tsYWNlIDAwIiwiVEFCRyBNYXJpbmUgSGVsbWV0IDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6IiIsImFiaWxpdGVzIjpbIk5lb24gRm9yY2UgRmx1eCBQYWNrIl0sIlZvY2FsUGF0aERhdGEiOnsiQ2F0ZWdvcnkiOiJGYXJtZXIgQXR0YWNrIFZvY2FscyIsIkVmZmVjdCI6IldoZWVsYmFycm93IEEiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiRmFybWVyIEF0dGFjayBWb2NhbHMvV2hlZWxiYXJyb3cgQSIsIkZhcm1lciBEZWF0aCBWb2NhbHMvV2hlZWxiYXJyb3cgQSJdLCJwaXRjaCI6MC44NDYxMzgxNzkzMDIyMTU2fQ==";

		public const string Beamer = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSw0OSw3OSw0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkR5bmFzdHkgc2hpcnQgMDAiLCJMZWdhY3kgcGFudHMgMDYiLCJUQUJHIGhlbG1ldCAwMyIsIkFydGVtaXMgc2hvZXMgMDAiXSwiTFduYW1lIjoiIiwiUlduYW1lIjoiTmVvbiBCZWFtIEJvbWJhcmQiLCJhYmlsaXRlcyI6W10sIlZvY2FsUGF0aERhdGEiOnsiQ2F0ZWdvcnkiOiJSZWluYXNzYW5jZSBBdHRhY2sgVm9jYWxzIiwiRWZmZWN0IjoiTXVza2V0IiwiRWZmZWN0UGl0Y2giOjEuMCwiRWZmZWN0Vm9sdW1lIjoxLjB9LCJyZWZzIjpbIlJlaW5hc3NhbmNlIEF0dGFjayBWb2NhbHMvTXVza2V0IiwiUmVpbmFzc2FuY2UgRGVhdGggVm9jYWxzL011c2tldCJdLCJwaXRjaCI6MS4xNDk3NjA0ODQ2OTU0MzQ2fQ==";

		public const string NeonBitch = "eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSwtMSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIk5lb24gcmluZyAwMCIsIk5lb24gbmVja2xhY2UgMDAiLCJUQUJHIGJhbGFrbGF2YSAwMCIsIlRBQkcgc2hpcnQgMDMiLCJUQUJHIHdyYXBwaW5ncyBzaGlydCAwMCIsIlRBQkcgY2hlbWlzdCBtYXNrIDAwIiwiVEFCRyBwYW50cyAxMSIsIldpbGQgV2VzdCBzaG9lcyAwMCJdLCJMV25hbWUiOiIiLCJSV25hbWUiOiJOZW9uIERvdWJsZSBEZXNvbGF0aW9uIiwiYWJpbGl0ZXMiOltdLCJWb2NhbFBhdGhEYXRhIjp7IkNhdGVnb3J5IjoiVHJpYmFsIEF0dGFjayBWb2NhbHMiLCJFZmZlY3QiOiJDbHViIiwiRWZmZWN0UGl0Y2giOjEuMCwiRWZmZWN0Vm9sdW1lIjoxLjB9LCJyZWZzIjpbIlRyaWJhbCBBdHRhY2sgVm9jYWxzL0NsdWIiLCJUcmliYWwgRGVhdGggVm9jYWxzL0NsdWIiXSwicGl0Y2giOjEuMH0=";

		public const string VoiceBundles = "ewogICAgIlVuaXROYW1lcyI6IFsKICAgICAgICAiQW5jaWVudFRhbmsiLAogICAgICAgICJNYWNoaW5lIEd1bm5lciIsCiAgICAgICAgIk1hY2ViZWFyZXIiLAogICAgICAgICJTbmlwZXIiLAogICAgICAgICJNdXN0YXJkR0FTIiwKICAgICAgICAiSnVnZ2VybmF1dCIsCiAgICAgICAgIk51bkNodWNrcyIsCiAgICAgICAgIk11cmFkb3IiLAogICAgICAgICJ3b3JrZXIiLAogICAgICAgICJEZW1vbGlzaGVyIiwKICAgICAgICAiVGhlaWYiLAogICAgICAgICJSb2NrZXQgTGF1bmNoZXIiLAogICAgICAgICJhc3MiLAogICAgICAgICJHYXRoZXJlciIsCiAgICAgICAgIk0xNiIsCiAgICAgICAgIlNob3RndW5uZXIiLAogICAgICAgICJTaG92ZWwiCiAgICBdLAogICAgInZvaWNlQnVuZGxlcyI6IFsKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzg0NTA2MDg1fSxcInBpdGNoXCI6MC44MTU5NzcwOTY1NTc2MTcyfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjYyNzExMTE4fSxcInBpdGNoXCI6MS4xMTE1NTYwNTMxNjE2MjF9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzg0NTA2MDg1fSxcInBpdGNoXCI6MS4xNDE3MTcxOTU1MTA4NjQzfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTk2MTkzMDMxNH0sXCJwaXRjaFwiOjEuMjkwNTEyNDQyNTg4ODA2Mn0iLAogICAgICAgICJ7XCJkYXRhYmFzZUlEXCI6e1wibV9tb2RJRFwiOi0xLFwibV9JRFwiOjE3NDU4NTQ0Mjd9LFwicGl0Y2hcIjoxLjEwOTU0NTQ2OTI4NDA1Nzd9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjo3NTU1ODM2NjR9LFwicGl0Y2hcIjowLjgwNzkzNDUyMjYyODc4NDJ9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzgxMjUxNjM3fSxcInBpdGNoXCI6MS4xMjE2MDkzMzAxNzczMDcyfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjM1MjAzMTc3fSxcInBpdGNoXCI6MC42MzQwNDUxODM2NTg1OTk5fSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTY2MTYwNTE5Mn0sXCJwaXRjaFwiOjAuODQ0MTI3MzU3MDA2MDczfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MjM0NTU2NDN9LFwicGl0Y2hcIjowLjgwOTk0NTA0NjkwMTcwMjl9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDMxODE4NjZ9LFwicGl0Y2hcIjoxLjI3NjQzNzE2MzM1Mjk2NjR9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoyMDcyNjI3Njc3fSxcInBpdGNoXCI6MS4zOTk5OTk5NzYxNTgxNDJ9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDU1ODkwNjA4fSxcInBpdGNoXCI6MS4wfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjA2NTg2MTc5fSxcInBpdGNoXCI6MS4xMjc2NDE5MTYyNzUwMjQ1fSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTUyMDU2MDcwNn0sXCJwaXRjaFwiOjAuODUyMTcwNzY1Mzk5OTMyOX0iLAogICAgICAgICJ7XCJkYXRhYmFzZUlEXCI6e1wibV9tb2RJRFwiOi0xLFwibV9JRFwiOjE2NDAyOTg1NjV9LFwicGl0Y2hcIjowLjg5MjM4NTY2MTYwMjAyMDN9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDM4NDUzOTYwfSxcInBpdGNoXCI6MC44MDE5MDE4NzY5MjY0MjIxfSIKICAgIF0KfQ==";

		public static void CopyCustomUnit(this UnitBlueprint unit, string data, LandfallContentDatabase database, bool twohanded)
		{
			Debug.Log((object)data);
			Debug.Log((object)"--------");
			Debug.Log((object)Encoding.UTF8.GetString(Convert.FromBase64String(data)));
			CustomUnitBlueprint customUnitBlueprint = JsonUtility.FromJson<CustomUnitBlueprint>(Encoding.UTF8.GetString(Convert.FromBase64String(data)));
			unit.m_props = ExtraUtilites.stringarraytoClothes(customUnitBlueprint.Propnames.ToArray());
			if (!Ext.IsNullOrEmpty(customUnitBlueprint.LWname))
			{
				unit.LeftWeapon = ExtraUtilites.FindVanillaObject(database.GetWeapons(), customUnitBlueprint.LWname, (GameObject n) => ExtraUtilites.GetCleanName(((CharacterItem)((Component)n.transform.root).GetComponentInChildren<WeaponItem>()).Entity.Name));
			}
			else
			{
				unit.LeftWeapon = null;
			}
			if (!Ext.IsNullOrEmpty(customUnitBlueprint.RWname))
			{
				unit.RightWeapon = ExtraUtilites.FindVanillaObject(database.GetWeapons(), customUnitBlueprint.RWname, (GameObject n) => ExtraUtilites.GetCleanName(((CharacterItem)((Component)n.transform.root).GetComponentInChildren<WeaponItem>()).Entity.Name));
			}
			else
			{
				unit.RightWeapon = null;
			}
			unit.objectsToSpawnAsChildren = ExtraUtilites.stringarraytoMoves(customUnitBlueprint.abilites.ToArray());
			List<PropItemData> list = new List<PropItemData>();
			unit.holdinigWithTwoHands = twohanded;
			unit.m_propData = customUnitBlueprint.datas.ToArray();
		}

		public static void CopyVB(this UnitBlueprint unitBlueprint, string UName, LandfallContentDatabase db)
		{
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Expected O, but got Unknown
			VoiceBundles VoiceBundlesDecipherd = JsonUtility.FromJson<VoiceBundles>(Encoding.UTF8.GetString(Convert.FromBase64String("ewogICAgIlVuaXROYW1lcyI6IFsKICAgICAgICAiQW5jaWVudFRhbmsiLAogICAgICAgICJNYWNoaW5lIEd1bm5lciIsCiAgICAgICAgIk1hY2ViZWFyZXIiLAogICAgICAgICJTbmlwZXIiLAogICAgICAgICJNdXN0YXJkR0FTIiwKICAgICAgICAiSnVnZ2VybmF1dCIsCiAgICAgICAgIk51bkNodWNrcyIsCiAgICAgICAgIk11cmFkb3IiLAogICAgICAgICJ3b3JrZXIiLAogICAgICAgICJEZW1vbGlzaGVyIiwKICAgICAgICAiVGhlaWYiLAogICAgICAgICJSb2NrZXQgTGF1bmNoZXIiLAogICAgICAgICJhc3MiLAogICAgICAgICJHYXRoZXJlciIsCiAgICAgICAgIk0xNiIsCiAgICAgICAgIlNob3RndW5uZXIiLAogICAgICAgICJTaG92ZWwiCiAgICBdLAogICAgInZvaWNlQnVuZGxlcyI6IFsKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzg0NTA2MDg1fSxcInBpdGNoXCI6MC44MTU5NzcwOTY1NTc2MTcyfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjYyNzExMTE4fSxcInBpdGNoXCI6MS4xMTE1NTYwNTMxNjE2MjF9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzg0NTA2MDg1fSxcInBpdGNoXCI6MS4xNDE3MTcxOTU1MTA4NjQzfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTk2MTkzMDMxNH0sXCJwaXRjaFwiOjEuMjkwNTEyNDQyNTg4ODA2Mn0iLAogICAgICAgICJ7XCJkYXRhYmFzZUlEXCI6e1wibV9tb2RJRFwiOi0xLFwibV9JRFwiOjE3NDU4NTQ0Mjd9LFwicGl0Y2hcIjoxLjEwOTU0NTQ2OTI4NDA1Nzd9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjo3NTU1ODM2NjR9LFwicGl0Y2hcIjowLjgwNzkzNDUyMjYyODc4NDJ9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNzgxMjUxNjM3fSxcInBpdGNoXCI6MS4xMjE2MDkzMzAxNzczMDcyfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjM1MjAzMTc3fSxcInBpdGNoXCI6MC42MzQwNDUxODM2NTg1OTk5fSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTY2MTYwNTE5Mn0sXCJwaXRjaFwiOjAuODQ0MTI3MzU3MDA2MDczfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MjM0NTU2NDN9LFwicGl0Y2hcIjowLjgwOTk0NTA0NjkwMTcwMjl9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDMxODE4NjZ9LFwicGl0Y2hcIjoxLjI3NjQzNzE2MzM1Mjk2NjR9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoyMDcyNjI3Njc3fSxcInBpdGNoXCI6MS4zOTk5OTk5NzYxNTgxNDJ9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDU1ODkwNjA4fSxcInBpdGNoXCI6MS4wfSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6NjA2NTg2MTc5fSxcInBpdGNoXCI6MS4xMjc2NDE5MTYyNzUwMjQ1fSIsCiAgICAgICAgIntcImRhdGFiYXNlSURcIjp7XCJtX21vZElEXCI6LTEsXCJtX0lEXCI6MTUyMDU2MDcwNn0sXCJwaXRjaFwiOjAuODUyMTcwNzY1Mzk5OTMyOX0iLAogICAgICAgICJ7XCJkYXRhYmFzZUlEXCI6e1wibV9tb2RJRFwiOi0xLFwibV9JRFwiOjE2NDAyOTg1NjV9LFwicGl0Y2hcIjowLjg5MjM4NTY2MTYwMjAyMDN9IiwKICAgICAgICAie1wiZGF0YWJhc2VJRFwiOntcIm1fbW9kSURcIjotMSxcIm1fSURcIjoxNDM4NDUzOTYwfSxcInBpdGNoXCI6MC44MDE5MDE4NzY5MjY0MjIxfSIKICAgIF0KfQ==")));
			IEnumerable<QuickVC> source = VoiceBundlesDecipherd.voiceBundles.Select((string n) => JsonUtility.FromJson<QuickVC>(n));
			Dictionary<string, QuickVC> dictionary = source.ToDictionary((QuickVC b) => VoiceBundlesDecipherd.UnitNames[VoiceBundlesDecipherd.voiceBundles.FindIndex((string n) => n == JsonUtility.ToJson((object)b))].ToLower());
			try
			{
				unitBlueprint.voiceBundle = db.GetVoiceBundle(dictionary[UName.ToLower()].databaseID);
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unitBlueprint, (object?)new AudioPathData(unitBlueprint.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unitBlueprint.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			catch (Exception)
			{
				Debug.Log((object)UName);
				Debug.LogError((object)"ERRRRRRRORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR\n\n\n\n\n\n\n\n\n");
			}
		}
	}
	public static class Extensions
	{
		public static float iforgetthename(this float flo, float other)
		{
			float num = 0f;
			for (int i = 0; (float)i < other; i++)
			{
				num += flo * flo;
			}
			return num;
		}
	}
	public class ExtraUtilites : MonoBehaviour
	{
		public static Dictionary<string, string> language = Localizer.GetLanguage((Language)0);

		public static Dictionary<string, string> Reverselanguage = new Dictionary<string, string>();

		public static string Unitspath = GamePaths.DataPath + "/Units";

		private static readonly string[] sanitizationFilter = new string[35]
		{
			"Icon_Legacy_", "PROP_", "Icons_128x128_", "Icons_", "Icon_", "CP_", "P_", "E_", " Prefabs_VB", " Effects_VB",
			"_1", "_2", "_3", " (1)", " (2)", " (3)", " (4)", " (5)", " (6)", "B_",
			"Move_", "Leg_", "1_", "12_", "15_", "6__", "7_", "14_", "2_", "8_",
			"10_", "16_", "5_", "3_", "_"
		};

		private void Awake()
		{
			if (!Directory.Exists(Unitspath))
			{
				Directory.CreateDirectory(Unitspath);
			}
			for (int i = 0; i < language.ToArray().Length; i++)
			{
				try
				{
					Reverselanguage.Add(GetCleanName(language.Keys.ToArray()[i]), language.Keys.ToArray()[i]);
				}
				catch (Exception)
				{
				}
			}
		}

		private void Update()
		{
			if (!Loader.debug || !Input.GetKeyDown((KeyCode)291))
			{
				return;
			}
			Faction MCfaction = Object.FindObjectsOfType<Faction>().ToList().Find((Faction n) => n.Entity.Name == "MC");
			File.Create(Unitspath + "/VoiceBundle.txt").Close();
			string s = JsonUtility.ToJson((object)new VoiceBundles(MCfaction.Units.Select((UnitBlueprint n) => n.Entity.Name).ToDictionary((string b) => new QuickVC(MCfaction.Units.ToList().Find((UnitBlueprint v) => v.Entity.Name == b).voiceBundle.Entity.GUID, MCfaction.Units.ToList().Find((UnitBlueprint v) => v.Entity.Name == b).VoicePitch))), true);
			File.WriteAllText(Unitspath + "/VoiceBundle.txt", Convert.ToBase64String(Encoding.UTF8.GetBytes(s)));
		}

		public static string GetCleanName(string name)
		{
			string text;
			if (language.ContainsKey(name))
			{
				text = language[name];
			}
			else
			{
				text = name;
				string[] array = sanitizationFilter;
				foreach (string oldValue in array)
				{
					text = text.Replace(oldValue, "");
				}
			}
			return text;
		}

		public static GameObject GetClothingFromMFDName(string name)
		{
			return GetClothing(name);
		}

		public static GameObject GetClothing(string name)
		{
			return FindVanillaObject(ContentDatabase.Instance().LandfallContentDatabase.GetCharacterProps(), name, (GameObject c) => ((CharacterItem)c.GetComponentInChildren<PropItem>()).Entity.Name);
		}

		public static Sprite GetSprite(string name)
		{
			FactionIcon val = FindVanillaObject(ContentDatabase.Instance().GetFactionIcons(), name, (FactionIcon i) => i.Entity.Name);
			bool flag = (Object)(object)val != (Object)null;
			try
			{
				return val.Entity.SpriteIcon;
			}
			catch (Exception)
			{
				return null;
			}
		}

		public static T FindVanillaObject<T>(IEnumerable<T> source, string name, Func<T, string> getName)
		{
			return source.FirstOrDefault((T o) => name == GetCleanName(getName(o)));
		}

		public static GameObject[] stringarraytoClothes(string[] strings)
		{
			List<GameObject> list = new List<GameObject>();
			for (int i = 0; i < strings.Length; i++)
			{
				list.Add(GetClothing(strings[i]));
			}
			return list.ToArray();
		}

		public static GameObject[] stringarraytoMoves(string[] strings)
		{
			List<GameObject> list = new List<GameObject>();
			for (int i = 0; i < strings.Length; i++)
			{
				list.Add(FindVanillaObject(ContentDatabase.Instance().LandfallContentDatabase.GetCombatMoves(), strings[i], (GameObject c) => ((CharacterItem)c.GetComponentInChildren<SpecialAbility>()).Entity.Name));
			}
			return list.ToArray();
		}

		public static void AddAbilityToUC(GameObject ability, string name, ContentDatabase contentDatabase, Sprite icon = null)
		{
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)((Component)ability.transform.root).GetComponentInChildren<SpecialAbility>()))
			{
				((CharacterItem)((Component)ability.transform.root).GetComponentInChildren<SpecialAbility>()).Entity.Name = name;
				((CharacterItem)((Component)ability.transform.root).GetComponentInChildren<SpecialAbility>()).Entity.SetSpriteIcon(icon);
				Dictionary<DatabaseID, GameObject> dictionary = (Dictionary<DatabaseID, GameObject>)typeof(LandfallContentDatabase).GetField("m_combatMoves", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(contentDatabase.LandfallContentDatabase);
				dictionary.Add(((CharacterItem)((Component)ability.transform.root).GetComponentInChildren<SpecialAbility>()).Entity.GUID, ability);
				typeof(LandfallContentDatabase).GetField("m_combatMoves", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(contentDatabase.LandfallContentDatabase, dictionary);
				Dictionary<DatabaseID, Object> dictionary2 = (Dictionary<DatabaseID, Object>)typeof(AssetLoader).GetField("m_nonStreamableAssets", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(contentDatabase.AssetLoader);
				dictionary2.Add(((CharacterItem)((Component)ability.transform.root).GetComponentInChildren<SpecialAbility>()).Entity.GUID, (Object)(object)ability);
				typeof(AssetLoader).GetField("m_nonStreamableAssets", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(contentDatabase.AssetLoader, dictionary2);
			}
		}

		public static void AddWeaponToUC(GameObject Weapon, string name, ContentDatabase contentDatabase, Sprite icon = null)
		{
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)((Component)Weapon.transform.root).GetComponentInChildren<WeaponItem>()))
			{
				((CharacterItem)((Component)Weapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.Name = name;
				((CharacterItem)((Component)Weapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.SetSpriteIcon(icon);
				Dictionary<DatabaseID, GameObject> dictionary = (Dictionary<DatabaseID, GameObject>)typeof(LandfallContentDatabase).GetField("m_weapons", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(contentDatabase.LandfallContentDatabase);
				dictionary.Add(((CharacterItem)((Component)Weapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.GUID, Weapon);
				typeof(LandfallContentDatabase).GetField("m_weapons", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(contentDatabase.LandfallContentDatabase, dictionary);
				Dictionary<DatabaseID, Object> dictionary2 = (Dictionary<DatabaseID, Object>)typeof(AssetLoader).GetField("m_nonStreamableAssets", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(contentDatabase.AssetLoader);
				dictionary2.Add(((CharacterItem)((Component)Weapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.GUID, (Object)(object)Weapon);
				typeof(AssetLoader).GetField("m_nonStreamableAssets", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(contentDatabase.AssetLoader, dictionary2);
			}
		}

		public static int[] ParseAlot(string[] strings)
		{
			List<int> list = new List<int>();
			for (int i = 0; i < strings.Length; i++)
			{
				if (!Ext.IsNullOrEmpty(strings[i]))
				{
					list.Add(int.Parse(strings[i]));
				}
			}
			return list.ToArray();
		}

		public static int[] SplitParse(string thisstring)
		{
			List<int> list = new List<int>();
			for (int num = 0; num < thisstring.Split(new char[1] { '/' }).Length; num++)
			{
				if (!Ext.IsNullOrEmpty(thisstring.Split(new char[1] { '/' })[num]))
				{
					list.Add(int.Parse(thisstring.Split(new char[1] { '/' })[num]));
				}
			}
			return list.ToArray();
		}

		public static void Save()
		{
			UnitBlueprint[] array = Resources.FindObjectsOfTypeAll<UnitBlueprint>();
			for (int i = 0; i < array.Length; i++)
			{
				if (array[i].FilePath != "" && array[i].FilePath != null)
				{
					CustomUnitBlueprint customUnitBlueprint = new CustomUnitBlueprint();
					customUnitBlueprint.Propnames.AddRange(array[i].m_props.Select((GameObject n) => GetCleanName(((CharacterItem)((Component)n.transform.root).GetComponentInChildren<PropItem>()).Entity.Name)));
					customUnitBlueprint.datas.AddRange(array[i].m_propData);
					if ((Object)(object)array[i].RightWeapon != (Object)null)
					{
						customUnitBlueprint.RWname = GetCleanName(((CharacterItem)((Component)array[i].RightWeapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.Name);
					}
					if ((Object)(object)array[i].LeftWeapon != (Object)null)
					{
						customUnitBlueprint.LWname = GetCleanName(((CharacterItem)((Component)array[i].LeftWeapon.transform.root).GetComponentInChildren<WeaponItem>()).Entity.Name);
					}
					customUnitBlueprint.abilites = array[i].objectsToSpawnAsChildren.Select((GameObject n) => GetCleanName(((CharacterItem)((Component)n.transform.root).GetComponentInChildren<SpecialAbility>()).Entity.Name)).ToList();
					customUnitBlueprint.VocalPathData = array[i].VocalPathData;
					customUnitBlueprint.pitch = array[i].VoicePitch;
					customUnitBlueprint.refs = new string[2]
					{
						array[i].VocalRef,
						array[i].DeathRef
					};
					string contents = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonUtility.ToJson((object)customUnitBlueprint)));
					File.WriteAllText(Unitspath + "/" + array[i].Entity.Name + ".txt", contents);
					File.WriteAllText(Unitspath + "/" + array[i].Entity.Name + "DeSerialized.txt", JsonUtility.ToJson((object)customUnitBlueprint));
				}
			}
		}

		public static Color rgbToColor(int r, int g, int b)
		{
			//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_0021: Unknown result type (might be due to invalid IL or missing references)
			return new Color((float)(r / 255), (float)(g / 255), (float)(b / 255));
		}
	}
	public class ForceNoHealthbar : MonoBehaviour
	{
		private Unit unit;

		private void Awake()
		{
			unit = ((Component)((Component)this).transform.root).GetComponent<Unit>();
		}

		private void Update()
		{
			unit.SetHealthBarActive(false);
		}
	}
	public class Impact_frame : MonoBehaviour
	{
		public int Strength = 0;

		private void Awake()
		{
			((MonoBehaviour)this).StartCoroutine(enumerator());
		}

		private IEnumerator enumerator()
		{
			float a = float.Parse(Time.timeScale.ToString());
			Time.timeScale = 0f;
			for (int i = 0; i < Strength; i++)
			{
				yield return (object)new WaitForEndOfFrame();
			}
			Time.timeScale = a;
		}
	}
	public class LanguageNonsense
	{
		public static void Init()
		{
			Dictionary<Language, Dictionary<string, string>> dictionary = (Dictionary<Language, Dictionary<string, string>>)typeof(Localizer).GetField("m_localization", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null);
			Dictionary<string, string> dictionary2 = new Dictionary<string, string>();
			Dictionary<string, string> dictionary3 = new Dictionary<string, string>();
			Dictionary<string, string> dictionary4 = new Dictionary<string, string>();
			dictionary2.Add("FLAME_THROWER", "Flame Thrower");
			dictionary3.Add("FLAME_THROWER", "Lance-flammes");
			dictionary4.Add("FLAME_THROWER", "火焰喷射器");
			dictionary2.Add("ZOMBIE_BITE", "Zombie Bite");
			dictionary3.Add("ZOMBIE_BITE", "Morsure de zombie");
			dictionary4.Add("ZOMBIE_BITE", "僵尸咬伤");
			dictionary2.Add("MOVE_NEON_BLOCKSHIELD", "Neon Shield");
			dictionary3.Add("MOVE_NEON_BLOCKSHIELD", "Bouclier néon");
			dictionary4.Add("MOVE_NEON_BLOCKSHIELD", "霓虹盾");
			Extensions.AddRange<string, string>(dictionary[(Language)0], dictionary2);
			Extensions.AddRange<string, string>(dictionary[(Language)1], dictionary3);
			Extensions.AddRange<string, string>(dictionary[(Language)7], dictionary4);
			typeof(Localizer).GetField("m_localization", BindingFlags.Static | BindingFlags.NonPublic).SetValue(null, dictionary);
		}
	}
	[BepInPlugin("Castleron.MissingContent", "MissingContent", "1.1.0")]
	internal class Loader : BaseUnityPlugin
	{
		public static bool debug;

		private void Awake()
		{
			((MonoBehaviour)this).StartCoroutine("Call");
		}

		private IEnumerator Call()
		{
			yield return (object)new WaitUntil((Func<bool>)(() => (Object)(object)Object.FindObjectOfType<ServiceLocator>() != (Object)null));
			yield return (object)new WaitUntil((Func<bool>)(() => ServiceLocator.GetService<ISaveLoaderService>() != null));
			yield return (object)new WaitForSeconds(0.01f);
			Harmony harmony = new Harmony("MissingContent");
			harmony.PatchAll();
			Debug.Log((object)"Loading AzzymoofMoreItems!");
			SLMALoader.GetInstance();
			ExtraUtilites.Save();
			GameObject obj = new GameObject("Extra Utilites");
			Object.DontDestroyOnLoad((Object)(object)obj);
			obj.AddComponent<ExtraUtilites>();
			obj.AddComponent<BundleManager>();
			LandfallContentDatabase landfallContentDatabase = ContentDatabase.Instance().LandfallContentDatabase;
			UManager.Init(landfallContentDatabase);
			new Harmony("AzzymoofMoreItems").PatchAll();
			UnitBlueprint[] array = Resources.FindObjectsOfTypeAll<UnitBlueprint>();
			debug = true;
			for (int i = 0; i < array.Length; i++)
			{
				UManager.SetBlueprint(array[i], landfallContentDatabase);
				array[i].Validate();
			}
			GameObject[] array2 = Resources.FindObjectsOfTypeAll<GameObject>();
			for (int j = 0; j < array2.Length; j++)
			{
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<Explosion>()))
				{
					UManager.SetExplosion(array2[j]);
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<WeaponItem>()))
				{
					UManager.SetWeapon(array2[j], array2[j].GetComponent<HandType>(), array2[j].GetComponent<Team>(), array2[j].GetComponent<Unit>(), array2[j].GetComponent<MeleeWeapon>(), array2[j].GetComponent<RangeWeapon>(), landfallContentDatabase);
					if (Object.op_Implicit((Object)(object)array2[j].GetComponent<MeleeWeapon>()))
					{
						array2[j].GetComponentInChildren<MeleeWeapon>().Validate();
					}
					if (Object.op_Implicit((Object)(object)array2[j].GetComponent<RangeWeapon>()))
					{
						array2[j].GetComponentInChildren<RangeWeapon>().Validate();
					}
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<ProjectileHit>()))
				{
					UManager.SetProjectile(array2[j], array2[j].GetComponent<ProjectileHit>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<PlaySoundEffect>()))
				{
					UManager.SetEffects(array2[j]);
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<Unit>()))
				{
					UManager.SetUnits(array2[j].GetComponent<Unit>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<SpecialAbility>()))
				{
					UManager.SetCombatMove(array2[j], array2[j].GetComponent<DodgeMove>(), array2[j].GetComponent<BlockMove>(), array2[j].GetComponentInChildren<SpawnObject>(), array2[j].GetComponent<Cost>(), array2[j].GetComponent<Wings>(), array2[j].GetComponent<ReaperWings>(), landfallContentDatabase);
				}
				if (Object.op_Implicit((Object)(object)array2[j].GetComponent<PropItem>()))
				{
					UManager.SetClothes(array2[j], array2[j].GetComponent<CharacterItem>(), array2[j].GetComponent<Renderer>(), array2[j].GetComponent<MeshRenderer>(), array2[j].GetComponent<SkinnedMeshRenderer>(), landfallContentDatabase);
				}
				UManager.SetAllGameObject(array2[j], landfallContentDatabase);
				if (Object.op_Implicit((Object)(object)array2[j].GetComponentInChildren<PlaySoundEffect>()))
				{
					PlaySoundEffect[] componentsInChildren = array2[j].GetComponentsInChildren<PlaySoundEffect>();
					for (int k = 0; k < componentsInChildren.Length; k++)
					{
						componentsInChildren[k].Validate();
					}
				}
			}
			Faction neon = (Faction)SLMATool.SLMADic["Neon"];
			Faction modren = (Faction)SLMATool.SLMADic["Modern"];
			neon.Units = neon.GetRearrangedUnits();
			modren.Units = modren.GetRearrangedUnits();
			ServiceLocator.GetService<CustomContentLoaderModIO>().QuickRefresh((WorkshopContentType)5, (Action)null);
			Debug.Log((object)"Successfully loaded Missing Content!");
		}
	}
	public static class ModContent
	{
		public static GameObject GatlingNeon;

		public static GameObject GatlingNeonGun;
	}
	[Serializable]
	public class QuickVC
	{
		public DatabaseID databaseID;

		public float pitch;

		public QuickVC(DatabaseID databaseID, float pitch)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			this.databaseID = databaseID;
			this.pitch = pitch;
		}
	}
	public class SummonRing : MonoBehaviour
	{
		private void Awake()
		{
			//IL_00a1: 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_00ba: 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_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: 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_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: 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_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: 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_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Expected O, but got Unknown
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_015d: Expected O, but got Unknown
			//IL_015d: 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_0168: Expected O, but got Unknown
			//IL_0169: Expected O, but got Unknown
			//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Expected O, but got Unknown
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ec: 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_0210: 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_0306: Expected O, but got Unknown
			//IL_0365: Unknown result type (might be due to invalid IL or missing references)
			//IL_036f: Expected O, but got Unknown
			if (!Object.op_Implicit((Object)(object)((Component)((Component)this).transform.root).GetComponent<Unit>()))
			{
				return;
			}
			if (!Object.op_Implicit((Object)(object)((Component)((Component)this).transform.root).GetComponentInChildren<GenericBaseEffect>()))
			{
				Object.Instantiate<GameObject>(UPool.MyPool.GetObject("NeonCharge"), ((Component)this).transform.root);
			}
			((Component)this).gameObject.AddComponent<RemoveAfterSeconds>().seconds = 9f;
			GameObject val = Object.Instantiate<GameObject>(BundleManager.ring);
			val.transform.position = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>().data.mainRig.position - new Vector3(0f, 11f, 0f);
			Transform transform = val.transform;
			transform.localScale *= 1.5f;
			val.AddComponent<CodeAnimation>();
			CodeAnimationInstance[] animations = (CodeAnimationInstance[])(object)new CodeAnimationInstance[1]
			{
				new CodeAnimationInstance
				{
					animationType = (AnimationType)0,
					animationUse = (AnimationUse)0,
					curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f),
					direction = new Vector3(0f, 1f, 0f),
					multiplier = 10f,
					endEvent = new UnityEvent(),
					startEvent = new UnityEvent(),
					timedEvent = new UnityEvent()
				}
			};
			val.GetComponent<CodeAnimation>().animationSpeed = 1.5f;
			val.GetComponent<CodeAnimation>().animations = animations;
			val.GetComponent<CodeAnimation>().PlayIn();
			val.AddComponent<RemoveAfterSeconds>().seconds = 9f;
			for (int i = 0; i < 5; i++)
			{
				UnitBlueprint val2 = (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_LEGACY_LEG_BOXER"];
				GameObject[] array = val2.Spawn(val.transform.position + new Vector3(0f, 1f, 0f), Quaternion.identity, ((Component)((Component)this).transform.root).GetComponent<Unit>().data.targetData.team, 1f, (UnitPoolInfo?)null);
				s.AddCopiedComponent<CodeAnimation>(array[0], val.GetComponent<CodeAnimation>());
				array[0].GetComponent<CodeAnimation>().PlayIn();
				array[0].AddComponent<KillAfterSeconds>().seconds = 8f;
				array[0].AddComponent<SinkOnDeath>();
				for (int j = 0; j < ((Component)array[0].transform.root).GetComponentsInChildren<CollisionWeapon>().Length; j++)
				{
					CollisionWeapon obj = ((Component)array[0].transform.root).GetComponentsInChildren<CollisionWeapon>()[j];
					obj.damage /= 4f;
				}
				for (int k = 0; k < ((Component)array[0].transform.root).GetComponentsInChildren<Renderer>(true).Length; k++)
				{
					for (int l = 0; l < ((Component)array[0].transform.root).GetComponentsInChildren<Renderer>(true)[k].materials.Length; l++)
					{
						((Component)array[0].transform.root).GetComponentsInChildren<Renderer>(true)[k].materials[l] = (Material)SLMALoader.SDic["materials"]["Glow_Neon"];
					}
					((Component)array[0].transform.root).GetComponentsInChildren<Renderer>(true)[k].material = (Material)SLMALoader.SDic["materials"]["Glow_Neon"];
				}
				DataHandler data = ((Component)array[0].transform.root).GetComponent<Unit>().data;
				data.health *= 2.5f;
				array[0].AddComponent<ForceNoHealthbar>();
			}
		}
	}
	public static class UManager
	{
		public class Utility : MonoBehaviour
		{
			public static class PrimitiveHelper
			{
				private static Dictionary<PrimitiveType, Mesh> primitiveMeshes = new Dictionary<PrimitiveType, Mesh>();

				public static GameObject CreatePrimitive(PrimitiveType type, bool withCollider)
				{
					//IL_001d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0023: Expected O, but got Unknown
					//IL_0029: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					if (withCollider)
					{
						return GameObject.CreatePrimitive(type);
					}
					GameObject val = new GameObject(((object)(PrimitiveType)(ref type)).ToString());
					val.AddComponent<MeshFilter>().sharedMesh = GetPrimitiveMesh(type);
					val.AddComponent<MeshRenderer>();
					return val;
				}

				public static Mesh GetPrimitiveMesh(PrimitiveType type)
				{
					//IL_0006: 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_0014: Unknown result type (might be due to invalid IL or missing references)
					if (!primitiveMeshes.ContainsKey(type))
					{
						CreatePrimitiveMesh(type);
					}
					return primitiveMeshes[type];
				}

				private static Mesh CreatePrimitiveMesh(PrimitiveType type)
				{
					//IL_0001: 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)
					GameObject val = GameObject.CreatePrimitive(type);
					Mesh sharedMesh = val.GetComponent<MeshFilter>().sharedMesh;
					Object.Destroy((Object)(object)val);
					primitiveMeshes[type] = sharedMesh;
					return sharedMesh;
				}
			}

			public static class ItemCategorizer
			{
				public static GameObject SetTag(GameObject item, string categoryName = "Missing Content", TagType tagType = 0)
				{
					//IL_001f: 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_0028: Unknown result type (might be due to invalid IL or missing references)
					//IL_0037: Unknown result type (might be due to invalid IL or missing references)
					try
					{
						CharacterItem componentInChildren = item.GetComponentInChildren<CharacterItem>();
						if (Object.op_Implicit((Object)(object)componentInChildren))
						{
							CharacterItem val = componentInChildren;
							List<Tag> list = new List<Tag>();
							Tag item2 = default(Tag);
							item2.tagType = tagType;
							item2.value = categoryName;
							list.Add(item2);
							val.tags = list;
						}
						return item;
					}
					catch (Exception ex)
					{
						Debug.Log((object)ex);
						return item;
					}
				}
			}

			public static Sprite LoadBundleTextureToSprite(string name)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Expected O, but got Unknown
				//IL_003d: 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)
				Texture2D val = (Texture2D)bundle.LoadAsset("Assets/" + name);
				((Texture)val).filterMode = (FilterMode)0;
				return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f));
			}

			public static GameObject LoadBundleGameObject(string name, bool AddToUpool = false, int databaseid = 0)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0012: Expected O, but got Unknown
				GameObject val = (GameObject)bundle.LoadAsset(name);
				if (AddToUpool)
				{
					ItemCategorizer.SetTag(val, "Missing Content", (TagType)0);
					return UPool.MyPool.AddObject(val.GetComponentInChildren<CharacterItem>(true).Entity.Name, val, true, (HideFlags)61, (Sprite)null, databaseid, true);
				}
				return val;
			}

			public static AudioClip LoadBundleAudioClip(string name)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Expected O, but got Unknown
				return (AudioClip)bundle.LoadAsset("Assets/" + name);
			}

			public static Material LoadBundleMaterial(string name)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Expected O, but got Unknown
				return (Material)bundle.LoadAsset("Assets/" + name);
			}

			public static RuntimeAnimatorController LoadBundleController(string name)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Expected O, but got Unknown
				return (RuntimeAnimatorController)bundle.LoadAsset("Assets/" + name);
			}

			public static void AddToUnitLib(GameObject UnitBaseObject)
			{
				//IL_0035: Unknown result type (might be due to invalid IL or missing references)
				//IL_003a: 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)
				Unit component = UnitBaseObject.GetComponent<Unit>();
				if ((Object)(object)component == (Object)null || component.Entity == null)
				{
					Debug.LogError((object)"UnitBaseObject does not contain a valid Unit or Entity component.");
					return;
				}
				DatabaseID gUID = component.Entity.GUID;
				Debug.Log((object)$"Attempting to add Unit with GUID: {gUID}");
				unitBases.Add(UnitBaseObject.GetComponentInChildren<Unit>());
			}
		}

		private static UnitBlueprint rider;

		private static UnitBlueprint rider2;

		private static GameObject zombieBase;

		private static Material zombieMaterial;

		public static string comment;

		public static AssetBundle bundle;

		public static List<Unit> unitBases = new List<Unit>();

		public static void Init(LandfallContentDatabase db)
		{
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Expected O, but got Unknown
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Expected O, but got Unknown
			//IL_0256: Unknown result type (might be due to invalid IL or missing references)
			//IL_0260: Expected O, but got Unknown
			//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Unknown result type (might be due to invalid IL or missing references)
			//IL_0416: Expected O, but got Unknown
			//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aaa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad1: Expected O, but got Unknown
			//IL_0692: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0754: Unknown result type (might be due to invalid IL or missing references)
			//IL_0775: Unknown result type (might be due to invalid IL or missing references)
			//IL_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b64: Expected O, but got Unknown
			//IL_0c01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c08: Expected O, but got Unknown
			//IL_0c33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3a: Expected O, but got Unknown
			//IL_0c53: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5a: Expected O, but got Unknown
			//IL_0c73: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7a: Expected O, but got Unknown
			//IL_0c93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9a: Expected O, but got Unknown
			//IL_0cb3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cba: Expected O, but got Unknown
			//IL_0cd3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cda: Expected O, but got Unknown
			//IL_0d05: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d0c: Expected O, but got Unknown
			//IL_0d43: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4e: Expected O, but got Unknown
			//IL_0d52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d63: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dce: Expected O, but got Unknown
			//IL_0dce: Expected O, but got Unknown
			//IL_0ded: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e17: Expected O, but got Unknown
			//IL_0e17: Expected O, but got Unknown
			//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e60: Expected O, but got Unknown
			//IL_0e60: Expected O, but got Unknown
			//IL_0e7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e95: Expected O, but got Unknown
			//IL_0eb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee2: Expected O, but got Unknown
			//IL_0ee2: Expected O, but got Unknown
			//IL_0f01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f2b: Expected O, but got Unknown
			//IL_0f2b: Expected O, but got Unknown
			//IL_0f4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f60: Expected O, but got Unknown
			//IL_0f7f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f95: Expected O, but got Unknown
			//IL_0fb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fca: Expected O, but got Unknown
			//IL_0fe9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fff: Expected O, but got Unknown
			//IL_101e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1034: Expected O, but got Unknown
			//IL_1053: Unknown result type (might be due to invalid IL or missing references)
			//IL_1069: Expected O, but got Unknown
			//IL_1088: Unknown result type (might be due to invalid IL or missing references)
			//IL_109e: Expected O, but got Unknown
			//IL_10bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d3: Expected O, but got Unknown
			//IL_10f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1112: Unknown result type (might be due to invalid IL or missing references)
			//IL_111c: Expected O, but got Unknown
			//IL_111c: Expected O, but got Unknown
			//IL_113b: Unknown result type (might be due to invalid IL or missing references)
			//IL_115b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1165: Expected O, but got Unknown
			//IL_1165: Expected O, but got Unknown
			//IL_1184: Unknown result type (might be due to invalid IL or missing references)
			//IL_119a: Expected O, but got Unknown
			//IL_11b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_11cf: Expected O, but got Unknown
			//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_1204: Expected O, but got Unknown
			//IL_1241: Unknown result type (might be due to invalid IL or missing references)
			//IL_1261: Unknown result type (might be due to invalid IL or missing references)
			//IL_126b: Expected O, but got Unknown
			//IL_126b: Expected O, but got Unknown
			//IL_1296: Unknown result type (might be due to invalid IL or missing references)
			//IL_12b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_12c0: Expected O, but got Unknown
			//IL_12c0: Expected O, but got Unknown
			//IL_1310: Unknown result type (might be due to invalid IL or missing references)
			//IL_1330: Unknown result type (might be due to invalid IL or missing references)
			//IL_133a: Expected O, but got Unknown
			//IL_133a: Expected O, but got Unknown
			//IL_1365: Unknown result type (might be due to invalid IL or missing references)
			//IL_1385: Unknown result type (might be due to invalid IL or missing references)
			//IL_138f: Expected O, but got Unknown
			//IL_138f: Expected O, but got Unknown
			//IL_13ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_13da: Unknown result type (might be due to invalid IL or missing references)
			//IL_13e4: Expected O, but got Unknown
			//IL_13e4: Expected O, but got Unknown
			//IL_140f: Unknown result type (might be due to invalid IL or missing references)
			//IL_142f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1439: Expected O, but got Unknown
			//IL_1439: Expected O, but got Unknown
			//IL_1464: Unknown result type (might be due to invalid IL or missing references)
			//IL_1484: Unknown result type (might be due to invalid IL or missing references)
			//IL_148e: Expected O, but got Unknown
			//IL_148e: Expected O, but got Unknown
			//IL_14b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_14d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_14e1: Expected O, but got Unknown
			//IL_14e1: Expected O, but got Unknown
			//IL_1507: Unknown result type (might be due to invalid IL or missing references)
			//IL_1527: Unknown result type (might be due to invalid IL or missing references)
			//IL_1531: Expected O, but got Unknown
			//IL_1531: Expected O, but got Unknown
			//IL_082a: Unknown result type (might be due to invalid IL or missing references)
			//IL_084b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0867: Unknown result type (might be due to invalid IL or missing references)
			//IL_087a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0886: Unknown result type (might be due to invalid IL or missing references)
			//IL_0890: Unknown result type (might be due to invalid IL or missing references)
			//IL_0895: Unknown result type (might be due to invalid IL or missing references)
			//IL_090a: Unknown result type (might be due to invalid IL or missing references)
			//IL_091e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0923: Unknown result type (might be due to invalid IL or missing references)
			//IL_093f: Unknown result type (might be due to invalid IL or missing references)
			//IL_095b: Unknown result type (might be due to invalid IL or missing references)
			//IL_097c: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f2: Unknown result type (might be due to invalid IL or missing references)
			LanguageNonsense.Init();
			Utility.LoadBundleGameObject("assets/NeonCanon.fbx");
			BundleManager.ring = Utility.LoadBundleGameObject("assets/ring.prefab");
			BundleManager.CannonShot = Utility.LoadBundleGameObject("assets/Canon.prefab");
			BundleManager.CannonBase = Utility.LoadBundleGameObject("assets/CanonBase.prefab");
			BundleManager.wheel = Utility.LoadBundleGameObject("assets/Wheel.prefab");
			BundleManager.NeonSheild = Utility.LoadBundleGameObject("Assets/BlockShield.prefab", AddToUpool: true, -2118577413);
			Material val = new Material((Material)SLMALoader.SDic["materials"]["Shield"]);
			val.color = new Color(0.87f, 0f, 0.7f, 0.28f);
			((Renderer)BundleManager.NeonSheild.GetComponentInChildren<MeshRenderer>()).material = val;
			BundleManager.PS = Utility.LoadBundleGameObject("Assets/ProjectileSheild_1 Prefabs_VB.prefab");
			BundleManager.FlameThrower = Utility.LoadBundleGameObject("Assets/FlameThrower_1 Weapons_VB.prefab");
			MeshRenderer[] componentsInChildren = BundleManager.ring.GetComponentsInChildren<MeshRenderer>();
			foreach (MeshRenderer val2 in componentsInChildren)
			{
				if (((Object)((Renderer)val2).material).name == "Material.001 (Instance)")
				{
					((Renderer)val2).material = (Material)SLMALoader.SDic["materials"]["Glow_Neon"];
				}
				Debug.Log((object)((Object)((Renderer)val2).material).name);
			}
			AddObjectEffect[] components = BundleManager.FlameThrower.GetComponents<AddObjectEffect>();
			foreach (AddObjectEffect val3 in components)
			{
				Transform transform = ((Component)val3).transform;
				transform.localScale *= 1.2f;
			}
			comment = "Castleron, if youre reading this, you are the goat";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Effects";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			GameObject val4 = UPool.MyPool.AddObject("NeonCharge", new GameObject("NeonCharge"), false, (HideFlags)61, (Sprite)null, 568545984, true);
			val4.AddComponent<GenericBaseEffect>();
			val4.AddComponent<SummonRing>();
			val4.AddComponent<AddScreensShake>().amount = 30f;
			val4.AddComponent<Impact_frame>().Strength = 1;
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Projectiles";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			GameObject val5 = Object.Instantiate<GameObject>((GameObject)SLMALoader.SDic["projectiles"]["P_GatlingGunNeon"]);
			for (int k = 0; k < val5.GetComponentsInChildren<ParticleSystem>().Length; k++)
			{
				Object.Destroy((Object)(object)val5.GetComponentsInChildren<ParticleSystem>()[k]);
				Object.Destroy((Object)(object)val5.GetComponentsInChildren<ParticleSystemRenderer>()[k]);
			}
			OtherLibrary.SetHideFlags<GameObject>(val5, (HideFlags)61);
			Transform transform2 = val5.transform;
			transform2.localScale *= 30f;
			Keyframe[] keys = val5.GetComponent<TrailRendererOverTime>().curve.keys;
			((Keyframe)(ref keys[0])).value = 5f;
			((Keyframe)(ref keys[1])).value = 0f;
			((Keyframe)(ref keys[1])).time = 0.7f;
			val5.GetComponent<TrailRendererOverTime>().curve.keys = keys;
			val5.GetComponent<ProjectileHit>().damage = 350f;
			val5.AddComponent<ProjectileHitAddEffect>().EffectPrefab = UPool.MyPool.GetObject("NeonCharge").GetComponent<UnitEffectBase>();
			val5.GetComponent<ProjectileHit>().callEffectsBeforeDamage = true;
			val5.GetComponent<ProjectileHit>().callEffectsOnArmor = true;
			val5.GetComponent<ProjectileHit>().onlyCallHitEventsOnRigsLessThan = 2f;
			val5.GetComponent<ProjectileHit>().destroyOnHit = false;
			val5.GetComponent<ProjectileHit>().destroyOnRefect = false;
			val5.GetComponent<MoveTransform>().selfImpulse = new Vector3(0f, 0f, 160f);
			val5.GetComponent<MoveTransform>().gravity = 0f;
			ModContent.GatlingNeon = val5;
			UPool.MyPool.AddObject("GatlingNeon", ModContent.GatlingNeon, true, (HideFlags)61, (Sprite)null, -654588123, true);
			ModContent.GatlingNeonGun = UPool.MyPool.AddObject("GatlingNeonWeapons", (GameObject)SLMALoader.SDic["weapons"]["CannonBallBomb"], true, (HideFlags)61, (Sprite)null, 73784277, true);
			((Component)ModContent.GatlingNeonGun.transform.root).GetComponentInChildren<RangeWeapon>(true).ObjectToSpawn = ModContent.GatlingNeon;
			ModContent.GatlingNeonGun.AddComponent<Cost>().m_cost = 4000u;
			((Weapon)ModContent.GatlingNeonGun.GetComponentInChildren<RangeWeapon>(true)).internalCooldown = 12f;
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Bases";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			zombieBase = SLMATool.CreateUnitBase("Humanoid");
			TeamColor[] componentsInChildren2 = zombieBase.GetComponentsInChildren<TeamColor>();
			for (int l = 0; l < componentsInChildren2.Length; l++)
			{
				Material val6 = Object.Instantiate<Material>(componentsInChildren2[l].redMaterial);
				val6.color = new Color(0f, 0.5f, 0f, 1f);
				Material val7 = Object.Instantiate<Material>(componentsInChildren2[l].blueMaterial);
				val7.color = new Color(0f, 0.4f, 0f, 1f);
				componentsInChildren2[l].redMaterial = val6;
				componentsInChildren2[l].blueMaterial = val7;
				zombieMaterial = val7;
			}
			((Object)zombieBase.gameObject).name = ((Object)zombieBase.gameObject).name.Replace("Humanoid", "Zombie");
			GameObject val8 = SLMATool.CreateUnitBase("Cannon");
			TeamColor[] componentsInChildren3 = val8.GetComponentsInChildren<TeamColor>();
			for (int m = 0; m < componentsInChildren3.Length; m++)
			{
				Material val9 = Object.Instantiate<Material>(componentsInChildren2[m].redMaterial);
				val9.color = new Color(0f, 0.5f, 0f, 1f);
				Material val10 = Object.Instantiate<Material>(componentsInChildren2[m].blueMaterial);
				val10.color = new Color(0f, 0.4f, 0f, 1f);
				componentsInChildren2[m].redMaterial = val9;
				componentsInChildren2[m].blueMaterial = val10;
			}
			comment = "------------BoxGun------------";
			for (int n = 0; n < ((Component)val8.transform).GetComponentsInChildren<MeshFilter>().Length; n++)
			{
				MeshFilter val11 = ((Component)val8.transform).GetComponentsInChildren<MeshFilter>()[n];
				if (((Object)((Component)val11).transform.parent).name == "CP_Pirate_Cannon_Pipe")
				{
					val11.mesh = BundleManager.CannonShot.GetComponentInChildren<MeshFilter>().mesh;
					((Component)val11).transform.localPosition = BundleManager.CannonShot.transform.position + new Vector3(0f, 1f, 0f);
					((Component)val11).transform.rotation = Quaternion.Euler(270f, 535f, 90f);
					((Component)val11).transform.localScale = BundleManager.CannonShot.transform.localScale;
					((Renderer)((Component)val11).GetComponent<MeshRenderer>()).materials = ((Renderer)BundleManager.CannonShot.GetComponentInChildren<MeshRenderer>()).materials;
				}
				if (((Object)((Component)val11).transform.parent).name.Contains("CP_Pirate_Cannon_Wheel_R"))
				{
					val11.mesh = BundleManager.wheel.GetComponentInChildren<MeshFilter>().mesh;
					((Component)val11).transform.localPosition = Vector3.zero;
					((Component)val11).transform.localRotation = Quaternion.Euler(356f, 270f, 0f);
					((Component)val11).transform.localScale = BundleManager.wheel.transform.localScale;
					Transform transform3 = ((Component)val11).transform;
					transform3.position += ((Component)val11).transform.up * 0.05f;
					((Renderer)((Component)val11).GetComponent<MeshRenderer>()).materials = ((Renderer)BundleManager.wheel.GetComponentInChildren<MeshRenderer>()).materials;
				}
				if (((Object)((Component)val11).transform.parent).name.Contains("CP_Pirate_Cannon_Wheel_L"))
				{
					val11.mesh = BundleManager.wheel.GetComponentInChildren<MeshFilter>().mesh;
					((Component)val11).transform.localPosition = Vector3.zero;
					((Component)val11).transform.localRotation = Quaternion.Euler(356f, 270f, 0f);
					((Component)val11).transform.localScale = BundleManager.wheel.transform.localScale;
					Transform transform4 = ((Component)val11).transform;
					transform4.position += ((Component)val11).transform.up * 0.05f;
					((Renderer)((Component)val11).GetComponent<MeshRenderer>()).materials = ((Renderer)BundleManager.wheel.GetComponentInChildren<MeshRenderer>()).materials;
				}
				if (((Object)((Component)val11).transform.parent).name == "CP_Pirate_Cannon_Base")
				{
					val11.mesh = BundleManager.CannonBase.GetComponentInChildren<MeshFilter>().mesh;
					((Component)val11).transform.localPosition = BundleManager.CannonBase.transform.position + new Vector3(0f, 1f, 0f);
					((Component)val11).transform.rotation = BundleManager.CannonBase.transform.rotation;
					((Component)val11).transform.localScale = BundleManager.CannonBase.transform.localScale;
					((Component)val11).transform.rotation = Quaternion.Euler(270f, -90f, 0f);
					((Renderer)((Component)val11).GetComponent<MeshRenderer>()).materials = ((Renderer)BundleManager.CannonBase.GetComponentInChildren<MeshRenderer>()).materials;
					Transform transform5 = ((Component)val11).transform;
					transform5.position += ((Component)val11).transform.forward * 0.15f;
					((Component)val11).transform.parent.parent.localRotation = Quaternion.Euler(353f, 0f, 0f);
				}
			}
			val8.transform.localScale = new Vector3(0.7f, 0.7f, 0.7f);
			((Object)val8.transform).name = ((Object)val8).name.Replace("Cannon", "BoxGun");
			comment = "------------Projectile Shield------------";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Moves";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			GameObject val12 = SLMATool.CreateCombatMove("Vampirebite", "Zombie Bite");
			val12.GetComponentInChildren<VapireBite>().color = new UnitColorInstance
			{
				color = zombieMaterial.color,
				acceptWhenDead = true,
				colorName = "Zombie Bite"
			};
			Utility.ItemCategorizer.SetTag(val12, "Missing Content", (TagType)0);
			UPool.MyPool.AddObject("ZOMBIE_BITE", val12, false, (HideFlags)61, (Sprite)null, -409111251, true);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Clothing";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Weapons";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			GameObject flameThrower = BundleManager.FlameThrower;
			for (int num = 0; num < flameThrower.GetComponentsInChildren<AddObjectEffect>(true).Length; num++)
			{
				GameObject val13 = (GameObject)SLMALoader.SDic["effects"]["6__E_FireArrowEffect"];
				flameThrower.GetComponentsInChildren<AddObjectEffect>(true)[num].EffectPrefab = val13.GetComponentInChildren<UnitEffectBase>(true);
			}
			Utility.ItemCategorizer.SetTag(flameThrower, "Missing Content", (TagType)0);
			UPool.MyPool.AddObject("FLAME_THROWER", flameThrower, false, (HideFlags)61, ExtraUtilites.GetSprite("Flame Thrower"), -214335411, true);
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Factions";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			Faction val14 = (Faction)SLMALoader.SDic["factions"]["Tribal"];
			val14.Entity.Name = "Stone Age";
			Faction val15 = (Faction)SLMALoader.SDic["factions"]["Viking"];
			Faction val16 = (Faction)SLMALoader.SDic["factions"]["Medieval"];
			Faction val17 = (Faction)SLMALoader.SDic["factions"]["Subunits"];
			Faction val18 = (Faction)SLMALoader.SDic["factions"]["Ancient"];
			Faction val19 = (Faction)SLMALoader.SDic["factions"]["Renaissance"];
			Faction val20 = (Faction)SLMALoader.SDic["factions"]["Asia"];
			val20.Entity.Name = "Asia";
			Faction val21 = (Faction)SLMALoader.SDic["factions"]["Farmer"];
			Faction val22 = SLMATool.CreateFaction("Modern", (UnitBlueprint[])null, ExtraUtilites.GetSprite("Shooting Gun"), 0);
			Faction val23 = SLMATool.CreateFaction("Neon", (UnitBlueprint[])null, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonMaster"], 0);
			val22.m_FactionColor = Color.green;
			val23.m_FactionColor = Color.magenta;
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Custom Units";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			SLMATool.CreateUnit("Gatherer", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val14, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_Gatherer01"]);
			SLMATool.CreateUnit("Demolisher", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val15, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_HAmmer"]);
			SLMATool.CreateUnit("Thief", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val16, (Sprite)SLMALoader.SDic["sprites"]["Blinkdagger1"]);
			rider = SLMATool.CreateUnit("Ancient Tank Top", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val17, ExtraUtilites.GetSprite("Archer"));
			SLMATool.CreateUnit("Ancient Tank", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val18, (Sprite)SLMALoader.SDic["sprites"]["Ancient_Tank1"]);
			SLMATool.CreateUnit("Macebearer", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val19, (Sprite)SLMALoader.SDic["sprites"]["Footman1"]);
			SLMATool.CreateUnit("Shovel", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Shovel"));
			SLMATool.CreateUnit("M16", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Shooting Gun"));
			SLMATool.CreateUnit("Shotgunner", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Shooting Gun"));
			SLMATool.CreateUnit("Rocket Launcher", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Shooting Gun"));
			SLMATool.CreateUnit("Machine Gunner", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Shooting Gun"));
			SLMATool.CreateUnit("Juggernaut", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Gatling Gun"));
			SLMATool.CreateUnit("Sniper", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Deadeye"));
			SLMATool.CreateUnit("Zombie", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Wobbler"));
			SLMATool.CreateUnit("Worker", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val21, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_Sickle01"]);
			SLMATool.CreateUnit("Nunchucks", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val20, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_Nunchucks"]);
			SLMATool.CreateUnit("Flame Thrower", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Flame Thrower"));
			SLMATool.CreateUnit("Mustard Gas", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val22, ExtraUtilites.GetSprite("Bomb Thrower"));
			SLMATool.CreateUnit("Marauder", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val16, ExtraUtilites.GetSprite("Flail"));
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			comment = "Neon Units";
			comment = "----------------------------------------------------------------------------------------------------------------------------";
			SLMATool.CreateUnit("Energy Pistol", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonPistol (3)"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSw3OSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OSwtMSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIlRBQkcgaGVsbWV0IDA2IiwiRmFybWVyIHNoaXJ0IDAyIiwiTmVvbiBhcm0gZ3VhcmQgMDEiLCJPdHRvbWFuIHBhbnRzIDAxIiwiUGlyYXRlIHNob2VzIDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6Ik5lb24gQnJlYWsgQmxhc3RlciIsImFiaWxpdGVzIjpbXSwiVm9jYWxQYXRoRGF0YSI6eyJDYXRlZ29yeSI6IkxlZ2FjeSBBdHRhY2sgVm9jYWxzIiwiRWZmZWN0IjoiRmxhZ0JlYXJlclN0YXkiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiTGVnYWN5IEF0dGFjayBWb2NhbHMvRmxhZ0JlYXJlclN0YXkiLCJMZWdhY3kgRGVhdGggVm9jYWxzL0ZsYWdCZWFyZXJTdGF5Il0sInBpdGNoIjowLjg5NDM5NjQyNDI5MzUxODF9", db, twohanded: true);
			rider2 = SLMATool.CreateUnit("Energy Cannon Rider", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val17, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonPistol (3)"]);
			rider2.CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSw3OSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OSwtMSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIlRBQkcgaGVsbWV0IDA2IiwiRmFybWVyIHNoaXJ0IDAyIiwiTmVvbiBhcm0gZ3VhcmQgMDEiLCJPdHRvbWFuIHBhbnRzIDAxIiwiUGlyYXRlIHNob2VzIDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6Ik5lb24gQnJlYWsgQmxhc3RlciIsImFiaWxpdGVzIjpbXSwiVm9jYWxQYXRoRGF0YSI6eyJDYXRlZ29yeSI6IkxlZ2FjeSBBdHRhY2sgVm9jYWxzIiwiRWZmZWN0IjoiRmxhZ0JlYXJlclN0YXkiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiTGVnYWN5IEF0dGFjayBWb2NhbHMvRmxhZ0JlYXJlclN0YXkiLCJMZWdhY3kgRGVhdGggVm9jYWxzL0ZsYWdCZWFyZXJTdGF5Il0sInBpdGNoIjowLjg5NDM5NjQyNDI5MzUxODF9", db, twohanded: true);
			rider2.RightWeapon = null;
			rider2.sizeMultiplier = 1.6f;
			SLMATool.CreateUnit("Energy Sword", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonSword"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSw3OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSwtMSw3OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OSw3OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIlRBQkcgU25vd2JvYXJkIGhlbG1ldCAwMCIsIlRBQkcgYmFsYWtsYXZhIDAwIiwiRmFudGFzeSBHb29kIGNoZXN0IGFybW9yIDAwIiwid2lsbnlsIHBhbnRzIDAwIiwiRmFybWVyIGJlbHQgMDAiLCJQaXJhdGUgc2hvZXMgMDAiLCJOZW9uIGFybSBndWFyZCAwMSJdLCJMV25hbWUiOiIiLCJSV25hbWUiOiJOZW9uIFNoYXR0ZXJpbmcgU2hhcnBuZXNzIDAxIiwiYWJpbGl0ZXMiOltdLCJWb2NhbFBhdGhEYXRhIjp7IkNhdGVnb3J5IjoiUGlyYXRlIEF0dGFjayBWb2NhbHMiLCJFZmZlY3QiOiJUaHJvd2VyX0JvbWIiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiUGlyYXRlIEF0dGFjayBWb2NhbHMvVGhyb3dlcl9Cb21iIiwiUGlyYXRlIERlYXRoIFZvY2Fscy9UaHJvd2VyX0JvbWIiXSwicGl0Y2giOjAuOTIyNTQ2NzQ0MzQ2NjE4N30=", db, twohanded: true);
			SLMATool.CreateUnit("Tesla", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonTesla"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSw3OSwtMSw0OCw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OF0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkZhbnRhc3kgRXZpbCBzaGlydCBhbmQgYXByb24gMDAiLCJNZWRpZXZhbCBwYW50cyAwMSIsIlJlbmFpc3NhbmNlIHNob2VzIDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6Ik5lb24gVGVzbGEgVG9ycmVudCIsImFiaWxpdGVzIjpbXSwiVm9jYWxQYXRoRGF0YSI6eyJDYXRlZ29yeSI6IkFuY2llbnQgQXR0YWNrIFZvY2FscyIsIkVmZmVjdCI6IlpldXMiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiQW5jaWVudCBBdHRhY2sgVm9jYWxzL1pldXMiLCJBbmNpZW50IERlYXRoIFZvY2Fscy9aZXVzIl0sInBpdGNoIjoxLjIzMjIwMDg2MDk3NzE3Mjl9", db, twohanded: true);
			SLMATool.CreateUnit("Beamer", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonSniper"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSw0OSw3OSw0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkR5bmFzdHkgc2hpcnQgMDAiLCJMZWdhY3kgcGFudHMgMDYiLCJUQUJHIGhlbG1ldCAwMyIsIkFydGVtaXMgc2hvZXMgMDAiXSwiTFduYW1lIjoiIiwiUlduYW1lIjoiTmVvbiBCZWFtIEJvbWJhcmQiLCJhYmlsaXRlcyI6W10sIlZvY2FsUGF0aERhdGEiOnsiQ2F0ZWdvcnkiOiJSZWluYXNzYW5jZSBBdHRhY2sgVm9jYWxzIiwiRWZmZWN0IjoiTXVza2V0IiwiRWZmZWN0UGl0Y2giOjEuMCwiRWZmZWN0Vm9sdW1lIjoxLjB9LCJyZWZzIjpbIlJlaW5hc3NhbmNlIEF0dGFjayBWb2NhbHMvTXVza2V0IiwiUmVpbmFzc2FuY2UgRGVhdGggVm9jYWxzL011c2tldCJdLCJwaXRjaCI6MS4xNDk3NjA0ODQ2OTU0MzQ2fQ==", db, twohanded: true);
			SLMATool.CreateUnit("Gravity Dude", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonGravity"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSw3OSw3OSwtMSw0OSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIkxlZ2FjeSBzaGlydCAwNyIsIlJlbmFpc3NhbmNlIHBhbnRzIDAyIiwiTmVvbiBhcm0gZ3VhcmQgMDEiLCJOZW9uIG5lY2tsYWNlIDAwIiwiVEFCRyBNYXJpbmUgSGVsbWV0IDAwIl0sIkxXbmFtZSI6IiIsIlJXbmFtZSI6IiIsImFiaWxpdGVzIjpbIk5lb24gRm9yY2UgRmx1eCBQYWNrIl0sIlZvY2FsUGF0aERhdGEiOnsiQ2F0ZWdvcnkiOiJGYXJtZXIgQXR0YWNrIFZvY2FscyIsIkVmZmVjdCI6IldoZWVsYmFycm93IEEiLCJFZmZlY3RQaXRjaCI6MS4wLCJFZmZlY3RWb2x1bWUiOjEuMH0sInJlZnMiOlsiRmFybWVyIEF0dGFjayBWb2NhbHMvV2hlZWxiYXJyb3cgQSIsIkZhcm1lciBEZWF0aCBWb2NhbHMvV2hlZWxiYXJyb3cgQSJdLCJwaXRjaCI6MC44NDYxMzgxNzkzMDIyMTU2fQ==", db, twohanded: false);
			SLMATool.CreateUnit("Projectile Shield", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_PIRATE_CANNON"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonAntiprojectile"]).UnitBase = BundleManager.PS;
			SLMATool.CreateUnit("Box Gun", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_PIRATE_CANNON"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonCannon"]).UnitBase = val8;
			SLMATool.CreateUnit("Energy Sword Master", (UnitBlueprint)SLMALoader.SDic["blueprints"]["UNIT_TRIBAL_CLUB"], val23, (Sprite)SLMALoader.SDic["sprites"]["Icons_128x128_NeonMaster"]).CopyCustomUnit("eyJkYXRhcyI6W3sibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSwtMSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOlstMSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls0OSw3OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMSwtMSw0OSw0OV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19LHsibV9wb3NpdGlvbk9mZnNldCI6eyJ4IjowLjAsInkiOjAuMCwieiI6MC4wfSwibV9zY2FsZSI6eyJ4IjoxLjAsInkiOjEuMCwieiI6MS4wfSwibV9lcXVpcCI6MCwibV9jb2xvcnMiOls3OSwtMV0sIm1faXNUZWFtQ29sb3IiOltmYWxzZSxmYWxzZV19XSwiUHJvcG5hbWVzIjpbIk5lb24gcmluZyAwMCIsIk5lb24gbmVja2xhY2UgMDAiLCJUQUJHIGJhbGFrbGF2YSAwMCIsIlRBQkcgc2hpcnQgMDMiLCJUQUJHIHdyYXBwaW5ncyBzaGlydCAwMCIsIlRBQkcgY2hlbWlzdCBtYXNrIDAwIiwiVEFCRyBwYW50cyAxMSIsIldpbGQgV2VzdCBzaG9lcyAwMCJdLCJMV25hbWUiOiIiLCJSV25hbWUiOiJOZW9uIERvdWJsZSBEZXNvbGF0aW9uIiwiYWJpbGl0ZXMiOltdLCJWb2NhbFBhdGhEYXRhIjp7IkNhdGVnb3J5IjoiVHJpYmFsIEF0dGFjayBWb2NhbHMiLCJFZmZlY3QiOiJDbHViIiwiRWZmZWN0UGl0Y2giOjEuMCwiRWZmZWN0Vm9sdW1lIjoxLjB9LCJyZWZzIjpbIlRyaWJhbCBBdHRhY2sgVm9jYWxzL0NsdWIiLCJUcmliYWwgRGVhdGggVm9jYWxzL0NsdWIiXSwicGl0Y2giOjEuMH0=", db, twohanded: true);
			SLMALoader.SDic["factions"]["Tribal"] = val14;
			SLMALoader.SDic["factions"]["Viking"] = val15;
			SLMALoader.SDic["factions"]["Medieval"] = val16;
			SLMALoader.SDic["factions"]["Subunits"] = val17;
			SLMALoader.SDic["factions"]["Ancient"] = val18;
			SLMALoader.SDic["factions"]["Renaissance"] = val19;
			SLMALoader.SDic["factions"]["Asia"] = val20;
			SLMALoader.SDic["factions"]["Farmer"] = val21;
		}

		public static void SetNeonBlueprint(UnitBlueprint unit, LandfallContentDatabase db)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected O, but got Unknown
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Expected O, but got Unknown
			//IL_029b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Expected O, but got Unknown
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0571: Unknown result type (might be due to invalid IL or missing references)
			//IL_057b: Expected O, but got Unknown
			//IL_05e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ac: Expected O, but got Unknown
			//IL_0489: Unknown result type (might be due to invalid IL or missing references)
			//IL_0493: Expected O, but got Unknown
			//IL_0731: Unknown result type (might be due to invalid IL or missing references)
			//IL_07aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b4: Expected O, but got Unknown
			Faction val = (Faction)SLMATool.SLMADic["Neon"];
			if (!Object.op_Implicit((Object)(object)val.Units.ToList().Find((UnitBlueprint n) => (Object)(object)n == (Object)(object)unit)))
			{
				return;
			}
			if (unit.Entity.Name == "Projectile Shield")
			{
				unit.RightWeapon = null;
				HelpLibrary.SetRiders(unit, (UnitBlueprint[])(object)new UnitBlueprint[0]);
				UnitBlueprint obj = unit;
				obj.movementSpeedMuiltiplier *= 2f;
				HelpLibrary.SetMoves(unit, (GameObject[])(object)new GameObject[1] { BundleManager.NeonSheild });
			}
			if (unit.Entity.Name == "Box Gun")
			{
				unit.rightProjectile = ((Component)UPool.MyPool.GetObject("GatlingNeon").transform.root).GetComponentInChildren<ProjectileEntity>();
				unit.RightWeapon = UPool.MyPool.GetObject("GatlingNeonWeapons");
				HelpLibrary.SetRiders(unit, (UnitBlueprint[])(object)new UnitBlueprint[1] { rider2 });
			}
			if (unit.Entity.Name == "Energy Pistol")
			{
				unit.health = 80f;
				unit.attackSpeedMultiplier = 0.5f;
				unit.damageMultiplier = 0.6f;
				unit.VoicePitch = 0.8944f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 755583664));
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			if (unit.Entity.Name == "Energy Sword")
			{
				unit.health = 120f;
				unit.damageMultiplier = 1.1f;
				unit.VoicePitch = 0.9225f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 1440621109));
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			if (unit.Entity.Name == "Tesla")
			{
				unit.health = 340f;
				unit.damageMultiplier = 1f;
				unit.VoicePitch = 1.2322f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 144497188));
				for (int i = 0; i < unit.m_propData.Length; i++)
				{
					for (int j = 0; j < unit.m_propData[i].m_colors.Length; j++)
					{
						if (unit.m_propData[i].m_colors[j] == 79)
						{
							unit.m_propData[i].m_colors[j] = 78;
						}
					}
				}
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			if (unit.Entity.Name == "Gravity Dude")
			{
				unit.health = 600f;
				unit.damageMultiplier = 1.1f;
				unit.VoicePitch = 0.8461f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 420904162));
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			if (unit.Entity.Name == "Beamer")
			{
				unit.health = 240f;
				unit.damageMultiplier = 2f;
				unit.VoicePitch = 1.1498f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 1879740782));
				unit.m_propData[0].m_colors = new int[1] { 82 };
				unit.m_propData[2].m_colors[2] = 82;
				unit.m_propData[2].m_colors[4] = 82;
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
			}
			if (unit.Entity.Name == "Energy Sword Master")
			{
				unit.movementSpeedMuiltiplier = 3f;
				unit.massMultiplier = 15f;
				unit.health = 1200f;
				unit.damageMultiplier = 2f;
				unit.VoicePitch = 1.1719f;
				unit.voiceBundle = db.GetVoiceBundle(new DatabaseID(-1, 1961930314));
				typeof(UnitBlueprint).GetField("vocalPathData", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(unit, (object?)new AudioPathData(unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[0], unit.voiceBundle.VocalRef.Split(new char[1] { '/' })[1], 1f, 1f));
				for (int k = 0; k < unit.m_propData.Length; k++)
				{
					for (int l = 0; l < unit.m_propData[k].m_colors.Length; l++)
					{
						if (unit.m_propData[k].m_colors[l] == 79)
						{
							unit.m_propData[k].m_colors[l] = 77;
						}
					}
				}
				for (int m = 0; m < unit.RightWeaponData.m_colors.Length; m++)
				{
					if (unit.RightWeaponData.m_colors[m] == 79)
					{
						unit.RightWeaponData.m_colors[m] = 77;
					}
				}
			}
			int num = (int)10f.iforgetthename(unit.health.ToString().ToCharArray().Length);
			SLMATool.UnitCost(unit, (int)(math.round((unit.health * unit.damageMultiplier + (float)unit.GetAutoCost(true)) / (float)num) * (float)num));
		}

		public static void SetBlueprint(UnitBlueprint unit, LandfallContentDatabase db)
		{
			//IL_054c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0552: Expected O, but got Unknown
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0573: Expected O, but got Unknown
			//IL_058e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0594: Expected O, but got Unknown
			//IL_0aac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad6: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_