Decompiled source of Neon faction v1.0.4

Niiido.dll

Decompiled 3 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using EzECS.Barriers;
using HarmonyLib;
using Landfall.TABS;
using Landfall.TABS.AI;
using Landfall.TABS.AI.Components;
using Landfall.TABS.AI.Components.Tags;
using Landfall.TABS.AI.Systems;
using Landfall.TABS.GameMode;
using Landfall.TABS.GameState;
using ModdingForDummies;
using Niiido;
using SLMA;
using TFBGames;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ModdingForDummies")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ModdingForDummies")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("1619c49c-bc45-486c-bbca-6b52cef4f478")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
public class 斯安维斯坦 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <激活时间>d__16 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public float time;

		public 斯安维斯坦 <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <激活时间>d__16(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.是否开启斯安维斯坦 = true;
				<>2__current = (object)new WaitForSeconds(time);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.是否开启斯安维斯坦 = false;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private SkinnedMeshRenderer[] 所有蒙皮网格1;

	private float 计时器;

	private float 计时器2;

	private bool 是否开启斯安维斯坦 = false;

	public float 间隔时间 = 0.05f;

	public Material 可变色材质1 = new Material(UmMyMod.Asset1.LoadAsset<Material>("率hi哦那个3"));

	public Material 材质232 = new Material((Material)SLMALoader.SDic["materials"]["M_BrowningM2_Metal004"]);

	private float 持续百变量;

	public float 完成颜色循环时间 = 5f;

	public float 残影持续时间 = 2f;

	private Color 开始颜色 = new Color(0f, 1.4f, 0f, 0.5f);

	private Color 结束颜色 = new Color(1.4f, 0f, 0f, 0.5f);

	public Color 残影颜色;

	private List<GameObject> 残影列表 = new List<GameObject>();

	private void Start()
	{
		所有蒙皮网格1 = ((Component)((Component)this).transform.root).GetComponentsInChildren<SkinnedMeshRenderer>();
	}

	public void 启动(float time1 = 1f)
	{
		((MonoBehaviour)this).StartCoroutine(激活时间(time1));
	}

	[IteratorStateMachine(typeof(<激活时间>d__16))]
	private IEnumerator 激活时间(float time = 1f)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <激活时间>d__16(0)
		{
			<>4__this = this,
			time = time
		};
	}

	private void 生成一次()
	{
		if (所有蒙皮网格1 == null || 所有蒙皮网格1.Length == 0)
		{
			所有蒙皮网格1 = ((Component)((Component)this).transform.root).GetComponentsInChildren<SkinnedMeshRenderer>();
		}
		生成蒙皮网格残影(所有蒙皮网格1, 材质232);
	}

	public void 生成蒙皮网格残影(SkinnedMeshRenderer[] 所有蒙皮网格, Material 可变色材质)
	{
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Expected O, but got Unknown
		//IL_0046: 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_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_008f: Expected O, but got Unknown
		//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00aa: Expected O, but got Unknown
		foreach (SkinnedMeshRenderer val in 所有蒙皮网格)
		{
			if (((Renderer)val).enabled && !((Object)(object)val.sharedMesh == (Object)null))
			{
				GameObject val2 = new GameObject("残影");
				val2.transform.position = ((Component)val).transform.position;
				val2.transform.rotation = ((Component)val).transform.rotation;
				MeshRenderer val3 = val2.AddComponent<MeshRenderer>();
				MeshFilter val4 = val2.AddComponent<MeshFilter>();
				val2.AddComponent<n秒后移除物体并生成爆炸>().cd = 残影持续时间;
				Mesh val5 = new Mesh();
				val.BakeMesh(val5);
				val4.mesh = val5;
				Material material = new Material(可变色材质);
				((Renderer)val3).material = material;
			}
		}
	}

	private void Update()
	{
		if (是否开启斯安维斯坦)
		{
			计时器 += Time.deltaTime;
			更新残影颜色();
			if (计时器 >= 间隔时间)
			{
				生成一次();
				计时器 -= 间隔时间;
			}
		}
		else
		{
			重置颜色状态();
			计时器 = 0f;
		}
	}

	private void 更新残影颜色()
	{
		//IL_0032: 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_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		计时器2 += Time.deltaTime;
		float num = Mathf.PingPong(计时器2 / (完成颜色循环时间 / 2f), 1f);
		Color color = Color.Lerp(开始颜色, 结束颜色, num);
		材质232.color = color;
	}

	private void 重置颜色状态()
	{
		//IL_0013: Unknown result type (might be due to invalid IL or missing references)
		计时器2 = 0f;
		材质232.color = 开始颜色;
	}
}
public class n秒后移除物体并生成爆炸 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <开始删除生成>d__2 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public n秒后移除物体并生成爆炸 <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <开始删除生成>d__2(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(<>4__this.cd);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				Object.Destroy((Object)(object)((Component)<>4__this).gameObject);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	public float cd = 1.3f;

	public void Start()
	{
		((MonoBehaviour)this).StartCoroutine(开始删除生成());
	}

	[IteratorStateMachine(typeof(<开始删除生成>d__2))]
	private IEnumerator 开始删除生成()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <开始删除生成>d__2(0)
		{
			<>4__this = this
		};
	}
}
public class 添加延迟事件 : MonoBehaviour
{
	private DelayEvent 延迟事件组件;

	private 斯安维斯坦 斯安维斯坦组件;

	public float 持续时间 = 0.15f;

	private void Start()
	{
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: Expected O, but got Unknown
		延迟事件组件 = ((Component)this).GetComponent<DelayEvent>();
		斯安维斯坦组件 = ((Component)this).GetComponent<斯安维斯坦>();
		if ((Object)(object)延迟事件组件 != (Object)null && (Object)(object)斯安维斯坦组件 != (Object)null)
		{
			延迟事件组件.delayedEvent.AddListener(new UnityAction(启动残影));
		}
		else
		{
			Debug.LogWarning((object)(((Object)((Component)this).gameObject).name + ": 缺少必要组件"));
		}
	}

	private void 启动残影()
	{
		if ((Object)(object)斯安维斯坦组件 != (Object)null)
		{
			斯安维斯坦组件.启动(持续时间);
		}
	}

	private void OnDestroy()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		if ((Object)(object)延迟事件组件 != (Object)null)
		{
			延迟事件组件.delayedEvent.RemoveListener(new UnityAction(启动残影));
		}
	}
}
public class 添加延迟2事件 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <启动残影xz>d__11 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public 添加延迟2事件 <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <启动残影xz>d__11(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.feixx = true;
				<>4__this.斯安维斯坦组件.启动(5f);
				<>2__current = (object)new WaitForSeconds(5f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.feixx = false;
				<>4__this.ClearAllVelocity();
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private DelayEvent 延迟事件组件;

	private 斯安维斯坦 斯安维斯坦组件;

	public float 持续时间 = 0.15f;

	private bool feixx = false;

	private Unit unit34;

	private Rigidbody[] allrig;

	public float 力度 = 8000f;

	private float 计时器1;

	public GameObject 生生爆炸23 = UmMyMod.Asset1.LoadAsset<GameObject>("螳螂刀打击爆炸34");

	private void Start()
	{
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Expected O, but got Unknown
		unit34 = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>();
		延迟事件组件 = ((Component)this).GetComponent<DelayEvent>();
		斯安维斯坦组件 = ((Component)this).GetComponent<斯安维斯坦>();
		if ((Object)(object)延迟事件组件 != (Object)null && (Object)(object)斯安维斯坦组件 != (Object)null)
		{
			延迟事件组件.delayedEvent.AddListener(new UnityAction(启动残影));
		}
		else
		{
			Debug.LogWarning((object)(((Object)((Component)this).gameObject).name + ": 缺少必要组件"));
		}
	}

	private void 启动残影()
	{
		((MonoBehaviour)this).StartCoroutine(启动残影xz());
	}

	[IteratorStateMachine(typeof(<启动残影xz>d__11))]
	private IEnumerator 启动残影xz()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <启动残影xz>d__11(0)
		{
			<>4__this = this
		};
	}

	private void Update()
	{
		飞翔11();
	}

	private void 飞翔11()
	{
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0097: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_011f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0124: Unknown result type (might be due to invalid IL or missing references)
		if (!feixx)
		{
			return;
		}
		Unit unit = unit34.data.targetData.unit;
		if (!unit.data.Dead)
		{
			Vector3 val = unit.data.mainRig.position - unit34.data.mainRig.position;
			Vector3 normalized = ((Vector3)(ref val)).normalized;
			allrig = unit34.data.allRigs.AllRigs;
			for (int i = 0; i < allrig.Length; i++)
			{
				allrig[i].AddForce(normalized * (力度 * Time.deltaTime), (ForceMode)5);
			}
			计时器1 += Time.deltaTime;
			if ((double)计时器1 > 0.1 && unit34.data.distanceToTarget < 1f)
			{
				TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(生生爆炸23, unit.data.mainRig.position, Quaternion.identity), ((Component)this).gameObject);
				计时器1 = 0f;
			}
		}
	}

	private void ClearAllVelocity()
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 0; i < allrig.Length; i++)
		{
			allrig[i].velocity = Vector3.zero;
			allrig[i].angularVelocity = Vector3.zero;
		}
	}
}
public class 是否下马判断 : MonoBehaviour
{
	private Unit unit;

