Decompiled source of Shawesomes Infinite Multiverse v2.0.7

Shawesomes_Infinite_Multiverse.dll

Decompiled a month ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
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 BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;
using shawcape;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Shawesomes_Infinte_Multiverse")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Shawesomes_Infinte_Multiverse")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e0e26f8d-a8f0-41a7-a502-951624fa6f31")]
[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]
public class Patches : MonoBehaviour
{
	[HarmonyPatch(typeof(Player), "SetControls")]
	[HarmonyPrefix]
	private static void PrefixSetControlsforShip(Player __instance, ref bool jump, ref bool crouch, ref bool attack, ref bool secondaryAttack, ref bool block)
	{
		Ship controlledShip = __instance.GetControlledShip();
		if (!((Object)(object)controlledShip == (Object)null))
		{
			ShipFly shipFly = default(ShipFly);
			ShipDrive shipDrive = default(ShipDrive);
			if (((Component)controlledShip).gameObject.TryGetComponent<ShipFly>(ref shipFly))
			{
				shipFly.flyship(ref jump, ref crouch, ref attack, ref secondaryAttack, ref block);
			}
			else if (((Component)controlledShip).gameObject.TryGetComponent<ShipDrive>(ref shipDrive))
			{
				shipDrive.drive(ref jump, ref crouch, ref attack, ref secondaryAttack, ref block);
			}
		}
	}

	[HarmonyPatch(typeof(Ship), "CustomFixedUpdate")]
	[HarmonyPrefix]
	private static void PrefixSHipUpdate(Ship __instance)
	{
		ShipDrive shipDrive = default(ShipDrive);
		if (((Component)__instance).gameObject.TryGetComponent<ShipDrive>(ref shipDrive))
		{
			shipDrive.fixedUpdate();
		}
	}
}
public class ShipDrive : MonoBehaviour
{
	private enum wheeltype
	{
		awd,
		rwd,
		fwd,
		motorcycle
	}

	private Ship ship;

	private Rigidbody rb;

	private wheeltype wt = wheeltype.awd;

	public float wheeltorque = 50f;

	public float turntorque = 1f;

	private List<Transform> steeringObjects;

	private List<Rigidbody> wheels;

	public Vector3 steeringoffset = new Vector3(0f, 90f, 0f);

	public Vector3 wheeltorqueDir = new Vector3(0f, 0f, 1f);

	public ForceMode fmode = (ForceMode)1;

	public bool relative = true;

	public float carForce = 140f;

	public float turnForce = 12.4f;

	private float forwardAmt = 0f;

	private float backforce = 50f;

	private Vector3[] projectileForce = (Vector3[])(object)new Vector3[3]
	{
		new Vector3(0f, 0f, 30f),
		new Vector3(0f, 0f, 150f),
		new Vector3(0f, 0f, -10f)
	};

	private Vector3[] projectileLoc = (Vector3[])(object)new Vector3[3]
	{
		new Vector3(0f, 3.6f, -3f),
		new Vector3(1.5f, 3.9f, -6f),
		new Vector3(0f, 3f, -10f)
	};

	private float[] projectileCooldown = new float[3] { 16f, 11f, 0.1f };

	private float[] lastProjectile = new float[3];

	private int[] AmtBeforeRecharge = new int[3] { 4, 10, 0 };

	private int[] AmtInChamber = new int[3] { 4, 10, 0 };

	public void Awake()
	{
		hasShip();
	}

	private void getWheels(GameObject ship)
	{
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Expected O, but got Unknown
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Invalid comparison between Unknown and I4
		Component[] componentsInChildren = (Component[])(object)ship.GetComponentsInChildren<ConfigurableJoint>();
		Component[] array = componentsInChildren;
		steeringObjects = new List<Transform>();
		wheels = new List<Rigidbody>();
		Component[] array2 = array;
		for (int i = 0; i < array2.Length; i++)
		{
			ConfigurableJoint val = (ConfigurableJoint)array2[i];
			if ((int)val.angularZMotion == 2)
			{
				wheels.Add(((Component)val).GetComponent<Rigidbody>());
			}
		}
		steeringObjects.Add(ship.transform.Find("Wheel FR_vis"));
		steeringObjects.Add(ship.transform.Find("Wheel FL_vis"));
	}

	public void fixedUpdate()
	{
		//IL_001b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		foreach (Transform steeringObject in steeringObjects)
		{
			steeringObject.localEulerAngles = new Vector3(steeringObject.localEulerAngles.x, steeringObject.localEulerAngles.y, ((Component)wheels[2]).transform.localEulerAngles.z);
		}
	}

	private bool hasShip()
	{
		if (Object.op_Implicit((Object)(object)ship))
		{
			return true;
		}
		ship = ((Component)this).gameObject.GetComponent<Ship>();
		if (Object.op_Implicit((Object)(object)ship))
		{
			rb = ship.m_body;
			getWheels(((Component)this).gameObject);
			if (Object.op_Implicit((Object)(object)rb))
			{
				return true;
			}
			return false;
		}
		return false;
	}

