Decompiled source of TheUltimateNumber v1.0.1

MBCollector672.TheUltimateNumber.dll

Decompiled a day ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using LethalLib.Modules;
using MBCollector672.TheUltimateNumber.NetcodePatcher;
using Microsoft.CodeAnalysis;
using TheUltimateNumber;
using Unity.Netcode;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("MBCollector672.TheUltimateNumber")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+d5ed65d925d6c9d4fcebbdab902ff3a7ea90e80d")]
[assembly: AssemblyProduct("TheUltimateNumber")]
[assembly: AssemblyTitle("MBCollector672.TheUltimateNumber")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
public class UltimateNumberManipulator : AnimatedItem
{
	[CompilerGenerated]
	private sealed class <PlayExplodeNumberSound>d__121 : IEnumerator<object>, IEnumerator, IDisposable
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateNumberManipulator <>4__this;

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

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

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

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

		private bool MoveNext()
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Expected O, but got Unknown
			int num = <>1__state;
			UltimateNumberManipulator ultimateNumberManipulator = <>4__this;
			switch (num)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				ultimateNumberManipulator.playOopsAudioServerRpc();
				<>2__current = (object)new WaitForSeconds(ultimateNumberManipulator.oopsAudioSource.clip.length);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				ultimateNumberManipulator.ExplodeNumberServerRpc();
				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 <PlayNormalNumberAudio>d__115 : IEnumerator<object>, IEnumerator, IDisposable
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateNumberManipulator <>4__this;

		private bool <playedMinus>5__2;

		private byte <clip1>5__3;

		private byte <clip2>5__4;

		private byte <clip3>5__5;

		private byte <clip4>5__6;

		private byte <clip5>5__7;

		private byte <clip6>5__8;

		private byte <clip7>5__9;

		private byte <clip8>5__10;

		private byte <clip9>5__11;

		private byte <clip10>5__12;

		private sbyte <i>5__13;

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

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

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

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

		private bool MoveNext()
		{
			//IL_07a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ab: Expected O, but got Unknown
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Expected O, but got Unknown
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Expected O, but got Unknown
			//IL_028b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Expected O, but got Unknown
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_0322: Expected O, but got Unknown
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03af: Expected O, but got Unknown
			//IL_0432: Unknown result type (might be due to invalid IL or missing references)
			//IL_043c: Expected O, but got Unknown
			//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c9: Expected O, but got Unknown
			//IL_054c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0556: Expected O, but got Unknown
			//IL_05d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e3: Expected O, but got Unknown
			//IL_0667: Unknown result type (might be due to invalid IL or missing references)
			//IL_0671: Expected O, but got Unknown
			//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ff: Expected O, but got Unknown
			//IL_0780: Unknown result type (might be due to invalid IL or missing references)
			//IL_078a: Expected O, but got Unknown
			int num = <>1__state;
			UltimateNumberManipulator ultimateNumberManipulator = <>4__this;
			sbyte b;
			switch (num)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Trying to play audio");
				b = 0;
				<playedMinus>5__2 = false;
				<clip1>5__3 = ultimateNumberManipulator.place1;
				<clip2>5__4 = ultimateNumberManipulator.place2;
				<clip3>5__5 = ultimateNumberManipulator.place3;
				<clip4>5__6 = ultimateNumberManipulator.place4;
				<clip5>5__7 = ultimateNumberManipulator.place5;
				<clip6>5__8 = ultimateNumberManipulator.place6;
				<clip7>5__9 = ultimateNumberManipulator.place7;
				<clip8>5__10 = ultimateNumberManipulator.place8;
				<clip9>5__11 = ultimateNumberManipulator.place9;
				<clip10>5__12 = ultimateNumberManipulator.place10;
				<i>5__13 = 0;
				goto IL_07cd;
			case 1:
				<>1__state = -1;
				goto IL_0156;
			case 2:
				<>1__state = -1;
				goto IL_01dc;
			case 3:
				<>1__state = -1;
				goto IL_079b;
			case 4:
				<>1__state = -1;
				goto IL_079b;
			case 5:
				<>1__state = -1;
				goto IL_079b;
			case 6:
				<>1__state = -1;
				goto IL_079b;
			case 7:
				<>1__state = -1;
				goto IL_079b;
			case 8:
				<>1__state = -1;
				goto IL_079b;
			case 9:
				<>1__state = -1;
				goto IL_079b;
			case 10:
				<>1__state = -1;
				goto IL_079b;
			case 11:
				<>1__state = -1;
				goto IL_079b;
			case 12:
				<>1__state = -1;
				goto IL_079b;
			case 13:
				{
					<>1__state = -1;
					<i>5__13++;
					goto IL_07cd;
				}
				IL_07cd:
				if (<i>5__13 < 10)
				{
					if (<i>5__13 < 10)
					{
						if (((AnimatedItem)ultimateNumberManipulator).wasInPocket || (Object)(object)((GrabbableObject)ultimateNumberManipulator).playerHeldBy == (Object)null)
						{
							global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Item has been dropped/pocketed!");
							<i>5__13 = (sbyte)(<i>5__13 + TEN);
							<>2__current = (object)new WaitForSeconds(0f);
							<>1__state = 1;
							return true;
						}
						goto IL_0156;
					}
					goto IL_079b;
				}
				return false;
				IL_0156:
				if (!<playedMinus>5__2 && ultimateNumberManipulator.ScrapValueSyncer < 0m)
				{
					global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Negative! Playing minus audio");
					((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.minusAudio;
					((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
					<i>5__13--;
					<playedMinus>5__2 = true;
					<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
					<>1__state = 2;
					return true;
				}
				goto IL_01dc;
				IL_079b:
				<>2__current = (object)new WaitForSeconds(0f);
				<>1__state = 13;
				return true;
				IL_01dc:
				b = <i>5__13;
				switch (<i>5__13)
				{
				case 0:
					if (<clip10>5__12 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip10>5__12];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip10>5__12]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 3;
						return true;
					}
					break;
				case 1:
					if (<clip9>5__11 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip9>5__11];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip9>5__11]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 4;
						return true;
					}
					break;
				case 2:
					if (<clip8>5__10 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip8>5__10];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip8>5__10]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 5;
						return true;
					}
					break;
				case 3:
					if (<clip7>5__9 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip7>5__9];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip7>5__9]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 6;
						return true;
					}
					break;
				case 4:
					if (<clip6>5__8 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip6>5__8];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip6>5__8]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 7;
						return true;
					}
					break;
				case 5:
					if (<clip5>5__7 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip5>5__7];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip5>5__7]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 8;
						return true;
					}
					break;
				case 6:
					if (<clip4>5__6 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip4>5__6];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip4>5__6]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 9;
						return true;
					}
					break;
				case 7:
					if (<clip3>5__5 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip3>5__5];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip3>5__5]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 10;
						return true;
					}
					break;
				case 8:
					if (<clip2>5__4 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip2>5__4];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip2>5__4]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 11;
						return true;
					}
					break;
				case 9:
					if (<clip1>5__3 < 10)
					{
						((AnimatedItem)ultimateNumberManipulator).itemAudio.clip = ultimateNumberManipulator.normalAudioArray[<clip1>5__3];
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Playing AudioClip " + (object)ultimateNumberManipulator.normalAudioArray[<clip1>5__3]));
						((AnimatedItem)ultimateNumberManipulator).itemAudio.Play();
						<>2__current = (object)new WaitForSeconds(((AnimatedItem)ultimateNumberManipulator).itemAudio.clip.length);
						<>1__state = 12;
						return true;
					}
					break;
				}
				goto IL_079b;
			}
		}

		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 <WaitTenSeconds>d__118 : IEnumerator<object>, IEnumerator, IDisposable
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateNumberManipulator <>4__this;

		private byte <i>5__2;

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

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

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

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

		private bool MoveNext()
		{
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Expected O, but got Unknown
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			int num = <>1__state;
			UltimateNumberManipulator ultimateNumberManipulator = <>4__this;
			switch (num)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<i>5__2 = 0;
				goto IL_0093;
			case 1:
				<>1__state = -1;
				goto IL_0062;
			case 2:
				{
					<>1__state = -1;
					<i>5__2++;
					goto IL_0093;
				}
				IL_0093:
				if (<i>5__2 < 2)
				{
					if (<i>5__2 == 1)
					{
						ultimateNumberManipulator.HasWaited = true;
						<>2__current = (object)new WaitForSeconds(0f);
						<>1__state = 1;
						return true;
					}
					goto IL_0062;
				}
				return false;
				IL_0062:
				<>2__current = (object)new WaitForSeconds(10f);
				<>1__state = 2;
				return true;
			}
		}

		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 decimal calculatedValue;

	private static readonly byte TEN = 10;

	private static readonly byte HUNDRED = 100;

	private static readonly short THOUSAND = 1000;

	private static readonly short TEN_THOUSAND = 10000;

	private static readonly int HUNDRED_THOUSAND = 100000;

	private static readonly int MILLION = 1000000;

	private static readonly int TEN_MILLION = 10000000;

	private static readonly int HUNDRED_MILLION = 100000000;

	private static readonly int BILLION = 1000000000;

	private static readonly int INT_LIMIT = int.MaxValue;

	private static readonly float COLLIDER_SCALE_FACTOR = 3.44f;

	public AudioClip? zeroAudio;

	public AudioClip? oneAudio;

	public AudioClip? twoAudio;

	public AudioClip? threeAudio;

	public AudioClip? fourAudio;

	public AudioClip? fiveAudio;

	public AudioClip? sixAudio;

	public AudioClip? sevenAudio;

	public AudioClip? eightAudio;

	public AudioClip? nineAudio;

	public AudioClip? minusAudio;

	public AudioClip? oopsAudio;

	public AudioSource? oopsAudioSource;

	[HideInInspector]
	public bool hasGeneratedValue;

	public Transform? ones;

	public Transform? tens;

	public Transform? hundreds;

	public Transform? thousands;

	public Transform? tenthousands;

	public Transform? hundredthousands;

	public Transform? millions;

	public Transform? tenmillions;

	public Transform? hundredmillions;

	public Transform? billions;

	public Transform? questionmark;

	[HideInInspector]
	public Transform[]? numberPlacesArray;

	[HideInInspector]
	public string[]? gameObjectNumberSuffix;

	[HideInInspector]
	private GameObject? currentGameObject;

	[HideInInspector]
	private ScanNodeProperties? currentScanNodeProperties;

	[HideInInspector]
	public BoxCollider? baseBoxCollider;

	[HideInInspector]
	public int numberID;

	[HideInInspector]
	public readonly NetworkVariable<int> _scrapValueSyncer = new NetworkVariable<int>(0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public bool haventMovedNumbersYet = true;

	[HideInInspector]
	public readonly NetworkVariable<byte> _place1 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place2 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place3 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place4 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place5 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place6 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place7 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place8 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place9 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<byte> _place10 = new NetworkVariable<byte>((byte)0, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public byte[] numbersInOrder;

	[HideInInspector]
	public AudioClip[]? normalAudioArray;

	public List<SpecialAudioClip> specialAudioClips = new List<SpecialAudioClip>();

	[HideInInspector]
	public readonly NetworkVariable<bool> _hasWaited = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<bool> _isExploding = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	[HideInInspector]
	public readonly NetworkVariable<bool> _hasUpdatedYet = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0);

	public List<Material> normalMat;

	public List<Material> orangeMat;

	[HideInInspector]
	public bool previously672;

	public Transform sixTransform;

	public Transform sevenTransform;

	public Transform twoTransform;

	[HideInInspector]
	public decimal ScrapValueSyncer
	{
		get
		{
			return _scrapValueSyncer.Value;
		}
		set
		{
			_scrapValueSyncer.Value = (int)value;
		}
	}

	[HideInInspector]
	public byte place1
	{
		get
		{
			return _place1.Value;
		}
		set
		{
			_place1.Value = value;
		}
	}

	[HideInInspector]
	public byte place2
	{
		get
		{
			return _place2.Value;
		}
		set
		{
			_place2.Value = value;
		}
	}

	[HideInInspector]
	public byte place3
	{
		get
		{
			return _place3.Value;
		}
		set
		{
			_place3.Value = value;
		}
	}

	[HideInInspector]
	public byte place4
	{
		get
		{
			return _place4.Value;
		}
		set
		{
			_place4.Value = value;
		}
	}

	[HideInInspector]
	public byte place5
	{
		get
		{
			return _place5.Value;
		}
		set
		{
			_place5.Value = value;
		}
	}

	[HideInInspector]
	public byte place6
	{
		get
		{
			return _place6.Value;
		}
		set
		{
			_place6.Value = value;
		}
	}

	[HideInInspector]
	public byte place7
	{
		get
		{
			return _place7.Value;
		}
		set
		{
			_place7.Value = value;
		}
	}

	[HideInInspector]
	public byte place8
	{
		get
		{
			return _place8.Value;
		}
		set
		{
			_place8.Value = value;
		}
	}

	[HideInInspector]
	public byte place9
	{
		get
		{
			return _place9.Value;
		}
		set
		{
			_place9.Value = value;
		}
	}

	[HideInInspector]
	public byte place10
	{
		get
		{
			return _place10.Value;
		}
		set
		{
			_place10.Value = value;
		}
	}

	[HideInInspector]
	public bool HasWaited
	{
		get
		{
			return _hasWaited.Value;
		}
		set
		{
			_hasWaited.Value = value;
		}
	}

	[HideInInspector]
	public bool IsExploding
	{
		get
		{
			return _isExploding.Value;
		}
		set
		{
			_isExploding.Value = value;
		}
	}

	[HideInInspector]
	public bool HasUpdatedYet
	{
		get
		{
			return _hasUpdatedYet.Value;
		}
		set
		{
			_hasUpdatedYet.Value = value;
		}
	}

	public override void Start()
	{
		((AnimatedItem)this).Start();
		currentGameObject = ((Component)this).gameObject;
		baseBoxCollider = ((Component)this).gameObject.GetComponent<BoxCollider>();
		numberID = ((Object)currentGameObject).GetInstanceID();
		Transform val = ((Component)this).transform.Find("ScanNode");
		GameObject gameObject = ((Component)val).gameObject;
		currentScanNodeProperties = gameObject.GetComponent<ScanNodeProperties>();
		numbersInOrder = new byte[10] { place1, place2, place3, place4, place5, place6, place7, place8, place9, place10 };
		numberPlacesArray = (Transform[]?)(object)new Transform[10] { ones, tens, hundreds, thousands, tenthousands, hundredthousands, millions, tenmillions, hundredmillions, billions };
		gameObjectNumberSuffix = new string[10] { "one", "ten", "hundred", "thousand", "10thousand", "100thousand", "million", "10million", "100million", "billion" };
		normalAudioArray = (AudioClip[]?)(object)new AudioClip[10] { zeroAudio, oneAudio, twoAudio, threeAudio, fourAudio, fiveAudio, sixAudio, sevenAudio, eightAudio, nineAudio };
		oopsAudioSource.clip = oopsAudio;
		if (((NetworkBehaviour)this).IsServer)
		{
			IsExploding = false;
			HasWaited = false;
			((MonoBehaviour)this).StartCoroutine(WaitTenSeconds());
			HasUpdatedYet = false;
		}
		((Component)questionmark).gameObject.SetActive(false);
		Transform[] array = numberPlacesArray;
		foreach (Transform val2 in array)
		{
			((Component)val2).gameObject.SetActive(true);
		}
		oopsAudioSource.volume = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceVolume.Value;
		base.itemAudio.volume = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceVolume.Value;
		oopsAudioSource.minDistance = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceMinDistance.Value;
		base.itemAudio.maxDistance = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceMaxDistance.Value;
		oopsAudioSource.maxDistance = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceMaxDistance.Value;
		base.itemAudio.minDistance = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceMinDistance.Value;
	}

	public override void Update()
	{
		((AnimatedItem)this).Update();
		if (ScrapValueSyncer == 0m && HasWaited && !IsExploding)
		{
			((MonoBehaviour)this).StartCoroutine(PlayExplodeNumberSound());
		}
		if (((NetworkBehaviour)this).IsServer)
		{
			if (ScrapValueSyncer != calculatedValue)
			{
				ScrapValueSyncer = calculatedValue;
			}
			if ((!GameNetworkManager.Instance.gameHasStarted && StartOfRound.Instance.gameStats.daysSpent == 0 && !hasGeneratedValue) || (GameNetworkManager.Instance.gameHasStarted && !hasGeneratedValue))
			{
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Calculating scrap value as this scrap just spawned in");
				calculatedValue = CalcValue();
				((GrabbableObject)this).scrapValue = (int)calculatedValue;
				currentScanNodeProperties.subText = "Value: $" + calculatedValue;
				currentScanNodeProperties.scrapValue = (int)calculatedValue;
				syncTotalScrapValueServerRpc((int)calculatedValue);
				MoveNumbers(calculatedValue);
				return;
			}
			hasGeneratedValue = true;
			if (calculatedValue != (decimal)((GrabbableObject)this).scrapValue || haventMovedNumbersYet || ((GrabbableObject)this).scrapValue == -67)
			{
				if (((GrabbableObject)this).scrapValue == -67)
				{
					((GrabbableObject)this).scrapValue = (int)calculatedValue;
					currentScanNodeProperties.subText = "Value: $" + calculatedValue;
					currentScanNodeProperties.scrapValue = (int)calculatedValue;
					ScrapValueSyncer = (int)calculatedValue;
					syncTotalScrapValueServerRpc((int)calculatedValue, -67f);
					HasUpdatedYet = true;
					return;
				}
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Value of TheUltimateNumber ID " + numberID + " has changed from " + calculatedValue + " to " + ((GrabbableObject)this).scrapValue + ". Updating..."));
				calculatedValue = ((GrabbableObject)this).scrapValue;
				currentScanNodeProperties.subText = "Value: $" + calculatedValue;
				currentScanNodeProperties.scrapValue = (int)calculatedValue;
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Value of TheUltimateNumber ID " + numberID + " has changed. Updating..."));
				MoveNumbers(calculatedValue);
			}
		}
		else if (!((NetworkBehaviour)this).IsServer && (ScrapValueSyncer != (decimal)((GrabbableObject)this).scrapValue || haventMovedNumbersYet))
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Value of TheUltimateNumber ID " + numberID + " has desynced. Updating..."));
			((GrabbableObject)this).scrapValue = (int)ScrapValueSyncer;
			currentScanNodeProperties.subText = "Value: $" + ScrapValueSyncer;
			currentScanNodeProperties.scrapValue = (int)ScrapValueSyncer;
			MoveNumbers(ScrapValueSyncer);
			hasGeneratedValue = true;
		}
	}

	private void MoveNumbers(decimal value)
	{
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//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)
		//IL_004a: 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_00bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f3: 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_02b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02be: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f5: 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_0306: Unknown result type (might be due to invalid IL or missing references)
		//IL_0319: Unknown result type (might be due to invalid IL or missing references)
		//IL_012a: Unknown result type (might be due to invalid IL or missing references)
		//IL_012f: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0408: Unknown result type (might be due to invalid IL or missing references)
		//IL_0414: Unknown result type (might be due to invalid IL or missing references)
		//IL_0419: Unknown result type (might be due to invalid IL or missing references)
		//IL_042c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0438: Unknown result type (might be due to invalid IL or missing references)
		//IL_043d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0450: Unknown result type (might be due to invalid IL or missing references)
		//IL_0260: Unknown result type (might be due to invalid IL or missing references)
		//IL_0265: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0527: Unknown result type (might be due to invalid IL or missing references)
		//IL_052c: Unknown result type (might be due to invalid IL or missing references)
		//IL_053f: Unknown result type (might be due to invalid IL or missing references)
		//IL_054b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0550: Unknown result type (might be due to invalid IL or missing references)
		//IL_0563: Unknown result type (might be due to invalid IL or missing references)
		//IL_056f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0574: Unknown result type (might be due to invalid IL or missing references)
		//IL_0587: 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_0598: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_05cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Unknown result type (might be due to invalid IL or missing references)
		//IL_0378: Unknown result type (might be due to invalid IL or missing references)
		//IL_0391: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ab: Unknown result type (might be due to invalid IL or missing references)
		//IL_06be: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0706: 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_0717: Unknown result type (might be due to invalid IL or missing references)
		//IL_072a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0736: Unknown result type (might be due to invalid IL or missing references)
		//IL_073b: Unknown result type (might be due to invalid IL or missing references)
		//IL_074e: Unknown result type (might be due to invalid IL or missing references)
		//IL_075a: Unknown result type (might be due to invalid IL or missing references)
		//IL_075f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0772: Unknown result type (might be due to invalid IL or missing references)
		//IL_04aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_04af: Unknown result type (might be due to invalid IL or missing references)
		//IL_04c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0849: Unknown result type (might be due to invalid IL or missing references)
		//IL_084e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0861: Unknown result type (might be due to invalid IL or missing references)
		//IL_086d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0872: Unknown result type (might be due to invalid IL or missing references)
		//IL_0885: Unknown result type (might be due to invalid IL or missing references)
		//IL_0891: Unknown result type (might be due to invalid IL or missing references)
		//IL_0896: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08de: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0902: Unknown result type (might be due to invalid IL or missing references)
		//IL_0915: Unknown result type (might be due to invalid IL or missing references)
		//IL_0921: Unknown result type (might be due to invalid IL or missing references)
		//IL_0926: Unknown result type (might be due to invalid IL or missing references)
		//IL_0939: Unknown result type (might be due to invalid IL or missing references)
		//IL_0629: Unknown result type (might be due to invalid IL or missing references)
		//IL_062e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0647: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a15: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a34: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a39: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a4c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a58: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a70: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a7c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a81: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a94: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aa0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aa5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0adc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aed: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b00: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b0c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b11: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b24: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dfa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e0d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e19: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e1e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e31: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e42: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e55: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e61: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e66: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e79: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e85: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e8a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ea9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eae: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ecd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f09: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f15: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f1a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f39: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f3e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c00: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c13: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c1f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c37: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c43: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c48: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c67: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c90: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0caf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ceb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cfc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d0f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d33: Unknown result type (might be due to invalid IL or missing references)
		//IL_0993: Unknown result type (might be due to invalid IL or missing references)
		//IL_0998: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0faa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dab: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b3: Expected O, but got Unknown
		bool flag = false;
		if (value < 0m)
		{
			flag = true;
		}
		decimal num = Math.Abs(value);
		Vector3 val = default(Vector3);
		Transform[] array = numberPlacesArray;
		foreach (Transform val2 in array)
		{
			val = val2.localPosition;
			val.x = -0.3112598f;
			val2.localPosition = val;
		}
		global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Value of absoluteValue is " + num));
		if (num < (decimal)TEN)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has one digit. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -0.3112598f;
			ones.localPosition = val;
			Transform[] array2 = numberPlacesArray;
			foreach (Transform val3 in array2)
			{
				if (Array.IndexOf(numberPlacesArray, val3) == 0)
				{
					((Component)val3).gameObject.SetActive(true);
				}
				else
				{
					((Component)val3).gameObject.SetActive(false);
				}
			}
			try
			{
				val = baseBoxCollider.size;
			}
			catch (Exception)
			{
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogWarning((object)"Couldn't find BoxCollider. Object is likely invalid and will be destroyed.");
				Object.Destroy((Object)(object)currentGameObject);
				return;
			}
			val.x = COLLIDER_SCALE_FACTOR * 1f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)TEN && num < (decimal)HUNDRED)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has two digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -2.03f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = 1.41f;
			tens.localPosition = val;
			Transform[] array3 = numberPlacesArray;
			foreach (Transform val4 in array3)
			{
				if (Array.IndexOf(numberPlacesArray, val4) <= 1)
				{
					((Component)val4).gameObject.SetActive(true);
				}
				else
				{
					((Component)val4).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 2f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)HUNDRED && num < (decimal)THOUSAND)
		{
			val = ones.localPosition;
			val.x = -3.75126f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -0.3112599f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = 3.12874f;
			hundreds.localPosition = val;
			Transform[] array4 = numberPlacesArray;
			foreach (Transform val5 in array4)
			{
				if (Array.IndexOf(numberPlacesArray, val5) <= 2)
				{
					((Component)val5).gameObject.SetActive(true);
				}
				else
				{
					((Component)val5).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 3f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)THOUSAND && num < (decimal)TEN_THOUSAND)
		{
			val = ones.localPosition;
			val.x = -5.47f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -2.03f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = 1.41f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = 4.85f;
			thousands.localPosition = val;
			Transform[] array5 = numberPlacesArray;
			foreach (Transform val6 in array5)
			{
				if (Array.IndexOf(numberPlacesArray, val6) <= 3)
				{
					((Component)val6).gameObject.SetActive(true);
				}
				else
				{
					((Component)val6).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 4f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)TEN_THOUSAND && num < (decimal)HUNDRED_THOUSAND)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has five digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -7.191259f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -3.751259f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -0.3112594f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = 3.12874f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = 6.56874f;
			tenthousands.localPosition = val;
			Transform[] array6 = numberPlacesArray;
			foreach (Transform val7 in array6)
			{
				if (Array.IndexOf(numberPlacesArray, val7) <= 4)
				{
					((Component)val7).gameObject.SetActive(true);
				}
				else
				{
					((Component)val7).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 5f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)HUNDRED_THOUSAND && num < (decimal)MILLION)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has six digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -8.91f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -5.47f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -2.03f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = 1.409999f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = 4.849999f;
			tenthousands.localPosition = val;
			val = hundredthousands.localPosition;
			val.x = 8.289999f;
			hundredthousands.localPosition = val;
			Transform[] array7 = numberPlacesArray;
			foreach (Transform val8 in array7)
			{
				if (Array.IndexOf(numberPlacesArray, val8) <= 5)
				{
					((Component)val8).gameObject.SetActive(true);
				}
				else
				{
					((Component)val8).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 6f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)MILLION && num < (decimal)TEN_MILLION)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has seven digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -10.63126f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -7.191259f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -3.751259f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = -0.3112596f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = 3.12874f;
			tenthousands.localPosition = val;
			val = hundredthousands.localPosition;
			val.x = 6.56874f;
			hundredthousands.localPosition = val;
			val = millions.localPosition;
			val.x = 10.00874f;
			millions.localPosition = val;
			Transform[] array8 = numberPlacesArray;
			foreach (Transform val9 in array8)
			{
				if (Array.IndexOf(numberPlacesArray, val9) <= 6)
				{
					((Component)val9).gameObject.SetActive(true);
				}
				else
				{
					((Component)val9).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 7f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)TEN_MILLION && num < (decimal)HUNDRED_MILLION)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has eight digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -12.35f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -8.91f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -5.47f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = -2.03f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = 1.41f;
			tenthousands.localPosition = val;
			val = hundredthousands.localPosition;
			val.x = 4.849999f;
			hundredthousands.localPosition = val;
			val = millions.localPosition;
			val.x = 8.29f;
			millions.localPosition = val;
			val = tenmillions.localPosition;
			val.x = 11.73f;
			tenmillions.localPosition = val;
			Transform[] array9 = numberPlacesArray;
			foreach (Transform val10 in array9)
			{
				if (Array.IndexOf(numberPlacesArray, val10) <= 7)
				{
					((Component)val10).gameObject.SetActive(true);
				}
				else
				{
					((Component)val10).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 8f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)HUNDRED_MILLION && num < (decimal)BILLION)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has nine digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -14.07126f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -10.63126f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -7.19126f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = -3.75126f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = -0.31126f;
			tenthousands.localPosition = val;
			val = hundredthousands.localPosition;
			val.x = 3.128739f;
			hundredthousands.localPosition = val;
			val = millions.localPosition;
			val.x = 6.56874f;
			millions.localPosition = val;
			val = tenmillions.localPosition;
			val.x = 10.00874f;
			tenmillions.localPosition = val;
			val = hundredmillions.localPosition;
			val.x = 13.44874f;
			hundredmillions.localPosition = val;
			Transform[] array10 = numberPlacesArray;
			foreach (Transform val11 in array10)
			{
				if (Array.IndexOf(numberPlacesArray, val11) <= 8)
				{
					((Component)val11).gameObject.SetActive(true);
				}
				else
				{
					((Component)val11).gameObject.SetActive(false);
				}
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 9f;
			baseBoxCollider.size = val;
		}
		else if (num >= (decimal)BILLION)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("TheUltimateNumber ID " + numberID + "'s value has ten digits. Moving GameObjects appropriately..."));
			val = ones.localPosition;
			val.x = -15.79f;
			ones.localPosition = val;
			val = tens.localPosition;
			val.x = -12.35f;
			tens.localPosition = val;
			val = hundreds.localPosition;
			val.x = -8.909999f;
			hundreds.localPosition = val;
			val = thousands.localPosition;
			val.x = -5.469999f;
			thousands.localPosition = val;
			val = tenthousands.localPosition;
			val.x = -2.029999f;
			tenthousands.localPosition = val;
			val = hundredthousands.localPosition;
			val.x = 1.41f;
			hundredthousands.localPosition = val;
			val = millions.localPosition;
			val.x = 4.85f;
			millions.localPosition = val;
			val = tenmillions.localPosition;
			val.x = 8.29f;
			tenmillions.localPosition = val;
			val = hundredmillions.localPosition;
			val.x = 11.73f;
			hundredmillions.localPosition = val;
			val = billions.localPosition;
			val.x = 15.17f;
			billions.localPosition = val;
			Transform[] array11 = numberPlacesArray;
			foreach (Transform val12 in array11)
			{
				((Component)val12).gameObject.SetActive(true);
			}
			val = baseBoxCollider.size;
			val.x = COLLIDER_SCALE_FACTOR * 10f;
			baseBoxCollider.size = val;
		}
		else
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogError((object)("Something went wrong! TheUltimateNumber ID " + numberID + "'s value is invalid with value " + value));
		}
		int num7 = 1;
		long num8 = 10L;
		Transform val13 = null;
		byte b = 0;
		byte b2 = 0;
		if (((NetworkBehaviour)this).IsServer)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"We're sever so setting a bunch of placeX values");
			place1 = byte.MaxValue;
			place2 = byte.MaxValue;
			place3 = byte.MaxValue;
			place4 = byte.MaxValue;
			place5 = byte.MaxValue;
			place6 = byte.MaxValue;
			place7 = byte.MaxValue;
			place8 = byte.MaxValue;
			place9 = byte.MaxValue;
			place10 = byte.MaxValue;
		}
		Transform[] array12 = numberPlacesArray;
		foreach (Transform val14 in array12)
		{
			if (((Component)val14).gameObject.activeSelf)
			{
				foreach (Transform item in val14)
				{
					Transform val15 = item;
					((Component)val15).gameObject.SetActive(false);
				}
				byte b3 = (byte)Math.Truncate(num % (decimal)num8 / (decimal)num7);
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Looking for a GameObject named " + b3 + gameObjectNumberSuffix[b2]));
				Transform val16 = ((Component)val14).transform.Find(b3 + gameObjectNumberSuffix[b2]);
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Found Transform " + (object)val16));
				((Component)val16).gameObject.SetActive(true);
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Set Transform as active!");
				val13 = val14;
				b = b2;
				if (((NetworkBehaviour)this).IsServer)
				{
					switch (b2)
					{
					case 0:
						place1 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place1 to " + b3));
						break;
					case 1:
						place2 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place2 to " + b3));
						break;
					case 2:
						place3 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place3 to " + b3));
						break;
					case 3:
						place4 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place4 to " + b3));
						break;
					case 4:
						place5 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place5 to " + b3));
						break;
					case 5:
						place6 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place6 to " + b3));
						break;
					case 6:
						place7 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place7 to " + b3));
						break;
					case 7:
						place8 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place8 to " + b3));
						break;
					case 8:
						place9 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place9 to " + b3));
						break;
					case 9:
						place10 = b3;
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Setting place10 to " + b3));
						break;
					default:
						global::TheUltimateNumber.TheUltimateNumber.Logger.LogError((object)"Genuinely how did this happen. The numberPlace switch statement broke lol");
						break;
					}
				}
			}
			num7 *= TEN;
			num8 *= TEN;
			b2++;
		}
		if (flag)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Looking for a GameObject named -" + gameObjectNumberSuffix[b]));
			Transform val17 = ((Component)val13).transform.Find("-" + gameObjectNumberSuffix[b]);
			((Component)val17).gameObject.SetActive(true);
		}
		if (value == 672m)
		{
			((Renderer)((Component)sixTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(orangeMat);
			((Renderer)((Component)sevenTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(orangeMat);
			((Renderer)((Component)twoTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(orangeMat);
			previously672 = true;
		}
		else if (value != 672m && previously672)
		{
			((Renderer)((Component)sixTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(normalMat);
			((Renderer)((Component)sevenTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(normalMat);
			((Renderer)((Component)twoTransform).gameObject.GetComponent<MeshRenderer>()).SetMaterials(normalMat);
			previously672 = false;
		}
		haventMovedNumbersYet = false;
	}

	public override void OnNetworkSpawn()
	{
		((NetworkBehaviour)this).OnNetworkSpawn();
		((NetworkVariableBase)_scrapValueSyncer).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place1).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place2).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place3).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place4).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place5).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place6).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place7).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place8).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place9).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_place10).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_hasWaited).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_isExploding).Initialize((NetworkBehaviour)(object)this);
		((NetworkVariableBase)_hasUpdatedYet).Initialize((NetworkBehaviour)(object)this);
	}

	public int CalcValue()
	{
		int minValue = 0;
		int num = TEN;
		Random random = new Random();
		double num2 = random.NextDouble() * 100.0;
		if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.hundredsChance.Value)
		{
			minValue = num;
			num = HUNDRED;
			num2 = random.NextDouble() * 100.0;
			if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.thousandsChance.Value)
			{
				minValue = num;
				num = THOUSAND;
				num2 = random.NextDouble() * 100.0;
				if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.tenThousandsChance.Value)
				{
					minValue = num;
					num = TEN_THOUSAND;
					num2 = random.NextDouble() * 100.0;
					if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.hundredThousandsChance.Value)
					{
						minValue = num;
						num = HUNDRED_THOUSAND;
						num2 = random.NextDouble() * 100.0;
						if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.millionsChance.Value)
						{
							minValue = num;
							num = MILLION;
							num2 = random.NextDouble() * 100.0;
							if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.tenMillionsChance.Value)
							{
								minValue = num;
								num = TEN_MILLION;
								num2 = random.NextDouble() * 100.0;
								if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.hundredMillionsChance.Value)
								{
									minValue = num;
									num = HUNDRED_MILLION;
									num2 = random.NextDouble() * 100.0;
									if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.billionsChance.Value)
									{
										minValue = num;
										num = BILLION;
										num2 = random.NextDouble() * 100.0;
										if (num2 <= global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.intLimitChance.Value)
										{
											minValue = num;
											num = INT_LIMIT;
										}
									}
								}
							}
						}
					}
				}
			}
		}
		int num3;
		for (num3 = random.Next(minValue, num); num3 == 0; num3 = random.Next(minValue, num))
		{
		}
		if (num3 == INT_LIMIT - 1)
		{
			global::TheUltimateNumber.TheUltimateNumber.Logger.LogWarning((object)"Jesus christ. Never expected this code to be used. Good luck with the dice roll.");
			num3 += random.Next(0, 2);
		}
		global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Calculated a scrap value of " + num3 + " for TheUltimateNumber ID " + numberID));
		hasGeneratedValue = true;
		return num3;
	}

	public override void EquipItem()
	{
		((AnimatedItem)this).EquipItem();
		global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Equipping item and trying to play audio");
		if (!hasGeneratedValue)
		{
			return;
		}
		foreach (SpecialAudioClip specialAudioClip in specialAudioClips)
		{
			if ((Object)(object)specialAudioClip.clip != (Object)null && (decimal)specialAudioClip.value == ScrapValueSyncer)
			{
				if (specialAudioClip.explodeAfter)
				{
					oopsAudioSource.clip = specialAudioClip.clip;
					((MonoBehaviour)this).StartCoroutine(PlayExplodeNumberSound());
				}
				else
				{
					base.itemAudio.clip = specialAudioClip.clip;
					base.itemAudio.Play();
				}
				return;
			}
		}
		global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"No special audio clip matches value");
		((MonoBehaviour)this).StartCoroutine(PlayNormalNumberAudio());
		global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)"Tried to play audio");
	}

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

	public override void DiscardItem()
	{
		IntPtr functionPointer = typeof(GrabbableObject).GetMethod("DiscardItem").MethodHandle.GetFunctionPointer();
		Action action = (Action)Activator.CreateInstance(typeof(Action), this, functionPointer);
		action();
	}

	public override void PocketItem()
	{
		((AnimatedItem)this).PocketItem();
		base.itemAudio.volume = global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.numberAudioSourceVolume.Value;
	}

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

	[ServerRpc(RequireOwnership = false)]
	public void ExplodeNumberServerRpc()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: 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_00c1: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(640149591u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 640149591u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
				ExplodeNumberClientRpc();
			}
		}
	}

	[ClientRpc]
	public void ExplodeNumberClientRpc()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: 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_00c1: 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)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager == null || !networkManager.IsListening)
		{
			return;
		}
		if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
		{
			ClientRpcParams val = default(ClientRpcParams);
			FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2443973414u, val, (RpcDelivery)0);
			((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2443973414u, val, (RpcDelivery)0);
		}
		if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
		{
			((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
			if (((GrabbableObject)this).isHeld)
			{
				((GrabbableObject)this).playerHeldBy.DropAllHeldItems(true, false);
			}
			Landmine.SpawnExplosion(((Component)this).transform.position, true, 5f, 6f, 50, global::TheUltimateNumber.TheUltimateNumber.UltimateConfig.explosionPhysicsForce.Value, (GameObject)null, false);
			Object.Destroy((Object)(object)((Component)this).gameObject);
		}
	}

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

	[ServerRpc(RequireOwnership = false)]
	public void playOopsAudioServerRpc()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: 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_00c1: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3518729144u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3518729144u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
				playOopsAudioClientRpc();
			}
		}
	}

	[ClientRpc]
	public void playOopsAudioClientRpc()
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: 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_00c1: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4108114188u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4108114188u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
				IsExploding = true;
				oopsAudioSource.Play();
			}
		}
	}

	[ServerRpc(RequireOwnership = false)]
	public void syncTotalScrapValueServerRpc(float plusval = 0f, float minusval = 0f)
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: 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)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3047672134u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref plusval, default(ForPrimitives));
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref minusval, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3047672134u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
				syncTotalScrapValueClientRpc(plusval, minusval);
			}
		}
	}

	[ClientRpc]
	public void syncTotalScrapValueClientRpc(float plusval, float minusval)
	{
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_002e: Invalid comparison between Unknown and I4
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Invalid comparison between Unknown and I4
		//IL_005f: 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_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: 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)
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3561509306u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref plusval, default(ForPrimitives));
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref minusval, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3561509306u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				((NetworkBehaviour)this).__rpc_exec_stage = (__RpcExecStage)0;
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Total scrap value before adding is " + RoundManager.Instance.totalScrapValueInLevel));
				RoundManager.Instance.totalScrapValueInLevel = RoundManager.Instance.totalScrapValueInLevel + plusval - minusval;
				global::TheUltimateNumber.TheUltimateNumber.Logger.LogDebug((object)("Total scrap value after adding is " + RoundManager.Instance.totalScrapValueInLevel));
			}
		}
	}

	protected override void __initializeVariables()
	{
		if (_scrapValueSyncer == null)
		{
			throw new Exception("UltimateNumberManipulator._scrapValueSyncer cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_scrapValueSyncer).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_scrapValueSyncer, "_scrapValueSyncer");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_scrapValueSyncer);
		if (_place1 == null)
		{
			throw new Exception("UltimateNumberManipulator._place1 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place1).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place1, "_place1");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place1);
		if (_place2 == null)
		{
			throw new Exception("UltimateNumberManipulator._place2 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place2).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place2, "_place2");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place2);
		if (_place3 == null)
		{
			throw new Exception("UltimateNumberManipulator._place3 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place3).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place3, "_place3");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place3);
		if (_place4 == null)
		{
			throw new Exception("UltimateNumberManipulator._place4 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place4).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place4, "_place4");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place4);
		if (_place5 == null)
		{
			throw new Exception("UltimateNumberManipulator._place5 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place5).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place5, "_place5");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place5);
		if (_place6 == null)
		{
			throw new Exception("UltimateNumberManipulator._place6 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place6).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place6, "_place6");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place6);
		if (_place7 == null)
		{
			throw new Exception("UltimateNumberManipulator._place7 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place7).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place7, "_place7");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place7);
		if (_place8 == null)
		{
			throw new Exception("UltimateNumberManipulator._place8 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place8).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place8, "_place8");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place8);
		if (_place9 == null)
		{
			throw new Exception("UltimateNumberManipulator._place9 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place9).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place9, "_place9");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place9);
		if (_place10 == null)
		{
			throw new Exception("UltimateNumberManipulator._place10 cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_place10).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_place10, "_place10");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_place10);
		if (_hasWaited == null)
		{
			throw new Exception("UltimateNumberManipulator._hasWaited cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_hasWaited).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_hasWaited, "_hasWaited");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_hasWaited);
		if (_isExploding == null)
		{
			throw new Exception("UltimateNumberManipulator._isExploding cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_isExploding).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_isExploding, "_isExploding");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_isExploding);
		if (_hasUpdatedYet == null)
		{
			throw new Exception("UltimateNumberManipulator._hasUpdatedYet cannot be null. All NetworkVariableBase instances must be initialized.");
		}
		((NetworkVariableBase)_hasUpdatedYet).Initialize((NetworkBehaviour)(object)this);
		((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)_hasUpdatedYet, "_hasUpdatedYet");
		((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)_hasUpdatedYet);
		((AnimatedItem)this).__initializeVariables();
	}

	protected override void __initializeRpcs()
	{
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		//IL_001c: Expected O, but got Unknown
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_0038: Expected O, but got Unknown
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: Expected O, but got Unknown
		//IL_0061: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Expected O, but got Unknown
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Expected O, but got Unknown
		//IL_0099: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a8: Expected O, but got Unknown
		((NetworkBehaviour)this).__registerRpc(640149591u, new RpcReceiveHandler(__rpc_handler_640149591), "ExplodeNumberServerRpc");
		((NetworkBehaviour)this).__registerRpc(2443973414u, new RpcReceiveHandler(__rpc_handler_2443973414), "ExplodeNumberClientRpc");
		((NetworkBehaviour)this).__registerRpc(3518729144u, new RpcReceiveHandler(__rpc_handler_3518729144), "playOopsAudioServerRpc");
		((NetworkBehaviour)this).__registerRpc(4108114188u, new RpcReceiveHandler(__rpc_handler_4108114188), "playOopsAudioClientRpc");
		((NetworkBehaviour)this).__registerRpc(3047672134u, new RpcReceiveHandler(__rpc_handler_3047672134), "syncTotalScrapValueServerRpc");
		((NetworkBehaviour)this).__registerRpc(3561509306u, new RpcReceiveHandler(__rpc_handler_3561509306), "syncTotalScrapValueClientRpc");
		((AnimatedItem)this).__initializeRpcs();
	}

	private static void __rpc_handler_640149591(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).ExplodeNumberServerRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_2443973414(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).ExplodeNumberClientRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_3518729144(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).playOopsAudioServerRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_4108114188(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_003f: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).playOopsAudioClientRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_3047672134(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: 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_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			float plusval = default(float);
			((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref plusval, default(ForPrimitives));
			float minusval = default(float);
			((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref minusval, default(ForPrimitives));
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).syncTotalScrapValueServerRpc(plusval, minusval);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_3561509306(NetworkBehaviour? target, FastBufferReader reader, __RpcParams rpcParams)
	{
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: 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_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		NetworkManager networkManager = target.NetworkManager;
		if (networkManager != null && networkManager.IsListening)
		{
			float plusval = default(float);
			((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref plusval, default(ForPrimitives));
			float minusval = default(float);
			((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref minusval, default(ForPrimitives));
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((UltimateNumberManipulator)(object)target).syncTotalScrapValueClientRpc(plusval, minusval);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	[MethodImpl(MethodImplOptions.NoInlining)]
	protected internal override string? __getTypeName()
	{
		return "UltimateNumberManipulator";
	}
}
namespace TheUltimateNumber
{
	[CreateAssetMenu]
	public class SpecialAudioClip : ScriptableObject
	{
		public AudioClip clip = new AudioClip();

		public int value;

		public bool explodeAfter;
	}
	[BepInPlugin("MBCollector672.TheUltimateNumber", "TheUltimateNumber", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class TheUltimateNumber : BaseUnityPlugin
	{
		public static TheUltimateNumber Instance { get; private set; }

		internal static ManualLogSource Logger { get; private set; }

		internal static Harmony? Harmony { get; set; }

		internal static UltimateNumberConfig UltimateConfig { get; private set; }

		private void Awake()
		{
			UltimateConfig = new UltimateNumberConfig(((BaseUnityPlugin)this).Config);
			Logger = ((BaseUnityPlugin)this).Logger;
			Instance = this;
			Type[] types = Assembly.GetExecutingAssembly().GetTypes();
			Type[] array = types;
			foreach (Type type in array)
			{
				MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
				MethodInfo[] array2 = methods;
				foreach (MethodInfo methodInfo in array2)
				{
					object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
					if (customAttributes.Length != 0)
					{
						methodInfo.Invoke(null, null);
					}
				}
			}
			string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TheUltimateNumber.numbabundle");
			AssetBundle val = AssetBundle.LoadFromFile(text);
			Item val2 = val.LoadAsset<Item>("Assets/LethalCompany/Mods/TheUltimateNumber/items/TheUltimateNumber.asset");
			NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab);
			Utilities.FixMixerGroups(val2.spawnPrefab);
			if (UltimateConfig.isOnAllMoons.Value)
			{
				Items.RegisterScrap(val2, UltimateConfig.numberRarity.Value, (LevelTypes)(-1));
			}
			else
			{
				Items.RegisterScrap(val2, UltimateConfig.numberRarity.Value, (LevelTypes)1);
			}
			Patch();
			Logger.LogInfo((object)"MBCollector672.TheUltimateNumber v1.0.0 has loaded!");
		}

		internal static void Patch()
		{
			//IL_000c: 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_0017: Expected O, but got Unknown
			if (Harmony == null)
			{
				Harmony = new Harmony("MBCollector672.TheUltimateNumber");
			}
			Logger.LogDebug((object)"Patching...");
			Harmony.PatchAll();
			Logger.LogDebug((object)"Finished patching!");
		}

		internal static void Unpatch()
		{
			Logger.LogDebug((object)"Unpatching...");
			Harmony? harmony = Harmony;
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
			Logger.LogDebug((object)"Finished unpatching!");
		}
	}
	internal class UltimateNumberConfig
	{
		public readonly ConfigEntry<double>? hundredsChance;

		public readonly ConfigEntry<double>? thousandsChance;

		public readonly ConfigEntry<double>? tenThousandsChance;

		public readonly ConfigEntry<double>? hundredThousandsChance;

		public readonly ConfigEntry<double>? millionsChance;

		public readonly ConfigEntry<double>? tenMillionsChance;

		public readonly ConfigEntry<double>? hundredMillionsChance;

		public readonly ConfigEntry<double>? billionsChance;

		public readonly ConfigEntry<double>? intLimitChance;

		public readonly ConfigEntry<float>? numberAudioSourceVolume;

		public readonly ConfigEntry<float>? numberAudioSourceMinDistance;

		public readonly ConfigEntry<float>? numberAudioSourceMaxDistance;

		public readonly ConfigEntry<float>? explosionPhysicsForce;

		public readonly ConfigEntry<bool>? isOnAllMoons;

		public readonly ConfigEntry<int>? numberRarity;

		public UltimateNumberConfig(ConfigFile ultimateConfig)
		{
			ultimateConfig.SaveOnConfigSet = false;
			hundredsChance = ultimateConfig.Bind<double>("Number Value Chances", "tensChance", 50.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 1-9 -> 10-99. Default: 50.0");
			thousandsChance = ultimateConfig.Bind<double>("Number Value Chances", "hundredsChance", 20.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 10-99 -> 100-999. Default: 20.0");
			tenThousandsChance = ultimateConfig.Bind<double>("Number Value Chances", "thousandsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 100-999 -> 1,000-9,999. Default: 10.0");
			hundredThousandsChance = ultimateConfig.Bind<double>("Number Value Chances", "tenThousandsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 1,000-9,999 -> 10,000-99,999. Default: 10.0");
			millionsChance = ultimateConfig.Bind<double>("Number Value Chances", "hundredThousandsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 10,000-99,999 -> 100,000-999,999. Default: 10.0");
			tenMillionsChance = ultimateConfig.Bind<double>("Number Value Chances", "millionsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 100,000-999,999 -> 1,000,000-9,999,999. Default: 10.0");
			hundredMillionsChance = ultimateConfig.Bind<double>("Number Value Chances", "tenMillionsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 1,000,000-9,999,999 -> 10,000,000-99,999,999. Default: 10.0");
			billionsChance = ultimateConfig.Bind<double>("Number Value Chances", "hundredMillionsChance", 10.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 10,000,000-99,999,999 -> 100,000,000-999,999,999. Default: 10.0");
			intLimitChance = ultimateConfig.Bind<double>("Number Value Chances", "billionsChance", 50.0, "(0-100) Percent chance of The Ultimate Number's value being upgraded from 100,000,000-999,999,999 -> 1,000,000,000-2,147,483,647. Default: 50.0");
			numberAudioSourceVolume = ultimateConfig.Bind<float>("Number Audio Source Properties", "numberAudioSourceVolume", 1f, "(0-1) Volume of The Ultimate Number's audio source. Default: 1.0");
			numberAudioSourceMinDistance = ultimateConfig.Bind<float>("Number Audio Source Properties", "minDistance", 4f, "The maximum distance from The Ultimate Number's audio source where audio will be played at maximum volume. Default: 4");
			numberAudioSourceMaxDistance = ultimateConfig.Bind<float>("Number Audio Source Properties", "maxDistance", 17f, "The maximum distance from The Ultimate Number's audio source where audio will be played. Default: 17");
			isOnAllMoons = ultimateConfig.Bind<bool>("Spawning", "isOnAllMoons", true, "Whether or not The Ultimate Number spawns on all moons. Disable only if you want to individually configure where the number spawns in something like Lethal Level Loader. Default: true");
			numberRarity = ultimateConfig.Bind<int>("Spawning", "numberRarity", 10, "(0-100) Rarity of The Ultimate Number if it's set to spawn on all moons. Default: 10");
			explosionPhysicsForce = ultimateConfig.Bind<float>("Other Number Properties", "explosionPhysicsForce", 0f, "The extra physics force applied to any explosions. Default: 0.0");
			ClearOrphanedEntries(ultimateConfig);
			ultimateConfig.Save();
			ultimateConfig.SaveOnConfigSet = true;
		}

		private static void ClearOrphanedEntries(ConfigFile ultimateConfig)
		{
			PropertyInfo propertyInfo = AccessTools.Property(typeof(ConfigFile), "OrphanedEntries");
			Dictionary<ConfigDefinition, string> dictionary = (Dictionary<ConfigDefinition, string>)propertyInfo.GetValue(ultimateConfig);
			dictionary.Clear();
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "MBCollector672.TheUltimateNumber";

		public const string PLUGIN_NAME = "TheUltimateNumber";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}
namespace __GEN
{
	internal class NetworkVariableSerializationHelper
	{
		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeSerialization()
		{
			NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<byte>();
			NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<byte>();
			NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<bool>();
			NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<bool>();
		}
	}
}
namespace MBCollector672.TheUltimateNumber.NetcodePatcher
{
	[AttributeUsage(AttributeTargets.Module)]
	internal class NetcodePatchedAssemblyAttribute : Attribute
	{
	}
}