	private bool 判断1 = true;

	private float 计时器 = 0f;

	private Mount mount2;

	private 添加延迟2事件 wwww;

	public void Start()
	{
		unit = ((Component)((Component)this).gameObject.transform.root).gameObject.GetComponentInChildren<Unit>();
		mount2 = ((Component)unit).GetComponentInChildren<Mount>();
		wwww = ((Component)this).gameObject.GetComponent<添加延迟2事件>();
		((Behaviour)wwww).enabled = false;
		if ((Object)(object)mount2 == (Object)null)
		{
			((Behaviour)wwww).enabled = true;
		}
	}

	public void Update()
	{
		if ((Object)(object)mount2 != (Object)null && 判断1 && !mount2.IsMounted)
		{
			((Behaviour)wwww).enabled = true;
			判断1 = false;
		}
	}
}
public class 黑客真伤效果 : MonoBehaviour
{
	private Unit unit;

	private bool 判断1 = true;

	private float 计时器 = 0f;

	private void Start()
	{
		unit = ((Component)((Component)this).gameObject.transform.root).gameObject.GetComponentInChildren<Unit>();
		if ((Object)(object)unit == (Object)null)
		{
			Debug.LogError((object)"未找到Unit组件");
			return;
		}
		float maxHealth = unit.data.maxHealth;
		if (maxHealth > 10000f)
		{
			强制死亡();
		}
		else if (maxHealth > 8000f)
		{
			固定扣血(1000f);
		}
		else if (maxHealth > 5000f)
		{
			固定扣血(600f);
		}
		else if (maxHealth > 3000f)
		{
			固定扣血(400f);
		}
		else if (maxHealth > 1000f)
		{
			固定扣血(100f);
		}
		else if (maxHealth > 500f)
		{
			固定扣血(10f);
		}
	}

	private void 强制死亡()
	{
		黑客消除er();
		GameModeService service = ServiceLocator.GetService<GameModeService>();
		if (service.CurrentGameMode == null)
		{
			Debug.LogError((object)"Could not find CurrentGameMode!");
		}
		else
		{
			service.CurrentGameMode.OnUnitDied(unit);
		}
		Object.Destroy((Object)(object)((Component)unit).gameObject);
	}

	private void 黑客消除er()
	{
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Expected O, but got Unknown
		//IL_0052: 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_0094: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Expected O, but got Unknown
		//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c4: Expected O, but got Unknown
		SkinnedMeshRenderer[] componentsInChildren = ((Component)unit).GetComponentsInChildren<SkinnedMeshRenderer>();
		foreach (SkinnedMeshRenderer val in componentsInChildren)
		{
			if (((Renderer)val).enabled && !((Object)(object)val.sharedMesh == (Object)null))
			{
				GameObject val2 = new GameObject("残影");
				val2.transform.position = ((Component)val).transform.position;
				val2.transform.rotation = ((Component)val).transform.rotation;
				MeshRenderer val3 = val2.AddComponent<MeshRenderer>();
				MeshFilter val4 = val2.AddComponent<MeshFilter>();
				val2.AddComponent<n秒后移除物体并淡出>().cd = 2f;
				Mesh val5 = new Mesh();
				val.BakeMesh(val5);
				val4.mesh = val5;
				Material material = new Material(UmMyMod.Asset1.LoadAsset<Material>("透明公司收到23其3"));
				((Renderer)val3).material = material;
			}
		}
	}