	public void drive(ref bool jump, ref bool crouch, ref bool attack, ref bool secondaryattack, ref bool block)
	{
		//IL_0218: Unknown result type (might be due to invalid IL or missing references)
		//IL_021d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_0227: Unknown result type (might be due to invalid IL or missing references)
		//IL_0228: Unknown result type (might be due to invalid IL or missing references)
		//IL_0229: Unknown result type (might be due to invalid IL or missing references)
		//IL_023a: Unknown result type (might be due to invalid IL or missing references)
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ba: 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_0319: Unknown result type (might be due to invalid IL or missing references)
		//IL_0329: Unknown result type (might be due to invalid IL or missing references)
		//IL_0335: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		//IL_033f: Unknown result type (might be due to invalid IL or missing references)
		//IL_034f: Unknown result type (might be due to invalid IL or missing references)
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_038b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0390: Unknown result type (might be due to invalid IL or missing references)
		//IL_0395: Unknown result type (might be due to invalid IL or missing references)
		//IL_0133: Unknown result type (might be due to invalid IL or missing references)
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_0150: Unknown result type (might be due to invalid IL or missing references)
		//IL_0166: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0170: Unknown result type (might be due to invalid IL or missing references)
		//IL_0175: Unknown result type (might be due to invalid IL or missing references)
		//IL_0185: Unknown result type (might be due to invalid IL or missing references)
		//IL_051e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0523: Unknown result type (might be due to invalid IL or missing references)
		//IL_0528: Unknown result type (might be due to invalid IL or missing references)
		//IL_0533: Unknown result type (might be due to invalid IL or missing references)
		//IL_0538: Unknown result type (might be due to invalid IL or missing references)
		//IL_053d: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05de: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_062e: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0558: Unknown result type (might be due to invalid IL or missing references)
		//IL_0568: Unknown result type (might be due to invalid IL or missing references)
		//IL_0572: Unknown result type (might be due to invalid IL or missing references)
		//IL_057d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0588: Unknown result type (might be due to invalid IL or missing references)
		//IL_058f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0595: Unknown result type (might be due to invalid IL or missing references)
		//IL_065b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0660: Unknown result type (might be due to invalid IL or missing references)
		//IL_0662: Unknown result type (might be due to invalid IL or missing references)
		//IL_0667: Unknown result type (might be due to invalid IL or missing references)
		//IL_068b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0693: Unknown result type (might be due to invalid IL or missing references)
		//IL_0698: Unknown result type (might be due to invalid IL or missing references)
		//IL_069d: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06df: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e4: 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_0719: Unknown result type (might be due to invalid IL or missing references)
		//IL_072a: Unknown result type (might be due to invalid IL or missing references)
		//IL_072f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0739: Unknown result type (might be due to invalid IL or missing references)
		//IL_073e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Unknown result type (might be due to invalid IL or missing references)
		//IL_076e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0773: Unknown result type (might be due to invalid IL or missing references)
		//IL_077a: Unknown result type (might be due to invalid IL or missing references)
		//IL_077f: Unknown result type (might be due to invalid IL or missing references)
		if (!hasShip())
		{
			Shawesomes_Divine_Armaments.logger.LogWarning((object)"Does not have ship");
			return;
		}
		float time = Time.time;
		if (attack | secondaryattack | block)
		{
			Container component = ((Component)this).gameObject.GetComponent<Container>();
			if ((Object)(object)component != (Object)null)
			{
				int num = (block ? 1 : 0);
				if (time > lastProjectile[num] + projectileCooldown[num])
				{
					List<DropData> drops = component.m_defaultItems.m_drops;
					GameObject item = drops[num].m_item;
					if ((Object)(object)item != (Object)null)
					{
						if (AmtBeforeRecharge[num] > 0)
						{
							if (--AmtInChamber[num] <= 0)
							{
								AmtInChamber[num] = AmtBeforeRecharge[num];
								lastProjectile[num] = time;
							}
						}
						else
						{
							lastProjectile[num] = time;
						}
						for (int i = 0; i <= num; i++)
						{
							GameObject val = Object.Instantiate<GameObject>(item, ((Component)this).gameObject.transform.position + ((Component)this).gameObject.transform.rotation * Vector3.Scale(projectileLoc[num], new Vector3((float)(1 - 2 * i), 1f, 1f)), ((Component)this).gameObject.transform.rotation);
							Projectile component2 = val.GetComponent<Projectile>();
							if (Object.op_Implicit((Object)(object)component2))
							{
								Shawesomes_Divine_Armaments.logger.LogWarning((object)((!block) ? "attempt to attack primary1" : "attempt to attack secondary2"));
								component2.m_vel = ((Component)this).gameObject.transform.rotation * projectileForce[num];
							}
						}
					}
				}
			}
			attack = false;
			secondaryattack = false;
		}
		Vector3 val2 = rb.rotation * Vector3.forward;
		float num2 = Vector3.Dot(val2, Vector3.up);
		float num3 = Vector3.Dot(rb.velocity, val2);
		float num4 = 1f;
		if (jump)
		{
			jump = false;
		}
		if (ZInput.GetButton("Jump") || ZInput.GetButtonDown("JoyJump"))
		{
			num4 = 3f;
			forwardAmt += 0.8f;
			Container component3 = ((Component)this).gameObject.GetComponent<Container>();
			try
			{
				if ((Object)(object)component3 != (Object)null && time > lastProjectile[2] + projectileCooldown[2])
				{
					List<DropData> drops2 = component3.m_defaultItems.m_drops;
					GameObject item2 = drops2[2].m_item;
					if ((Object)(object)item2 != (Object)null)
					{
						lastProjectile[2] = time;
						GameObject val3 = Object.Instantiate<GameObject>(item2, ((Component)this).gameObject.transform.position + ((Component)this).gameObject.transform.rotation * projectileLoc[2], ((Component)this).gameObject.transform.rotation);
						Projectile component4 = val3.GetComponent<Projectile>();
						if (Object.op_Implicit((Object)(object)component4))
						{
							component4.m_vel = ((Component)this).gameObject.transform.rotation * projectileForce[2];
						}
					}
				}
			}
			catch (Exception ex)
			{
				Shawesomes_Divine_Armaments.logger.LogWarning((object)("err=" + ex.Message));
			}
		}
		if (ZInput.GetButton("Forward"))
		{
			forwardAmt += 0.4f;
		}
		if (ZInput.GetButton("Backward"))
		{
			forwardAmt -= 0.2f;
		}
		if (forwardAmt > 1f)
		{
			forwardAmt = 1f;
		}
		else if (forwardAmt < -1f)
		{
			forwardAmt = -1f;
		}
		forwardAmt *= num4;
		float rudderValue = ship.m_rudderValue;
		for (int j = 0; j < steeringObjects.Count; j++)
		{
			steeringObjects[j].localEulerAngles = new Vector3(steeringoffset.x, steeringoffset.y + rudderValue * 20f, ((Component)wheels[j + 2]).transform.localEulerAngles.z);
		}
		if (forwardAmt * forwardAmt > 0.04f)
		{
			foreach (Rigidbody wheel in wheels)
			{
				float num5 = ((Vector3.Dot(wheel.rotation * Vector3.forward, rb.rotation * Vector3.right) > 0f) ? 1 : (-1));
				wheel.AddRelativeTorque(wheeltorqueDir * rb.mass * 450f * forwardAmt * wheeltorque * num5, fmode);
			}
			rb.AddRelativeForce(new Vector3(0f, -0.1f, 0.4f) * forwardAmt * rb.mass * carForce);
			rb.AddRelativeTorque(new Vector3((0f - backforce) * rb.mass * forwardAmt, 0f, 0.5f));
			num3 = Mathf.Min(Math.Abs(num3), 5f) * (float)((num3 > 0f) ? 1 : (-1));
			int num6 = 0;
			Vector3 zero = Vector3.zero;
			Vector3 zero2 = Vector3.zero;
			((Joint)((Component)wheels[2]).gameObject.GetComponent<ConfigurableJoint>()).GetCurrentForces(ref zero, ref zero2);
			num6 += ((Vector3.Dot(zero, rb.rotation * Vector3.up) < 0f) ? 1 : 0);
			((Joint)((Component)wheels[3]).gameObject.GetComponent<ConfigurableJoint>()).GetCurrentForces(ref zero, ref zero2);
			num6 += ((Vector3.Dot(zero, rb.rotation * Vector3.up) < 0f) ? 1 : 0);
			if (num6 > 0)
			{
				Vector3 val4 = (steeringObjects[0].position + steeringObjects[1].position) / 2f;
				float num7 = (float)num6 * rudderValue * rb.mass * turnForce * num3;
				rb.AddForceAtPosition(rb.rotation * Vector3.right * num7, val4);
			}
		}
		ship.m_rudderValue += 0.02f * (Mathf.Max(Mathf.Abs(num3) - 4f, 0f) * (float)((!(ship.m_rudderValue > 0f)) ? 1 : (-1)));
		forwardAmt *= 0.9f;
	}
}
public class ShipFly : MonoBehaviour
{
	private Ship ship;

