Decompiled source of DamageNumbers v2.2.0

Mods/DamageNumbers.dll

Decompiled a month ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using DamageNumbers;
using Il2CppRUMBLE.Managers;
using Il2CppRUMBLE.Utilities;
using Il2CppTMPro;
using MelonLoader;
using RumbleModdingAPI;
using UnityEngine;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: MelonInfo(typeof(main), "DamageNumbers", "2.2.0", "UlvakSkillz", null)]
[assembly: MelonGame("Buckethead Entertainment", "RUMBLE")]
[assembly: MelonColor(255, 195, 0, 255)]
[assembly: MelonAuthorColor(255, 195, 0, 255)]
[assembly: VerifyLoaderVersion(0, 6, 2, true)]
[assembly: AssemblyTitle("DamageNumbers")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DamageNumbers")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("f6144130-bb99-4232-8aa6-d721c7b07821")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace DamageNumbers;

public class main : MelonMod
{
	[CompilerGenerated]
	private sealed class <HealthWatcher>d__8 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public int sceneNumber;

		public main <>4__this;

		private int <i>5__1;

		private int <i>5__2;

		private int <i>5__3;

		private string <damage>5__4;

		private Color <color>5__5;

		private int <>s__6;

		private int <x>5__7;

		private Transform <playerTransform>5__8;

		private GameObject <damageNumber>5__9;

		private TextMeshPro <damageNumberText>5__10;

		private Exception <e>5__11;

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

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

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

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<damage>5__4 = null;
			<playerTransform>5__8 = null;
			<damageNumber>5__9 = null;
			<damageNumberText>5__10 = null;
			<e>5__11 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Expected O, but got Unknown
			//IL_0a15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1f: Expected O, but got Unknown
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0301: Unknown result type (might be due to invalid IL or missing references)
			//IL_032b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_035f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0389: Unknown result type (might be due to invalid IL or missing references)
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0416: 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_0445: Unknown result type (might be due to invalid IL or missing references)
			//IL_044a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0474: Unknown result type (might be due to invalid IL or missing references)
			//IL_0479: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0501: Unknown result type (might be due to invalid IL or missing references)
			//IL_0506: Unknown result type (might be due to invalid IL or missing references)
			//IL_0530: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Unknown result type (might be due to invalid IL or missing references)
			//IL_055f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0564: Unknown result type (might be due to invalid IL or missing references)
			//IL_058e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0593: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0618: Unknown result type (might be due to invalid IL or missing references)
			//IL_061d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0644: Unknown result type (might be due to invalid IL or missing references)
			//IL_0649: Unknown result type (might be due to invalid IL or missing references)
			//IL_0712: Unknown result type (might be due to invalid IL or missing references)
			//IL_0722: Unknown result type (might be due to invalid IL or missing references)
			//IL_0738: Unknown result type (might be due to invalid IL or missing references)
			//IL_0742: Unknown result type (might be due to invalid IL or missing references)
			//IL_078d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0809: Unknown result type (might be due to invalid IL or missing references)
			//IL_0822: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c2: 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(3f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.playerCount = Singleton<PlayerManager>.instance.AllPlayers.Count;
				<>4__this.healths = new int[<>4__this.playerCount];
				<i>5__1 = 0;
				while (<i>5__1 < <>4__this.playerCount)
				{
					<>4__this.healths[<i>5__1] = Singleton<PlayerManager>.instance.AllPlayers[<i>5__1].Data.HealthPoints;
					<i>5__1++;
				}
				break;
			case 2:
				<>1__state = -1;
				break;
			}
			if (sceneNumber == <>4__this.sceneCount)
			{
				if (!<>4__this.waitForMatchStart)
				{
					try
					{
						if (<>4__this.playerCount != Singleton<PlayerManager>.instance.AllPlayers.Count)
						{
							<>4__this.healths = new int[<>4__this.playerCount];
							<i>5__2 = 0;
							while (<i>5__2 < <>4__this.playerCount)
							{
								<>4__this.healths[<i>5__2] = Singleton<PlayerManager>.instance.AllPlayers[<i>5__2].Data.HealthPoints;
								<i>5__2++;
							}
						}
						<i>5__3 = 0;
						while (<i>5__3 < <>4__this.playerCount)
						{
							if (<>4__this.healths[<i>5__3] > Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Data.HealthPoints)
							{
								<damage>5__4 = "";
								<color>5__5 = Color.black;
								int num = <>4__this.healths[<i>5__3] - Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Data.HealthPoints;
								<>s__6 = num;
								switch (<>s__6)
								{
								case 1:
									<damage>5__4 = "1";
									<color>5__5 = new Color(83f / 85f, 50f / 51f, 0.64705884f, 1f);
									break;
								case 2:
									<damage>5__4 = "2";
									<color>5__5 = new Color(0.99607843f, 76f / 85f, 0.34901962f, 1f);
									break;
								case 3:
									<damage>5__4 = "3";
									<color>5__5 = new Color(0.99607843f, 56f / 85f, 0.015686275f, 1f);
									break;
								case 4:
									<damage>5__4 = "4";
									<color>5__5 = new Color(0.9843137f, 0.41960785f, 0.16862746f, 1f);
									break;
								case 5:
									<damage>5__4 = "5";
									<color>5__5 = new Color(50f / 51f, 21f / 85f, 0.29803923f, 1f);
									break;
								case 6:
									<damage>5__4 = "6";
									<color>5__5 = new Color(0.96862745f, 0f, 29f / 51f, 1f);
									break;
								case 7:
									<damage>5__4 = "7";
									<color>5__5 = new Color(0.3529412f, 37f / 85f, 1f, 1f);
									break;
								case 8:
									<damage>5__4 = "8";
									<color>5__5 = new Color(19f / 85f, 0.52156866f, 29f / 85f, 1f);
									break;
								case 9:
									<damage>5__4 = "9";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 10:
									<damage>5__4 = "10";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 11:
									<damage>5__4 = "11";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 12:
									<damage>5__4 = "12";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 13:
									<damage>5__4 = "13";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 14:
									<damage>5__4 = "14";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 15:
									<damage>5__4 = "15";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 16:
									<damage>5__4 = "16";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 17:
									<damage>5__4 = "17";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 18:
									<damage>5__4 = "18";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 19:
									<damage>5__4 = "19";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								case 20:
									<damage>5__4 = "20";
									<color>5__5 = new Color(1f, 0f, 1f, 1f);
									break;
								}
								if (<damage>5__4 != "")
								{
									<x>5__7 = 5;
									if (<i>5__3 > 0)
									{
										<x>5__7++;
									}
									<playerTransform>5__8 = ((Component)((Component)Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Controller).gameObject.transform.GetChild(2).GetChild(0).GetChild(0)).gameObject.transform;
									<damageNumber>5__9 = Create.NewText();
									((Object)<damageNumber>5__9).name = <damage>5__4 + " Damage";
									<damageNumber>5__9.transform.position = new Vector3(<playerTransform>5__8.position.x, <playerTransform>5__8.position.y + 1f, <playerTransform>5__8.position.z);
									<damageNumber>5__9.transform.rotation = ((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform.GetChild(2).GetChild(0).GetChild(0)).gameObject.transform.localRotation;
									if (<x>5__7 == 1)
									{
										<damageNumber>5__9.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f);
									}
									<damageNumberText>5__10 = <damageNumber>5__9.GetComponent<TextMeshPro>();
									((TMP_Text)<damageNumberText>5__10).fontSize = 12f;
									((TMP_Text)<damageNumberText>5__10).text = <damage>5__4;
									((Graphic)<damageNumberText>5__10).color = <color>5__5;
									((TMP_Text)<damageNumberText>5__10).SetOutlineColor(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue));
									((TMP_Text)<damageNumberText>5__10).outlineWidth = 0.5f;
									MelonCoroutines.Start(<>4__this.MoveNumber(<damageNumber>5__9, sceneNumber, <i>5__3));
									if (<>4__this.healths[<i>5__3] - Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Data.HealthPoints > 8)
									{
										MelonCoroutines.Start(<>4__this.RainbowColor(<damageNumberText>5__10, sceneNumber));
									}
									Object.Destroy((Object)(object)<damageNumber>5__9, 4f);
									<playerTransform>5__8 = null;
									<damageNumber>5__9 = null;
									<damageNumberText>5__10 = null;
								}
								<damage>5__4 = null;
							}
							if (<>4__this.healths[<i>5__3] != Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Data.HealthPoints)
							{
								<>4__this.healths[<i>5__3] = Singleton<PlayerManager>.instance.AllPlayers[<i>5__3].Data.HealthPoints;
								if ((<>4__this.currentScene == "Map0" || <>4__this.currentScene == "Map1") && <>4__this.healths[<i>5__3] <= 0 && !<>4__this.waitForMatchStart)
								{
									MelonCoroutines.Start(<>4__this.WaitForMatchStart(<i>5__3, sceneNumber));
								}
							}
							<i>5__3++;
						}
					}
					catch (Exception ex)
					{
						<e>5__11 = ex;
					}
				}
				<>2__current = (object)new WaitForFixedUpdate();
				<>1__state = 2;
				return true;
			}
			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 <MoveNumber>d__11 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public GameObject damageNumber;

		public int sceneNumber;

		public int playerNumber;

		public main <>4__this;

		private DateTime <stopMovingTime>5__1;

		private DateTime <startFadeTime>5__2;

		private float <moveAmount>5__3;

		private TextMeshPro <damageNumberText>5__4;

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

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

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

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

		private bool MoveNext()
		{
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Expected O, but got Unknown
			//IL_0136: 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_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_016a: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: 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_0226: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<stopMovingTime>5__1 = DateTime.Now.AddSeconds(3.9000000953674316);
				<startFadeTime>5__2 = DateTime.Now.AddSeconds(2.0);
				<moveAmount>5__3 = 0.16f;
				<damageNumberText>5__4 = damageNumber.GetComponent<TextMeshPro>();
				break;
			case 1:
				<>1__state = -1;
				break;
			}
			if (sceneNumber == <>4__this.sceneCount && DateTime.Now < <stopMovingTime>5__1)
			{
				try
				{
					if (playerNumber != 0)
					{
						damageNumber.transform.rotation = <>4__this.GetAngleToFaceMe(damageNumber.transform.position, ((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform.GetChild(2).GetChild(0).GetChild(0)).gameObject.transform.position);
					}
					else
					{
						damageNumber.transform.rotation = ((Component)((Component)Singleton<PlayerManager>.instance.localPlayer.Controller).gameObject.transform.GetChild(2).GetChild(0).GetChild(0)).gameObject.transform.rotation;
					}
					if (<moveAmount>5__3 > 0f)
					{
						damageNumber.transform.position = new Vector3(damageNumber.transform.position.x, damageNumber.transform.position.y + <moveAmount>5__3, damageNumber.transform.position.z);
						<moveAmount>5__3 -= 0.0064f;
					}
					if (<startFadeTime>5__2 < DateTime.Now)
					{
						((Graphic)<damageNumberText>5__4).color = new Color(((Graphic)<damageNumberText>5__4).color.r, ((Graphic)<damageNumberText>5__4).color.g, ((Graphic)<damageNumberText>5__4).color.b, ((Graphic)<damageNumberText>5__4).color.a - 0.05f);
					}
				}
				catch
				{
				}
				<>2__current = (object)new WaitForFixedUpdate();
				<>1__state = 1;
				return true;
			}
			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 <RainbowColor>d__9 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public TextMeshPro damageNumberText;

		public int sceneNumber;

		public main <>4__this;

		private float <r>5__1;

		private float <g>5__2;

		private float <b>5__3;

		private float <a>5__4;

		private int <colorToChange>5__5;

		private DateTime <timeToPlay>5__6;

		private int <>s__7;

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

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

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

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

		private bool MoveNext()
		{
			//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Expected O, but got Unknown
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Expected O, but got Unknown
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<r>5__1 = 255f;
				<g>5__2 = 0f;
				<b>5__3 = 255f;
				<a>5__4 = 255f;
				<colorToChange>5__5 = 1;
				<timeToPlay>5__6 = DateTime.Now.AddSeconds(3.9000000953674316);
				<>2__current = (object)new WaitForFixedUpdate();
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				break;
			case 2:
				<>1__state = -1;
				break;
			}
			if (DateTime.Now < <timeToPlay>5__6 && sceneNumber == <>4__this.sceneCount)
			{
				try
				{
					int num = <colorToChange>5__5;
					<>s__7 = num;
					switch (<>s__7)
					{
					case 1:
						<g>5__2 += 5f;
						<r>5__1 -= 5f;
						break;
					case 2:
						<r>5__1 += 5f;
						<b>5__3 -= 5f;
						break;
					case 3:
						<b>5__3 += 5f;
						<g>5__2 -= 5f;
						break;
					}
					if (<r>5__1 == 0f || <g>5__2 == 0f || <b>5__3 == 0f)
					{
						<colorToChange>5__5++;
						if (<colorToChange>5__5 == 4)
						{
							<colorToChange>5__5 = 1;
						}
					}
					((Graphic)damageNumberText).color = new Color(<r>5__1 / 255f, <g>5__2 / 255f, <b>5__3 / 255f, ((Graphic)damageNumberText).color.a);
				}
				catch
				{
				}
				<>2__current = (object)new WaitForFixedUpdate();
				<>1__state = 2;
				return true;
			}
			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 <WaitForMatchStart>d__10 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public int playerNumber;

		public int sceneNumber;

		public main <>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 <WaitForMatchStart>d__10(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

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

		private bool MoveNext()
		{
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Expected O, but got Unknown
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(0.5f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.waitForMatchStart = true;
				break;
			case 2:
				<>1__state = -1;
				break;
			}
			if (<>4__this.waitForMatchStart && <>4__this.sceneCount == sceneNumber)
			{
				try
				{
					if (Singleton<PlayerManager>.instance.AllPlayers[playerNumber].Data.HealthPoints == 20)
					{
						<i>5__1 = 0;
						while (<i>5__1 < <>4__this.playerCount)
						{
							<>4__this.healths[<i>5__1] = Singleton<PlayerManager>.instance.AllPlayers[<i>5__1].Data.HealthPoints;
							<i>5__1++;
						}
						<>4__this.waitForMatchStart = false;
					}
				}
				catch
				{
				}
				<>2__current = (object)new WaitForFixedUpdate();
				<>1__state = 2;
				return true;
			}
			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 string currentScene = "Loader";

	private int sceneCount = 0;

	private int[] healths;

	private int playerCount = 0;

	private bool waitForMatchStart = false;

	public override void OnLateInitializeMelon()
	{
		Calls.onMapInitialized += SceneInit;
	}

	public override void OnSceneWasLoaded(int buildIndex, string sceneName)
	{
		currentScene = sceneName;
		sceneCount++;
	}

	private void SceneInit()
	{
		waitForMatchStart = false;
		try
		{
			if (!(currentScene == "Loader"))
			{
				MelonCoroutines.Start(HealthWatcher(sceneCount));
			}
		}
		catch (Exception ex)
		{
			MelonLogger.Error((object)ex);
		}
	}

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

	[IteratorStateMachine(typeof(<RainbowColor>d__9))]
	private IEnumerator RainbowColor(TextMeshPro damageNumberText, int sceneNumber)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <RainbowColor>d__9(0)
		{
			<>4__this = this,
			damageNumberText = damageNumberText,
			sceneNumber = sceneNumber
		};
	}

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

	[IteratorStateMachine(typeof(<MoveNumber>d__11))]
	private IEnumerator MoveNumber(GameObject damageNumber, int sceneNumber, int playerNumber)
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <MoveNumber>d__11(0)
		{
			<>4__this = this,
			damageNumber = damageNumber,
			sceneNumber = sceneNumber,
			playerNumber = playerNumber
		};
	}

	private Quaternion GetAngleToFaceMe(Vector3 objectPosition, Vector3 lookAtPosition)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_0009: Unknown result type (might be due to invalid IL or missing references)
		//IL_000a: Unknown result type (might be due to invalid IL or missing references)
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_0014: Unknown result type (might be due to invalid IL or missing references)
		Vector3 val = objectPosition - lookAtPosition;
		return Quaternion.LookRotation(val);
	}
}