	private void 固定扣血(float he12)
	{
		DataHandler data = unit.data;
		data.health -= he12;
		if (unit.data.health <= 0f)
		{
			强制死亡();
		}
	}
}
public class n秒后移除物体并淡出 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <开始删除生成>d__6 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public n秒后移除物体并淡出 <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <开始删除生成>d__6(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(<>4__this.cd);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.淡出效果());
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				Object.Destroy((Object)(object)((Component)<>4__this).gameObject);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <淡出效果>d__7 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public n秒后移除物体并淡出 <>4__this;

		private float <计时器>5__1;

		private Color <最终颜色>5__2;

		private float <进度>5__3;

		private Color <新颜色>5__4;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <淡出效果>d__7(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: 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_0133: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				if ((Object)(object)<>4__this.渲染器 == (Object)null || (Object)(object)<>4__this.材质 == (Object)null)
				{
					return false;
				}
				<计时器>5__1 = 0f;
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (<计时器>5__1 < <>4__this.淡出时间)
			{
				<计时器>5__1 += Time.deltaTime;
				<进度>5__3 = <计时器>5__1 / <>4__this.淡出时间;
				<新颜色>5__4 = <>4__this.初始颜色;
				<新颜色>5__4.a = Mathf.Lerp(1f, 0f, <进度>5__3);
				<>4__this.材质.color = <新颜色>5__4;
				<>2__current = null;
				<>1__state = 1;
				return true;
			}
			<最终颜色>5__2 = <>4__this.初始颜色;
			<最终颜色>5__2.a = 0f;
			<>4__this.材质.color = <最终颜色>5__2;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	public float cd = 1.3f;

	public float 淡出时间 = 0.5f;

	private Renderer 渲染器;

	private Material 材质;

	private Color 初始颜色;

	public void Start()
	{
		//IL_0036: Unknown result type (might be due to invalid IL or missing references)
		//IL_003b: Unknown result type (might be due to invalid IL or missing references)
		渲染器 = ((Component)this).GetComponent<Renderer>();
		if ((Object)(object)渲染器 != (Object)null)
		{
			材质 = 渲染器.material;
			初始颜色 = 材质.color;
		}
		((MonoBehaviour)this).StartCoroutine(开始删除生成());
	}

	[IteratorStateMachine(typeof(<开始删除生成>d__6))]
	private IEnumerator 开始删除生成()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <开始删除生成>d__6(0)
		{
			<>4__this = this
		};
	}

	[IteratorStateMachine(typeof(<淡出效果>d__7))]
	private IEnumerator 淡出效果()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <淡出效果>d__7(0)
		{
			<>4__this = this
		};
	}

	private void OnDestroy()
	{
	}

	public void 开始淡出()
	{
		((MonoBehaviour)this).StartCoroutine(开始删除生成());
	}

	public void 设置参数(float CD, float 新淡出时间)
	{
		cd = CD;
		淡出时间 = 新淡出时间;
	}
}
public class 飞天坠落3 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <激活时间>d__20 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public float time;

		public float time2;

		public 飞天坠落3 <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <激活时间>d__20(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Expected O, but got Unknown
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.激活跳跃 = true;
				<>4__this.正在起飞 = true;
				<>4__this.正在坠落 = false;
				<>2__current = (object)new WaitForSeconds(time);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.正在起飞 = false;
				<>4__this.正在坠落 = true;
				<>2__current = (object)new WaitForSeconds(time2);
				<>1__state = 2;
				return true;
			case 2:
				<>1__state = -1;
				<>4__this.激活跳跃 = false;
				<>4__this.正在坠落 = false;
				<>4__this.到达目标判断 = true;
				<>4__this.计时器3 = 0f;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private Rigidbody[] 所有刚体组件;

	public Transform 目标变换;

	public Transform 本体变换;

	public bool 激活跳跃 = false;

	public float 跳跃时间 = 1f;

	public float 坠落时间 = 1f;

	public float 水平力强度 = 2000f;

	public float 起飞强度 = 2000f;

	public float 坠落强度 = 2000f;

	private float 计时器3 = 0f;

	private bool 正在起飞 = false;

	public GameObject exp;

	public GameObject 转化a;

	private bool 到达目标判断 = true;

	private bool 正在坠落 = false;

	private float 平滑系数 = 0.1f;

	private Dictionary<Rigidbody, Vector3> 初始角速度 = new Dictionary<Rigidbody, Vector3>();

	private void Start()
	{
	}

	public void 启动(Rigidbody[] 所有刚体, float 上升, float 下降, float 水平, float 跳跃时间1, float 下落时间1, Transform 目标变换1, Transform 本体变换1, GameObject exp1, GameObject exp转化)
	{
		所有刚体组件 = 所有刚体;
		目标变换 = 目标变换1;
		本体变换 = 本体变换1;
		水平力强度 = 水平;
		起飞强度 = 上升;
		坠落强度 = 下降;
		跳跃时间 = 跳跃时间1;
		坠落时间 = 下落时间1;
		exp = exp1;
		转化a = exp转化;
		保存初始角速度();
		((MonoBehaviour)this).StartCoroutine(激活时间(跳跃时间1, 下落时间1));
	}

	private void 保存初始角速度()
	{
		//IL_0026: Unknown result type (might be due to invalid IL or missing references)
		初始角速度.Clear();
		Rigidbody[] array = 所有刚体组件;
		foreach (Rigidbody val in array)
		{
			初始角速度[val] = val.angularVelocity;
		}
	}

	[IteratorStateMachine(typeof(<激活时间>d__20))]
	private IEnumerator 激活时间(float time = 3f, float time2 = 3f)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <激活时间>d__20(0)
		{
			<>4__this = this,
			time = time,
			time2 = time2
		};
	}

	private void Update()
	{
		if (激活跳跃)
		{
			起飞3();
		}
	}

	private void 起飞3()
	{
		计时器3 += Time.deltaTime;
		if (正在起飞 && 计时器3 < 跳跃时间)
		{
			上升力32();
			平滑旋转();
		}
		if (与目标水平距离() < 3f && 到达目标判断 && 正在起飞)
		{
			正在起飞 = false;
			正在坠落 = true;
			计时器3 = 0f;
			到达目标判断 = false;
		}
		if (正在坠落 && 计时器3 < 坠落时间)
		{
			坠落力32();
			平滑旋转();
			射线地面检测();
		}
		if (!正在起飞 && !正在坠落 && 激活跳跃)
		{
			平滑旋转();
		}
	}

	private void 平滑旋转()
	{
		//IL_0061: 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_0025: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_003b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d5: 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)
		Vector3 val2 = default(Vector3);
		for (int i = 0; i < 所有刚体组件.Length; i++)
		{
			Rigidbody val = 所有刚体组件[i];
			if (初始角速度.ContainsKey(val))
			{
				val.angularVelocity = Vector3.Lerp(val.angularVelocity, 初始角速度[val] * 0.3f, 平滑系数 * Time.deltaTime * 10f);
			}
			((Vector3)(ref val2))..ctor(val.velocity.x, 0f, val.velocity.z);
			if (((Vector3)(ref val2)).magnitude > 5f && !正在起飞)
			{
				val.velocity = new Vector3(Mathf.Lerp(val.velocity.x, 0f, 平滑系数 * Time.deltaTime * 5f), val.velocity.y, Mathf.Lerp(val.velocity.z, 0f, 平滑系数 * Time.deltaTime * 5f));
			}
		}
	}

	private Vector3 与目标水平方向()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Unknown result type (might be due to invalid IL or missing references)
		//IL_0017: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: 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_0033: Unknown result type (might be due to invalid IL or missing references)
		Vector3 val = 目标变换.position - 本体变换.position;
		val.y = 0f;
		return ((Vector3)(ref val)).normalized;
	}

	private float 与目标水平距离()
	{
		//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_001f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		Vector3 position = 目标变换.position;
		position.y = 0f;
		Vector3 position2 = 本体变换.position;
		position2.y = 0f;
		return Vector3.Distance(position, position2);
	}

	private void 上升力32()
	{
		//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_0027: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: 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_0067: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 0; i < 所有刚体组件.Length; i++)
		{
			Vector3 val = 与目标水平方向();
			float num = Mathf.Clamp01(与目标水平距离() / 10f);
			所有刚体组件[i].AddForce(Vector3.up * 起飞强度 * Time.deltaTime, (ForceMode)5);
			所有刚体组件[i].AddForce(val * 水平力强度 * num * Time.deltaTime, (ForceMode)5);
		}
	}

	private void 坠落力32()
	{
		//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_0027: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0050: Unknown result type (might be due to invalid IL or missing references)
		//IL_0057: 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_0067: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 0; i < 所有刚体组件.Length; i++)
		{
			Vector3 val = 与目标水平方向();
			float num = Mathf.Clamp01(与目标水平距离() / 5f);
			所有刚体组件[i].AddForce(Vector3.down * 坠落强度 * Time.deltaTime, (ForceMode)5);
			所有刚体组件[i].AddForce(val * 水平力强度 * num * Time.deltaTime, (ForceMode)5);
		}
	}

	private void 射线地面检测()
	{
		//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_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_0021: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: 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_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0091: 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_00c3: 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_00cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f8: 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_0101: Unknown result type (might be due to invalid IL or missing references)
		Vector3 val = 本体变换.position + Vector3.up * 10f;
		RaycastHit[] array = Physics.RaycastAll(val, Vector3.down, 60f);
		Array.Sort(array, (RaycastHit a, RaycastHit b) => ((RaycastHit)(ref a)).distance.CompareTo(((RaycastHit)(ref b)).distance));
		RaycastHit? val2 = null;
		RaycastHit[] array2 = array;
		for (int i = 0; i < array2.Length; i++)
		{
			RaycastHit value = array2[i];
			if (!IsUnitOrChildOfUnit(((Component)((RaycastHit)(ref value)).collider).gameObject))
			{
				val2 = value;
				break;
			}
		}
		if (val2.HasValue)
		{
			Vector3 position = 本体变换.position;
			RaycastHit value2 = val2.Value;
			float num = Vector3.Distance(position, ((RaycastHit)(ref value2)).point);
			if (num < 1.5f)
			{
				平滑减速();
				GameObject gameObjectw = exp;
				value2 = val2.Value;
				生成坠落爆炸(gameObjectw, ((RaycastHit)(ref value2)).point, 转化a);
				已坠落1();
			}
		}
	}

	private void 平滑减速()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0016: 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_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		for (int i = 0; i < 所有刚体组件.Length; i++)
		{
			Rigidbody val = 所有刚体组件[i];
			val.velocity = Vector3.Lerp(val.velocity, Vector3.zero, 0.5f * Time.deltaTime * 10f);
			val.angularVelocity = Vector3.Lerp(val.angularVelocity, Vector3.zero, 0.5f * Time.deltaTime * 10f);
		}
	}

	private bool IsUnitOrChildOfUnit(GameObject obj)
	{
		if ((Object)(object)obj.GetComponent<FollowTransform>() != (Object)null)
		{
			return true;
		}
		GameObject gameObject = ((Component)obj.transform.root).gameObject;
		Unit[] componentsInChildren = gameObject.GetComponentsInChildren<Unit>(true);
		return componentsInChildren.Length != 0;
	}

	private void 生成坠落爆炸(GameObject gameObjectw, Vector3 pion, GameObject 召唤物)
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)gameObjectw != (Object)null)
		{
			TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(gameObjectw, pion, Quaternion.identity), 召唤物);
		}
	}

	private void 已坠落1()
	{
		激活跳跃 = false;
		正在起飞 = false;
		正在坠落 = false;
		到达目标判断 = true;
		计时器3 = 0f;
	}
}
public class 泰山压顶控制器 : MonoBehaviour
{
	private DelayEvent 延迟事件组件;

	private 飞天坠落3 泰山压顶组件;

	private Unit Unit23;

	public GameObject exp323 = UmMyMod.Asset1.LoadAsset<GameObject>("坠落爆炸234");

	private void Start()
	{
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Expected O, but got Unknown
		延迟事件组件 = ((Component)this).GetComponent<DelayEvent>();
		泰山压顶组件 = ((Component)this).GetComponent<飞天坠落3>();
		Unit23 = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>();
		if ((Object)(object)延迟事件组件 != (Object)null && (Object)(object)泰山压顶组件 != (Object)null)
		{
			延迟事件组件.delayedEvent.AddListener(new UnityAction(启动泰山压顶控制器));
		}
		else
		{
			Debug.LogWarning((object)(((Object)((Component)this).gameObject).name + ": 缺少必要组件"));
		}
	}

	private void 启动泰山压顶控制器()
	{
		Unit unit = Unit23.data.targetData.unit;
		if ((Object)(object)泰山压顶组件 != (Object)null)
		{
			泰山压顶组件.启动(Unit23.data.allRigs.AllRigs, 6000f, 8000f, 4000f, 1.5f, 4f, ((Component)unit.data.mainRig).transform, ((Component)Unit23.data.mainRig).transform, exp323, ((Component)this).gameObject);
		}
	}