	private Rigidbody rb;

	public float drop_reduction = 10f;

	public Vector3 forcepos = new Vector3(0f, 0f, 0f);

	public float forwardReduction = 0.5f;

	public float hoverlift_modifier = 0.1f;

	public float hoverheight_modifier = 0.15f;

	public float hovertilt_modifier = 2f;

	public float jump_lift_mod = 0.1f;

	private float lift = 110f;

	public float LR_StabilityForce = 100f;

	public Vector3 LRpos = new Vector3(0f, 4f, -5f);

	public float maxangle = 0.35f;

	public float R_multi = 10f;

	public float rightingForce = -45f;

	public float rollForce = -25000f;

	public float rotationForce = 70f;

	public float slowDown_multi = 3f;

	public float thrust = 15f;

	public float turningForce = 0.05f;

	public float yawForce = 30000f;

	private float waterlvl = 30f;

	private Vector3[] projectileForce = (Vector3[])(object)new Vector3[2]
	{
		new Vector3(0f, 0f, 100f),
		new Vector3(0f, 0f, 50f)
	};

	private Vector3[] projectileLoc = (Vector3[])(object)new Vector3[2]
	{
		new Vector3(0f, 0f, 0f),
		new Vector3(5f, 0f, -6f)
	};

	private float[] projectileCooldown = new float[2] { 10f, 16f };

	private float[] lastProjectile = new float[2];

	private int[] AmtBeforeRecharge = new int[2] { 15, 4 };

	private int[] AmtInChamber = new int[2] { 15, 4 };

	private float manouverForce = 600f;

	public void Awake()
	{
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		ship = ((Component)this).gameObject.GetComponent<Ship>();
		if (Object.op_Implicit((Object)(object)ship))
		{
			rb = ship.m_body;
			waterlvl = (Object.op_Implicit((Object)(object)ship.m_previousCenter) ? ((Component)ship.m_previousCenter).transform.position.y : 30f);
		}
	}

	private bool hasShip()
	{
		//IL_0084: Unknown result type (might be due to invalid IL or missing references)
		if (Object.op_Implicit((Object)(object)ship) && Object.op_Implicit((Object)(object)rb))
		{
			return true;
		}
		ship = ((Component)this).gameObject.GetComponent<Ship>();
		if (Object.op_Implicit((Object)(object)ship))
		{
			rb = ship.m_body;
			waterlvl = (Object.op_Implicit((Object)(object)ship.m_previousCenter) ? ((Component)ship.m_previousCenter).transform.position.y : 30f);
			if (Object.op_Implicit((Object)(object)rb))
			{
				return true;
			}
			return false;
		}
		return false;
	}

