Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of CoreWoodExtras v2.4.5
plugins/CoreWoodExtras.dll
Decompiled 2 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using System.Threading; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using CoreWoodExtras; using CoreWoodExtras.Containers; using CoreWoodExtras.TextureUtils; using CoreWoodExtras.Updates; using HarmonyLib; using Jotunn; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Extensions; using Jotunn.Managers; using Jotunn.Utils; using MagicMike.ModSettings; using Microsoft.CodeAnalysis; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("CoreWoodExtras")] [assembly: AssemblyDescription("https://discord.gg/mnr36G6J4x")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("MagicMike")] [assembly: AssemblyProduct("CoreWoodExtras")] [assembly: AssemblyCopyright("Copyright © MagicMike 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")] [assembly: AssemblyFileVersion("2.4.5")] [assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.4.5.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 Elevator : MonoBehaviour { public bool m_canMove = true; public float m_speed = 2f; public int m_startPoint; public Transform[] m_points; public static readonly int m_elevatorPosition = StringExtensionMethods.GetStableHashCode("elevatorPosition"); private static readonly int s_target = StringExtensionMethods.GetStableHashCode("elevatorTarget"); private static readonly int s_startTime = StringExtensionMethods.GetStableHashCode("elevatorStart"); private static readonly int s_speed = StringExtensionMethods.GetStableHashCode("elevatorSpeed"); private static readonly int s_reverse = StringExtensionMethods.GetStableHashCode("elevatorReverse"); private static readonly int s_sound = StringExtensionMethods.GetStableHashCode("elevatorSound"); private const float RemoteSoundWindow = 1.5f; private ZNetView m_nview; private ElevatorSwitch m_soundSwitch; private long m_lastSeenStart; private bool IsNetworked { get { if ((Object)(object)m_nview != (Object)null) { return m_nview.IsValid(); } return false; } } public bool IsOwner() { if (IsNetworked) { return m_nview.IsOwner(); } return false; } public void RegisterSwitch(ElevatorSwitch elevatorSwitch) { if (!Object.op_Implicit((Object)(object)m_soundSwitch)) { m_soundSwitch = elevatorSwitch; } } public void Start() { //IL_008e: Unknown result type (might be due to invalid IL or missing references) m_nview = ((Component)this).gameObject.GetComponentInParent<ZNetView>(); if (m_points != null && m_points.Length != 0) { int num; if (IsNetworked) { ZDO zDO = m_nview.GetZDO(); num = Mathf.Clamp(zDO.GetInt(m_elevatorPosition, 0), 0, m_points.Length - 1); m_lastSeenStart = zDO.GetLong(s_startTime, 0L); } else { num = Mathf.Clamp(m_startPoint, 0, m_points.Length - 1); } ((Component)this).transform.position = m_points[num].position; } } public void Update() { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) if (m_points == null || m_points.Length == 0 || !IsNetworked || (Object)(object)ZNet.instance == (Object)null) { return; } ZDO zDO = m_nview.GetZDO(); ReadState(zDO, out var rest, out var target, out var traveled, out var distance); PlayRemoteSound(zDO); if (target < 0) { ((Component)this).transform.position = m_points[rest].position; m_canMove = false; } else if (traveled >= distance) { ((Component)this).transform.position = m_points[target].position; m_canMove = false; if (m_nview.IsOwner()) { zDO.Set(m_elevatorPosition, target, false); zDO.Set(s_target, -1, false); } } else { ((Component)this).transform.position = Vector3.MoveTowards(m_points[rest].position, m_points[target].position, traveled); m_canMove = true; } } public bool Activate(float speed = 2f, bool playSound = false) { if (!MainConfig.enableElevators.Value || m_points == null || m_points.Length < 2 || !IsNetworked || (Object)(object)ZNet.instance == (Object)null) { return false; } ZDO zDO = m_nview.GetZDO(); ReadState(zDO, out var rest, out var target, out var traveled, out var distance); if (target >= 0) { if (traveled < distance) { return false; } rest = target; } bool flag = zDO.GetBool(s_reverse, false); if (rest >= m_points.Length - 1) { flag = true; } else if (rest <= 0) { flag = false; } int num = (flag ? (rest - 1) : (rest + 1)); long ticks = ZNet.instance.GetTime().Ticks; m_nview.ClaimOwnership(); zDO.Set(m_elevatorPosition, rest, false); zDO.Set(s_reverse, flag); zDO.Set(s_speed, speed); zDO.Set(s_sound, playSound); zDO.Set(s_target, num, false); zDO.Set(s_startTime, ticks); m_lastSeenStart = ticks; m_canMove = true; return true; } private void ReadState(ZDO zdo, out int rest, out int target, out float traveled, out float distance) { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) rest = Mathf.Clamp(zdo.GetInt(m_elevatorPosition, 0), 0, m_points.Length - 1); target = zdo.GetInt(s_target, -1); traveled = 0f; distance = 0f; if (target < 0 || target >= m_points.Length) { target = -1; return; } double val = (double)(ZNet.instance.GetTime().Ticks - zdo.GetLong(s_startTime, 0L)) / 10000000.0; traveled = (float)Math.Max(0.0, val) * zdo.GetFloat(s_speed, 2f); distance = Vector3.Distance(m_points[rest].position, m_points[target].position); } private void PlayRemoteSound(ZDO zdo) { long num = zdo.GetLong(s_startTime, 0L); if (num != m_lastSeenStart) { m_lastSeenStart = num; if (zdo.GetBool(s_sound, false) && Object.op_Implicit((Object)(object)m_soundSwitch) && (double)(ZNet.instance.GetTime().Ticks - num) / 10000000.0 < 1.5) { m_soundSwitch.PlayStartSound(); } } } } public class ElevatorSwitch : MonoBehaviour, Hoverable, Interactable { public Elevator m_elevator; public EffectList m_elevatorSFX; public float m_hoverOffset; private string m_name; private Piece m_piece; private void Start() { m_piece = ((Component)this).gameObject.GetComponentInParent<Piece>(); m_name = m_piece.m_name; if ((Object)(object)m_elevator != (Object)null) { m_elevator.RegisterSwitch(this); } } public string GetHoverText() { return Localization.instance.Localize(m_name + "\n[<color=yellow><b>$KEY_Use</b></color>] $text_use_elevator"); } public string GetHoverName() { return m_name; } public bool Interact(Humanoid human, bool hold, bool alt) { if (hold || (Object)(object)m_elevator == (Object)null) { return false; } if (m_elevator.Activate(2f, playSound: true)) { PlayStartSound(); } return true; } public void PlayStartSound() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) EffectList elevatorSFX = m_elevatorSFX; if (elevatorSFX != null) { elevatorSFX.Create(((Component)this).transform.position, ((Component)this).transform.rotation, (Transform)null, 1f, -1, default(ZDOID)); } } public bool UseItem(Humanoid user, ItemData item) { return false; } public float GetHoverOffset() { return m_hoverOffset; } } public class KeyUtils { public static bool IgnoreKeyPresses(bool extra = false) { if (!extra) { if (!((Object)(object)ZNetScene.instance == (Object)null) && !((Object)(object)Player.m_localPlayer == (Object)null) && !Minimap.IsOpen() && !Console.IsVisible() && !TextInput.IsVisible() && !ZNet.instance.InPasswordDialog()) { Chat instance = Chat.instance; if (instance == null) { return false; } return instance.HasFocus(); } return true; } if (!((Object)(object)ZNetScene.instance == (Object)null) && !((Object)(object)Player.m_localPlayer == (Object)null) && !Minimap.IsOpen() && !Console.IsVisible() && !TextInput.IsVisible() && !ZNet.instance.InPasswordDialog()) { Chat instance2 = Chat.instance; if ((instance2 == null || !instance2.HasFocus()) && !StoreGui.IsVisible() && !InventoryGui.IsVisible() && !Menu.IsVisible()) { TextViewer instance3 = TextViewer.instance; if (instance3 == null) { return false; } return instance3.IsVisible(); } } return true; } public static bool CheckKeyDown(string value) { try { string[] array = value.Split(new char[1] { ',' }); for (int i = 0; i < array.Length; i++) { if (Input.GetKeyDown(array[i].ToLower())) { return true; } } } catch { } return false; } public static bool CheckKeyUp(string value) { try { string[] array = value.Split(new char[1] { ',' }); for (int i = 0; i < array.Length; i++) { if (Input.GetKeyUp(array[i].ToLower())) { return true; } } } catch { } return false; } public static bool CheckKeyHeld(string value, bool req = true) { try { string[] array = value.Split(new char[1] { ',' }); for (int i = 0; i < array.Length; i++) { if (Input.GetKey(array[i].ToLower())) { return true; } } } catch { } return !req; } } public class ParentPlatform : MonoBehaviour { private class Rider { public int Touching; public Transform OriginalParent; } [HarmonyPatch(typeof(ZNetView), "ResetZDO")] private static class ZNetView_ResetZDO_Patch { private static void Prefix(ZNetView __instance) { if (s_platforms.Count == 0 || !Object.op_Implicit((Object)(object)__instance)) { return; } Transform transform = ((Component)__instance).transform; foreach (ParentPlatform s_platform in s_platforms) { if (Object.op_Implicit((Object)(object)s_platform) && s_platform.m_riders.Count > 0 && ((Component)s_platform).transform.IsChildOf(transform)) { s_platform.DetachAll(); } } } } private Piece m_piece; [NonSerialized] private readonly Dictionary<Transform, Rider> m_riders = new Dictionary<Transform, Rider>(); private readonly List<Transform> m_gone = new List<Transform>(); private static readonly HashSet<ParentPlatform> s_platforms = new HashSet<ParentPlatform>(); private void Start() { m_piece = ((Component)this).gameObject.GetComponentInParent<Piece>(); } private void OnEnable() { s_platforms.Add(this); } private void OnDisable() { s_platforms.Remove(this); } private void OnCollisionEnter(Collision other) { Transform transform = other.transform; if (!m_riders.TryGetValue(transform, out var value)) { value = new Rider { OriginalParent = transform.parent }; m_riders[transform] = value; transform.SetParent(((Component)this).transform); if ((Object)(object)other.rigidbody != (Object)null) { other.rigidbody.interpolation = (RigidbodyInterpolation)0; } } value.Touching++; UpdateRemovable(); } private void OnCollisionExit(Collision other) { Transform transform = other.transform; if (m_riders.TryGetValue(transform, out var value)) { value.Touching--; if (value.Touching <= 0) { m_riders.Remove(transform); Release(transform, value); } UpdateRemovable(); } } private void FixedUpdate() { if (m_riders.Count == 0) { return; } m_gone.Clear(); foreach (Transform key in m_riders.Keys) { if ((Object)(object)key == (Object)null || !((Component)key).gameObject.activeInHierarchy) { m_gone.Add(key); } } if (m_gone.Count == 0) { return; } foreach (Transform item in m_gone) { if (m_riders.TryGetValue(item, out var value)) { m_riders.Remove(item); Release(item, value); } } UpdateRemovable(); } public void DetachAll() { foreach (KeyValuePair<Transform, Rider> rider in m_riders) { Release(rider.Key, rider.Value); } m_riders.Clear(); UpdateRemovable(); } private void Release(Transform rider, Rider state) { if (!((Object)(object)rider == (Object)null) && !((Object)(object)rider.parent != (Object)(object)((Component)this).transform)) { rider.SetParent(((Object)(object)state.OriginalParent != (Object)null) ? state.OriginalParent : null); Rigidbody component = ((Component)rider).GetComponent<Rigidbody>(); if ((Object)(object)component != (Object)null) { component.interpolation = (RigidbodyInterpolation)1; } } } private void UpdateRemovable() { if ((Object)(object)m_piece != (Object)null) { m_piece.m_canBeRemoved = m_riders.Count == 0; } } } public class SchoolBubbles : MonoBehaviour { public ParticleSystem _bubbleParticles; public float _emitEverySecond = 0.01f; public float _speedEmitMultiplier = 0.25f; public int _minBubbles; public int _maxBubbles = 5; public void Start() { if ((Object)(object)_bubbleParticles == (Object)null) { _bubbleParticles = ((Component)((Component)this).transform).GetComponent<ParticleSystem>(); } } public void EmitBubbles(Vector3 pos, float amount) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (!(amount * _speedEmitMultiplier < 1f)) { ((Component)_bubbleParticles).transform.position = pos; _bubbleParticles.Emit(Mathf.Clamp((int)(amount * _speedEmitMultiplier), _minBubbles, _maxBubbles)); } } } public class SchoolChild : MonoBehaviour { public SchoolController _spawner; private Vector3 _wayPoint; [HideInInspector] public float _speed = 10f; private float _stuckCounter; private float _damping; private Transform _model; private float _targetSpeed; private float tParam; private float _rotateCounterR; private float _rotateCounterL; public Transform _scanner; private bool _scan = true; private bool _instantiated; private static int _updateNextSeed; private int _updateSeed = -1; public Transform _cacheTransform; private Animation _legacyAnim; private Animator anim; public void Start() { _cacheTransform = ((Component)this).transform; LocateRequiredChildren(); if (_spawner._useLegacyAnimations) { _legacyAnim = ((Component)_model).GetComponent<Animation>(); } else { anim = ((Component)_model).GetComponent<Animator>(); } SetRandomScale(); RandomizeStartAnimationFrame(); _speed = Random.Range(_spawner._minSpeed, _spawner._maxSpeed); Wander(0f); SetRandomWaypoint(); CheckForBubblesThenInvoke(); _instantiated = true; GetStartPos(); FrameSkipSeedInit(); _spawner._activeChildren++; } public bool ShouldUpdate(int updateCounter) { if (_instantiated) { if (_spawner._updateDivisor > 1) { return _updateSeed == updateCounter; } return true; } return false; } public void childUpdate() { CheckForDistanceToWaypoint(); RotationBasedOnWaypointOrAvoidance(); ForwardMovement(); RayCastToPushAwayFromObstacles(); SetAnimationSpeed(); } public void FrameSkipSeedInit() { if (_spawner._updateDivisor > 1) { _updateSeed = _updateNextSeed % _spawner._updateDivisor; _updateNextSeed = (_updateNextSeed + 1) % _spawner._updateDivisor; } } public void CheckForBubblesThenInvoke() { if ((Object)(object)_spawner._bubbles != (Object)null) { ((MonoBehaviour)this).InvokeRepeating("EmitBubbles", _spawner._bubbles._emitEverySecond * Random.value + 1f, _spawner._bubbles._emitEverySecond); } } public void EmitBubbles() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) _spawner._bubbles.EmitBubbles(_cacheTransform.position, _speed); } public void OnDisable() { ((MonoBehaviour)this).CancelInvoke(); if (_instantiated) { _spawner._activeChildren--; } } public void OnEnable() { if (_instantiated) { CheckForBubblesThenInvoke(); _spawner._activeChildren++; } } public void LocateRequiredChildren() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_model == (Object)null) { _model = _cacheTransform.Find("Model"); } if ((Object)(object)_scanner == (Object)null) { _scanner = new GameObject().transform; _scanner.parent = ((Component)this).transform; _scanner.localRotation = Quaternion.identity; _scanner.localPosition = Vector3.zero; } } public void SkewModelForLessUniformedMovement() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) Quaternion identity = Quaternion.identity; ((Quaternion)(ref identity)).eulerAngles = new Vector3(0f, 0f, (float)Random.Range(-25, 25)); _model.rotation = identity; } public void SetRandomScale() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) float num = Random.Range(_spawner._minScale, _spawner._maxScale); _cacheTransform.localScale = Vector3.one * num; } public void RandomizeStartAnimationFrame() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown if (!_spawner._useLegacyAnimations) { return; } foreach (AnimationState item in _legacyAnim) { AnimationState val = item; val.time = Random.value * val.length; } } public void SetAnimationSpeed() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (_spawner._useLegacyAnimations) { foreach (AnimationState item in _legacyAnim) { item.speed = Random.Range(_spawner._minAnimationSpeed, _spawner._maxAnimationSpeed) * _spawner._schoolSpeed * _speed + 0.1f; } return; } anim.speed = Random.Range(_spawner._minAnimationSpeed, _spawner._maxAnimationSpeed) * _spawner._schoolSpeed * _speed + 0.1f; } public void GetStartPos() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) _cacheTransform.position = _wayPoint - new Vector3(0.1f, 0.1f, 0.1f); } public Vector3 findWaypoint() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) Vector3 zero = Vector3.zero; zero.x = Random.Range(0f - _spawner._spawnSphere, _spawner._spawnSphere) + _spawner._posBuffer.x; zero.z = Random.Range(0f - _spawner._spawnSphereDepth, _spawner._spawnSphereDepth) + _spawner._posBuffer.z; zero.y = Random.Range(0f - _spawner._spawnSphereHeight, _spawner._spawnSphereHeight) + _spawner._posBuffer.y; return zero; } public void RayCastToPushAwayFromObstacles() { if (_spawner._push) { RotateScanner(); RayCastToPushAwayFromObstaclesCheckForCollision(); } } public void RayCastToPushAwayFromObstaclesCheckForCollision() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) RaycastHit val = default(RaycastHit); float num = 0f; Vector3 forward = _scanner.forward; if (Physics.Raycast(_cacheTransform.position, forward, ref val, _spawner._pushDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { SchoolChild component = ((Component)((RaycastHit)(ref val)).transform).GetComponent<SchoolChild>(); num = (_spawner._pushDistance - ((RaycastHit)(ref val)).distance) / _spawner._pushDistance; if ((Object)(object)component != (Object)null) { Transform cacheTransform = _cacheTransform; cacheTransform.position -= forward * _spawner._newDelta * num * _spawner._pushForce; return; } _speed -= 0.01f * _spawner._newDelta; if (_speed < 0.1f) { _speed = 0.1f; } Transform cacheTransform2 = _cacheTransform; cacheTransform2.position -= forward * _spawner._newDelta * num * _spawner._pushForce * 2f; _scan = false; } else { _scan = true; } } public void RotateScanner() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (_scan) { _scanner.rotation = Random.rotation; } else { _scanner.Rotate(new Vector3(150f * _spawner._newDelta, 0f, 0f)); } } public bool Avoidance() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01be: 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_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: 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_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03e5: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04f3: Unknown result type (might be due to invalid IL or missing references) if (!_spawner._avoidance) { return false; } RaycastHit val = default(RaycastHit); float num = 0f; Quaternion rotation = _cacheTransform.rotation; Quaternion rotation2 = _cacheTransform.rotation; Vector3 eulerAngles = ((Quaternion)(ref rotation2)).eulerAngles; Vector3 forward = _cacheTransform.forward; Vector3 right = _cacheTransform.right; if (Physics.Raycast(_cacheTransform.position, -Vector3.up + forward * 0.1f, ref val, _spawner._avoidDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { num = (_spawner._avoidDistance - ((RaycastHit)(ref val)).distance) / _spawner._avoidDistance; eulerAngles.x -= _spawner._avoidSpeed * num * _spawner._newDelta * (_speed + 1f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; } if (Physics.Raycast(_cacheTransform.position, Vector3.up + forward * 0.1f, ref val, _spawner._avoidDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { num = (_spawner._avoidDistance - ((RaycastHit)(ref val)).distance) / _spawner._avoidDistance; eulerAngles.x += _spawner._avoidSpeed * num * _spawner._newDelta * (_speed + 1f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; } if (Physics.Raycast(_cacheTransform.position, forward + right * Random.Range(-0.1f, 0.1f), ref val, _spawner._stopDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { num = (_spawner._stopDistance - ((RaycastHit)(ref val)).distance) / _spawner._stopDistance; eulerAngles.y -= _spawner._avoidSpeed * num * _spawner._newDelta * (_targetSpeed + 3f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; _speed -= num * _spawner._newDelta * _spawner._stopSpeedMultiplier * _speed; if (_speed < 0.01f) { _speed = 0.01f; } return true; } if (Physics.Raycast(_cacheTransform.position, forward + right * (_spawner._avoidAngle + _rotateCounterL), ref val, _spawner._avoidDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { num = (_spawner._avoidDistance - ((RaycastHit)(ref val)).distance) / _spawner._avoidDistance; _rotateCounterL += 0.1f; eulerAngles.y -= _spawner._avoidSpeed * num * _spawner._newDelta * _rotateCounterL * (_speed + 1f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; if (_rotateCounterL > 1.5f) { _rotateCounterL = 1.5f; } _rotateCounterR = 0f; return true; } if (Physics.Raycast(_cacheTransform.position, forward + right * (0f - (_spawner._avoidAngle + _rotateCounterR)), ref val, _spawner._avoidDistance, LayerMask.op_Implicit(_spawner._avoidanceMask))) { num = (_spawner._avoidDistance - ((RaycastHit)(ref val)).distance) / _spawner._avoidDistance; if (((RaycastHit)(ref val)).point.y < _cacheTransform.position.y) { eulerAngles.y -= _spawner._avoidSpeed * num * _spawner._newDelta * (_speed + 1f); } else { eulerAngles.x += _spawner._avoidSpeed * num * _spawner._newDelta * (_speed + 1f); } _rotateCounterR += 0.1f; eulerAngles.y += _spawner._avoidSpeed * num * _spawner._newDelta * _rotateCounterR * (_speed + 1f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; if (_rotateCounterR > 1.5f) { _rotateCounterR = 1.5f; } _rotateCounterL = 0f; return true; } _rotateCounterL = 0f; _rotateCounterR = 0f; return false; } public void ForwardMovement() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) Transform cacheTransform = _cacheTransform; cacheTransform.position += _cacheTransform.TransformDirection(Vector3.forward) * _speed * _spawner._newDelta; if (tParam < 1f) { if (_speed > _targetSpeed) { tParam += _spawner._newDelta * _spawner._acceleration; } else { tParam += _spawner._newDelta * _spawner._brake; } _speed = Mathf.Lerp(_speed, _targetSpeed, tParam); } } public void RotationBasedOnWaypointOrAvoidance() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_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_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) Quaternion identity = Quaternion.identity; identity = Quaternion.LookRotation(_wayPoint - _cacheTransform.position); if (!Avoidance()) { _cacheTransform.rotation = Quaternion.Slerp(_cacheTransform.rotation, identity, _spawner._newDelta * _damping); } float x = _cacheTransform.localEulerAngles.x; x = ((x > 180f) ? (x - 360f) : x); Quaternion rotation = _cacheTransform.rotation; Vector3 eulerAngles = ((Quaternion)(ref rotation)).eulerAngles; eulerAngles.x = ClampAngle(x, -50f, 50f); ((Quaternion)(ref rotation)).eulerAngles = eulerAngles; _cacheTransform.rotation = rotation; } public void CheckForDistanceToWaypoint() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) Vector3 val = _cacheTransform.position - _wayPoint; if (((Vector3)(ref val)).magnitude < _spawner._waypointDistance + _stuckCounter) { Wander(0f); _stuckCounter = 0f; CheckIfThisShouldTriggerNewFlockWaypoint(); } else { _stuckCounter += _spawner._newDelta * (_spawner._waypointDistance * 0.25f); } } public void CheckIfThisShouldTriggerNewFlockWaypoint() { if (_spawner._childTriggerPos) { _spawner.SetRandomWaypointPosition(); } } public static float ClampAngle(float angle, float min, float max) { if (angle < -360f) { angle += 360f; } if (angle > 360f) { angle -= 360f; } return Mathf.Clamp(angle, min, max); } public void Wander(float delay) { _damping = Random.Range(_spawner._minDamping, _spawner._maxDamping); _targetSpeed = Random.Range(_spawner._minSpeed, _spawner._maxSpeed) * _spawner._speedCurveMultiplier.Evaluate(Random.value) * _spawner._schoolSpeed; ((MonoBehaviour)this).Invoke("SetRandomWaypoint", delay); } public void SetRandomWaypoint() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) tParam = 0f; _wayPoint = findWaypoint(); } } public class SchoolController : MonoBehaviour { public SchoolChild[] _childPrefab; public bool _groupChildToNewTransform; public Transform _groupTransform; public string _groupName = ""; public bool _groupChildToSchool; public int _childAmount = 250; public float _spawnSphere = 3f; public float _spawnSphereDepth = 3f; public float _spawnSphereHeight = 1.5f; public float _childSpeedMultipler = 2f; public float _minSpeed = 6f; public float _maxSpeed = 10f; public AnimationCurve _speedCurveMultiplier = new AnimationCurve((Keyframe[])(object)new Keyframe[2] { new Keyframe(0f, 1f), new Keyframe(1f, 1f) }); public float _minScale = 0.7f; public float _maxScale = 1f; public float _minDamping = 1f; public float _maxDamping = 2f; public float _waypointDistance = 1f; public float _minAnimationSpeed = 2f; public float _maxAnimationSpeed = 4f; public float _randomPositionTimerMax = 10f; public float _randomPositionTimerMin = 4f; public float _acceleration = 0.025f; public float _brake = 0.01f; public float _positionSphere = 25f; public float _positionSphereDepth = 5f; public float _positionSphereHeight = 5f; public bool _childTriggerPos; public bool _forceChildWaypoints; public bool _autoRandomPosition; public float _forcedRandomDelay = 1.5f; public float _schoolSpeed; public List<SchoolChild> _roamers; public Vector3 _posBuffer; public Vector3 _posOffset; public bool _avoidance; public float _avoidAngle = 0.35f; public float _avoidDistance = 1f; public float _avoidSpeed = 75f; public float _stopDistance = 0.5f; public float _stopSpeedMultiplier = 2f; public LayerMask _avoidanceMask = LayerMask.op_Implicit(-1); public bool _push; public float _pushDistance; public float _pushForce = 5f; public SchoolBubbles _bubbles; public int _updateDivisor = 1; public float _newDelta; public int _updateCounter; public int _activeChildren; public bool _useLegacyAnimations = true; private bool _ownsGroupTransform; public void Start() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) _posBuffer = ((Component)this).transform.position + _posOffset; _schoolSpeed = Random.Range(1f, _childSpeedMultipler); AddFish(_childAmount); ((MonoBehaviour)this).Invoke("AutoRandomWaypointPosition", RandomWaypointTime()); } public void Update() { if (_activeChildren <= 0) { return; } if (_updateDivisor > 1) { _updateCounter++; _updateCounter %= _updateDivisor; _newDelta = Time.deltaTime * (float)_updateDivisor; } else { _newDelta = Time.deltaTime; } UpdateFishAmount(); for (int i = 0; i < _roamers.Count; i++) { if ((Object)(object)_roamers[i] != (Object)null && _roamers[i].ShouldUpdate(_updateCounter)) { _roamers[i].childUpdate(); } } } public void OnDestroy() { if (_roamers != null) { foreach (SchoolChild roamer in _roamers) { if ((Object)(object)roamer != (Object)null) { Object.Destroy((Object)(object)((Component)roamer).gameObject); } } _roamers.Clear(); } if (_ownsGroupTransform && (Object)(object)_groupTransform != (Object)null) { Object.Destroy((Object)(object)((Component)_groupTransform).gameObject); } } public void InstantiateGroup() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown //IL_0033: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_groupTransform != (Object)null)) { GameObject val = new GameObject(); _ownsGroupTransform = true; _groupTransform = val.transform; _groupTransform.position = ((Component)this).transform.position; if (_groupName != "") { ((Object)val).name = _groupName; } else { ((Object)val).name = ((Object)((Component)this).transform).name + " Fish Container"; } } } public void AddFish(int amount) { if (_groupChildToNewTransform) { InstantiateGroup(); } for (int i = 0; i < amount; i++) { int num = Random.Range(0, _childPrefab.Length); SchoolChild schoolChild = Object.Instantiate<SchoolChild>(_childPrefab[num]); schoolChild._spawner = this; _roamers.Add(schoolChild); AddChildToParent(((Component)schoolChild).transform); } } public void AddChildToParent(Transform obj) { if (_groupChildToSchool) { obj.parent = ((Component)this).transform; } else if (_groupChildToNewTransform) { obj.parent = _groupTransform; } } public void RemoveFish(int amount) { for (int i = 0; i < amount; i++) { if (_roamers.Count <= 0) { break; } SchoolChild schoolChild = _roamers[_roamers.Count - 1]; _roamers.RemoveAt(_roamers.Count - 1); if ((Object)(object)schoolChild != (Object)null) { Object.Destroy((Object)(object)((Component)schoolChild).gameObject); } } } public void UpdateFishAmount() { if (_childAmount >= 0 && _childAmount < _roamers.Count) { RemoveFish(1); } else if (_childAmount > _roamers.Count) { AddFish(1); } } public void SetRandomWaypointPosition() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) _schoolSpeed = Random.Range(1f, _childSpeedMultipler); Vector3 zero = Vector3.zero; zero.x = Random.Range(0f - _positionSphere, _positionSphere) + ((Component)this).transform.position.x; zero.z = Random.Range(0f - _positionSphereDepth, _positionSphereDepth) + ((Component)this).transform.position.z; zero.y = Random.Range(0f - _positionSphereHeight, _positionSphereHeight) + ((Component)this).transform.position.y; _posBuffer = zero; if (_forceChildWaypoints) { for (int i = 0; i < _roamers.Count; i++) { _roamers[i].Wander(Random.value * _forcedRandomDelay); } } } public void AutoRandomWaypointPosition() { if (_autoRandomPosition && _activeChildren > 0) { SetRandomWaypointPosition(); } ((MonoBehaviour)this).CancelInvoke("AutoRandomWaypointPosition"); ((MonoBehaviour)this).Invoke("AutoRandomWaypointPosition", RandomWaypointTime()); } public float RandomWaypointTime() { return Random.Range(_randomPositionTimerMin, _randomPositionTimerMax); } public void OnDrawGizmos() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!Application.isPlaying && _posBuffer != ((Component)this).transform.position + _posOffset) { _posBuffer = ((Component)this).transform.position + _posOffset; } Gizmos.color = Color.blue; Gizmos.DrawWireCube(_posBuffer, new Vector3(_spawnSphere * 2f, _spawnSphereHeight * 2f, _spawnSphereDepth * 2f)); Gizmos.color = Color.cyan; Gizmos.DrawWireCube(((Component)this).transform.position, new Vector3(_positionSphere * 2f + _spawnSphere * 2f, _positionSphereHeight * 2f + _spawnSphereHeight * 2f, _positionSphereDepth * 2f + _spawnSphereDepth * 2f)); } } public class TriggerPlatform : MonoBehaviour { public Elevator m_platform; private void OnTriggerEnter(Collider other) { if (!MainConfig.autoTriggers.Value || (Object)(object)m_platform == (Object)null) { return; } Player componentInParent = ((Component)other).GetComponentInParent<Player>(); if ((Object)(object)componentInParent != (Object)null) { if ((Object)(object)componentInParent != (Object)(object)Player.m_localPlayer) { return; } } else if (!m_platform.IsOwner()) { return; } m_platform.Activate(); } } public class WaypointMover : MonoBehaviour { [SerializeField] private Waypoints waypoints; [Range(0f, 10f)] [SerializeField] private float moveSpeed = 5f; [Range(0f, 20f)] [SerializeField] private float rotateSpeed = 0.5f; [SerializeField] private float distanceThreshold = 0.1f; private Transform currentWaypoint; private Quaternion rotationGoal; private Vector3 directionToWaypoint; private void Start() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) currentWaypoint = waypoints.GetNextWaypoint(currentWaypoint); ((Component)this).transform.position = currentWaypoint.position; currentWaypoint = waypoints.GetNextWaypoint(currentWaypoint); ((Component)this).transform.LookAt(currentWaypoint); } private void Update() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.position = Vector3.MoveTowards(((Component)this).transform.position, currentWaypoint.position, moveSpeed * Time.deltaTime); if (Vector3.Distance(((Component)this).transform.position, currentWaypoint.position) < distanceThreshold) { currentWaypoint = waypoints.GetNextWaypoint(currentWaypoint); } RotateTowardsWaypoint(); } private void RotateTowardsWaypoint() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) Vector3 val = currentWaypoint.position - ((Component)this).transform.position; directionToWaypoint = ((Vector3)(ref val)).normalized; rotationGoal = Quaternion.LookRotation(directionToWaypoint); ((Component)this).transform.rotation = Quaternion.Slerp(((Component)this).transform.rotation, rotationGoal, rotateSpeed * Time.deltaTime); } } public class Waypoints : MonoBehaviour { [Range(0f, 2f)] [SerializeField] private float gizmoSize = 1f; [SerializeField] private bool canLoop = true; private void OnDrawGizmos() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_007b: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) foreach (Transform item in ((Component)this).transform) { Gizmos.color = Color.blue; Gizmos.DrawWireSphere(item.position, gizmoSize); } Gizmos.color = Color.red; for (int i = 0; i < ((Component)this).transform.childCount - 1; i++) { Gizmos.DrawLine(((Component)this).transform.GetChild(i).position, ((Component)this).transform.GetChild(i + 1).position); } if (canLoop) { Gizmos.DrawLine(((Component)this).transform.GetChild(((Component)this).transform.childCount - 1).position, ((Component)this).transform.GetChild(0).position); } } public Transform GetNextWaypoint(Transform currentWaypoint) { if ((Object)(object)currentWaypoint == (Object)null) { return ((Component)this).transform.GetChild(0); } if (currentWaypoint.GetSiblingIndex() < ((Component)this).transform.childCount - 1) { return ((Component)this).transform.GetChild(currentWaypoint.GetSiblingIndex() + 1); } if (canLoop) { return ((Component)this).transform.GetChild(0); } return ((Component)this).transform.GetChild(currentWaypoint.GetSiblingIndex()); } } namespace MagicMike.ModSettings { internal sealed class ResetIcon : MaskableGraphic { private const int Segments = 28; protected override void OnPopulateMesh(VertexHelper vh) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) vh.Clear(); Rect pixelAdjustedRect = ((Graphic)this).GetPixelAdjustedRect(); Vector2 center = ((Rect)(ref pixelAdjustedRect)).center; float num = Mathf.Min(((Rect)(ref pixelAdjustedRect)).width, ((Rect)(ref pixelAdjustedRect)).height) * 0.36f; float num2 = num * 0.3f; for (int i = 0; i < 28; i++) { float angle = Mathf.Lerp(60f, 330f, (float)i / 28f) * ((float)Math.PI / 180f); float angle2 = Mathf.Lerp(60f, 330f, (float)(i + 1) / 28f) * ((float)Math.PI / 180f); Quad(vh, Polar(center, num + num2 * 0.5f, angle), Polar(center, num + num2 * 0.5f, angle2), Polar(center, num - num2 * 0.5f, angle2), Polar(center, num - num2 * 0.5f, angle)); } float num3 = 5.7595863f; Vector2 val = Polar(center, num, num3); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(0f - Mathf.Sin(num3), Mathf.Cos(num3)); Vector2 val3 = default(Vector2); ((Vector2)(ref val3))..ctor(Mathf.Cos(num3), Mathf.Sin(num3)); float num4 = num2 * 2.2f; Triangle(vh, val + val2 * num4, val + val3 * num4 * 0.9f, val - val3 * num4 * 0.9f); } private static Vector2 Polar(Vector2 centre, float radius, float angle) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) return centre + new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)) * radius; } private void Quad(VertexHelper vh, Vector2 a, Vector2 b, Vector2 c, Vector2 d) { //IL_0009: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) int currentVertCount = vh.currentVertCount; Vertex(vh, a); Vertex(vh, b); Vertex(vh, c); Vertex(vh, d); vh.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2); vh.AddTriangle(currentVertCount, currentVertCount + 2, currentVertCount + 3); } private void Triangle(VertexHelper vh, Vector2 a, Vector2 b, Vector2 c) { //IL_0009: 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_0019: Unknown result type (might be due to invalid IL or missing references) int currentVertCount = vh.currentVertCount; Vertex(vh, a); Vertex(vh, b); Vertex(vh, c); vh.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2); } private void Vertex(VertexHelper vh, Vector2 position) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) UIVertex simpleVert = UIVertex.simpleVert; simpleVert.position = Vector2.op_Implicit(position); simpleVert.color = Color32.op_Implicit(((Graphic)this).color); vh.AddVert(simpleVert); } } internal sealed class DownArrowIcon : MaskableGraphic { protected override void OnPopulateMesh(VertexHelper vh) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) vh.Clear(); Rect pixelAdjustedRect = ((Graphic)this).GetPixelAdjustedRect(); UIVertex simpleVert = UIVertex.simpleVert; simpleVert.color = Color32.op_Implicit(((Graphic)this).color); simpleVert.position = Vector2.op_Implicit(new Vector2(((Rect)(ref pixelAdjustedRect)).xMin, ((Rect)(ref pixelAdjustedRect)).yMax)); vh.AddVert(simpleVert); simpleVert.position = Vector2.op_Implicit(new Vector2(((Rect)(ref pixelAdjustedRect)).xMax, ((Rect)(ref pixelAdjustedRect)).yMax)); vh.AddVert(simpleVert); simpleVert.position = Vector2.op_Implicit(new Vector2(((Rect)(ref pixelAdjustedRect)).center.x, ((Rect)(ref pixelAdjustedRect)).yMin)); vh.AddVert(simpleVert); vh.AddTriangle(0, 1, 2); } } internal sealed class CloseIcon : MaskableGraphic { protected override void OnPopulateMesh(VertexHelper vh) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) vh.Clear(); Rect pixelAdjustedRect = ((Graphic)this).GetPixelAdjustedRect(); Vector2 center = ((Rect)(ref pixelAdjustedRect)).center; float num = Mathf.Min(((Rect)(ref pixelAdjustedRect)).width, ((Rect)(ref pixelAdjustedRect)).height) * 0.5f; float thickness = Mathf.Max(2f, num * 0.28f); Bar(vh, center + new Vector2(0f - num, 0f - num), center + new Vector2(num, num), thickness); Bar(vh, center + new Vector2(0f - num, num), center + new Vector2(num, 0f - num), thickness); } private void Bar(VertexHelper vh, Vector2 from, Vector2 to, float thickness) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b7: 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) Vector2 val = to - from; float num = 0f - ((Vector2)(ref val)).normalized.y; val = to - from; Vector2 val2 = new Vector2(num, ((Vector2)(ref val)).normalized.x) * (thickness * 0.5f); int currentVertCount = vh.currentVertCount; UIVertex simpleVert = UIVertex.simpleVert; simpleVert.color = Color32.op_Implicit(((Graphic)this).color); simpleVert.position = Vector2.op_Implicit(from + val2); vh.AddVert(simpleVert); simpleVert.position = Vector2.op_Implicit(to + val2); vh.AddVert(simpleVert); simpleVert.position = Vector2.op_Implicit(to - val2); vh.AddVert(simpleVert); simpleVert.position = Vector2.op_Implicit(from - val2); vh.AddVert(simpleVert); vh.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2); vh.AddTriangle(currentVertCount, currentVertCount + 2, currentVertCount + 3); } } internal static class LinkIcons { private static Sprite s_discord; private static Sprite s_payPal; private const int Size = 30; private const string DiscordPixels = "NSMc/zUjHP81Ixz/XE5V/7Ots//X1uT/2Nv5/8rO+/+6v/n/srf4/6yy9/+rsPj/qq/4/6mv+P+pr/j/qa/4/6mv+P+qr/j/qrD4/6yx9/+wtvf/ub75/8fL+//Y2vr/3t3u/7+3wf9xYXH/OCYh/zUjHP81Ixz/NSMc/zgmIv+Xjpf/4OL6/5Wc+v9rdPf/WWT3/1Ne9/9TXff/UVz3/1Fb9/9RW/f/UVv4/1Fc+P9RXPj/UVz4/1Fc+P9RXPj/UVz4/1Fb9/9RXPf/Ulz3/1Re9/9YY/f/ZG33/42V+P/V2vr/wLi//z0rK/81Ixz/NSMc/5CIlP/P0/v/XWj2/1Jc+P9XYfj/WmT4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WWP4/1Ne+P9VXvf/srj4/7uyu/86JyX/SzxB//Dx/v9gavb/WWP4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9aZPj/U173/9LW+/9mVmT/qqOr/6Ko9v9SXPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/4WN+P/Qy9n/4NzX/1xm9f9aZPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WGL4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9XYfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/2Js9v/z9f//397l/0xX9/9bZfj/W2X4/1tl+P9bZfj/WmT4/1Re+P9TXvf/Zm/2/1dh+P9cZvj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Vf+P9rdPX/VF/3/1Ne+P9aZPj/W2X4/1tl+P9bZfj/W2X4/1Jc9v/m6v3/0dLs/1Fc+P9bZfj/W2X4/1tl+P9WYPj/Vl/3/4CI9v/Bxfn/9/j8/5GY9f9VX/j/WGL4/1Vf+P9TXvj/U174/1Rf+P9XYvj/WGL4/32G9f/4+fz/y875/5CW9v9YYvb/VF74/1tl+P9bZfj/W2X4/1Fb+P/N0vr/ycz0/1Nd+P9bZfj/W2X4/1Zg+P9ze/X/zND4//z8/f///////////9/h+P9MWPX/Zm/2/3yE9/+Ij/f/iI/3/36H9v9rdPb/WGP2/7m+9////////////////v/X2vr/hIz2/1Nd9/9bZfj/W2X4/1Nd+P+8wvn/wsb4/1Ne+P9bZfj/W2X4/4yU9v/29vz/////////////////zND2/6mu9f/U1/r/8PL9//7//f/////////+/////v/19vz/2dz6/66z9v+2u/X////////////////////9/6yx9v9TXvf/W2X4/1Ne+P+yuPn/vsL3/1Re+P9bZfj/W2X4/7S4+P//////////////////////+vr9//7+///////////////////////////////////////////////////29/3//////////////////////+rr/P9QW/X/W2X4/1Re+P+ts/n/vMD3/1Rf+P9bZfj/W2X4/7e8+P///////////////////////////////v/2+Pz//v7+//////////////////////////7/9/f8//39/v///////////////////////////+zt/f9TXfb/W2X4/1Re+P+qsfn/u7/2/1Rf+P9bZfj/W2X4/7O3+P/////////////////////////9/56j9v9ocfb/kpj1/////v///////////////v+qr/b/aXP2/4mQ9v/9/f3//////////////////////+nq/f9QW/b/W2X4/1Ve9/+psPr/ur/2/1Rf+P9bZfj/W2X4/6ar9///////////////////////zND5/1Zg+P9XYfj/SVX3/8nL9////////////9rd+/9bZff/V2L4/0pV9/+4vfb//////////////////////9fZ+v9QWvf/W2X4/1Ve+P+or/r/u7/3/1Rf+P9bZfj/W2X4/5KZ9//+/v7/////////////////vsP5/1hi+P9bZfj/T1r4/7K39f///////////9DS+v9bZff/W2T4/1Fb+P+gpvT//////////////////////7a69v9SXfj/W2X4/1Ve+P+pr/r/u7/3/1Rf+P9bZfj/W2X4/3mB9//29v7/////////////////9Pb8/3Z+9P9SXPb/Z3H0//b3+/////////////n5/f+Civb/Ul32/2Bq9P/u7/v//////////////////////4WM9f9WYfj/W2X4/1Ve+P+pr/r/ur/2/1Rf+P9bZfj/W2X4/1lk9v/q6/v///////////////////////T1+//O0fn/8PH7///////////////////////4+f3/z9L5/+vt+//////////////////////////9/1Re9v9bZfj/W2X4/1Ve+P+pr/r/u7/3/1Rf+P9bZfj/W2X4/1Fc+P+zuPb/////////////////////////////////////////////////////////////////////////////////////////////////ycz3/1Re+P9bZfj/W2X4/1Re9/+psPn/vMD3/1Rf+P9bZfj/W2X4/1lj+P9hbPT////+//////////////////////////////////////////////////////////////////////////////////////////7/g4v2/1pk+P9bZfj/W2X4/1Re9/+qsfr/vsL4/1Re+P9bZfj/W2X4/1tl+P9TXfj/u8D2///////////////////////////////////////////////////////////////////////////////////////Z2/r/YGj3/1tl+P9bZfj/W2X4/1Re+P+ts/n/w8f3/1Ne+P9bZfj/W2X4/1tl+P9bZfj/bnb1//Hy/P////////////////////////////////////////////////////////////////////////////////+FjfX/V2H4/1tl+P9bZfj/W2X4/1Ne+P+zuPn/ycz0/1Jd+P9bZfj/W2X4/1tl+P9bZfj/WGL3/6Gn9f/39/z/////////////////9fb9//P0/P/5+f3/+fr9//P0/f/z9fz//////////////////P39/7/D9/9PWff/W2X4/1tl+P9bZfj/W2X4/1Nd+P+9wvn/0tPu/1Fb+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Rg9/9vd/b/n6X3/83R+f/x8vv/kZj1/2dw9v9wefb/cHn2/2Zw9v94gfT/+fn8/9fZ+v+mrPj/dX72/1Zg9/9bZvj/W2X4/1tl+P9bZfj/W2X4/1Fb+P/P0/r/4eDk/0xX9/9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9XYvj/UVz4/1Vf9v9ibPf/WmT4/1hi+P9WYfj/VmH4/1hi+P9VX/j/Zm/3/1hi9/9RXPf/VmD4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Jc9v/n6v3/4N3X/15o9P9aZPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9YY/j/WmX4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WGL4/1pk+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/2Vv9v/z9f//pZ6k/6mu9v9SXPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/4mR9//Gwc//Rjc4//Lz/f9lbvX/WGL4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9ZY/j/VF/3/9nc+v9fUFz/NSMc/4J7g//W2vr/Y232/1Fb+P9WYPj/WWP4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9aZPj/WGL4/1Jc+P9ZY/b/v8T6/62lrf84JyL/NSMc/zcmIP+If4b/5Ob3/6Cm+P9zfPf/XWj3/1Zh9/9UXvf/Ul33/1Jd9/9SXff/Ulz3/1Jc9/9SXPf/Ulz3/1Jc9/9SXPf/Ulz3/1Jd+P9TXff/U173/1Zg9/9dZ/f/bHb3/5mg+f/d4fr/q6Kr/zooJf81Ixz/NSMc/zUjHP81Ixz/U0VH/6afpP/NzNT/29zz/9TX+v/Hy/n/v8T6/7q/+f+4vfn/trv3/7a79/+2u/f/trr3/7a89/+4vPj/uLz4/7q++v+/w/r/x8r5/9LW+//d3/b/1tTh/6ylrf9fUFn/NiQe/zUjHP81Ixz/"; private const string PayPalPixels = "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t7v4/4mR9/9UXvj/WWP4/1tl+P9bZfj/Xmj//1Vh6/8zRp7/JDp+/yU7f/8lO4D/Jjl+/yY3fP8mN3z/Jjd8/yY3fP8mNXv/JzJ4/yY4ff8fZ6f/Fp/b/xOg1v8xhuT/Yl/8/1xk+P9bZvj/UVz4/3R79/+cn/b/trv4/4mR9/9UXvj/WWP4/1tl+P9bZfj/XGb9/1lk9v82SaX/JDp+/yU7f/8lO4D/JTuA/yU8gf8lPIH/JTyB/yU8gf8lPIH/JTuA/yY2e/8lP4P/GX+6/xSn4v9Aeun/Y1/7/1tl+P9cZvj/UVz4/3N79/+bn/X/t7v5/4qR+P9UXvj/WWP3/1tl+P9bZfj/W2X5/2Bp/v85S6z/JTp+/yU7f/8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yU6f/8lNnv/IFyd/yyX7/9YaPf/XmL5/1tl+P9cZvj/UVz4/3N79/+bn/X/ub35/4qS+P9UXvj/WWT3/1tm+P9bZfj/WmT3/2Vt//89TbD/JTp+/yU7f/8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7f/8jN3r/LEiZ/1Fv9P9iY///WmX3/1tl+P9cZvj/UVz4/3N79/+boPb/ub34/4uS9/9UX/j/WWT4/1tl+P9bZfj/WmT2/2Zt//9BUbv/JjyC/yQ7fv8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yQ7f/8hOHj/MkOc/2Bj/P9fZ/7/W2X4/1tl+P9cZvj/UVz5/3N89/+bofb/ur/5/46U9/9UX/j/WGL4/1tl+P9bZfj/WmT2/2Ns//9KWM7/KT6J/yM6ff8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yQ6f/8iOHr/N0em/2Rr//9bZvj/W2X4/1tl+P9bZvj/UFz5/3R89/+eo/T/u7/1/5GX9v9XYfn/V2H4/1tl+P9bZfj/W2X3/2Fq//9SXuL/LEGP/yI6ff8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JjuC/yM5ff8lO4H/SFbM/2Fq//9bZff/W2X4/1tl+P9bZfj/T1r4/3R89/+gpPT/tbjk/5OZ7/9bZPr/VmD4/1tl+P9bZfj/W2X4/15n/f9bZPj/LkOW/yI6e/8lO3//JTuA/yU7gP8lO4D/JTuA/yU7gP8kOn//IDd1/x82df87TbL/XGb5/1xm+/9bZfj/W2X4/1tl+P9bZfj/UFz5/3Z88/+hpO3/qKfF/5aZ4v9hbP3/VV/4/1xl+P9bZfj/W2X4/1tl+P9ja///LkOT/xo0av8eNW//HjVw/x41cP8eNXD/HjVw/x41cP8fNXP/Jz2F/z9PuP9YZPP/XWf+/1tl+P9bZfj/W2X4/1tl+P9YY/j/VV/6/4CF6/+npt7/nJel/52d1P9oc///U134/1xm+P9bZfj/W2X4/1tl+P9faf//SFbO/z1Ntv8/Trf/P063/z9Ot/8/Trf/P063/z9Ot/9EUsP/T13g/1pk9/9dZ/z/W2X4/1tl+P9bZfj/W2X4/11n+P9SXPf/V2L9/5eZ4f+yq8b/g3l9/6SgvP97g///TVj4/1tl+P9cZvj/W2X4/1tl+P9bZfn/XGb3/1pk9v9aZPb/WmT2/1pk9v9aZPb/WmT2/1pk9v9cZfn/XWb8/11m/P9bZfj/W2X4/1tl+P9bZfj/W2X4/1xm+P9NV/f/cHr//7Cv1f+lmqT/Sjs7/46Fgf+3u/L/Xmr8/0tW9/9cZfj/XWb4/1tl+P9bZfj/XWf6/11n+v9dZ/r/XWf6/11n+v9dZ/r/XWf6/11n+v9dZvr/XGX5/1tl+P9bZfj/W2X4/1tl+P9cZvj/XGb4/05Z9/9XY/v/rrX8/56Vm/9dTlT/NiUf/0ExLf+moaP/xcn7/3V+/P9LWPf/S1f4/1Fa+P9SXfj/U134/1Rf+P9VX/j/VWD4/1Zg+P9WYPj/VWD4/1Zg+P9VX/j/VF/4/1Re+P9TXvj/U134/1Ba+P9NV/j/Slb2/2Vy+P+6wP//v7fB/1FBQf85JyL/NSMc/zMhGv8/Lir/g3l8/9PR4//Jzv7/oaj7/4yT+v9+hvj/eID4/3R89/9xevf/b3j2/2549v9uePb/b3j2/2949v9wevb/cXr3/3R8+P94gPn/fYb4/4qR+/+epPr/xcr//9nb7/+VjJb/RDM0/zMiGv81Ixz/NSMc/zUjHP81Ixz/NyUd/0c3Nf9pXWD/jIaM/6qnsP/BvMf/yMXQ/8vK1P/PzNn/0c7b/9PQ3P/Tz9z/08/c/9DO2//Mydf/y8rX/8vK1v/Jx9P/wLvH/62psv+Uipb/bmFr/0o5O/84JiD/NSMc/zUjHP81Ixz/"; public static Sprite Discord { get { if (!((Object)(object)s_discord != (Object)null)) { return s_discord = Load("Discord", "NSMc/zUjHP81Ixz/XE5V/7Ots//X1uT/2Nv5/8rO+/+6v/n/srf4/6yy9/+rsPj/qq/4/6mv+P+pr/j/qa/4/6mv+P+qr/j/qrD4/6yx9/+wtvf/ub75/8fL+//Y2vr/3t3u/7+3wf9xYXH/OCYh/zUjHP81Ixz/NSMc/zgmIv+Xjpf/4OL6/5Wc+v9rdPf/WWT3/1Ne9/9TXff/UVz3/1Fb9/9RW/f/UVv4/1Fc+P9RXPj/UVz4/1Fc+P9RXPj/UVz4/1Fb9/9RXPf/Ulz3/1Re9/9YY/f/ZG33/42V+P/V2vr/wLi//z0rK/81Ixz/NSMc/5CIlP/P0/v/XWj2/1Jc+P9XYfj/WmT4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WWP4/1Ne+P9VXvf/srj4/7uyu/86JyX/SzxB//Dx/v9gavb/WWP4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9aZPj/U173/9LW+/9mVmT/qqOr/6Ko9v9SXPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/4WN+P/Qy9n/4NzX/1xm9f9aZPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WGL4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9XYfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/2Js9v/z9f//397l/0xX9/9bZfj/W2X4/1tl+P9bZfj/WmT4/1Re+P9TXvf/Zm/2/1dh+P9cZvj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Vf+P9rdPX/VF/3/1Ne+P9aZPj/W2X4/1tl+P9bZfj/W2X4/1Jc9v/m6v3/0dLs/1Fc+P9bZfj/W2X4/1tl+P9WYPj/Vl/3/4CI9v/Bxfn/9/j8/5GY9f9VX/j/WGL4/1Vf+P9TXvj/U174/1Rf+P9XYvj/WGL4/32G9f/4+fz/y875/5CW9v9YYvb/VF74/1tl+P9bZfj/W2X4/1Fb+P/N0vr/ycz0/1Nd+P9bZfj/W2X4/1Zg+P9ze/X/zND4//z8/f///////////9/h+P9MWPX/Zm/2/3yE9/+Ij/f/iI/3/36H9v9rdPb/WGP2/7m+9////////////////v/X2vr/hIz2/1Nd9/9bZfj/W2X4/1Nd+P+8wvn/wsb4/1Ne+P9bZfj/W2X4/4yU9v/29vz/////////////////zND2/6mu9f/U1/r/8PL9//7//f/////////+/////v/19vz/2dz6/66z9v+2u/X////////////////////9/6yx9v9TXvf/W2X4/1Ne+P+yuPn/vsL3/1Re+P9bZfj/W2X4/7S4+P//////////////////////+vr9//7+///////////////////////////////////////////////////29/3//////////////////////+rr/P9QW/X/W2X4/1Re+P+ts/n/vMD3/1Rf+P9bZfj/W2X4/7e8+P///////////////////////////////v/2+Pz//v7+//////////////////////////7/9/f8//39/v///////////////////////////+zt/f9TXfb/W2X4/1Re+P+qsfn/u7/2/1Rf+P9bZfj/W2X4/7O3+P/////////////////////////9/56j9v9ocfb/kpj1/////v///////////////v+qr/b/aXP2/4mQ9v/9/f3//////////////////////+nq/f9QW/b/W2X4/1Ve9/+psPr/ur/2/1Rf+P9bZfj/W2X4/6ar9///////////////////////zND5/1Zg+P9XYfj/SVX3/8nL9////////////9rd+/9bZff/V2L4/0pV9/+4vfb//////////////////////9fZ+v9QWvf/W2X4/1Ve+P+or/r/u7/3/1Rf+P9bZfj/W2X4/5KZ9//+/v7/////////////////vsP5/1hi+P9bZfj/T1r4/7K39f///////////9DS+v9bZff/W2T4/1Fb+P+gpvT//////////////////////7a69v9SXfj/W2X4/1Ve+P+pr/r/u7/3/1Rf+P9bZfj/W2X4/3mB9//29v7/////////////////9Pb8/3Z+9P9SXPb/Z3H0//b3+/////////////n5/f+Civb/Ul32/2Bq9P/u7/v//////////////////////4WM9f9WYfj/W2X4/1Ve+P+pr/r/ur/2/1Rf+P9bZfj/W2X4/1lk9v/q6/v///////////////////////T1+//O0fn/8PH7///////////////////////4+f3/z9L5/+vt+//////////////////////////9/1Re9v9bZfj/W2X4/1Ve+P+pr/r/u7/3/1Rf+P9bZfj/W2X4/1Fc+P+zuPb/////////////////////////////////////////////////////////////////////////////////////////////////ycz3/1Re+P9bZfj/W2X4/1Re9/+psPn/vMD3/1Rf+P9bZfj/W2X4/1lj+P9hbPT////+//////////////////////////////////////////////////////////////////////////////////////////7/g4v2/1pk+P9bZfj/W2X4/1Re9/+qsfr/vsL4/1Re+P9bZfj/W2X4/1tl+P9TXfj/u8D2///////////////////////////////////////////////////////////////////////////////////////Z2/r/YGj3/1tl+P9bZfj/W2X4/1Re+P+ts/n/w8f3/1Ne+P9bZfj/W2X4/1tl+P9bZfj/bnb1//Hy/P////////////////////////////////////////////////////////////////////////////////+FjfX/V2H4/1tl+P9bZfj/W2X4/1Ne+P+zuPn/ycz0/1Jd+P9bZfj/W2X4/1tl+P9bZfj/WGL3/6Gn9f/39/z/////////////////9fb9//P0/P/5+f3/+fr9//P0/f/z9fz//////////////////P39/7/D9/9PWff/W2X4/1tl+P9bZfj/W2X4/1Nd+P+9wvn/0tPu/1Fb+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Rg9/9vd/b/n6X3/83R+f/x8vv/kZj1/2dw9v9wefb/cHn2/2Zw9v94gfT/+fn8/9fZ+v+mrPj/dX72/1Zg9/9bZvj/W2X4/1tl+P9bZfj/W2X4/1Fb+P/P0/r/4eDk/0xX9/9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9XYvj/UVz4/1Vf9v9ibPf/WmT4/1hi+P9WYfj/VmH4/1hi+P9VX/j/Zm/3/1hi9/9RXPf/VmD4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1Jc9v/n6v3/4N3X/15o9P9aZPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9YY/j/WmX4/1tl+P9bZfj/W2X4/1tl+P9bZfj/WGL4/1pk+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/2Vv9v/z9f//pZ6k/6mu9v9SXPj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/4mR9//Gwc//Rjc4//Lz/f9lbvX/WGL4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9ZY/j/VF/3/9nc+v9fUFz/NSMc/4J7g//W2vr/Y232/1Fb+P9WYPj/WWP4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9bZfj/W2X4/1tl+P9aZPj/WGL4/1Jc+P9ZY/b/v8T6/62lrf84JyL/NSMc/zcmIP+If4b/5Ob3/6Cm+P9zfPf/XWj3/1Zh9/9UXvf/Ul33/1Jd9/9SXff/Ulz3/1Jc9/9SXPf/Ulz3/1Jc9/9SXPf/Ulz3/1Jd+P9TXff/U173/1Zg9/9dZ/f/bHb3/5mg+f/d4fr/q6Kr/zooJf81Ixz/NSMc/zUjHP81Ixz/U0VH/6afpP/NzNT/29zz/9TX+v/Hy/n/v8T6/7q/+f+4vfn/trv3/7a79/+2u/f/trr3/7a89/+4vPj/uLz4/7q++v+/w/r/x8r5/9LW+//d3/b/1tTh/6ylrf9fUFn/NiQe/zUjHP81Ixz/"); } return s_discord; } } public static Sprite PayPal { get { if (!((Object)(object)s_payPal != (Object)null)) { return s_payPal = Load("PayPal", "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t7v4/4mR9/9UXvj/WWP4/1tl+P9bZfj/Xmj//1Vh6/8zRp7/JDp+/yU7f/8lO4D/Jjl+/yY3fP8mN3z/Jjd8/yY3fP8mNXv/JzJ4/yY4ff8fZ6f/Fp/b/xOg1v8xhuT/Yl/8/1xk+P9bZvj/UVz4/3R79/+cn/b/trv4/4mR9/9UXvj/WWP4/1tl+P9bZfj/XGb9/1lk9v82SaX/JDp+/yU7f/8lO4D/JTuA/yU8gf8lPIH/JTyB/yU8gf8lPIH/JTuA/yY2e/8lP4P/GX+6/xSn4v9Aeun/Y1/7/1tl+P9cZvj/UVz4/3N79/+bn/X/t7v5/4qR+P9UXvj/WWP3/1tl+P9bZfj/W2X5/2Bp/v85S6z/JTp+/yU7f/8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yU6f/8lNnv/IFyd/yyX7/9YaPf/XmL5/1tl+P9cZvj/UVz4/3N79/+bn/X/ub35/4qS+P9UXvj/WWT3/1tm+P9bZfj/WmT3/2Vt//89TbD/JTp+/yU7f/8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7f/8jN3r/LEiZ/1Fv9P9iY///WmX3/1tl+P9cZvj/UVz4/3N79/+boPb/ub34/4uS9/9UX/j/WWT4/1tl+P9bZfj/WmT2/2Zt//9BUbv/JjyC/yQ7fv8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yQ7f/8hOHj/MkOc/2Bj/P9fZ/7/W2X4/1tl+P9cZvj/UVz5/3N89/+bofb/ur/5/46U9/9UX/j/WGL4/1tl+P9bZfj/WmT2/2Ns//9KWM7/KT6J/yM6ff8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JTuA/yQ6f/8iOHr/N0em/2Rr//9bZvj/W2X4/1tl+P9bZvj/UFz5/3R89/+eo/T/u7/1/5GX9v9XYfn/V2H4/1tl+P9bZfj/W2X3/2Fq//9SXuL/LEGP/yI6ff8lO4D/JTuA/yU7gP8lO4D/JTuA/yU7gP8lO4D/JjuC/yM5ff8lO4H/SFbM/2Fq//9bZff/W2X4/1tl+P9bZfj/T1r4/3R89/+gpPT/tbjk/5OZ7/9bZPr/VmD4/1tl+P9bZfj/W2X4/15n/f9bZPj/LkOW/yI6e/8lO3//JTuA/yU7gP8lO4D/JTuA/yU7gP8kOn//IDd1/x82df87TbL/XGb5/1xm+/9bZfj/W2X4/1tl+P9bZfj/UFz5/3Z88/+hpO3/qKfF/5aZ4v9hbP3/VV/4/1xl+P9bZfj/W2X4/1tl+P9ja///LkOT/xo0av8eNW//HjVw/x41cP8eNXD/HjVw/x41cP8fNXP/Jz2F/z9PuP9YZPP/XWf+/1tl+P9bZfj/W2X4/1tl+P9YY/j/VV/6/4CF6/+npt7/nJel/52d1P9oc///U134/1xm+P9bZfj/W2X4/1tl+P9faf//SFbO/z1Ntv8/Trf/P063/z9Ot/8/Trf/P063/z9Ot/9EUsP/T13g/1pk9/9dZ/z/W2X4/1tl+P9bZfj/W2X4/11n+P9SXPf/V2L9/5eZ4f+yq8b/g3l9/6SgvP97g///TVj4/1tl+P9cZvj/W2X4/1tl+P9bZfn/XGb3/1pk9v9aZPb/WmT2/1pk9v9aZPb/WmT2/1pk9v9cZfn/XWb8/11m/P9bZfj/W2X4/1tl+P9bZfj/W2X4/1xm+P9NV/f/cHr//7Cv1f+lmqT/Sjs7/46Fgf+3u/L/Xmr8/0tW9/9cZfj/XWb4/1tl+P9bZfj/XWf6/11n+v9dZ/r/XWf6/11n+v9dZ/r/XWf6/11n+v9dZvr/XGX5/1tl+P9bZfj/W2X4/1tl+P9cZvj/XGb4/05Z9/9XY/v/rrX8/56Vm/9dTlT/NiUf/0ExLf+moaP/xcn7/3V+/P9LWPf/S1f4/1Fa+P9SXfj/U134/1Rf+P9VX/j/VWD4/1Zg+P9WYPj/VWD4/1Zg+P9VX/j/VF/4/1Re+P9TXvj/U134/1Ba+P9NV/j/Slb2/2Vy+P+6wP//v7fB/1FBQf85JyL/NSMc/zMhGv8/Lir/g3l8/9PR4//Jzv7/oaj7/4yT+v9+hvj/eID4/3R89/9xevf/b3j2/2549v9uePb/b3j2/2949v9wevb/cXr3/3R8+P94gPn/fYb4/4qR+/+epPr/xcr//9nb7/+VjJb/RDM0/zMiGv81Ixz/NSMc/zUjHP81Ixz/NyUd/0c3Nf9pXWD/jIaM/6qnsP/BvMf/yMXQ/8vK1P/PzNn/0c7b/9PQ3P/Tz9z/08/c/9DO2//Mydf/y8rX/8vK1v/Jx9P/wLvH/62psv+Uipb/bmFr/0o5O/84JiD/NSMc/zUjHP81Ixz/"); } return s_payPal; } } private static Sprite Load(string name, string pixels) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown Texture2D val = new Texture2D(30, 30, (TextureFormat)4, false) { name = "MagicMike " + name }; val.LoadRawTextureData(Convert.FromBase64String(pixels)); val.Apply(); return Sprite.Create(val, new Rect(0f, 0f, 30f, 30f), new Vector2(0.5f, 0.5f)); } } internal static class ModSettings { internal const int Version = 34; internal const string GuidPrefix = "MagicMike."; private const string HostKey = "MagicMike.ModSettings.Host"; private const string VersionKey = "MagicMike.ModSettings.Version"; private static readonly string s_id = typeof(ModSettings).Assembly.GetName().Name; private static bool s_initialised; private static ConfigEntry<float> s_panelX; private static ConfigEntry<float> s_panelY; internal static ConfigFile Config { get; private set; } internal static ConfigEntry<KeyboardShortcut> ToggleKey { get; private set; } internal static ConfigEntry<float> ScrollSpeed { get; private set; } internal static Vector2 PanelPosition { get { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) if (s_panelX == null) { return Vector2.zero; } return new Vector2(s_panelX.Value, s_panelY.Value); } set { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (s_panelX != null) { s_panelX.Value = value.x; s_panelY.Value = value.y; } } } internal static bool IsHost => AppDomain.CurrentDomain.GetData("MagicMike.ModSettings.Host") as string == s_id; public static void Init(BaseUnityPlugin plugin) { if (!s_initialised) { s_initialised = true; AppDomain currentDomain = AppDomain.CurrentDomain; if (!(currentDomain.GetData("MagicMike.ModSettings.Version") is int num) || 34 > num) { currentDomain.SetData("MagicMike.ModSettings.Version", 34); currentDomain.SetData("MagicMike.ModSettings.Host", s_id); } ((Component)plugin).gameObject.AddComponent<ModSettingsDriver>(); } } internal static void StartHost() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Expected O, but got Unknown Config = new ConfigFile(Path.Combine(Paths.ConfigPath, "MagicMike.ModSettings.cfg"), true); ToggleKey = Config.Bind<KeyboardShortcut>("General", "Toggle Key", new KeyboardShortcut((KeyCode)288, Array.Empty<KeyCode>()), "The key that opens and closes the Mod Settings panel."); ScrollSpeed = Config.Bind<float>("General", "Scroll Speed", 3f, new ConfigDescription("How many setting rows the list moves for each notch of the mouse wheel.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>())); s_panelX = Config.Bind<float>("General", "Panel Position X", 0f, new ConfigDescription("Where the panel was last dragged to, across from the centre of the screen.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes { Browsable = false } })); s_panelY = Config.Bind<float>("General", "Panel Position Y", 0f, new ConfigDescription("Where the panel was last dragged to, up from the centre of the screen.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes { Browsable = false } })); Harmony val = new Harmony("MagicMike.ModSettings"); val.Patch((MethodBase)AccessTools.Method(typeof(Menu), "Update", (Type[])null, (Type[])null), new HarmonyMethod(typeof(ModSettings), "MenuUpdatePrefix", (Type[])null), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); val.Patch((MethodBase)AccessTools.Method(typeof(ZInput), "GetMouseScrollWheel", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(typeof(ModSettings), "MouseScrollPostfix", (Type[])null), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } private static bool MenuUpdatePrefix() { return !SettingsPanel.IsOpen; } private static void MouseScrollPostfix(ref float __result) { if (SettingsPanel.IsOpen) { __result = 0f; } } } internal sealed class ModSettingsDriver : MonoBehaviour { private SettingsPanel m_panel; private void Start() { if (!ModSettings.IsHost) { Object.Destroy((Object)(object)this); } else { ModSettings.StartHost(); } } private void Update() { //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) if (ModSettings.ToggleKey == null) { return; } KeyboardShortcut value = ModSettings.ToggleKey.Value; if (!((KeyboardShortcut)(ref value)).IsDown() || IsTyping() || ((Object)(object)m_panel != (Object)null && m_panel.IsCapturingKey)) { return; } if ((Object)(object)m_panel == (Object)null) { if (GUIManager.IsHeadless() || (Object)(object)GUIManager.CustomGUIFront == (Object)null) { return; } m_panel = SettingsPanel.Create(); } m_panel.Toggle(); } private static bool IsTyping() { if (SettingsPanel.IsOpen) { return false; } if (!Console.IsVisible() && !TextInput.IsVisible() && (!((Object)(object)Chat.instance != (Object)null) || !Chat.instance.HasFocus())) { return TextBoxFocused(); } return true; } private static bool TextBoxFocused() { GameObject val = (((Object)(object)EventSystem.current != (Object)null) ? EventSystem.current.currentSelectedGameObject : null); if ((Object)(object)val == (Object)null) { return false; } TMP_InputField component = val.GetComponent<TMP_InputField>(); if ((Object)(object)component != (Object)null && component.isFocused) { return true; } InputField component2 = val.GetComponent<InputField>(); if ((Object)(object)component2 != (Object)null) { return component2.isFocused; } return false; } } internal sealed class SettingRow { public const float RowHeight = 40f; private const float ResetSize = 28f; private const float NumberWidth = 76f; public readonly SettingInfo Setting; public readonly GameObject Root; private readonly SettingsPanel m_panel; private readonly Image m_background; private readonly TMP_Text m_label; private readonly Button m_reset; private Toggle m_toggle; private Slider m_slider; private TMP_InputField m_input; private TMP_Dropdown m_dropdown; private Button m_keyButton; private TMP_Text m_keyLabel; private object[] m_choices; private Color m_stripe = Theme.RowEven; private bool m_hovered; private bool m_refreshing; private ConfigEntryBase Entry => Setting.Entry; public bool IsDefault => object.Equals(Entry.BoxedValue, Entry.DefaultValue); public SettingRow(SettingsPanel panel, Transform parent, SettingInfo setting) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Expected O, but got Unknown m_panel = panel; Setting = setting; Root = Widgets.Row(parent, 40f); m_background = Root.AddComponent<Image>(); ((Graphic)m_background).color = m_stripe; HoverRelay hoverRelay = Root.AddComponent<HoverRelay>(); hoverRelay.OnEnter = delegate { SetHovered(hovered: true); }; hoverRelay.OnExit = delegate { SetHovered(hovered: false); }; m_label = Widgets.Label(Root.transform, "", 20f, Theme.Text, (TextAlignmentOptions)4097); m_label.enableAutoSizing = true; m_label.fontSizeMin = 14f; m_label.fontSizeMax = 20f; Widgets.Place(((Component)m_label).gameObject, new Vector2(0f, 0f), new Vector2(0.42f, 1f), new Vector2(12f, 2f), new Vector2(-8f, -2f)); GameObject val = Widgets.Child(Root.transform, "Control"); Widgets.Place(val, new Vector2(0.42f, 0f), new Vector2(1f, 1f), new Vector2(0f, 6f), new Vector2(-46f, -6f)); BuildControl(val.transform); m_reset = Widgets.IconButton<ResetIcon>(Root.transform, 3f); Widgets.Place(((Component)m_reset).gameObject, new Vector2(1f, 0.5f), new Vector2(1f, 0.5f), new Vector2(-36f, -14f), new Vector2(-8f, 14f)); ((UnityEvent)m_reset.onClick).AddListener((UnityAction)delegate { SetValue(Entry.DefaultValue); }); Refresh(); } public bool Matches(string search) { if (!string.IsNullOrEmpty(search) && !Contains(Setting.Name, search) && !Contains(Setting.Section, search)) { return Contains(Setting.Description, search); } return true; } public void SetStripe(bool odd) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) m_stripe = (odd ? Theme.RowOdd : Theme.RowEven); ((Graphic)m_background).color = (m_hovered ? Theme.RowHover : m_stripe); } private void SetHovered(bool hovered) { //IL_0018: 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) m_hovered = hovered; ((Graphic)m_background).color = (hovered ? Theme.RowHover : m_stripe); m_panel.ShowDescription(hovered ? this : null); } public void Refresh() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) bool isReadOnly = Setting.IsReadOnly; string text = (Setting.Synced ? (" <size=70%><color=" + Theme.Tag(Theme.Muted) + ">" + (isReadOnly ? "server, locked" : "server") + "</color></size>") : ""); m_label.text = Setting.Name + text; ((Graphic)m_label).color = (isReadOnly ? Theme.Muted : Theme.Text); ((Selectable)m_reset).interactable = !isReadOnly && !IsDefault; ((Component)m_reset).gameObject.SetActive(!IsDefault); m_refreshing = true; try { object value = Entry.BoxedValue; if ((Object)(object)m_toggle != (Object)null) { Toggle toggle = m_toggle; bool flag = default(bool); int num; if (value is bool) { flag = (bool)value; num = 1; } else { num = 0; } toggle.SetIsOnWithoutNotify((byte)((uint)num & (flag ? 1u : 0u)) != 0); ((Selectable)m_toggle).interactable = !isReadOnly; } if ((Object)(object)m_slider != (Object)null) { m_slider.SetValueWithoutNotify(Convert.ToSingle(value, CultureInfo.InvariantCulture)); ((Selectable)m_slider).interactable = !isReadOnly; } if ((Object)(object)m_dropdown != (Object)null) { m_dropdown.SetValueWithoutNotify(Math.Max(0, Array.FindIndex(m_choices, (object c) => object.Equals(c, value)))); ((Selectable)m_dropdown).interactable = !isReadOnly; } if ((Object)(object)m_input != (Object)null && !m_input.isFocused) { m_input.SetTextWithoutNotify(Format(value)); ((Selectable)m_input).interactable = !isReadOnly; } if ((Object)(object)m_keyButton != (Object)null) { m_keyLabel.text = (m_panel.IsCapturing(this) ? ("<color=" + Theme.Tag(Theme.AccentBright) + ">Press a key...</color>") : Format(value)); ((Selectable)m_keyButton).interactable = !isReadOnly; } } finally { m_refreshing = false; } } private void BuildControl(Transform parent) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unkno