	private void OnDestroy()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Expected O, but got Unknown
		if ((Object)(object)延迟事件组件 != (Object)null)
		{
			延迟事件组件.delayedEvent.RemoveListener(new UnityAction(启动泰山压顶控制器));
		}
	}
}
public class 顺序发射炮弹 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <DisableChildrenOneByOne>d__5 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public 顺序发射炮弹 <>4__this;

		private int <i>5__1;

		private Transform <child>5__2;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <DisableChildrenOneByOne>d__5(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<child>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<i>5__1 = 0;
				break;
			case 1:
				<>1__state = -1;
				<child>5__2 = null;
				<i>5__1++;
				break;
			}
			if (<i>5__1 < <>4__this.parentObject.transform.childCount)
			{
				<child>5__2 = <>4__this.parentObject.transform.GetChild(<i>5__1);
				if ((Object)(object)((Component)<child>5__2).gameObject.GetComponentInChildren<SpawnObject>() != (Object)null)
				{
					((Component)<child>5__2).gameObject.GetComponent<DelayEvent>().Go();
				}
				<>2__current = (object)new WaitForSeconds(<>4__this.delayBetweenDisable);
				<>1__state = 1;
				return true;
			}
			Debug.Log((object)"所有子物体已按顺序禁用完成!");
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[Header("设置")]
	public GameObject parentObject;

	public float delayBetweenDisable = 0.1f;

	private Unit erree;

	private void Start()
	{
		//IL_002e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Expected O, but got Unknown
		erree = ((Component)((Component)this).transform.root).GetComponentInChildren<Unit>();
		((Component)this).gameObject.GetComponent<DelayEvent>().delayedEvent.AddListener(new UnityAction(启动32));
		parentObject = ((Component)((Component)this).gameObject.transform.Find("本体火箭同233244")).gameObject;
		if (!((Object)(object)parentObject != (Object)null))
		{
			Debug.LogError((object)"请指定父物体!");
		}
	}

	private void 启动32()
	{
		if (!erree.data.targetData.Dead)
		{
			((MonoBehaviour)this).StartCoroutine(DisableChildrenOneByOne());
		}
	}

	[IteratorStateMachine(typeof(<DisableChildrenOneByOne>d__5))]
	private IEnumerator DisableChildrenOneByOne()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <DisableChildrenOneByOne>d__5(0)
		{
			<>4__this = this
		};
	}
}
public class 半血变换4 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <kiazhaidsfj>d__7 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public UnitBlueprint unit3;

		public 半血变换4 <>4__this;

		private Quaternion <rotation>5__1;

		private GameObject <gameObject1>5__2;

		private Rigidbody[] <allRigs>5__3;

		private Rigidbody[] <allRigs2>5__4;

		private int <num>5__5;

		private int <m>5__6;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <kiazhaidsfj>d__7(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<gameObject1>5__2 = null;
			<allRigs>5__3 = null;
			<allRigs2>5__4 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: 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_0076: 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_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: 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_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			if (<>1__state != 0)
			{
				return false;
			}
			<>1__state = -1;
			<rotation>5__1 = Quaternion.LookRotation(Vector3.up);
			TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(<>4__this.母体集束炸弹, <>4__this.unit.data.mainRig.position + ((Component)<>4__this.unit.data.mainRig).transform.forward * -4f, <rotation>5__1), ((Component)<>4__this).gameObject);
			<gameObject1>5__2 = unit3.Spawn(<>4__this.unit.data.mainRig.position + Vector3.up * 1000f, <>4__this.unit.data.mainRig.rotation, <>4__this.unit.Team, 1f, (UnitPoolInfo?)null)[0];
			<allRigs>5__3 = <>4__this.unit.data.allRigs.AllRigs;
			<allRigs2>5__4 = <gameObject1>5__2.GetComponent<Unit>().data.allRigs.AllRigs;
			((Component)<>4__this.unit).GetComponentsInChildren<Rigidbody>();
			<gameObject1>5__2.transform.localScale = ((Component)<>4__this.unit).transform.localScale;
			for (<m>5__6 = 0; <m>5__6 < <allRigs2>5__4.Length; <m>5__6 = <num>5__5 + 1)
			{
				((Component)<allRigs2>5__4[<m>5__6]).transform.localScale = ((Component)<allRigs>5__3[<m>5__6]).transform.localScale;
				((Component)<allRigs2>5__4[<m>5__6]).transform.position = ((Component)<allRigs>5__3[<m>5__6]).transform.position;
				((Component)<allRigs2>5__4[<m>5__6]).transform.rotation = ((Component)<allRigs>5__3[<m>5__6]).transform.rotation;
				<allRigs2>5__4[<m>5__6].velocity = <allRigs>5__3[<m>5__6].velocity;
				<num>5__5 = <m>5__6;
			}
			Object.Destroy((Object)(object)((Component)<>4__this.unit).gameObject);
			<>4__this.判断1 = false;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private Unit unit;

	private bool 判断1 = true;

	private float 计时器 = 0f;

	public UnitBlueprint unitBlueprint323;

	public GameObject 母体集束炸弹;

	public void Start()
	{
		unit = ((Component)((Component)this).gameObject.transform.root).gameObject.GetComponentInChildren<Unit>();
	}

	public void Update()
	{
		if ((double)unit.data.health <= (double)unit.data.maxHealth * 0.5 && 判断1)
		{
			((MonoBehaviour)this).StartCoroutine(kiazhaidsfj(unitBlueprint323));
		}
	}

	[IteratorStateMachine(typeof(<kiazhaidsfj>d__7))]
	public IEnumerator kiazhaidsfj(UnitBlueprint unit3)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <kiazhaidsfj>d__7(0)
		{
			<>4__this = this,
			unit3 = unit3
		};
	}
}
public class 集束炸弹母体脚本 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <集束爆炸协程>d__4 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public 集束炸弹母体脚本 <>4__this;

		private GameObject <集束炸弹控制器>5__1;

		private RemoveAfterSeconds <自动销毁组件>5__2;

		private 集束炸弹32 <集束炸弹逻辑>5__3;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <集束爆炸协程>d__4(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<集束炸弹控制器>5__1 = null;
			<自动销毁组件>5__2 = null;
			<集束炸弹逻辑>5__3 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: 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_006c: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(<>4__this.爆炸延迟时间);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<集束炸弹控制器>5__1 = new GameObject("集束炸弹控制器");
				<集束炸弹控制器>5__1.transform.position = ((Component)<>4__this).transform.position;
				<自动销毁组件>5__2 = <集束炸弹控制器>5__1.AddComponent<RemoveAfterSeconds>();
				<自动销毁组件>5__2.seconds = <>4__this.生成物存在时间;
				TeamHolder.AddTeamHolder(<集束炸弹控制器>5__1, ((Component)<>4__this).gameObject);
				<集束炸弹逻辑>5__3 = <集束炸弹控制器>5__1.AddComponent<集束炸弹32>();
				<集束炸弹逻辑>5__3.子体集束炸弹预制体 = <>4__this.子体集束炸弹预制体1;
				Object.Destroy((Object)(object)((Component)<>4__this).gameObject);
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	public GameObject 子体集束炸弹预制体1;

	[SerializeField]
	private float 爆炸延迟时间 = 1f;

	[SerializeField]
	private float 生成物存在时间 = 5f;

	private void Start()
	{
		((MonoBehaviour)this).StartCoroutine(集束爆炸协程());
	}

	[IteratorStateMachine(typeof(<集束爆炸协程>d__4))]
	public IEnumerator 集束爆炸协程()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <集束爆炸协程>d__4(0)
		{
			<>4__this = this
		};
	}
}
public class 集束炸弹32 : MonoBehaviour
{
	[CompilerGenerated]
	private sealed class <集束爆炸协程>d__8 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public 集束炸弹32 <>4__this;

		private int <i>5__1;

		private Vector3 <随机方向>5__2;

		private GameObject <炸弹实例>5__3;