	public void flyship(ref bool jump, ref bool crouch, ref bool attack, ref bool secondaryattack, ref bool block)
	{
		//IL_022f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0267: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0317: Unknown result type (might be due to invalid IL or missing references)
		//IL_031c: Unknown result type (might be due to invalid IL or missing references)
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_07dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0869: Unknown result type (might be due to invalid IL or missing references)
		//IL_0897: Unknown result type (might be due to invalid IL or missing references)
		//IL_089c: Unknown result type (might be due to invalid IL or missing references)
		//IL_082d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0850: Unknown result type (might be due to invalid IL or missing references)
		//IL_0387: Unknown result type (might be due to invalid IL or missing references)
		//IL_039c: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04de: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_03dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0133: Unknown result type (might be due to invalid IL or missing references)
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_0150: Unknown result type (might be due to invalid IL or missing references)
		//IL_0166: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0170: Unknown result type (might be due to invalid IL or missing references)
		//IL_0175: Unknown result type (might be due to invalid IL or missing references)
		//IL_0185: Unknown result type (might be due to invalid IL or missing references)
		//IL_0554: Unknown result type (might be due to invalid IL or missing references)
		//IL_0568: Unknown result type (might be due to invalid IL or missing references)
		//IL_056d: Unknown result type (might be due to invalid IL or missing references)
		//IL_058b: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_05be: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e1: 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_05f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0601: Unknown result type (might be due to invalid IL or missing references)
		//IL_0606: Unknown result type (might be due to invalid IL or missing references)
		//IL_061e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0623: Unknown result type (might be due to invalid IL or missing references)
		//IL_0522: Unknown result type (might be due to invalid IL or missing references)
		//IL_0431: Unknown result type (might be due to invalid IL or missing references)
		//IL_0445: Unknown result type (might be due to invalid IL or missing references)
		//IL_044a: Unknown result type (might be due to invalid IL or missing references)
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_040a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0412: Unknown result type (might be due to invalid IL or missing references)
		//IL_0418: Unknown result type (might be due to invalid IL or missing references)
		//IL_0646: Unknown result type (might be due to invalid IL or missing references)
		//IL_064c: Invalid comparison between Unknown and I4
		//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01de: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06db: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0692: Unknown result type (might be due to invalid IL or missing references)
		//IL_069a: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0724: Unknown result type (might be due to invalid IL or missing references)
		//IL_072f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0747: Unknown result type (might be due to invalid IL or missing references)
		//IL_075b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0760: Unknown result type (might be due to invalid IL or missing references)
		//IL_0782: Unknown result type (might be due to invalid IL or missing references)
		if (!hasShip())
		{
			Shawesomes_Divine_Armaments.logger.LogWarning((object)"Does not have ship");
			return;
		}
		float time = Time.time;
		if (attack | secondaryattack | block)
		{
			Container component = ((Component)this).gameObject.GetComponent<Container>();
			if ((Object)(object)component != (Object)null)
			{
				int num = (block ? 1 : 0);
				if (time > lastProjectile[num] + projectileCooldown[num])
				{
					List<DropData> drops = component.m_defaultItems.m_drops;
					GameObject item = drops[num].m_item;
					if ((Object)(object)item != (Object)null)
					{
						if (AmtBeforeRecharge[num] > 0)
						{
							if (--AmtInChamber[num] <= 0)
							{
								AmtInChamber[num] = AmtBeforeRecharge[num];
								lastProjectile[num] = time;
							}
						}
						else
						{
							lastProjectile[num] = time;
						}
						for (int i = 0; i <= num; i++)
						{
							GameObject val = Object.Instantiate<GameObject>(item, ((Component)this).gameObject.transform.position + ((Component)this).gameObject.transform.rotation * Vector3.Scale(projectileLoc[num], new Vector3((float)(1 - 2 * i), 1f, 1f)), ((Component)this).gameObject.transform.rotation);
							Projectile component2 = val.GetComponent<Projectile>();
							if (Object.op_Implicit((Object)(object)component2))
							{
								Shawesomes_Divine_Armaments.logger.LogWarning((object)((!block) ? "attempt to attack primary1" : "attempt to attack secondary2"));
								component2.m_vel = ((Component)this).gameObject.transform.rotation * projectileForce[num];
							}
						}
					}
				}
			}
			attack = false;
			secondaryattack = false;
		}
		if (jump)
		{
			jump = false;
		}
		float num2 = 1f + 0.25f * Math.Min(Math.Max(rb.position.y - waterlvl, 0f), 6f);
		float num3 = Math.Max(Math.Min(1.25f - 0.25f * Math.Min(rb.position.y - waterlvl, 4f), 1f), 0f) * rotationForce;
		Vector3 val2 = rb.position + forcepos;
		Vector3 val3 = rb.rotation * Vector3.forward;
		float num4 = Vector3.Dot(val3, Vector3.up);
		if (num4 > maxangle)
		{
			num3 *= -1f;
		}
		float num5 = (maxangle - num4) * (maxangle - num4) * 100f;
		float num6 = Vector3.Dot(rb.velocity, val3);
		int num7 = 1;
		if (ZInput.GetButton("Jump") || ZInput.GetButtonDown("JoyJump"))
		{
			if (ZInput.GetButton("Run") || ZInput.GetButtonDown("JoyRun"))
			{
				Shawesomes_Divine_Armaments.logger.LogWarning((object)"shiftjump");
				rb.AddForceAtPosition(rb.rotation * new Vector3(0f, manouverForce, 0f), rb.position, (ForceMode)1);
				num7 = 0;
			}
			if (num7 > 0)
			{
				rb.AddForceAtPosition(new Vector3(0f, num3 * num5, 0f), rb.position, (ForceMode)1);
			}
			if (num6 < 30f)
			{
				rb.AddForce(val3 * thrust * num2, (ForceMode)1);
			}
			rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * jump_lift_mod * num4 * num6, 2400f), (ForceMode)1);
		}
		float num8 = Math.Max(num2 - 1.5f, 0f);
		if (num7 > 0)
		{
			if (ZInput.GetButton("Crouch") || ZInput.GetButtonDown("JoyCrouch"))
			{
				num7 = 5;
			}
			rb.AddForceAtPosition(new Vector3(0f, rightingForce * (float)num7, 0f), val2, (ForceMode)1);
			float num9 = 1f;
			if (rb.position.y > waterlvl + 20f)
			{
				num9 = 1f - Math.Min(0.01f * (rb.position.y - waterlvl - 20f), 0.3f);
			}
			rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * num9 * num4 * num6, 2400f), (ForceMode)1);
			float num10 = Vector3.Dot(rb.rotation * Vector3.left, Vector3.up);
			Vector3 val4 = rb.position + R_multi * num10 * (rb.rotation * Vector3.right) + rb.rotation * LRpos;
			rb.AddForceAtPosition(new Vector3(0f, LR_StabilityForce, 0f), val4, (ForceMode)1);
			if (num2 < 2f)
			{
				return;
			}
			if ((int)ship.m_speed == 4)
			{
				float num11 = Math.Max(Math.Min(10f / num6 - 27f, 2f), 0.1f);
				if (num6 < 30f)
				{
					rb.AddForce(val3 * thrust * num11 * num2 * hoverheight_modifier, (ForceMode)1);
				}
				else
				{
					rb.AddForce(val3 * thrust * slowDown_multi * (30f - num6) * num2 * hoverheight_modifier, (ForceMode)1);
				}
				rb.AddForceAtPosition(new Vector3(0f, num3 * hovertilt_modifier * num11 * num5, 0f), rb.position, (ForceMode)1);
				rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * num4 * num6 * hoverlift_modifier, 2400f), (ForceMode)1);
			}
		}
		if (num8 > 0f)
		{
			float rudderValue = ship.m_rudderValue;
			float num12 = Vector3.Dot(rb.velocity, rb.rotation * Vector3.left);
			float num13 = Vector3.Dot(rb.velocity, rb.rotation * Vector3.up);
			if (num13 < 0f && num6 > 15f)
			{
				rb.AddForce(new Vector3(0f, 1f, 0f) * Math.Min(lift * (0f - num13) * drop_reduction * num8, 2400f), (ForceMode)1);
			}
			rb.AddForce(rb.rotation * new Vector3(num12 * turningForce * num8, 0f, forwardReduction * Math.Abs(num12) * turningForce * num8), (ForceMode)2);
			rb.AddRelativeTorque(0f, rudderValue * yawForce * num8, rudderValue * rollForce * num8);
			ship.m_rudderValue += 0.02f * (num8 * (float)((!(ship.m_rudderValue > 0f)) ? 1 : (-1)));
		}
	}
}
public static class Utils2
{
	private const BindingFlags bindingFlags = BindingFlags.Public;

