using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using Landfall.TABS;
using Landfall.TABS.Workshop;
using TFBGames;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ArmsSummoner")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("by fhpslm")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[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: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace ArmsSummoner;
[BepInPlugin("ArmsSummonermain", "ArmsSummonermain", "1.0.0")]
public class Main : BaseUnityPlugin
{
public class U : MonoBehaviour
{
public void Start()
{
S2.US(((Component)this).gameObject.GetComponent<Unit>());
}
}
public LandfallUnitDatabase db;
private int num;
private Team team;
private int size = 1;
private bool start;
private Dictionary<string, string> keyValuePairs;
private UnitBlueprint spawnunit;
private bool Isnum;
private bool use;
public void Awake()
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
new Harmony("ArmsSummoner").PatchAll();
}
private void Update()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Invalid comparison between Unknown and I4
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Invalid comparison between Unknown and I4
//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Invalid comparison between Unknown and I4
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: Invalid comparison between Unknown and I4
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_011e: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Invalid comparison between Unknown and I4
//IL_0195: Unknown result type (might be due to invalid IL or missing references)
//IL_019b: Invalid comparison between Unknown and I4
//IL_020b: Unknown result type (might be due to invalid IL or missing references)
//IL_0211: Invalid comparison between Unknown and I4
//IL_0234: Unknown result type (might be due to invalid IL or missing references)
//IL_023a: Invalid comparison between Unknown and I4
//IL_021d: Unknown result type (might be due to invalid IL or missing references)
//IL_022f: Unknown result type (might be due to invalid IL or missing references)
//IL_0226: Unknown result type (might be due to invalid IL or missing references)
//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0308: Unknown result type (might be due to invalid IL or missing references)
//IL_032b: Unknown result type (might be due to invalid IL or missing references)
//IL_033b: Unknown result type (might be due to invalid IL or missing references)
//IL_0359: Unknown result type (might be due to invalid IL or missing references)
//IL_035f: Unknown result type (might be due to invalid IL or missing references)
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && !start)
{
UnitBlueprint[] array = Resources.FindObjectsOfTypeAll<UnitBlueprint>();
foreach (UnitBlueprint item in array)
{
if (!SLMATool.super组<UnitBlueprint>("Units").Contains(item))
{
SLMATool.super组<UnitBlueprint>("Units").Add(item);
}
}
start = true;
num = 0;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
if (Input.GetKeyDown((KeyCode)108))
{
use = !use;
}
if (!use)
{
return;
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)98))
{
team = (Team)0;
start = true;
num = 0;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)99))
{
size++;
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)118) && size != 1)
{
size--;
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)106))
{
if (num == SLMATool.super组<UnitBlueprint>("Units").Count - 1)
{
num = 0;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
else
{
num++;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)107))
{
if (num == 0)
{
num = SLMATool.super组<UnitBlueprint>("Units").Count - 1;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
else
{
num--;
spawnunit = SLMATool.super组<UnitBlueprint>("Units")[num];
}
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)120))
{
if ((int)team == 0)
{
team = (Team)1;
}
else
{
team = (Team)0;
}
}
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && Input.GetKeyDown((KeyCode)122))
{
UnitBlueprint val = CreateUnit(spawnunit);
if (Object.op_Implicit((Object)(object)val.RightWeapon))
{
size obj = val.RightWeapon.AddComponent<size>();
obj.ssize = size;
obj.unit = val;
}
if (Object.op_Implicit((Object)(object)val.LeftWeapon))
{
size obj2 = val.LeftWeapon.AddComponent<size>();
obj2.ssize = size;
obj2.unit = val;
}
val.UnitBase.AddComponent<U>();
val.sizeMultiplier *= (float)size;
val.Spawn(new Vector3(((Component)((Component)((Component)Object.FindObjectOfType<CameraMovement>()).transform.root).GetComponentInChildren<Camera>()).transform.position.x, ((Component)((Component)((Component)Object.FindObjectOfType<CameraMovement>()).transform.root).GetComponentInChildren<Camera>()).transform.position.y, ((Component)((Component)((Component)Object.FindObjectOfType<CameraMovement>()).transform.root).GetComponentInChildren<Camera>()).transform.position.z + 1f), ((Component)((Component)((Component)Object.FindObjectOfType<CameraMovement>()).transform.root).GetComponentInChildren<Camera>()).transform.rotation, team, 1f, (UnitPoolInfo?)null);
}
}
private void OnGUI()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Expected O, but got Unknown
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Invalid comparison between Unknown and I4
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: 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_00fb: Expected O, but got Unknown
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00c2: Expected O, but got Unknown
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Expected O, but got Unknown
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_0183: Expected O, but got Unknown
GUIStyle val = new GUIStyle();
if ((int)CampaignPlayerDataHolder.CurrentGameModeState == 2 && use)
{
Language val2 = (Language)typeof(Localizer).GetField("m_locale", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null);
keyValuePairs = Localizer.GetLanguage(val2);
val.normal.textColor = Color.red;
val.fontSize = Screen.width / 80;
if (keyValuePairs.ContainsKey(spawnunit.Name))
{
GUI.Label(new Rect(0f, (float)Screen.width / 18f, (float)Screen.width, 80f), new GUIContent(keyValuePairs[spawnunit.Name]), val);
}
else
{
GUI.Label(new Rect(0f, (float)Screen.width / 18f, (float)Screen.width, 80f), new GUIContent(spawnunit.Name), val);
}
GUI.Label(new Rect(0f, (float)Screen.width / 24f, (float)Screen.width, 80f), new GUIContent("Size:" + size), val);
GUI.Label(new Rect(0f, (float)Screen.width / 36f, (float)Screen.width, 80f), new GUIContent("Team:" + ((object)(Team)(ref team)).ToString()), val);
}
}
public static UnitBlueprint CreateUnit(UnitBlueprint unit)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Expected O, but got Unknown
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
LandfallUnitDatabase database = LandfallUnitDatabase.GetDatabase();
UnitBlueprint val = Object.Instantiate<UnitBlueprint>(unit);
((DatabaseEntity)val.SetField<UnitBlueprint>("m_entity", (object)new DatabaseEntity((WorkshopContentType)0)).GetField<UnitBlueprint>("m_entity")).GenerateNewID();
database.AddUnitWithID(val);
val.Entity.Name = unit.Entity.Name + "S";
return val;
}
}
public static class S
{
public static object GetField<T>(this T self, string name) where T : class
{
FieldInfo field = typeof(T).GetField(name, (BindingFlags)(-1));
if (field != null)
{
return field.GetValue(self);
}
return null;
}
}
public class SLMATool
{
public static List<T> super组<T>(string key)
{
return LandfallUnitDatabase.GetDatabase().GetField<LandfallUnitDatabase>(key) as List<T>;
}
}
[BepInPlugin("SLMA.ArmsSummoner", "ArmsSummoner", "1.0.0")]
public static class S2
{
public static T SetField<T>(this T self, string name, object value) where T : class
{
FieldInfo field = typeof(T).GetField(name, (BindingFlags)(-1));
if (field != null)
{
field.SetValue(self, value);
}
return self;
}
public static void US(Unit unit)
{
Debug.Log((object)"hi");
}
}
public class size : MonoBehaviour
{
public int ssize;
public UnitBlueprint unit;
public void Start()
{
//IL_002e: 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)
if ((Object)(object)((Component)((Component)this).transform.root).GetComponent<Unit>().unitBlueprint == (Object)(object)unit)
{
Transform transform = ((Component)this).gameObject.transform;
transform.localScale *= (float)ssize;
}
}
}