		private Rigidbody <rb>5__4;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <集束爆炸协程>d__8(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<炸弹实例>5__3 = null;
			<rb>5__4 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Expected O, but got Unknown
			int num = <>1__state;
			if (num != 0)
			{
				if (num != 1)
				{
					return false;
				}
				<>1__state = -1;
				goto IL_018a;
			}
			<>1__state = -1;
			<i>5__1 = 0;
			goto IL_01ab;
			IL_018a:
			<炸弹实例>5__3 = null;
			<rb>5__4 = null;
			<i>5__1++;
			goto IL_01ab;
			IL_01ab:
			if ((float)<i>5__1 < <>4__this.集束炸弹数量)
			{
				<随机方向>5__2 = new Vector3(Random.Range(0f - <>4__this.随机散布范围, <>4__this.随机散布范围), Random.Range((0f - <>4__this.随机散布范围) * 1f, 0f), Random.Range(0f - <>4__this.随机散布范围, <>4__this.随机散布范围));
				<炸弹实例>5__3 = Object.Instantiate<GameObject>(<>4__this.子体集束炸弹预制体, ((Component)<>4__this).transform.position, Quaternion.identity);
				if (<随机方向>5__2 != Vector3.zero)
				{
					<炸弹实例>5__3.transform.rotation = Quaternion.LookRotation(((Vector3)(ref <随机方向>5__2)).normalized);
				}
				<rb>5__4 = <炸弹实例>5__3.GetComponent<Rigidbody>();
				if ((Object)(object)<rb>5__4 != (Object)null)
				{
					<rb>5__4.velocity = ((Vector3)(ref <随机方向>5__2)).normalized * 10f;
				}
				TeamHolder.AddTeamHolder(<炸弹实例>5__3, ((Component)<>4__this).gameObject);
				if (<>4__this.爆炸间隔 > 0f)
				{
					<>2__current = (object)new WaitForSeconds(<>4__this.爆炸间隔);
					<>1__state = 1;
					return true;
				}
				goto IL_018a;
			}
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[SerializeField]
	private float 集束炸弹数量 = 200f;

	[SerializeField]
	public GameObject 子体集束炸弹预制体;

	[SerializeField]
	private float 随机散布范围 = 12f;

	[SerializeField]
	private float 爆炸间隔 = 0.02f;

	private MoveTransform moveqw;

	public float 速度变化 = 50f;

	private void Start()
	{
		moveqw = 子体集束炸弹预制体.GetComponent<MoveTransform>();
		((MonoBehaviour)this).StartCoroutine(集束爆炸协程());
	}

	private void Update()
	{
		moveqw.selfImpulse.z = Random.Range(0f, 速度变化);
	}

	[IteratorStateMachine(typeof(<集束爆炸协程>d__8))]
	public IEnumerator 集束爆炸协程()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <集束爆炸协程>d__8(0)
		{
			<>4__this = this
		};
	}
}
public class 召唤爆炸并删除自身 : MonoBehaviour
{
	private Unit unit;

	private bool 判断1 = true;

	private float 计时器 = 0f;

	public GameObject 爆炸;

	private void Start()
	{
		//IL_0046: 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)
		unit = ((Component)((Component)this).gameObject.transform.root).gameObject.GetComponentInChildren<Unit>();
		((Damagable)unit.data.healthHandler).TakeDamage(1000f, unit.data.mainRig.position, (Unit)null, (DamageType)0);
		TeamHolder.AddTeamHolder(Object.Instantiate<GameObject>(爆炸, unit.data.mainRig.position, Quaternion.identity), ((Component)this).gameObject);
		Object.Destroy((Object)(object)((Component)this).gameObject);
	}
}
public class OffsetCameraController : MonoBehaviour
{
	[Header("放大镜设置")]
	[SerializeField]
	private float magnification = 1.2f;

	[SerializeField]
	private float maxMagnification = 5f;

	[SerializeField]
	private float minMagnification = 1f;

	[SerializeField]
	private float smoothFactor = 10f;

	[SerializeField]
	private float cameraDistance = 5f;

	[Header("参考对象")]
	[SerializeField]
	private Camera mainCamera;

	[SerializeField]
	private Transform targetPlane;

	public Material materialTemplate;

	[Header("渲染设置")]
	[SerializeField]
	private LayerMask cullingMask = LayerMask.op_Implicit(-1);

	[SerializeField]
	private float renderDepth = 100f;

	[SerializeField]
	private Vector2 renderResolution = new Vector2(400f, 400f);

	private Camera portalCamera;

	private Vector3 originalPosition;

	private float originalFOV;

	private RenderTexture renderTexture;

	private Material instanceMaterial;

	private static int instanceCounter;

	private int instanceId;

	private string portalCameraName;

	private Vector3 targetPosition;

	private Quaternion targetRotation;

	private Vector3 planeNormal;

	private Vector3 planeCenter;

	private void Awake()
	{
		instanceId = ++instanceCounter;
		portalCameraName = $"PortalCamera_{instanceId}";
		((Object)((Component)this).gameObject).name = portalCameraName;
	}

	private void Start()
	{
		Debug.Log((object)$"初始化门户相机 {instanceId}");
		InitializeComponents();
		if (ValidateComponents())
		{
			CalculatePlaneProperties();
			CreateRenderTexture();
			CreateInstanceMaterial();
			SetupPortalCamera();
			Debug.Log((object)$"门户相机 {instanceId} 初始化完成");
		}
	}

	private bool ValidateComponents()
	{
		if ((Object)(object)portalCamera == (Object)null)
		{
			Debug.LogError((object)$"实例 {instanceId}: 门户相机组件为空!");
			return false;
		}
		if ((Object)(object)mainCamera == (Object)null)
		{
			mainCamera = Camera.main;
			if ((Object)(object)mainCamera == (Object)null)
			{
				Debug.LogError((object)$"实例 {instanceId}: 找不到主相机!");
				return false;
			}
		}
		if ((Object)(object)targetPlane == (Object)null)
		{
			Debug.LogError((object)$"实例 {instanceId}: 目标平面为空!");
			return false;
		}
		return true;
	}

	private void InitializeComponents()
	{
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bb: Expected O, but got Unknown
		portalCamera = ((Component)this).GetComponent<Camera>();
		if ((Object)(object)portalCamera == (Object)null)
		{
			portalCamera = ((Component)this).gameObject.AddComponent<Camera>();
		}
		if ((Object)(object)mainCamera == (Object)null)
		{
			mainCamera = Camera.main;
		}
		if (!((Object)(object)targetPlane == (Object)null))
		{
			return;
		}
		Transform parent = ((Component)this).transform.parent;
		if (!((Object)(object)parent != (Object)null))
		{
			return;
		}
		targetPlane = parent.Find("Plane");
		if (!((Object)(object)targetPlane == (Object)null))
		{
			return;
		}
		foreach (Transform item in parent)
		{
			Transform val = item;
			if (((Object)val).name.Contains("Plane"))
			{
				targetPlane = val;
				break;
			}
		}
	}

	private void CalculatePlaneProperties()
	{
		//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_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)
		if (!((Object)(object)targetPlane == (Object)null))
		{
			planeCenter = targetPlane.position;
			planeNormal = targetPlane.forward;
		}
	}

	private void CreateRenderTexture()
	{
		//IL_0047: 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_0068: 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_0080: Unknown result type (might be due to invalid IL or missing references)
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_009e: Expected O, but got Unknown
		if ((Object)(object)renderTexture != (Object)null)
		{
			renderTexture.Release();
			Object.DestroyImmediate((Object)(object)renderTexture);
		}
		renderTexture = new RenderTexture((int)renderResolution.x, (int)renderResolution.y, 24, (RenderTextureFormat)0)
		{
			name = $"PortalRT_{instanceId}",
			antiAliasing = 4,
			filterMode = (FilterMode)1,
			wrapMode = (TextureWrapMode)1,
			useMipMap = false,
			autoGenerateMips = false,
			depth = 24
		};
		renderTexture.Create();
		Debug.Log((object)$"实例 {instanceId}: 创建RenderTexture {((Object)renderTexture).name}");
	}

	private void CreateInstanceMaterial()
	{
		//IL_0067: Unknown result type (might be due to invalid IL or missing references)
		//IL_0071: Expected O, but got Unknown
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_0041: Expected O, but got Unknown
		if ((Object)(object)materialTemplate == (Object)null)
		{
			Shader val = Shader.Find("Custom/DoubleSidedPortal");
			if ((Object)(object)val == (Object)null)
			{
				val = Shader.Find("Unlit/Texture");
			}
			instanceMaterial = new Material(val);
			Debug.LogWarning((object)$"实例 {instanceId}: 使用默认材质");
		}
		else
		{
			instanceMaterial = new Material(materialTemplate);
		}
		((Object)instanceMaterial).name = $"PortalMaterial_{instanceId}";
		if ((Object)(object)renderTexture != (Object)null)
		{
			instanceMaterial.SetTexture("_MainTex", (Texture)(object)renderTexture);
		}
		if ((Object)(object)targetPlane != (Object)null)
		{
			MeshRenderer component = ((Component)targetPlane).GetComponent<MeshRenderer>();
			if ((Object)(object)component != (Object)null)
			{
				((Renderer)component).material = instanceMaterial;
				Debug.Log((object)$"实例 {instanceId}: 材质应用到平面");
			}
		}
	}

	private void SetupPortalCamera()
	{
		//IL_004e: 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_0094: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		if (!((Object)(object)portalCamera == (Object)null))
		{
			portalCamera.targetTexture = renderTexture;
			portalCamera.depth = -100f + (float)instanceId * 0.1f;
			portalCamera.cullingMask = LayerMask.op_Implicit(cullingMask);
			portalCamera.clearFlags = (CameraClearFlags)2;
			portalCamera.backgroundColor = Color.clear;
			originalFOV = portalCamera.fieldOfView;
			originalPosition = ((Component)this).transform.localPosition;
			UpdateCameraTransform(instant: true);
			Debug.Log((object)$"实例 {instanceId}: 相机设置完成");
		}
	}