	public static T GetCopyOf<T>(this Component comp, T other) where T : Component
	{
		Type type = ((object)comp).GetType();
		if (type != ((object)other).GetType())
		{
			return default(T);
		}
		List<Type> list = new List<Type>();
		Type baseType = type.BaseType;
		while (baseType != null && !(baseType == typeof(MonoBehaviour)))
		{
			list.Add(baseType);
			baseType = baseType.BaseType;
		}
		IEnumerable<PropertyInfo> enumerable = type.GetProperties(BindingFlags.Public);
		foreach (Type item in list)
		{
			enumerable = enumerable.Concat(item.GetProperties(BindingFlags.Public));
		}
		enumerable = from property in enumerable
			where !(type == typeof(Rigidbody)) || !(property.Name == "inertiaTensor")
			where !property.CustomAttributes.Any((CustomAttributeData attribute) => attribute.AttributeType == typeof(ObsoleteAttribute))
			select property;
		foreach (PropertyInfo pinfo in enumerable)
		{
			if (pinfo.CanWrite && !enumerable.Any((PropertyInfo e) => e.Name == $"shared{char.ToUpper(pinfo.Name[0])}{pinfo.Name.Substring(1)}"))
			{
				try
				{
					pinfo.SetValue(comp, pinfo.GetValue(other, null), null);
				}
				catch
				{
				}
			}
		}
		IEnumerable<FieldInfo> enumerable2 = type.GetFields(BindingFlags.Public);
		foreach (FieldInfo finfo in enumerable2)
		{
			foreach (Type item2 in list)
			{
				if (!enumerable2.Any((FieldInfo e) => e.Name == $"shared{char.ToUpper(finfo.Name[0])}{finfo.Name.Substring(1)}"))
				{
					enumerable2 = enumerable2.Concat(item2.GetFields(BindingFlags.Public));
				}
			}
		}
		foreach (FieldInfo item3 in enumerable2)
		{
			item3.SetValue(comp, item3.GetValue(other));
		}
		enumerable2 = enumerable2.Where((FieldInfo field) => field.CustomAttributes.Any((CustomAttributeData attribute) => attribute.AttributeType == typeof(ObsoleteAttribute)));
		foreach (FieldInfo item4 in enumerable2)
		{
			item4.SetValue(comp, item4.GetValue(other));
		}
		return (T)(object)((comp is T) ? comp : null);
	}

	public static T AddComponent<T>(this GameObject go, T toAdd) where T : Component
	{
		return go.AddComponent(((object)toAdd).GetType()).GetCopyOf(toAdd);
	}

	public static void updateSKMesh(Transform parent, SkinnedMeshRenderer skmesh)
	{
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		List<ParticleSystem> list = ((Component)parent).GetComponentsInChildren<ParticleSystem>().ToList();
		foreach (ParticleSystem item in list)
		{
			ShapeModule shape = item.shape;
			if (!Object.op_Implicit((Object)(object)((ShapeModule)(ref shape)).skinnedMeshRenderer))
			{
				ShapeModule shape2 = item.shape;
				((ShapeModule)(ref shape2)).skinnedMeshRenderer = skmesh;
			}
		}
	}

	public static SkinnedMeshRenderer createSkMeshRen(Transform objectTrans, Transform attach_skin)
	{
		SkinnedMeshRenderer val = default(SkinnedMeshRenderer);
		if (!((Component)objectTrans).gameObject.TryGetComponent<SkinnedMeshRenderer>(ref val))
		{
			val = ((Component)objectTrans).gameObject.AddComponent<SkinnedMeshRenderer>();
		}
		val.rootBone = attach_skin.Find("Armature").Find("Hips");
		return val;
	}

