using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using Mirror; using TMPro; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ClassLibrary1")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ClassLibrary1")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("41d4debe-2d40-4287-8f4d-5f2dfc5b782e")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace CaseOpeningMod { [BepInPlugin("com.Syd4r.caseopening", "Case Opening", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class CaseOpeningPlugin : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Case Opening Assembly loaded by BepInEx! Waiting for Base Loader..."); } } } namespace MoreGamesBase { public class CaseOpening : GameBase { public enum Rarity { Blue, Purple, Pink, Red, Gold } public enum Wear { FactoryNew, MinimalWear, FieldTested, WellWorn, BattleScarred } [CompilerGenerated] private sealed class d__50 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Rarity rarity; public int itemIndex; public Wear wear; public bool isStatTrak; public int pattern; public float delay; public CaseOpening <>4__this; private float 5__1; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__50(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; case 1: <>1__state = -1; 5__1 = <>4__this.CalculateFinalMultiplier(rarity, itemIndex, wear, isStatTrak, pattern); if (5__1 > 0f) { ((GameBase)<>4__this).Payout((double)5__1, (ChangeType)1, (Dictionary)null, -1L); } <>2__current = (object)new WaitForSeconds(0.7f); <>1__state = 2; return true; case 2: <>1__state = -1; ((GameBase)<>4__this).ResetGame(); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__55 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Rarity rarity; public int itemIndex; public Wear wear; public bool isStatTrak; public int pattern; public CaseOpening <>4__this; private Vector3 5__1; private GameObject 5__2; private GameObject 5__3; private SpriteRenderer 5__4; private Vector3 5__5; private Vector3 5__6; private Vector3 5__7; private Vector3 5__8; private float 5__9; private float 5__10; private float 5__11; private float 5__12; private string 5__13; private float 5__14; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__55(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { 5__2 = null; 5__3 = null; 5__4 = null; 5__13 = null; <>1__state = -2; } private bool MoveNext() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(<>4__this.spinDuration + 0.5f); <>1__state = 1; return true; case 1: <>1__state = -1; if ((Object)(object)<>4__this.activeCenterLine != (Object)null) { Object.Destroy((Object)(object)<>4__this.activeCenterLine); <>4__this.activeCenterLine = null; } if ((Object)(object)<>4__this.winningItemInstance == (Object)null) { return false; } <>4__this.isRevealing = true; <>4__this.skipReveal = false; 5__1 = <>4__this.winningItemInstance.transform.position; if ((Object)(object)<>4__this.stripContainer != (Object)null) { ((Component)<>4__this.stripContainer).gameObject.SetActive(false); } 5__2 = <>4__this.GetPrefabRef(rarity, itemIndex, isSpinningView: false); 5__3 = Object.Instantiate(5__2); if (<>4__this.instanceLayer != -1) { <>4__this.SetLayerRecursively(5__3, <>4__this.instanceLayer); } 5__3.transform.SetParent(<>4__this.backgroundParent, true); 5__3.transform.position = 5__1; 5__3.transform.localRotation = Quaternion.identity; <>4__this.activeRewards.Add(5__3); 5__4 = 5__3.GetComponentInChildren(); if ((Object)(object)5__4 != (Object)null) { ((Renderer)5__4).sortingOrder = 50; } 5__5 = 5__3.transform.localPosition; 5__6 = new Vector3(0.2f, 0f, 1.5f); 5__7 = 5__3.transform.localScale; 5__8 = 5__7 * 1.7f; if (rarity == Rarity.Gold) { 5__8 = 5__7 * 2.3f; } 5__9 = 0f; 5__10 = 0.4f; goto IL_0370; case 2: <>1__state = -1; goto IL_0370; case 3: <>1__state = -1; goto IL_0491; case 4: <>1__state = -1; goto IL_0541; case 5: <>1__state = -1; goto IL_05e3; case 6: { <>1__state = -1; break; } IL_0370: if (5__9 < 5__10 && !<>4__this.skipReveal) { 5__9 += Time.deltaTime; 5__14 = Mathf.SmoothStep(0f, 1f, 5__9 / 5__10); 5__3.transform.localPosition = Vector3.Lerp(5__5, 5__6, 5__14); 5__3.transform.localScale = Vector3.Lerp(5__7, 5__8, 5__14); <>2__current = null; <>1__state = 2; return true; } 5__3.transform.localPosition = 5__6; 5__3.transform.localScale = 5__8; 5__11 = <>4__this.CalculateFinalMultiplier(rarity, itemIndex, wear, isStatTrak, pattern); 5__12 = 0.2f; if ((Object)(object)<>4__this.revealTextBase != (Object)null) { ((TMP_Text)<>4__this.revealTextBase).text = "Rarity Multiplier: " + <>4__this.GetBaseMultString(rarity); ((Component)<>4__this.revealTextBase).gameObject.SetActive(true); } if (!<>4__this.skipReveal) { <>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForSkip(5__12)); <>1__state = 3; return true; } goto IL_0491; IL_0541: if ((Object)(object)<>4__this.revealTextWear != (Object)null) { ((TMP_Text)<>4__this.revealTextWear).text = "Wear: " + <>4__this.GetWearString(wear); ((Component)<>4__this.revealTextWear).gameObject.SetActive(true); } if (!<>4__this.skipReveal) { <>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForSkip(5__12)); <>1__state = 5; return true; } goto IL_05e3; IL_0491: if ((Object)(object)<>4__this.revealTextStatTrak != (Object)null) { if (isStatTrak) { ((TMP_Text)<>4__this.revealTextStatTrak).text = "StatTrak™"; } else { ((TMP_Text)<>4__this.revealTextStatTrak).text = "No StatTrak"; } ((Component)<>4__this.revealTextStatTrak).gameObject.SetActive(true); } if (!<>4__this.skipReveal) { <>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForSkip(5__12)); <>1__state = 4; return true; } goto IL_0541; IL_05e3: if ((Object)(object)<>4__this.revealTextPattern != (Object)null) { if (rarity == Rarity.Pink && itemIndex == 0 && (pattern == 661 || pattern == 151 || pattern == 955 || pattern == 321 || pattern == 387)) { ((TMP_Text)<>4__this.revealTextPattern).text = $"Pattern: {pattern} (BLUE GEM!)"; } else { ((TMP_Text)<>4__this.revealTextPattern).text = $"Pattern: {pattern}"; } ((Component)<>4__this.revealTextPattern).gameObject.SetActive(true); } if (!<>4__this.skipReveal) { <>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.WaitForSkip(5__12)); <>1__state = 6; return true; } break; } if (5__11 >= 10f) { 5__13 = "" + 5__11.ToString("0.##") + "x"; } else if (5__11 >= 1f) { 5__13 = "" + 5__11.ToString("0.##") + "x"; } else { 5__13 = "" + 5__11.ToString("0.##") + "x"; } if ((Object)(object)<>4__this.revealTextTotal != (Object)null) { ((TMP_Text)<>4__this.revealTextTotal).text = "TOTAL WIN: " + 5__13; ((Component)<>4__this.revealTextTotal).gameObject.SetActive(true); } <>4__this.isRevealing = false; return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__56 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public float duration; public CaseOpening <>4__this; private float 5__1; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__56(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: <>1__state = -1; 5__1 = 0f; break; case 1: <>1__state = -1; break; } if (5__1 < duration) { if (<>4__this.skipReveal) { return false; } 5__1 += Time.deltaTime; <>2__current = null; <>1__state = 1; return true; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [Header("Scene References")] public Camera externalCamera; public Transform backgroundParent; public GameObject itemPrefab; public GameObject centerLinePrefab; public GameObject openCase; [Header("Text Reveals")] public TextMeshPro revealTextBase; public TextMeshPro revealTextStatTrak; public TextMeshPro revealTextWear; public TextMeshPro revealTextPattern; public TextMeshPro revealTextTotal; [Header("Item Pools")] public GameObject[] blueItems; public GameObject[] purpleItems; public GameObject[] pinkItems; public GameObject[] redItems; public GameObject goldIcon; public GameObject[] goldItems; private readonly float spinDuration = 6f; private readonly float itemSpacing = 0.41f; private readonly int itemsInStrip = 40; private readonly int winningSlotIndex = 35; private readonly Color colBlue = new Color(0.29f, 0.41f, 1f); private readonly Color colPurple = new Color(0.53f, 0.28f, 1f); private readonly Color colPink = new Color(0.83f, 0.17f, 0.9f); private readonly Color colRed = new Color(0.92f, 0.29f, 0.29f); private readonly Color colGold = new Color(0.89f, 0.68f, 0.22f); private List activeRewards = new List(); private Transform stripContainer; private GameObject winningItemInstance; private GameObject activeCenterLine; private bool isSpinning = false; private bool isRevealing = false; private bool skipReveal = false; private float spinTimer = 0f; private float startX = 0f; private float targetX = 0f; private static int nextAvailableLayer = 31; private int instanceLayer = -1; private void Start() { IsolateCameraAndAssets(); HideRevealText(); ApplyTextGlow(revealTextBase); ApplyTextGlow(revealTextStatTrak); ApplyTextGlow(revealTextWear); ApplyTextGlow(revealTextPattern); ApplyTextGlow(revealTextTotal); } private void IsolateCameraAndAssets() { instanceLayer = nextAvailableLayer; nextAvailableLayer--; if (nextAvailableLayer < 15) { nextAvailableLayer = 31; } if ((Object)(object)externalCamera != (Object)null) { externalCamera.cullingMask = 1 << instanceLayer; } if ((Object)(object)backgroundParent != (Object)null) { SetLayerRecursively(((Component)backgroundParent).gameObject, instanceLayer); } if ((Object)(object)openCase != (Object)null) { SetLayerRecursively(openCase, instanceLayer); } if ((Object)(object)revealTextBase != (Object)null) { SetLayerRecursively(((Component)revealTextBase).gameObject, instanceLayer); } if ((Object)(object)revealTextStatTrak != (Object)null) { SetLayerRecursively(((Component)revealTextStatTrak).gameObject, instanceLayer); } if ((Object)(object)revealTextWear != (Object)null) { SetLayerRecursively(((Component)revealTextWear).gameObject, instanceLayer); } if ((Object)(object)revealTextPattern != (Object)null) { SetLayerRecursively(((Component)revealTextPattern).gameObject, instanceLayer); } if ((Object)(object)revealTextTotal != (Object)null) { SetLayerRecursively(((Component)revealTextTotal).gameObject, instanceLayer); } } private void SetLayerRecursively(GameObject obj, int layer) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown if ((Object)(object)obj == (Object)null) { return; } obj.layer = layer; foreach (Transform item in obj.transform) { Transform val = item; SetLayerRecursively(((Component)val).gameObject, layer); } } private void ApplyTextGlow(TextMeshPro tmp) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)tmp == (Object)null)) { ((TMP_Text)tmp).fontMaterial = new Material(((TMP_Text)tmp).fontSharedMaterial); ((TMP_Text)tmp).fontMaterial.EnableKeyword("OUTLINE_ON"); ((TMP_Text)tmp).fontMaterial.SetColor(ShaderUtilities.ID_OutlineColor, Color.white); ((TMP_Text)tmp).fontMaterial.SetFloat(ShaderUtilities.ID_OutlineWidth, 0.15f); } } public override bool Weaved() { return true; } public void BroadcastSpinSequence(string text) { if (NetworkServer.active) { string text2 = "System.Void MoreGamesBase.CaseOpening::UserRpcSpinSequence(System.String)"; int stableHashCode = Extensions.GetStableHashCode(text2); NetworkWriterPooled val = NetworkWriterPool.Get(); NetworkWriterExtensions.WriteString((NetworkWriter)(object)val, text); ((NetworkBehaviour)this).SendRPCInternal(text2, stableHashCode, (NetworkWriter)(object)val, 0, true); NetworkWriterPool.Return(val); } } public void BroadcastClearStrip(string text) { if (NetworkServer.active) { string text2 = "System.Void MoreGamesBase.CaseOpening::UserRpcClearStrip(System.String)"; int stableHashCode = Extensions.GetStableHashCode(text2); NetworkWriterPooled val = NetworkWriterPool.Get(); NetworkWriterExtensions.WriteString((NetworkWriter)(object)val, text); ((NetworkBehaviour)this).SendRPCInternal(text2, stableHashCode, (NetworkWriter)(object)val, 0, true); NetworkWriterPool.Return(val); } } protected override void StartGame() { if (isRevealing) { skipReveal = true; return; } ((GameBase)this).StartGame(); if (((NetworkBehaviour)this).isServer) { BroadcastClearStrip("clear"); Rarity randomRarity = GetRandomRarity(); int randomIndexForRarity = GetRandomIndexForRarity(randomRarity); Wear randomWear = GetRandomWear(randomRarity); bool flag = Random.value <= 0.1f; int num = Random.Range(1, 1001); float num2 = itemSpacing / 2f * 0.8f; float num3 = Random.Range(0f - num2, num2); int num4 = Random.Range(1, int.MaxValue); string text = string.Format(CultureInfo.InvariantCulture, "{0},{1},{2},{3},{4},{5:F3},{6}", (int)randomRarity, randomIndexForRarity, (int)randomWear, flag ? 1 : 0, num, num3, num4); BroadcastSpinSequence(text); float delay = spinDuration; ((MonoBehaviour)this).StartCoroutine(ServerResolveSpin(randomRarity, randomIndexForRarity, randomWear, flag, num, delay)); } } private Rarity GetRandomRarity() { float num = Random.Range(0f, 100f); if (num <= 1f) { return Rarity.Gold; } if (num <= 4f) { return Rarity.Red; } if (num <= 12f) { return Rarity.Pink; } if (num <= 35f) { return Rarity.Purple; } return Rarity.Blue; } private int GetRandomIndexForRarity(Rarity rarity) { return rarity switch { Rarity.Blue => Random.Range(0, blueItems.Length), Rarity.Purple => Random.Range(0, purpleItems.Length), Rarity.Pink => Random.Range(0, pinkItems.Length), Rarity.Red => Random.Range(0, redItems.Length), Rarity.Gold => Random.Range(0, goldItems.Length), _ => 0, }; } private Wear GetRandomWear(Rarity rarity) { float num = Random.Range(0f, 1f); if (num < 0.05f) { return Wear.FactoryNew; } if (num < 0.15f) { return Wear.MinimalWear; } if (num < 0.4f) { return Wear.FieldTested; } if (num < 0.7f) { return Wear.WellWorn; } return Wear.BattleScarred; } [IteratorStateMachine(typeof(d__50))] private IEnumerator ServerResolveSpin(Rarity rarity, int itemIndex, Wear wear, bool isStatTrak, int pattern, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__50(0) { <>4__this = this, rarity = rarity, itemIndex = itemIndex, wear = wear, isStatTrak = isStatTrak, pattern = pattern, delay = delay }; } private float CalculateFinalMultiplier(Rarity rarity, int itemIndex, Wear wear, bool isStatTrak, int pattern) { float num = 0f; if (rarity == Rarity.Blue) { num = 0.1f; } if (rarity == Rarity.Purple) { num = 0.5f; } if (rarity == Rarity.Pink) { num = 2f; } if (rarity == Rarity.Red) { num = 8f; } if (rarity == Rarity.Gold) { float[] array = new float[10] { 23f, 15f, 15f, 17f, 35f, 12f, 12f, 10f, 4f, 12f }; num = ((itemIndex < 0 || itemIndex >= array.Length) ? 50f : array[itemIndex]); } if (wear == Wear.FactoryNew) { num *= 2f; } if (wear == Wear.MinimalWear) { num *= 1.5f; } if (wear == Wear.FieldTested) { num *= 1f; } if (wear == Wear.WellWorn) { num *= 0.8f; } if (wear == Wear.BattleScarred) { num *= 0.5f; } if (isStatTrak) { num *= 1.5f; } if (rarity == Rarity.Pink && itemIndex == 0 && (pattern == 661 || pattern == 151 || pattern == 955 || pattern == 321 || pattern == 387)) { num *= 50f; } return num; } public void UserRpcClearStrip(string networkText) { if (!NetworkClient.active) { return; } if ((Object)(object)openCase != (Object)null && openCase.activeSelf) { openCase.SetActive(false); } if ((Object)(object)activeCenterLine != (Object)null) { Object.Destroy((Object)(object)activeCenterLine); activeCenterLine = null; } foreach (GameObject activeReward in activeRewards) { if ((Object)(object)activeReward != (Object)null) { Object.Destroy((Object)(object)activeReward); } } activeRewards.Clear(); winningItemInstance = null; if ((Object)(object)stripContainer != (Object)null) { Object.Destroy((Object)(object)((Component)stripContainer).gameObject); stripContainer = null; } HideRevealText(); isSpinning = false; isRevealing = false; skipReveal = false; } public void UserRpcSpinSequence(string networkText) { //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { return; } string[] array = networkText.Split(new char[1] { ',' }); if (array.Length != 7) { return; } Rarity rarity = (Rarity)int.Parse(array[0]); int num = int.Parse(array[1]); Wear wear = (Wear)int.Parse(array[2]); bool isStatTrak = int.Parse(array[3]) == 1; int pattern = int.Parse(array[4]); float num2 = float.Parse(array[5], CultureInfo.InvariantCulture); int seed = int.Parse(array[6]); GenerateVisualStrip(rarity, num, seed); if ((Object)(object)centerLinePrefab != (Object)null) { activeCenterLine = Object.Instantiate(centerLinePrefab, backgroundParent, false); activeCenterLine.transform.localPosition = new Vector3(0f, 0f, 3f); activeCenterLine.transform.localScale = new Vector3(0.004f, 0.37f, 1f); if (instanceLayer != -1) { SetLayerRecursively(activeCenterLine, instanceLayer); } } startX = 0f; targetX = 0f - (float)winningSlotIndex * itemSpacing + num2; spinTimer = 0f; isSpinning = true; isRevealing = false; skipReveal = false; ((MonoBehaviour)this).StartCoroutine(WaitAndReveal(rarity, num, wear, isStatTrak, pattern)); } private void GenerateVisualStrip(Rarity winRarity, int winIndex, int seed) { //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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_006a: 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_031f: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_0120: 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) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) State state = Random.state; Random.InitState(seed); GameObject val = new GameObject("StripContainer"); if (instanceLayer != -1) { val.layer = instanceLayer; } stripContainer = val.transform; stripContainer.SetParent(backgroundParent, false); stripContainer.localPosition = new Vector3(0f, 0f, 0.6f); stripContainer.localScale = Vector3.one; for (int i = -15; i < itemsInStrip; i++) { Rarity rarity = winRarity; int index = winIndex; if (i != winningSlotIndex) { rarity = GetRandomRarity(); index = GetRandomIndexForRarity(rarity); } GameObject val2 = new GameObject($"Slot_{i}"); if (instanceLayer != -1) { val2.layer = instanceLayer; } val2.transform.SetParent(stripContainer, false); val2.transform.localPosition = new Vector3((float)i * itemSpacing, 0f, 0f); val2.transform.localScale = Vector3.one; if (i == winningSlotIndex) { winningItemInstance = val2; } GameObject val3 = Object.Instantiate(itemPrefab); val3.transform.SetParent(val2.transform, false); val3.transform.localPosition = new Vector3(0f, -0.17f, 0.1f); val3.transform.localScale = new Vector3(0.38f, 0.022f, 1f); if (instanceLayer != -1) { SetLayerRecursively(val3, instanceLayer); } Transform val4 = val3.transform.Find("itemBar"); if ((Object)(object)val4 != (Object)null) { SpriteRenderer component = ((Component)val4).GetComponent(); if ((Object)(object)component != (Object)null) { component.color = GetColorForRarity(rarity); ((Renderer)component).sortingOrder = 2; } } GameObject prefabRef = GetPrefabRef(rarity, index, isSpinningView: true); if ((Object)(object)prefabRef != (Object)null) { GameObject val5 = Object.Instantiate(prefabRef); val5.transform.SetParent(val2.transform, false); val5.transform.localPosition = new Vector3(0f, 0f, 0.2f); val5.transform.localScale = new Vector3(0.06f, 0.08f, 1f); if (instanceLayer != -1) { SetLayerRecursively(val5, instanceLayer); } SpriteRenderer val6 = val5.GetComponent(); if ((Object)(object)val6 == (Object)null) { val6 = val5.GetComponentInChildren(); } if ((Object)(object)val6 != (Object)null) { ((Renderer)val6).sortingOrder = 5; } } } Random.state = state; } [IteratorStateMachine(typeof(d__55))] private IEnumerator WaitAndReveal(Rarity rarity, int itemIndex, Wear wear, bool isStatTrak, int pattern) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__55(0) { <>4__this = this, rarity = rarity, itemIndex = itemIndex, wear = wear, isStatTrak = isStatTrak, pattern = pattern }; } [IteratorStateMachine(typeof(d__56))] private IEnumerator WaitForSkip(float duration) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__56(0) { <>4__this = this, duration = duration }; } private string GetWearString(Wear w) { return w switch { Wear.FactoryNew => "FN", Wear.MinimalWear => "MW", Wear.FieldTested => "FT", Wear.WellWorn => "WW", Wear.BattleScarred => "BS", _ => "", }; } private GameObject GetPrefabRef(Rarity r, int index, bool isSpinningView) { return (GameObject)(r switch { Rarity.Gold => isSpinningView ? goldIcon : goldItems[index], Rarity.Blue => blueItems[index], Rarity.Purple => purpleItems[index], Rarity.Pink => pinkItems[index], Rarity.Red => redItems[index], _ => null, }); } private Color GetColorForRarity(Rarity r) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) return (Color)(r switch { Rarity.Blue => colBlue, Rarity.Purple => colPurple, Rarity.Pink => colPink, Rarity.Red => colRed, Rarity.Gold => colGold, _ => Color.white, }); } private void Update() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) if (isRevealing) { skipReveal = true; } if (isSpinning && !((Object)(object)stripContainer == (Object)null)) { spinTimer += Time.deltaTime; float num = Mathf.Clamp01(spinTimer / spinDuration); if (num >= 1f) { isSpinning = false; } float num2 = 1f - Mathf.Pow(1f - num, 3f); float num3 = Mathf.Lerp(startX, targetX, num2); stripContainer.localPosition = new Vector3(num3, stripContainer.localPosition.y, stripContainer.localPosition.z); } } private string GetBaseMultString(Rarity r) { return r switch { Rarity.Blue => "0.1x", Rarity.Purple => "0.5x", Rarity.Pink => "2.0x", Rarity.Red => "8.0x", Rarity.Gold => "Variable", _ => "0x", }; } private void HideRevealText() { if (Object.op_Implicit((Object)(object)revealTextBase)) { ((Component)revealTextBase).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)revealTextStatTrak)) { ((Component)revealTextStatTrak).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)revealTextWear)) { ((Component)revealTextWear).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)revealTextPattern)) { ((Component)revealTextPattern).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)revealTextTotal)) { ((Component)revealTextTotal).gameObject.SetActive(false); } } } }