	private void Update()
	{
		//IL_0017: Unknown result type (might be due to invalid IL or missing references)
		if (ValidateComponents())
		{
			((Component)this).transform.position = targetPosition;
			if ((Object)(object)portalCamera != (Object)null)
			{
				portalCamera.fieldOfView = originalFOV / magnification;
			}
		}
	}

	private void UpdateCameraTransform(bool instant = false)
	{
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: 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_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: 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_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_0076: Unknown result type (might be due to invalid IL or missing references)
		//IL_007b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0081: 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_0091: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: 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_00a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_0127: Unknown result type (might be due to invalid IL or missing references)
		//IL_012e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0145: Unknown result type (might be due to invalid IL or missing references)
		//IL_014b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0152: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
		if (!((Object)(object)targetPlane == (Object)null))
		{
			Vector3 val = -planeNormal;
			targetPosition = planeCenter + val * cameraDistance;
			float num = 0.5f;
			float num2 = 20f;
			float num3 = Vector3.Distance(targetPosition, planeCenter);
			num3 = Mathf.Clamp(num3, num, num2);
			targetPosition = planeCenter + val * num3;
			Vector3 val2 = planeCenter - targetPosition;
			if (val2 != Vector3.zero)
			{
				targetRotation = Quaternion.LookRotation(val2, Vector3.up);
			}
			if (instant)
			{
				((Component)this).transform.position = targetPosition;
				((Component)this).transform.rotation = ((Component)mainCamera).transform.rotation;
				return;
			}
			float num4 = smoothFactor * Time.deltaTime;
			float num5 = smoothFactor * Time.deltaTime * 2f;
			((Component)this).transform.position = Vector3.Lerp(((Component)this).transform.position, targetPosition, num4);
			((Component)this).transform.rotation = Quaternion.Slerp(((Component)this).transform.rotation, targetRotation, num5);
		}
	}

	private void LateUpdate()
	{
		if (!ValidateComponents())
		{
			return;
		}
		if ((Object)(object)portalCamera != (Object)null)
		{
			portalCamera.nearClipPlane = 0.01f;
			portalCamera.farClipPlane = renderDepth;
			if ((Object)(object)portalCamera.targetTexture != (Object)(object)renderTexture)
			{
				portalCamera.targetTexture = renderTexture;
			}
		}
		UpdateCameraTransform();
		ValidateCameraPosition();
	}

	private void ValidateCameraPosition()
	{
		//IL_002d: 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_003d: Unknown result type (might be due to invalid IL or missing references)
		//IL_003e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: 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_00b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00be: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: 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_006c: 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_0081: 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_00dc: 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_00e2: Unknown result type (might be due to invalid IL or missing references)
		if (!((Object)(object)targetPlane == (Object)null) && !((Object)(object)portalCamera == (Object)null))
		{
			Vector3 val = ((Component)this).transform.position - planeCenter;
			float num = Vector3.Dot(val, planeNormal);
			if (Mathf.Abs(num) < 0.3f)
			{
				((Component)this).transform.position = planeCenter + planeNormal * 0.5f * Mathf.Sign(num);
				Debug.LogWarning((object)$"实例 {instanceId}: 相机位置调整,避免穿透平面");
			}
			Vector3 val2 = planeCenter - ((Component)this).transform.position;
			if (val2 != Vector3.zero)
			{
				((Component)this).transform.rotation = Quaternion.LookRotation(val2, Vector3.up);
			}
		}
	}

	private void OnDrawGizmosSelected()
	{
		//IL_0027: 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_0043: 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_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: 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_0092: Unknown result type (might be due to invalid IL or missing references)
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
		if (!((Object)(object)targetPlane == (Object)null) && !((Object)(object)portalCamera == (Object)null))
		{
			Gizmos.color = Color.cyan;
			Gizmos.DrawWireSphere(planeCenter, 0.1f);
			Gizmos.color = Color.green;
			Gizmos.DrawLine(planeCenter, planeCenter + planeNormal);
			Gizmos.color = Color.yellow;
			Gizmos.DrawWireSphere(((Component)this).transform.position, 0.05f);
			Gizmos.DrawLine(((Component)this).transform.position, planeCenter);
			if ((Object)(object)portalCamera != (Object)null)
			{
				Gizmos.color = new Color(1f, 0.5f, 0f, 0.3f);
				DrawCameraFrustum(portalCamera);
			}
		}
	}

	private void DrawCameraFrustum(Camera cam)
	{
		//IL_001d: 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_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_005b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: 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)
		//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00af: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00db: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		//IL_0110: Unknown result type (might be due to invalid IL or missing references)
		//IL_0117: Unknown result type (might be due to invalid IL or missing references)
		Vector3[] array = (Vector3[])(object)new Vector3[4];
		cam.CalculateFrustumCorners(new Rect(0f, 0f, 1f, 1f), cam.farClipPlane, (MonoOrStereoscopicEye)2, array);
		Vector3[] array2 = (Vector3[])(object)new Vector3[4];
		for (int i = 0; i < 4; i++)
		{
			array2[i] = ((Component)cam).transform.TransformVector(array[i]) + ((Component)cam).transform.position;
		}
		Gizmos.DrawLine(((Component)cam).transform.position, array2[0]);
		Gizmos.DrawLine(((Component)cam).transform.position, array2[1]);
		Gizmos.DrawLine(((Component)cam).transform.position, array2[2]);
		Gizmos.DrawLine(((Component)cam).transform.position, array2[3]);
		Gizmos.DrawLine(array2[0], array2[1]);
		Gizmos.DrawLine(array2[1], array2[2]);
		Gizmos.DrawLine(array2[2], array2[3]);
		Gizmos.DrawLine(array2[3], array2[0]);
	}

	private void OnDestroy()
	{
		Debug.Log((object)$"清理门户相机 {instanceId} 资源");
		if ((Object)(object)renderTexture != (Object)null)
		{
			if ((Object)(object)portalCamera != (Object)null && (Object)(object)portalCamera.targetTexture == (Object)(object)renderTexture)
			{
				portalCamera.targetTexture = null;
			}
			renderTexture.Release();
			Object.DestroyImmediate((Object)(object)renderTexture);
		}
		if ((Object)(object)instanceMaterial != (Object)null)
		{
			Object.DestroyImmediate((Object)(object)instanceMaterial);
		}
	}

	public void SetMagnification(float newMagnification)
	{
		magnification = Mathf.Clamp(newMagnification, minMagnification, maxMagnification);
		if ((Object)(object)portalCamera != (Object)null)
		{
			portalCamera.fieldOfView = originalFOV / magnification;
		}
	}

	public void SetCameraDistance(float distance)
	{
		cameraDistance = Mathf.Max(0.5f, distance);
	}

	public RenderTexture GetRenderTexture()
	{
		return renderTexture;
	}

	public Material GetMaterial()
	{
		return instanceMaterial;
	}
}
public class 空间碎裂生成器 : MonoBehaviour
{
	private class FragmentData
	{
		public GameObject fragment;

		public Vector3 moveDirection;

		public float moveSpeed;

		public float shrinkSpeed;

		public Vector3 originalScale;

		public float lifeTime = 0f;

		public bool isActive = true;
	}

	[CompilerGenerated]
	private sealed class <FadeOutAndDestroy>d__23 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public FragmentData fragment;

		public 空间碎裂生成器 <>4__this;

		private Renderer <renderer>5__1;

		private Material <material>5__2;

		private Color <originalColor>5__3;

		private float <fadeTime>5__4;

		private float <elapsedTime>5__5;