	public static Mesh createBonedMesh(Mesh newmesh, Mesh copymesh, Vector3 pos, Vector3 rot, Vector3 scale, bool stretch = true)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_0004: Unknown result type (might be due to invalid IL or missing references)
		Mesh newmesh2 = AlignedSkinMesh(newmesh, pos, rot, scale);
		return copyBoneWeights(newmesh2, copymesh, stretch);
	}

	public static Mesh AlignedSkinMesh(Mesh meshtomodify, Vector3 pos, Vector3 rot, Vector3 scale)
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_0017: Unknown result type (might be due to invalid IL or missing references)
		//IL_002d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_005d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0076: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_0097: Unknown result type (might be due to invalid IL or missing references)
		Mesh val = Object.Instantiate<Mesh>(meshtomodify);
		List<Vector3> list = new List<Vector3>();
		for (int i = 0; i < meshtomodify.vertices.Count(); i++)
		{
			Vector3 val2 = Quaternion.Euler(rot) * new Vector3(meshtomodify.vertices[i].x * scale.x, meshtomodify.vertices[i].y * scale.y, meshtomodify.vertices[i].z * scale.z);
			list.Add(new Vector3(val2.x + pos.x, val2.y + pos.y, val2.z + pos.z));
		}
		val.SetVertices(list);
		((Object)val).name = "copymesh";
		return val;
	}

	public static Mesh copyBoneWeights(Mesh newmesh, Mesh copymesh, bool stretch = true)
	{
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: 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)
		BoneWeight[] array = (BoneWeight[])(object)new BoneWeight[newmesh.vertexCount];
		newmesh.bindposes = copymesh.bindposes;
		if (stretch)
		{
			for (int i = 0; i < newmesh.vertexCount; i++)
			{
				int closestVert = getClosestVert(newmesh.vertices[i], copymesh.vertices);
				array[i] = copymesh.boneWeights[closestVert];
			}
		}
		else
		{
			Vector3 val = Vector3.zero;
			for (int j = 0; j < newmesh.vertexCount; j++)
			{
				val += newmesh.vertices[j];
			}
			int closestVert2 = getClosestVert(val / (float)newmesh.vertexCount, copymesh.vertices);
			for (int k = 0; k < newmesh.vertexCount; k++)
			{
				array[k] = copymesh.boneWeights[closestVert2];
			}
		}
		newmesh.boneWeights = array;
		return newmesh;
	}

	public static int getClosestVert(Vector3 vert, Vector3[] basemesh)
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		float num = 99999f;
		int result = -1;
		for (int i = 0; i < basemesh.Length; i++)
		{
			float num2 = Vector3.Distance(vert, basemesh[i]);
			if (num2 < num)
			{
				num = num2;
				result = i;
			}
		}
		return result;
	}

	public static void alignMeshAllChidren(Transform objectTrans, Transform basetransform)
	{
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0064: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0072: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b5: 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)
		MeshFilter[] componentsInChildren = ((Component)objectTrans).GetComponentsInChildren<MeshFilter>();
		for (int i = 0; i < componentsInChildren.Length; i++)
		{
			Transform val = ((Component)componentsInChildren[i]).transform;
			Vector3 val2 = val.localPosition;
			Vector3 val3 = ((Component)val).transform.localEulerAngles;
			Vector3 val4 = ((Component)val).transform.localScale;
			for (int j = 0; j < 20; j++)
			{
				if (!((Object)(object)val.parent != (Object)(object)objectTrans))
				{
					break;
				}
				val = val.parent;
				val4 = Vector3.Scale(val4, val.localScale);
				val2 = Vector3.Scale(val4, val2) + val.localPosition;
				val3 += val.localEulerAngles;
			}
			SkinnedMeshRenderer val5 = createSkMeshRen(((Component)componentsInChildren[i]).transform, basetransform);
			val5.sharedMesh = AlignedSkinMesh(val5.sharedMesh, val2, val3, val4);
		}
	}

	public static void boneMeshAllChidren(Transform objectTrans, Transform basetransform, Mesh baseMesh, bool stretch = true)
	{
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_004f: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0061: Unknown result type (might be due to invalid IL or missing references)
		//IL_0066: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0081: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0086: Unknown result type (might be due to invalid IL or missing references)
		//IL_008b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bc: 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_00d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
		Transform val = basetransform.Find("Armature").Find("Hips");
		MeshFilter[] componentsInChildren = ((Component)objectTrans).GetComponentsInChildren<MeshFilter>();
		for (int i = 0; i < componentsInChildren.Length; i++)
		{
			Transform val2 = ((Component)componentsInChildren[i]).transform;
			Vector3 val3 = val2.localPosition;
			Vector3 val4 = ((Component)val2).transform.localEulerAngles;
			Vector3 val5 = ((Component)val2).transform.localScale;
			for (int j = 0; j < 20; j++)
			{
				if (!((Object)(object)val2.parent != (Object)(object)objectTrans))
				{
					break;
				}
				val2 = val2.parent;
				val5 = Vector3.Scale(val5, val2.localScale);
				val3 = Vector3.Scale(val5, val3) + val2.localPosition;
				val4 += val2.localEulerAngles;
			}
			val3 += new Vector3(0f, 0f - val.localPosition.y, 0f - val.localPosition.z);
			SkinnedMeshRenderer val6 = createSkMeshRen(((Component)componentsInChildren[i]).transform, basetransform);
			val6.sharedMesh = createBonedMesh(val6.sharedMesh, baseMesh, val3, val4, val5, stretch);
		}
	}

	public static void setStyleTex(Material mat, Texture2D styles)
	{
		mat.EnableKeyword("_USESTYLES_ON");
		mat.SetFloat("_Style", 0f);
		mat.SetFloat("_UseStyles", 1f);
		mat.SetTexture("_StyleTex", (Texture)(object)styles);
	}

	public static Mesh createScaledCape(Mesh originalMesh, Vector3 scaleTop, Vector3 scaleBot, Vector3 offset = default(Vector3))
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: 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)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: 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_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Unknown result type (might be due to invalid IL or missing references)
		//IL_0077: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ea: 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_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: 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)
		//IL_010c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0112: 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_0125: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: 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_0138: Unknown result type (might be due to invalid IL or missing references)
		//IL_013f: 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_014d: Unknown result type (might be due to invalid IL or missing references)
		//IL_015f: Unknown result type (might be due to invalid IL or missing references)
		//IL_016c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0173: Unknown result type (might be due to invalid IL or missing references)
		//IL_017a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0181: Unknown result type (might be due to invalid IL or missing references)
		//IL_0188: 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_0196: Unknown result type (might be due to invalid IL or missing references)
		Vector3 zero = Vector3.zero;
		Vector3 one = Vector3.one;
		Mesh val = Object.Instantiate<Mesh>(originalMesh);
		List<Vector3> list = new List<Vector3>();
		for (int i = 0; i < originalMesh.vertices.Count(); i++)
		{
			Vector3 val2 = originalMesh.vertices[i];
			((Vector3)(ref zero))..ctor(Mathf.Max(zero.x, val2.x), Mathf.Max(zero.y, val2.y), Mathf.Max(zero.z, val2.z));
			((Vector3)(ref one))..ctor(Mathf.Min(one.x, val2.x), Mathf.Min(one.y, val2.y), Mathf.Min(one.z, val2.z));
		}
		Vector3 val4 = default(Vector3);
		for (int j = 0; j < originalMesh.vertices.Count(); j++)
		{
			Vector3 val3 = originalMesh.vertices[j];
			float num = val3.x * (scaleBot.x + (scaleTop.x - scaleBot.x) * (val3.z - one.z) / (zero.z - one.z));
			float num2 = val3.y * (scaleBot.y + (scaleTop.y - scaleBot.y) * (val3.z - one.z) / (zero.z - one.z));
			((Vector3)(ref val4))..ctor(num, num2, val3.z);
			list.Add(new Vector3(val4.x + offset.x, val4.y + offset.y, val4.z + offset.z));
		}
		val.SetVertices(list);
		((Object)val).name = "scaled_" + ((Object)val).name;
		return val;
	}

	public static void resolveMocksinChildren(Transform parentTrans)
	{
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_006f: Unknown result type (might be due to invalid IL or missing references)
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		for (int num = parentTrans.childCount - 1; num >= 0; num--)
		{
			Transform child = parentTrans.GetChild(num);
			if (((Object)child).name.StartsWith("ATmock_"))
			{
				GameObject val = getmockGo(((Object)child).name, parentTrans);
				if (Object.op_Implicit((Object)(object)val))
				{
					Transform val2 = Shawesomes_Divine_Armaments.CopyIntoParent<Transform>(val.transform, parentTrans);
					val2.localPosition = child.localPosition;
					val2.localEulerAngles = child.localEulerAngles;
					val2.localScale = child.localScale;
					((Object)val2).name = ((Object)child).name.Split(new char[1] { '.' })[0];
					child.parent = null;
				}
			}
		}
	}

	public static GameObject getmockGo(string mockname, Transform newParent)
	{
		string[] array = mockname.Split(new char[1] { '.' });
		if (!array[0].StartsWith("ATmock_"))
		{
			return null;
		}
		Transform transform;
		try
		{
			transform = PrefabManager.Instance.GetPrefab(array[0].Replace("ATmock_", "")).transform;
		}
		catch
		{
			return null;
		}
		for (int i = 1; i < array.Length; i++)
		{
			try
			{
				transform = ((Component)transform.Find(array[i])).transform;
			}
			catch
			{
			}
		}
		return ((Component)transform).gameObject;
	}
}
namespace shawcape;