		private float <alpha>5__6;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <FadeOutAndDestroy>d__23(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<renderer>5__1 = null;
			<material>5__2 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//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_0103: Unknown result type (might be due to invalid IL or missing references)
			int num = <>1__state;
			if (num != 0)
			{
				if (num != 1)
				{
					return false;
				}
				<>1__state = -1;
			}
			else
			{
				<>1__state = -1;
				if ((Object)(object)fragment.fragment == (Object)null)
				{
					return false;
				}
				<renderer>5__1 = fragment.fragment.GetComponent<Renderer>();
				if (!((Object)(object)<renderer>5__1 != (Object)null))
				{
					goto IL_0143;
				}
				<material>5__2 = <renderer>5__1.material;
				<originalColor>5__3 = <material>5__2.color;
				<fadeTime>5__4 = 0.5f;
				<elapsedTime>5__5 = 0f;
			}
			if (<elapsedTime>5__5 < <fadeTime>5__4)
			{
				<elapsedTime>5__5 += Time.deltaTime;
				<alpha>5__6 = Mathf.Lerp(1f, 0f, <elapsedTime>5__5 / <fadeTime>5__4);
				<material>5__2.color = new Color(<originalColor>5__3.r, <originalColor>5__3.g, <originalColor>5__3.b, <alpha>5__6);
				<>2__current = null;
				<>1__state = 1;
				return true;
			}
			<material>5__2 = null;
			goto IL_0143;
			IL_0143:
			if ((Object)(object)fragment.fragment != (Object)null)
			{
				Object.Destroy((Object)(object)fragment.fragment);
			}
			fragment.isActive = false;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <SpawnObjects>d__19 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public 空间碎裂生成器 <>4__this;

		private int <i>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <SpawnObjects>d__19(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.isSpawning = true;
				<i>5__1 = 0;
				break;
			case 1:
				<>1__state = -1;
				<i>5__1++;
				break;
			}
			if (<i>5__1 < <>4__this.objectsPerKeyPress)
			{
				<>4__this.SpawnRandomObject();
				<>4__this.spawnInterval -= 0.01f;
				if (<>4__this.spawnInterval <= 0.01f)
				{
					<>4__this.spawnInterval = 0.01f;
				}
				<>2__current = (object)new WaitForSeconds(<>4__this.spawnInterval);
				<>1__state = 1;
				return true;
			}
			<>4__this.isSpawning = false;
			<>4__this.allObjectsGenerated = true;
			Debug.Log((object)$"所有碎片生成完成,开始运动效果,碎片数量:{<>4__this.activeFragments.Count}");
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[Header("生成设置")]
	[SerializeField]
	private float spawnRadius = 15f;

	[SerializeField]
	public GameObject[] objectPrefabs;

	[SerializeField]
	private KeyCode spawnKey = (KeyCode)107;

	[Header("随机范围")]
	[SerializeField]
	private Vector2 scaleRange = new Vector2(1f, 2f);

	[SerializeField]
	private Vector2 moveSpeedRange = new Vector2(1f, 3f);

	[SerializeField]
	private Vector2 shrinkSpeedRange = new Vector2(0.5f, 1.5f);

	[SerializeField]
	private bool randomizeRotation = true;

	[Header("生成控制")]
	[SerializeField]
	private float spawnInterval = 0.1f;

	[SerializeField]
	private int objectsPerKeyPress = 7;

	[SerializeField]
	private float destroyDelay = 3f;

	private bool isSpawning = false;

	private bool allObjectsGenerated = false;

	private Coroutine spawnCoroutine;

	private List<FragmentData> activeFragments = new List<FragmentData>();

	private void Start()
	{
		StartSpawning();
	}

	private void Update()
	{
		if (allObjectsGenerated && activeFragments.Count > 0)
		{
			UpdateFragmentsMovement();
		}
	}

	private void StartSpawning()
	{
		if (spawnCoroutine != null)
		{
			((MonoBehaviour)this).StopCoroutine(spawnCoroutine);
		}
		allObjectsGenerated = false;
		CleanupOldFragments();
		spawnCoroutine = ((MonoBehaviour)this).StartCoroutine(SpawnObjects());
	}

	private void StopSpawning()
	{
		if (spawnCoroutine != null)
		{
			((MonoBehaviour)this).StopCoroutine(spawnCoroutine);
		}
		isSpawning = false;
	}

	[IteratorStateMachine(typeof(<SpawnObjects>d__19))]
	private IEnumerator SpawnObjects()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <SpawnObjects>d__19(0)
		{
			<>4__this = this
		};
	}

	private void SpawnRandomObject()
	{
		//IL_0049: Unknown result type (might be due to invalid IL or missing references)
		//IL_004e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0059: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0063: Unknown result type (might be due to invalid IL or missing references)
		//IL_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0078: 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_00a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00da: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_017e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0183: Unknown result type (might be due to invalid IL or missing references)
		//IL_0187: Unknown result type (might be due to invalid IL or missing references)
		//IL_018c: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
		if (objectPrefabs == null || objectPrefabs.Length == 0)
		{
			Debug.LogWarning((object)"请为空间碎裂生成器脚本分配预制体!");
			return;
		}
		GameObject val = objectPrefabs[Random.Range(0, objectPrefabs.Length)];
		Vector3 val2 = ((Component)this).transform.position + Random.insideUnitSphere * spawnRadius;
		Quaternion val3 = (randomizeRotation ? Random.rotation : Quaternion.identity);
		float num = Random.Range(scaleRange.x, scaleRange.y);
		Vector3 val4 = Vector3.one * num;
		GameObject val5 = Object.Instantiate<GameObject>(val, val2, val3, ((Component)this).gameObject.transform);
		((Object)val5).name = $"空间碎片_{Time.time:F2}";
		val5.transform.localScale = val4;
		FragmentData fragmentData = new FragmentData
		{
			fragment = val5,
			originalScale = val4,
			moveSpeed = Random.Range(moveSpeedRange.x, moveSpeedRange.y),
			shrinkSpeed = Random.Range(shrinkSpeedRange.x, shrinkSpeedRange.y),
			isActive = true
		};
		float num2 = Random.Range(0f, 360f);
		float num3 = num2 * ((float)Math.PI / 180f);
		Vector3 val6 = new Vector3(Mathf.Cos(num3) * 0.3f, -1f, Mathf.Sin(num3) * 0.3f);
		fragmentData.moveDirection = ((Vector3)(ref val6)).normalized;
		activeFragments.Add(fragmentData);
		Debug.Log((object)("生成物体: " + ((Object)val5).name + " " + $"位置: {val2} " + $"缩放: {num}"));
	}

	private void UpdateFragmentsMovement()
	{
		//IL_006c: 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_0081: 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_0093: Unknown result type (might be due to invalid IL or missing references)
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_00af: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0104: Unknown result type (might be due to invalid IL or missing references)
		//IL_0184: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		List<FragmentData> list = new List<FragmentData>();
		for (int num = activeFragments.Count - 1; num >= 0; num--)
		{
			FragmentData fragmentData = activeFragments[num];
			if (fragmentData == null || (Object)(object)fragmentData.fragment == (Object)null || !fragmentData.isActive)
			{
				list.Add(fragmentData);
				continue;
			}
			fragmentData.lifeTime += Time.deltaTime;
			Vector3 val = fragmentData.moveDirection * fragmentData.moveSpeed * Time.deltaTime;
			Transform transform = fragmentData.fragment.transform;
			transform.position += val;
			Vector3 localScale = fragmentData.fragment.transform.localScale;
			if (((Vector3)(ref localScale)).magnitude > 0.001f)
			{
				float num2 = fragmentData.shrinkSpeed * Time.deltaTime;
				fragmentData.fragment.transform.localScale = Vector3.Lerp(fragmentData.fragment.transform.localScale, Vector3.zero, num2 * 0.5f);
				fragmentData.fragment.transform.Rotate(Random.Range(-90f, 90f) * Time.deltaTime, Random.Range(-90f, 90f) * Time.deltaTime, Random.Range(-90f, 90f) * Time.deltaTime);
			}
			else
			{
				fragmentData.isActive = false;
			}
			if (!(fragmentData.lifeTime >= destroyDelay))
			{
				localScale = fragmentData.fragment.transform.localScale;
				if (!(((Vector3)(ref localScale)).magnitude <= 0.01f))
				{
					continue;
				}
			}
			Object.Destroy((Object)(object)fragmentData.fragment);
			fragmentData.isActive = false;
			list.Add(fragmentData);
		}
		foreach (FragmentData item in list)
		{
			activeFragments.Remove(item);
		}
		if (activeFragments.Count == 0 && allObjectsGenerated)
		{
			Debug.Log((object)"所有碎片已处理完毕");
			allObjectsGenerated = false;
		}
	}

	private void CleanupOldFragments()
	{
		foreach (FragmentData activeFragment in activeFragments)
		{
			if (activeFragment != null && (Object)(object)activeFragment.fragment != (Object)null)
			{
				Object.Destroy((Object)(object)activeFragment.fragment);
			}
		}
		activeFragments.Clear();
	}