[BepInPlugin("IDshawesome4u1", "Shawesomes_Infinite_Multiverse", "2.0.7")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Shawesomes_Divine_Armaments : BaseUnityPlugin
{
	[HarmonyPriority(0)]
	[HarmonyPatch(typeof(Player), "OnSpawned")]
	private static class Player_OnSpawned_Patch
	{
		private static void Postfix()
		{
			if (m_initialized || !Object.op_Implicit((Object)(object)ZNetScene.instance))
			{
				return;
			}
			Dictionary<string, string> dictionary = new Dictionary<string, string>
			{
				["sGundamBarbatos"] = "Troll",
				["sGundamExia"] = "Troll",
				["shawesomesurtrboss"] = "Troll"
			};
			Humanoid val = default(Humanoid);
			Humanoid val2 = default(Humanoid);
			foreach (KeyValuePair<string, string> item in dictionary)
			{
				GameObject prefab = ZNetScene.instance.GetPrefab(item.Value);
				GameObject prefab2 = ZNetScene.instance.GetPrefab(item.Key);
				if (Object.op_Implicit((Object)(object)prefab) && Object.op_Implicit((Object)(object)prefab2) && prefab.TryGetComponent<Humanoid>(ref val) && prefab2.TryGetComponent<Humanoid>(ref val2))
				{
					((Character)val2).m_waterEffects = ((Character)val).m_waterEffects;
				}
			}
			m_initialized = true;
		}
	}

	public Harmony harmony;

	public static GameObject Root;

	public string version = "1.0.0";

	public static ManualLogSource logger;

	public static ManualLogSource harmonyLog;

	private static AssetBundle Shawcassets;

	public static Sprite FreezingIcon;

	private static bool m_initialized;

	public void Awake()
	{
		//IL_0012: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Expected O, but got Unknown
		logger = ((BaseUnityPlugin)this).Logger;
		harmony = new Harmony("IDshawesome4u1");
		Root = new GameObject("Shaw Root");
		Object.DontDestroyOnLoad((Object)(object)Root);
		harmony.PatchAll(typeof(Patches));
		harmonyLog = ((BaseUnityPlugin)this).Logger;
		Shawcassets = AssetUtils.LoadAssetBundleFromResources("shaw_im", Assembly.GetExecutingAssembly());
		PrefabManager.OnVanillaPrefabsAvailable += additems;
	}

	public static void additems()
	{
		Addwarpspear();
		Addtitus();
		Addtitusmount();
		Addtitustoy();
		AddItsover9000();
		AddKIBLAST();
		Addperveysagecloud();
		AddSENZU();
		Addbbksb();
		AddSpacePod();
		Addssj5fusion();
		AddIT2Duel();
		AddHeartotc();
		AddMPSoul();
		Addkaibahand();
		AddBEmount();
		Addultimatedragon();
		Addudatk1();
		Addudatk2();
		Addshawesomeboat();
		Addshawbatcart();
		Addgaara();
		AddGaaraCape();
		AddNaruto();
		AddShunsuiCape();
		AddKatenKyokotsu();
		AddZangetsu();
		AddFinalZangetsu();
		AddNozarashi();
		AddSenbonzakura();
		Addhyorenmaru();
		Addzoro3();
		Addzoro2();
		Addzoro1();
		Addbatmanhead();
		Addbatmanchest();
		Addbatmanlegs();
		Addbatmancape();
		Addbatgrap();
		Addbatarangfire();
		Addbatarangfrost();
		Addbarbatos();
		Addexia();
		Addsurtboss();
		Addexiakey();
		Addbarbkey();
		Addbeamsaber2();
		Addbeamsaber1();
		Addbeamsaber4();
		Addbeamsaber3();
		Addsurtsword1();
		Addsurtsword2();
		Addsurtrock();
		Add1sdb();
		Add2sdb();
		Add3sdb();
		Add4sdb();
		Add5sdb();
		Add6sdb();
		Add7sdb();
		PrefabManager.OnVanillaPrefabsAvailable -= additems;
	}

	public static void Addudatk1()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawesomeygo/ultimatedragon_stomp.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addudatk2()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawesomeygo/ultimatedragon_atk_long.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatarangfrost()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0092: Expected O, but got Unknown
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Expected O, but got Unknown
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DragonTear", 1, 1, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGOW/shawbatarangIce.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatarangfire()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("SurtlingCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGOW/shawbatarangfire.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatgrap()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0092: Expected O, but got Unknown
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Expected O, but got Unknown
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("MechanicalSpring", 4, 4, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGOW/shawbathook.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addshawbatcart()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Expected O, but got Unknown
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Expected O, but got Unknown
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_009f: Expected O, but got Unknown
		PieceConfig val = new PieceConfig();
		val.PieceTable = PieceTables.Hammer;
		val.CraftingStation = CraftingStations.Workbench;
		val.Category = PieceCategories.Misc;
		val.AddRequirement(new RequirementConfig("IronNails", 100, 0, false));
		val.AddRequirement(new RequirementConfig("ElderBark", 50, 0, false));
		val.AddRequirement(new RequirementConfig("BlackMetal", 50, 0, false));
		val.AddRequirement(new RequirementConfig("FlametalNew", 50, 0, false));
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGOW/shawbatcart.prefab");
		val2.AddComponent<ShipDrive>();
		CustomPiece val3 = new CustomPiece(val2, true, val);
		PieceManager.Instance.AddPiece(val3);
	}

	public static void Addtitustoy()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeTOOTS/godogtoy4.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addtitusmount()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeTOOTS/godogtoy.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addtitus()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		CreatureConfig val = new CreatureConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeTOOTS/TitusAndronicusGodShaw.prefab");
		CustomCreature val3 = new CustomCreature(val2, true, val);
		CreatureManager.Instance.AddCreature(val3);
	}

	public static void Addsurtrock()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/surt_meteor_throw.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addsurtboss()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		CreatureConfig val = new CreatureConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/shawesomesurtrboss.prefab");
		CustomCreature val3 = new CustomCreature(val2, true, val);
		CreatureManager.Instance.AddCreature(val3);
	}

	public static void Addsurtsword1()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/surt_swing_h1.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addsurtsword2()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/surt_swing_v1.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addzoro1()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeOnePiece/zbladeenma.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addzoro2()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeOnePiece/SandaiKitetsu.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addzoro3()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeOnePiece/mossheadhelm.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbeamsaber4()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/barbatos_swing_v.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbeamsaber3()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/barbatos_swing_h.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbarbkey()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/BarbatosCore.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbarbatos()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		CreatureConfig val = new CreatureConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/sGundamBarbatos.prefab");
		CustomCreature val3 = new CustomCreature(val2, true, val);
		CreatureManager.Instance.AddCreature(val3);
	}

	public static void Addwarpspear()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/Warpreilcgungnir.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbeamsaber2()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/beamsaber_swing_v.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbeamsaber1()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/beamsaber_swing_h.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addexiakey()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a7: Expected O, but got Unknown
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/ExiaCore.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addexia()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		CreatureConfig val = new CreatureConfig();
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGundam/sGundamExia.prefab");
		CustomCreature val3 = new CustomCreature(val2, true, val);
		CreatureManager.Instance.AddCreature(val3);
	}

	public static void Addbatmancape()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeArmor/blackvalkwings.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatmanhead()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeArmor/blackvalkhead.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatmanchest()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeArmor/blackvalkchest.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addbatmanlegs()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0094: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BlackCore", 10, 10, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeArmor/blackvalklegs.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void Addhyorenmaru()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0092: Expected O, but got Unknown
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Expected O, but got Unknown
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("Zhangetsu", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeBleach/hyorenmaru.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void AddSenbonzakura()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Expected O, but got Unknown
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		//IL_0038: Unknown result type (might be due to invalid IL or missing references)
		//IL_0042: Expected O, but got Unknown
		//IL_004c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Expected O, but got Unknown
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006a: Expected O, but got Unknown
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_007e: Expected O, but got Unknown
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0092: Expected O, but got Unknown
		//IL_009c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Expected O, but got Unknown
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.AddRequirement(new RequirementConfig("AlphaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("BetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("GammaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("DeltaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EpsilonSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("ZetaSun", 1, 0, false));
		val.AddRequirement(new RequirementConfig("Zhangetsu", 1, 0, false));
		val.AddRequirement(new RequirementConfig("EtaSun", 1, 0, false));
		val.CraftingStation = CraftingStations.Forge;
		val.MinStationLevel = 1;
		GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeBleach/Senbonzakura.prefab");
		CustomItem val3 = new CustomItem(val2, true, val);
		ItemManager.Instance.AddItem(val3);
	}

	public static void AddNozarashi()
	{
		//IL_0