	[IteratorStateMachine(typeof(<FadeOutAndDestroy>d__23))]
	private IEnumerator FadeOutAndDestroy(FragmentData fragment)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <FadeOutAndDestroy>d__23(0)
		{
			<>4__this = this,
			fragment = fragment
		};
	}

	private void OnDrawGizmosSelected()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0012: Unknown result type (might be due to invalid IL or missing references)
		//IL_0023: 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_0045: 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_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_005c: Unknown result type (might be due to invalid IL or missing references)
		Gizmos.color = Color.cyan;
		Gizmos.DrawWireSphere(((Component)this).transform.position, spawnRadius);
		Gizmos.color = Color.red;
		Vector3 val = new Vector3(0.3f, -1f, 0.3f);
		Vector3 normalized = ((Vector3)(ref val)).normalized;
		Gizmos.DrawRay(((Component)this).transform.position, normalized * 5f);
	}

	private void SpawnSingleObject()
	{
		SpawnRandomObject();
	}

	public void TriggerShatterEffect()
	{
		StartSpawning();
	}

	public void SetFragmentCount(int count)
	{
		objectsPerKeyPress = Mathf.Max(1, count);
	}

	public void StartFragmentMovement()
	{
		if (!allObjectsGenerated && !isSpawning)
		{
			allObjectsGenerated = true;
		}
	}
}
public class 召唤预制体 : MonoBehaviour
{
	public GameObject prefabToSpawn;

	private void Start()
	{
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)prefabToSpawn != (Object)null)
		{
			Object.Instantiate<GameObject>(prefabToSpawn, ((Component)this).transform.position, ((Component)this).transform.rotation);
			Debug.LogWarning((object)"yi实例化!!");
		}
		else
		{
			Debug.LogWarning((object)"请指定要实例化的预制体");
		}
	}
}
public class 会员客户目标选择器 : MonoBehaviour
{
	private Unit unit;

	private bool 判断1 = true;

	private float 计时器 = 0f;

	public void Start()
	{
		unit = ((Component)((Component)this).gameObject.transform.root).gameObject.GetComponentInChildren<Unit>();
		UnitAPI api = unit.api;
	}
}
namespace ModdingForDummies
{
	[BepInPlugin("nihongpaoxi34589", "nihongpaoxi344589", "1.0.0")]
	public class Launcher : BaseUnityPlugin
	{
		[CompilerGenerated]
		private sealed class <Launcher1>d__1 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			public Launcher <>4__this;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Launcher1>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_0030: Expected O, but got Unknown
				//IL_0051: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (object)new WaitForSecondsRealtime(7f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					SLMALoader.GetInstance();
					UmMyMod.Main2();
					new Harmony(Main212.modname).PatchAll();
					Debug.Log((object)"已加载霓虹派系");
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private void Awake()
		{
			((BaseUnityPlugin)this).Logger.LogInfo((object)"霓虹补丁注入中...");
			Harmony.CreateAndPatchAll(typeof(bububudinghding), (string)null);
			((BaseUnityPlugin)this).Logger.LogInfo((object)"霓虹补丁注入完成!");
			((MonoBehaviour)this).StartCoroutine(Launcher1());
		}

		[IteratorStateMachine(typeof(<Launcher1>d__1))]
		private IEnumerator Launcher1()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Launcher1>d__1(0)
			{
				<>4__this = this
			};
		}
	}
	public static class UmMyMod
	{
		public static AssetBundle Asset1;

		public static AssetBundle Asset2;

		public static Faction 霓虹派系公用;

		public static void Main2()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Expected O, but got Unknown
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Expected O, but got Unknown
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: 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_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_028b: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Unknown result type (might be due to invalid IL or missing references)
			//IL_0334: Unknown result type (might be due to invalid IL or missing references)
			//IL_0372: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_0468: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b5: 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_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0781: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Expected O, but got Unknown
			//IL_0856: Unknown result type (might be due to invalid IL or missing references)
			//IL_086b: Expected O, but got Unknown
			//IL_0c3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c50: Expected O, but got Unknown
			//IL_0c75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8a: Expected O, but got Unknown
			//IL_0caf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc4: Expected O, but got Unknown
			//IL_1039: Unknown result type (might be due to invalid IL or missing references)
			//IL_103f: Expected O, but got Unknown
			//IL_105e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1064: Expected O, but got Unknown
			//IL_10b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_10bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_121e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1224: Expected O, but got Unknown
			//IL_1257: Unknown result type (might be due to invalid IL or missing references)
			//IL_125d: Expected O, but got Unknown
			//IL_12aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_12b0: Expected O, but got Unknown
			//IL_12cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_12d5: Expected O, but got Unknown
			//IL_13e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_1435: Unknown result type (might be due to invalid IL or missing references)
			//IL_143a: Unknown result type (might be due to invalid IL or missing references)
			//IL_144b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1450: Unknown result type (might be due to invalid IL or missing references)
			//IL_1455: Unknown result type (might be due to invalid IL or missing references)
			//IL_145f: Expected O, but got Unknown
			//IL_1547: Unknown result type (might be due to invalid IL or missing references)
			//IL_154c: Unknown result type (might be due to invalid IL or missing references)
			//IL_16b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_16bb: Expected O, but got Unknown
			//IL_17c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_17cb: Expected O, but got Unknown
			//IL_18d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_18de: Expected O, but got Unknown
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			Stream manifestResourceStream = executingAssembly.GetManifestResourceStream("Niiido.fghrrh");
			AssetBundle val = (Asset1 = AssetBundle.LoadFromStream(manifestResourceStream));
			Material[] redmaterials = (Material[])(object)new Material[1]
			{
				new Material(val.LoadAsset<Material>("redt1"))
			};
			Material[] bullmasss = (Material[])(object)new Material[1]
			{
				new Material(val.LoadAsset<Material>("bullt1"))
			};
			Material[] redmaterials2 = (Material[])(object)new Material[1]
			{
				new Material(val.LoadAsset<Material>("redt2"))
			};
			Material[] bullmasss2 = (Material[])(object)new Material[1]
			{
				new Material(val.LoadAsset<Material>("bullt2"))
			};
			Texture2D val2 = val.LoadAsset<Texture2D>("光剑士兵43");
			((Texture)val2).filterMode = (FilterMode)0;
			Sprite val3 = Sprite.Create(val2, new Rect(0f, 0f, (float)((Texture)val2).width, (float)((Texture)val2).height), new Vector2(0.5f, 0.5f));
			Texture2D val4 = val.LoadAsset<Texture2D>("光剑大师34");
			((Texture)val4).filterMode = (FilterMode)0;
			Sprite val5 = Sprite.Create(val4, new Rect(0f, 0f, (float)((Texture)val4).width, (float)((Texture)val4).height), new Vector2(0.5f, 0.5f));
			Texture2D val6 = val.LoadAsset<Texture2D>("或i吨传送23");
			((Texture)val6).filterMode = (FilterMode)0;
			Sprite val7 = Sprite.Create(val6, new Rect(0f, 0f, (float)((Texture)val6).width, (float)((Texture)val6).height), new Vector2(0.5f, 0.5f));
			Texture2D val8 = val.LoadAsset<Texture2D>("擂台炮2342");
			((Texture)val8).filterMode = (FilterMode)0;
			Sprite val9 = Sprite.Create(val8, new Rect(0f, 0f, (float)((Texture)val8).width, (float)((Texture)val8).height), new Vector2(0.5f, 0.5f));
			Texture2D val10 = val.LoadAsset<Texture2D>("激光塔345t");
			((Texture)val10).filterMode = (FilterMode)0;
			Sprite val11 = Sprite.Create(val10, new Rect(0f, 0f, (float)((Texture)val10).width, (float)((Texture)val10).height), new Vector2(0.5f, 0.5f));
			Texture2D val12 = val.LoadAsset<Texture2D>("激光枪手i234");
			((Texture)val12).filterMode = (FilterMode)0;
			Sprite val13 = Sprite.Create(val12, new Rect(0f, 0f, (float)((Texture)val12).width, (float)((Texture)val12).height), new Vector2(0.5f, 0.5f));
			Texture2D val14 = val.LoadAsset<Texture2D>("磁暴步兵234");
			((Texture)val14).filterMode = (FilterMode)0;
			Sprite val15 = Sprite.Create(val14, new Rect(0f, 0f, (float)((Texture)val14).width, (float)((Texture)val14).height), new Vector2(0.5f, 0.5f));
			Texture2D val16 = val.LoadAsset<Texture2D>("罪恶克星1234");
			((Texture)val16).filterMode = (FilterMode)0;
			Sprite val17 = Sprite.Create(val16, new Rect(0f, 0f, (float)((Texture)val16).width, (float)((Texture)val16).height), new Vector2(0.5f, 0.5f));
			Texture2D val18 = val.LoadAsset<Texture2D>("雷电法王3144");
			((Texture)val18).filterMode = (FilterMode)0;
			Sprite val19 = Sprite.Create(val18, new Rect(0f, 0f, (float)((Texture)val18).width, (float)((Texture)val18).height), new Vector2(0.5f, 0.5f));
			Texture2D val20 = val.LoadAsset<Texture2D>("穿透射线23");
			((Texture)val20).filterMode = (FilterMode)0;
			Sprite val21 = Sprite.Create(val20, ne