using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using Cpp2IlInjected; using Photon.Pun; using RecNet; using RecRoom.Async; using RecRoom.Core; using RecRoom.Networking.RPC; using UnityEngine; namespace RecRoom { // Token: 0x02001D12 RID: 7442 [Token(Token = "0x2001D12")] [StructLayout(3)] public class RoomKeysManager : NetworkedSingletonMonoBehaviour { // Token: 0x17001F2F RID: 7983 // (get) Token: 0x0600C7F5 RID: 51189 RVA: 0x002F71BC File Offset: 0x002F53BC // (set) Token: 0x0600C7F6 RID: 51190 RVA: 0x002F71D0 File Offset: 0x002F53D0 [Token(Token = "0x17001F2F")] public bool IHKKNEAPFPB { [Token(Token = "0x600C7F5")] [Address(RVA = "0x6374D0", Offset = "0x635ED0", VA = "0x1806374D0")] get; [Token(Token = "0x600C7F6")] [Address(RVA = "0x6374E0", Offset = "0x635EE0", VA = "0x1806374E0")] private set; } // Token: 0x0600C7F7 RID: 51191 RVA: 0x002F71E4 File Offset: 0x002F53E4 [Token(Token = "0x600C7F7")] [Address(RVA = "0x10E3450", Offset = "0x10E1E50", VA = "0x1810E3450", Slot = "13")] protected override void Awake() { base.Awake(); MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml = new MLDJDPHKGBO.BCGOBNMHOML(); Action action = new Action(this.EAINGDGGDHM); MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml2 = bcgobnmhoml.PFLGCFLPNIP(action); JAPOCJCDIJN.PLNPFMNHAFG plnpfmnhafg = new JAPOCJCDIJN.PLNPFMNHAFG(this.OINMNMDPKON); MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml3 = bcgobnmhoml.BAPEJOFOPCL(MJAPEGGDLJA.RUN_MIGRATIONS, plnpfmnhafg); IDisposable disposable = MLDJDPHKGBO.ENNCEBJFFMB(this, bcgobnmhoml); this.KOPFBBKDNBA = disposable; ActionEvent dfghnkccaaj = IOIBJBLIBKM.DFGHNKCCAAJ; Action action2 = new Action(this.CNCBIKOICGJ); IOIBJBLIBKM.DFGHNKCCAAJ = dfghnkccaaj + action2; ActionEvent ohcgedebjcl = IOIBJBLIBKM.OHCGEDEBJCL; Action action3 = new Action(this.NGCHDCFFFAP); IOIBJBLIBKM.OHCGEDEBJCL = ohcgedebjcl + action3; } // Token: 0x0600C7F8 RID: 51192 RVA: 0x002F7288 File Offset: 0x002F5488 [Token(Token = "0x600C7F8")] [Address(RVA = "0x10E5320", Offset = "0x10E3D20", VA = "0x1810E5320", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); if (this.KOPFBBKDNBA != 0) { } ActionEvent dfghnkccaaj = IOIBJBLIBKM.DFGHNKCCAAJ; Action action = new Action(this.CNCBIKOICGJ); IOIBJBLIBKM.DFGHNKCCAAJ = dfghnkccaaj - action; ActionEvent ohcgedebjcl = IOIBJBLIBKM.OHCGEDEBJCL; Action action2 = new Action(this.NGCHDCFFFAP); IOIBJBLIBKM.OHCGEDEBJCL = ohcgedebjcl - action2; this.OnRoomKeyUpdated.Clear(); this.OnLocalPlayerPurchasedRoomKey.Clear(); } // Token: 0x0600C7F9 RID: 51193 RVA: 0x002F7300 File Offset: 0x002F5500 [Token(Token = "0x600C7F9")] [Address(RVA = "0x10E3D90", Offset = "0x10E2790", VA = "0x1810E3D90")] public IPromise DownloadPurchasedKeys() { IPromise> promise = IOIBJBLIBKM.IGFLECMACBE(); Action> action = new Action(this.KKGNFEPMEAF); throw new NullReferenceException(); } // Token: 0x0600C7FA RID: 51194 RVA: 0x002F7328 File Offset: 0x002F5528 [Token(Token = "0x600C7FA")] [Address(RVA = "0x10E3810", Offset = "0x10E2210", VA = "0x1810E3810")] public bool DoesCurrentRoomContainAnyKeys() { long k__BackingField = Matchmaking.HMCJLLMDAAM.k__BackingField; long roomId = k__BackingField; Dictionary.ValueCollection values = this.HENAEPPNPGM.Values; Func func = delegate(AMAGKLLBGEC k) { long roomId2 = roomId; return k.k__BackingField == roomId2; }; return Enumerable.Any(values, func); } // Token: 0x0600C7FB RID: 51195 RVA: 0x002F7378 File Offset: 0x002F5578 [Token(Token = "0x600C7FB")] [Address(RVA = "0x10E3740", Offset = "0x10E2140", VA = "0x1810E3740")] public MLDJDPHKGBO.BCGOBNMHOML CreateDeserializationHandler() { MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml = new MLDJDPHKGBO.BCGOBNMHOML(); Action action = new Action(this.EAINGDGGDHM); MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml2 = bcgobnmhoml.PFLGCFLPNIP(action); JAPOCJCDIJN.PLNPFMNHAFG plnpfmnhafg = new JAPOCJCDIJN.PLNPFMNHAFG(this.OINMNMDPKON); MLDJDPHKGBO.BCGOBNMHOML bcgobnmhoml3 = bcgobnmhoml.BAPEJOFOPCL(MJAPEGGDLJA.RUN_MIGRATIONS, plnpfmnhafg); return bcgobnmhoml; } // Token: 0x0600C7FC RID: 51196 RVA: 0x002F73C0 File Offset: 0x002F55C0 [Token(Token = "0x600C7FC")] [Address(RVA = "0x10E3E40", Offset = "0x10E2840", VA = "0x1810E3E40")] private void EAINGDGGDHM() { this.k__BackingField = false; IPromise> promise = IOIBJBLIBKM.LBEMCBAPENK(); Action> action = new Action(this.EIKGJPOAEAO); Action> action2 = new Action(this.LIMPIICGHKM); throw new NullReferenceException(); } // Token: 0x0600C7FD RID: 51197 RVA: 0x002F73FC File Offset: 0x002F55FC [Token(Token = "0x600C7FD")] [Address(RVA = "0x10E5130", Offset = "0x10E3B30", VA = "0x1810E5130")] private Task OINMNMDPKON(MJAPEGGDLJA MFPEMJDIIFA, COINPCHOMPP EJLFEKAPAJH, DBFIJENOPDA DIABHBGBFNK, CancellationToken NDAAKGFBPKE) { } // Token: 0x0600C7FE RID: 51198 RVA: 0x002F740C File Offset: 0x002F560C [Token(Token = "0x600C7FE")] [Address(RVA = "0x10E3660", Offset = "0x10E2060", VA = "0x1810E3660")] private void CNCBIKOICGJ(AMAGKLLBGEC AAHIIDDIBFD) { PhotonView photonView = base.photonView; RPCActions.RPCAction rpcaction = new RPCActions.RPCAction(this.RpcUpdateRoomKey); Guid k__BackingField = AAHIIDDIBFD.k__BackingField; long k__BackingField = AAHIIDDIBFD.k__BackingField; int k__BackingField = AAHIIDDIBFD.k__BackingField; string k__BackingField = AAHIIDDIBFD.k__BackingField; string k__BackingField = AAHIIDDIBFD.k__BackingField; long k__BackingField = AAHIIDDIBFD.k__BackingField; photonView.RpcAll(rpcaction, k__BackingField, k__BackingField, k__BackingField, k__BackingField, k__BackingField, k__BackingField); } // Token: 0x0600C7FF RID: 51199 RVA: 0x002F7474 File Offset: 0x002F5674 [Token(Token = "0x600C7FF")] [Address(RVA = "0x10E4DA0", Offset = "0x10E37A0", VA = "0x1810E4DA0")] private void NGCHDCFFFAP(long BGICHOOBKLD) { PhotonView photonView = base.photonView; RPCActions.RPCAction rpcaction = new RPCActions.RPCAction(this.RpcDeleteRoomKey); photonView.RpcAll(rpcaction, BGICHOOBKLD); } // Token: 0x0600C800 RID: 51200 RVA: 0x002F74A4 File Offset: 0x002F56A4 [Token(Token = "0x600C800")] [Address(RVA = "0x10E52A0", Offset = "0x10E3CA0", VA = "0x1810E52A0")] private void OOGNNHJDBBD(AMAGKLLBGEC AAHIIDDIBFD) { Dictionary henaeppnpgm = this.HENAEPPNPGM; long k__BackingField = AAHIIDDIBFD.k__BackingField; henaeppnpgm[k__BackingField] = AAHIIDDIBFD; ActionEvent onRoomKeyUpdated = this.OnRoomKeyUpdated; if (onRoomKeyUpdated != 0) { onRoomKeyUpdated.Invoke(AAHIIDDIBFD); } } // Token: 0x0600C801 RID: 51201 RVA: 0x002F74E0 File Offset: 0x002F56E0 [Token(Token = "0x600C801")] [Address(RVA = "0x10E5230", Offset = "0x10E3C30", VA = "0x1810E5230")] private void OKAFIHFHIGN(long BGICHOOBKLD) { bool flag = this.HENAEPPNPGM.Remove(BGICHOOBKLD); ActionEvent onRoomKeyDeleted = this.OnRoomKeyDeleted; if (onRoomKeyDeleted != 0) { onRoomKeyDeleted.Invoke(BGICHOOBKLD); } } // Token: 0x0600C802 RID: 51202 RVA: 0x002F7514 File Offset: 0x002F5714 [Token(Token = "0x600C802")] [Address(RVA = "0x10E5D10", Offset = "0x10E4710", VA = "0x1810E5D10")] public void StorePlayerOwnedRoomKeyInCache(int CJFGEMGOJHB, long BGICHOOBKLD) { Dictionary> kbblooncdkg = this.KBBLOONCDKG; bool flag; if (!flag) { Dictionary> kbblooncdkg2 = this.KBBLOONCDKG; kbblooncdkg2[CJFGEMGOJHB] = new List { BGICHOOBKLD }; return; } bool flag2; while (flag2) { } throw new NullReferenceException(); } // Token: 0x0600C803 RID: 51203 RVA: 0x002F7558 File Offset: 0x002F5758 [Token(Token = "0x600C803")] [Address(RVA = "0x10E4450", Offset = "0x10E2E50", VA = "0x1810E4450")] public AMAGKLLBGEC GetCachedRoomKeyById(long BGICHOOBKLD) { Dictionary henaeppnpgm = this.HENAEPPNPGM; throw new NullReferenceException(); } // Token: 0x0600C804 RID: 51204 RVA: 0x002F7574 File Offset: 0x002F5774 [Token(Token = "0x600C804")] [Address(RVA = "0x10E44C0", Offset = "0x10E2EC0", VA = "0x1810E44C0")] public AMAGKLLBGEC GetCachedRoomKeyByReplicationId(Guid JOILGLLFNLH) { Dictionary henaeppnpgm = this.HENAEPPNPGM; Func, bool> func = delegate(KeyValuePair kvp) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); }; IEnumerable> enumerable = Enumerable.Where>(henaeppnpgm, func); Func, AMAGKLLBGEC> <>9__25_ = RoomKeysManager.<>c.<>9__25_1; if (<>9__25_ == 0) { RoomKeysManager.<>c.<>9__25_1 = delegate(KeyValuePair kvp) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); }; } return Enumerable.FirstOrDefault(Enumerable.Select, AMAGKLLBGEC>(enumerable, <>9__25_)); } // Token: 0x0600C805 RID: 51205 RVA: 0x002F75D8 File Offset: 0x002F57D8 [Token(Token = "0x600C805")] [Address(RVA = "0x10E4630", Offset = "0x10E3030", VA = "0x1810E4630")] public IEnumerable GetCachedRoomKeysForCurrentRoom() { long k__BackingField = Matchmaking.HMCJLLMDAAM.k__BackingField; long roomId = k__BackingField; Dictionary.ValueCollection values = this.HENAEPPNPGM.Values; Func func = delegate(AMAGKLLBGEC k) { long roomId2 = roomId; return k.k__BackingField == roomId2; }; return Enumerable.Where(values, func); } // Token: 0x0600C806 RID: 51206 RVA: 0x002F7628 File Offset: 0x002F5828 [Token(Token = "0x600C806")] [Address(RVA = "0x10E4720", Offset = "0x10E3120", VA = "0x1810E4720")] public IPromise> GetRoomKeysForCurrentRoomForceRefresh() { IPromise> promise = IOIBJBLIBKM.LBEMCBAPENK(); Action> action = new Action(this.EIKGJPOAEAO); throw new NullReferenceException(); } // Token: 0x0600C807 RID: 51207 RVA: 0x002F7650 File Offset: 0x002F5850 [Token(Token = "0x600C807")] [Address(RVA = "0x10E3900", Offset = "0x10E2300", VA = "0x1810E3900")] public bool DoesLocalPlayerOwnKey(Guid JOILGLLFNLH) { AMAGKLLBGEC amagkllbgec; AMAGKLLBGEC roomKey = amagkllbgec; Dictionary> kbblooncdkg = this.KBBLOONCDKG; bool flag; if (flag && roomKey != (ulong)0L) { Func func = delegate(long id) { AMAGKLLBGEC roomKey2 = roomKey; return id == roomKey2.k__BackingField; }; bool flag2; return flag2; } throw new NullReferenceException(); } // Token: 0x0600C808 RID: 51208 RVA: 0x002F769C File Offset: 0x002F589C [Token(Token = "0x600C808")] [Address(RVA = "0x10E3A80", Offset = "0x10E2480", VA = "0x1810E3A80")] public IPromise DoesPlayerOwnKey(int CJFGEMGOJHB, Guid JOILGLLFNLH) { int num = 0; RoomKeysManager.OKGLMKJBKKL okglmkjbkkl = new RoomKeysManager.OKGLMKJBKKL(); okglmkjbkkl.<>4__this = this; okglmkjbkkl.playerId = CJFGEMGOJHB; AMAGKLLBGEC amagkllbgec; okglmkjbkkl.roomKey = amagkllbgec; if (amagkllbgec != 0) { Dictionary> kbblooncdkg = this.KBBLOONCDKG; int playerId = okglmkjbkkl.playerId; if (kbblooncdkg.TryGetValue(playerId, num)) { Func func = delegate(long id) { AMAGKLLBGEC roomKey2 = okglmkjbkkl.roomKey; return id == roomKey2.k__BackingField; }; if (Enumerable.Any(num, func)) { ulong num2; return Promise.FromResult(num2 != 0UL); } } int playerId2 = okglmkjbkkl.playerId; AMAGKLLBGEC roomKey = okglmkjbkkl.roomKey; IPromise promise = IOIBJBLIBKM.LAPDFFOJCNP(playerId2, roomKey); Action action = delegate(bool ownsKey) { if (ownsKey) { AMAGKLLBGEC roomKey3 = okglmkjbkkl.roomKey; RoomKeysManager <>4__this = okglmkjbkkl.<>4__this; int playerId3 = okglmkjbkkl.playerId; long k__BackingField = roomKey3.k__BackingField; <>4__this.StorePlayerOwnedRoomKeyInCache(playerId3, k__BackingField); return; } }; if (num < okglmkjbkkl) { num += num; if (num == okglmkjbkkl) { goto IL_B6; } num++; } if (RoomKeysManager.<>c.<>9__29_2 == 0) { RoomKeysManager.<>c.<>9__29_2 = delegate(string error) { NotificationManager instance = SingletonMonoBehaviour.Instance; int num4 = 0; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Medium, "Unknown error occurred", 5f, num4, num4); }; } IL_B6: uint num3; num3 += num3; } throw new NullReferenceException(); } // Token: 0x0600C809 RID: 51209 RVA: 0x002F776C File Offset: 0x002F596C [Token(Token = "0x600C809")] [Address(RVA = "0x10E5490", Offset = "0x10E3E90", VA = "0x1810E5490")] public IPromise PromptToBuyRoomKey(Guid JOILGLLFNLH, string EPBPGKCGDPE) { AMAGKLLBGEC amagkllbgec; AMAGKLLBGEC key = amagkllbgec; if (amagkllbgec != 0) { WatchUI local = WatchUI.BFPPPLIJIGC; int num = 0; if (!(local == num)) { AMAGKLLBGEC key8 = key; int num2 = 0; int num3 = 0; this.MPEEBPMKFIK((CFLMJLFBOKH.CDMBDLBLIMH)num3, key8, num2); long num4; string text = string.Format("Current balance: {0} {1:n0}", "\ue002", num4); string balanceText = text; PPENFJMFPNE ppenfjmfpne = Matchmaking.HMCJLLMDAAM; LMLJHMJEIGM lmljhmjeigm = ppenfjmfpne.MMBJPGGOFHL; bool isOwner = ppenfjmfpne != null; string empty = string.Empty; string ownerText = empty; int k__BackingField = key.k__BackingField; string text2 = string.Format("{0}{1:n0}", "\ue002", k__BackingField); string priceText = text2; WatchUI local2 = WatchUI.BFPPPLIJIGC; string k__BackingField = key.k__BackingField; string text3 = "Unlock " + k__BackingField; string[] array = new string[12]; if ("Unlock this " != 0) { } array[0] = "Unlock this "; if (EPBPGKCGDPE != 0) { } array[1] = EPBPGKCGDPE; if (" for you to use in this room for " != 0) { } array[2] = " for you to use in this room for "; string priceText3 = priceText; if (priceText3 != 0) { } array[3] = priceText3; if (". It will remain unlocked in later sessions\n\n" != 0) { } array[4] = ". It will remain unlocked in later sessions\n\n"; string balanceText2 = balanceText; if (balanceText2 != 0) { } array[5] = balanceText2; if ("\n\n" != 0) { } array[6] = "\n\n"; string k__BackingField2 = key.k__BackingField; if (k__BackingField2 != 0) { } array[7] = k__BackingField2; if ("\n" != 0) { } array[8] = "\n"; string k__BackingField = key.k__BackingField; if (k__BackingField != 0) { } array[9] = k__BackingField; if ("\n\n" != 0) { } array[10] = "\n\n"; string ownerText2 = ownerText; if (ownerText2 != 0) { } array[11] = ownerText2; string text4 = string.Concat(array); string priceText2 = priceText; Func> func = delegate(JPIJGHNNIDP response1) { if (response1 != JPIJGHNNIDP.Affirmative) { return Promise.FromResult(false); } RoomKeysManager <>4__this = this; AMAGKLLBGEC key2 = key; int num5 = 0; int num6 = 0; <>4__this.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.BuyButton, key2, num6); AMAGKLLBGEC key3 = key; Action action; if (key3.k__BackingField == key3) { RoomKeysManager <>4__this2 = this; AMAGKLLBGEC key4 = key; int num7 = 0; <>4__this2.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.NotEnoughTokens, key4, num7); AMAGKLLBGEC key5 = key; int num8 = key5.k__BackingField; num8 -= <>4__this2; string text5 = string.Format("{0}{1:n0}", "\ue002", key5); WatchUI local3 = WatchUI.BFPPPLIJIGC; string[] array2 = new string[5]; if ("It looks like you need " != 0) { } array2[0] = "It looks like you need "; if (text5 != 0) { } array2[1] = text5; if (" to purchase " != 0) { } array2[2] = " to purchase "; string k__BackingField3 = key.k__BackingField; if (k__BackingField3 != 0) { } array2[3] = k__BackingField3; if (".\n\nWould you like to buy more tokens now?" != 0) { } array2[4] = ".\n\nWould you like to buy more tokens now?"; string text6 = string.Concat(array2); RoomKeysManager.<>c <>; if (RoomKeysManager.<>c.<>9__30_2 == 0) { <> = RoomKeysManager.<>c.<>9; action = delegate(JPIJGHNNIDP response2) { if (response2 == JPIJGHNNIDP.Affirmative) { Player.k__BackingField.playerUI.k__BackingField.ShowStoreScreenTokensTab("Keys_NotEnoughTokens"); return; } }; RoomKeysManager.<>c.<>9__30_2 = action; } int num9; if (num5 < <>) { num5 += num5; if (num5 == <>) { num9 += num9; goto IL_154; } num5++; } num9 = 0; return Promise.FromResult(num9 != 0); } IL_154: WatchUI local4 = WatchUI.BFPPPLIJIGC; string[] array3 = new string[5]; if ("Unlock " != 0) { } array3[0] = "Unlock "; if (" for " != 0) { } array3[2] = " for "; if ("?" != 0) { } array3[4] = "?"; if (string.Concat(array3) == 0) { Func> func2 = delegate(JPIJGHNNIDP response2) { if (response2 != JPIJGHNNIDP.Affirmative) { return Promise.FromResult(false); } RoomKeysManager <>4__this3 = action.<>4__this; AMAGKLLBGEC key6 = action.key; int num10 = 0; <>4__this3.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.ConfirmButton, key6, num10); RoomKeysManager <>4__this4 = action.<>4__this; long? initialBalance2 = action.initialBalance; AMAGKLLBGEC key7 = action.key; return <>4__this4.KGGMAGALNGF(key7, initialBalance2); }; } throw new NullReferenceException(); }; } } IPromise promise = Promise.FromResult(false); throw new NullReferenceException(); } // Token: 0x0600C80A RID: 51210 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600C80A")] [Address(RVA = "0x10E47D0", Offset = "0x10E31D0", VA = "0x1810E47D0")] private IPromise KGGMAGALNGF(AMAGKLLBGEC DNGKIAJLLHG, long? NOJEMBDACHN) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600C80B RID: 51211 RVA: 0x002F799C File Offset: 0x002F5B9C [Token(Token = "0x600C80B")] [Address(RVA = "0x10E40E0", Offset = "0x10E2AE0", VA = "0x1810E40E0")] private void FAGHNLBJHDI(AMAGKLLBGEC AAHIIDDIBFD, long? NOJEMBDACHN, GEAPBDGCKMB.RoomKeyPurchaseResponseDTO MAOOLFEBOOD) { int k__BackingField = (int)MAOOLFEBOOD.k__BackingField.k__BackingField; NotificationManager instance = SingletonMonoBehaviour.Instance; int num = 0; string text; IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Medium, text, 3f, num, num); PhotonView photonView = base.photonView; RPCActions.RPCAction rpcaction = new RPCActions.RPCAction(this.RpcMasterUpdatePlayerOwnedRoomKey); long k__BackingField = AAHIIDDIBFD.k__BackingField; int k__BackingField = BPHGKAEDBPE.k__BackingField; photonView.RpcMaster(rpcaction, k__BackingField, k__BackingField); this.OOGNNHJDBBD(AAHIIDDIBFD); long k__BackingField2 = AAHIIDDIBFD.k__BackingField; int k__BackingField2 = BPHGKAEDBPE.k__BackingField; this.StorePlayerOwnedRoomKeyInCache(k__BackingField2, k__BackingField2); ActionEvent onLocalPlayerPurchasedRoomKey = this.OnLocalPlayerPurchasedRoomKey; if (onLocalPlayerPurchasedRoomKey != 0) { long k__BackingField3 = AAHIIDDIBFD.k__BackingField; onLocalPlayerPurchasedRoomKey.Invoke(k__BackingField3); } LMLJHMJEIGM lmljhmjeigm = Matchmaking.HMCJLLMDAAM.MMBJPGGOFHL; int num2 = 0; this.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.PurchaseSuccessful, AAHIIDDIBFD, num2); RecRoomAudioClip recRoomAudioClip = this.successfulPurchaseSFX; int num3 = 0; SFXAudioSource sfxaudioSource = AudioManager.Play2DSFX(recRoomAudioClip, num3); } // Token: 0x0600C80C RID: 51212 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600C80C")] [Address(RVA = "0x10E4E40", Offset = "0x10E3840", VA = "0x1810E4E40")] private void OIFDPLPCJCJ(AMAGKLLBGEC AAHIIDDIBFD, string MOPOMPHBHKF, GEAPBDGCKMB.RoomKeyPurchaseResponseDTO MAOOLFEBOOD) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600C80D RID: 51213 RVA: 0x002F7A78 File Offset: 0x002F5C78 [Token(Token = "0x600C80D")] [Address(RVA = "0x10E4CF0", Offset = "0x10E36F0", VA = "0x1810E4CF0")] private void MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH BDCDDPOHKNA, AMAGKLLBGEC AAHIIDDIBFD, [Optional] string MOPOMPHBHKF) { LMLJHMJEIGM lmljhmjeigm = Matchmaking.HMCJLLMDAAM.MMBJPGGOFHL; } // Token: 0x0600C80E RID: 51214 RVA: 0x002F7A9C File Offset: 0x002F5C9C [Token(Token = "0x600C80E")] [Address(RVA = "0x10E5C40", Offset = "0x10E4640", VA = "0x1810E5C40")] [PunRPC] private void RpcMasterUpdatePlayerOwnedRoomKey(int CJFGEMGOJHB, long BGICHOOBKLD) { this.StorePlayerOwnedRoomKeyInCache(CJFGEMGOJHB, BGICHOOBKLD); } // Token: 0x0600C80F RID: 51215 RVA: 0x002F7AB4 File Offset: 0x002F5CB4 [Token(Token = "0x600C80F")] [Address(RVA = "0x10E5C50", Offset = "0x10E4650", VA = "0x1810E5C50")] [PunRPC] private void RpcUpdateRoomKey(long BGICHOOBKLD, Guid JOILGLLFNLH, long HNHLJONGKHB, string MMBOKOLAJFH, string LJIGOCDPEJF, int MACNIENMFHJ) { this.OOGNNHJDBBD(new AMAGKLLBGEC { k__BackingField = 0, k__BackingField = 0, k__BackingField = 0, k__BackingField = BGICHOOBKLD, k__BackingField = HNHLJONGKHB }); } // Token: 0x0600C810 RID: 51216 RVA: 0x002F7AF8 File Offset: 0x002F5CF8 [Token(Token = "0x600C810")] [Address(RVA = "0x10E5230", Offset = "0x10E3C30", VA = "0x1810E5230")] [PunRPC] private void RpcDeleteRoomKey(long BGICHOOBKLD) { bool flag = this.HENAEPPNPGM.Remove(BGICHOOBKLD); ActionEvent onRoomKeyDeleted = this.OnRoomKeyDeleted; if (onRoomKeyDeleted != 0) { onRoomKeyDeleted.Invoke(BGICHOOBKLD); } } // Token: 0x0600C811 RID: 51217 RVA: 0x002F7B2C File Offset: 0x002F5D2C [Token(Token = "0x600C811")] [Address(RVA = "0x10E5E60", Offset = "0x10E4860", VA = "0x1810E5E60")] public RoomKeysManager() { Dictionary dictionary = new Dictionary(); this.HENAEPPNPGM = dictionary; Dictionary> dictionary2 = new Dictionary(); this.KBBLOONCDKG = dictionary2; int num; ActionEvent actionEvent = new ActionEvent(4, num != 0); num = 0; this.OnRoomKeyUpdated = actionEvent; int num2; ActionEvent actionEvent2 = new ActionEvent(4, num2 != 0); num2 = 0; this.OnRoomKeyDeleted = actionEvent2; int num3; ActionEvent actionEvent3 = new ActionEvent(4, num3 != 0); num3 = 0; this.OnLocalPlayerPurchasedRoomKey = actionEvent3; base..ctor(); } // Token: 0x0600C812 RID: 51218 RVA: 0x002F7B94 File Offset: 0x002F5D94 [Token(Token = "0x600C812")] [Address(RVA = "0x10E49B0", Offset = "0x10E33B0", VA = "0x1810E49B0")] [CompilerGenerated] private void KKGNFEPMEAF(List IGHPPJDDIDP) { Dictionary> kbblooncdkg = this.KBBLOONCDKG; bool flag; if (!flag) { Dictionary> kbblooncdkg2 = this.KBBLOONCDKG; int k__BackingField = BPHGKAEDBPE.k__BackingField; Func <>9__14_ = RoomKeysManager.<>c.<>9__14_2; if (<>9__14_ == 0) { RoomKeysManager.<>c.<>9__14_2 = (AMAGKLLBGEC k) => k.k__BackingField; } List list = Enumerable.ToList(Enumerable.Select(IGHPPJDDIDP, <>9__14_)); kbblooncdkg2[k__BackingField] = list; return; } Func func; if (RoomKeysManager.<>c.<>9__14_1 == 0) { func = (AMAGKLLBGEC k) => k.k__BackingField; RoomKeysManager.<>c.<>9__14_1 = func; } IEnumerable enumerable = Enumerable.Select(IGHPPJDDIDP, func); IEnumerable enumerable2; List list2 = Enumerable.ToList(enumerable2); throw new NullReferenceException(); } // Token: 0x0600C813 RID: 51219 RVA: 0x002F7C30 File Offset: 0x002F5E30 [Token(Token = "0x600C813")] [Address(RVA = "0x10E4CE0", Offset = "0x10E36E0", VA = "0x1810E4CE0")] [CompilerGenerated] private void LIMPIICGHKM(List NILPPGBINOL) { this.k__BackingField = true; } // Token: 0x0600C814 RID: 51220 RVA: 0x002F7C44 File Offset: 0x002F5E44 [Token(Token = "0x600C814")] [Address(RVA = "0x10E3F50", Offset = "0x10E2950", VA = "0x1810E3F50")] [CompilerGenerated] private void EIKGJPOAEAO(List NILPPGBINOL) { int num; do { num = 0; List.Enumerator enumerator; if (enumerator != 0) { Dictionary henaeppnpgm = this.HENAEPPNPGM; if (this.OnRoomKeyUpdated == 0) { continue; } } if (num != -1) { } } while (num != 0); } // Token: 0x040084BF RID: 33983 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x40084BF")] [SerializeField] private RecRoomAudioClip successfulPurchaseSFX; // Token: 0x040084C0 RID: 33984 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x40084C0")] private Dictionary HENAEPPNPGM; // Token: 0x040084C1 RID: 33985 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x40084C1")] private Dictionary> KBBLOONCDKG; // Token: 0x040084C2 RID: 33986 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x40084C2")] public ActionEvent OnRoomKeyUpdated; // Token: 0x040084C3 RID: 33987 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x40084C3")] public ActionEvent OnRoomKeyDeleted; // Token: 0x040084C4 RID: 33988 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x40084C4")] public ActionEvent OnLocalPlayerPurchasedRoomKey; // Token: 0x040084C6 RID: 33990 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x40084C6")] private IDisposable KOPFBBKDNBA; // Token: 0x040084C7 RID: 33991 [Token(Token = "0x40084C7")] private static string HCIPCNLBLNB = "Unknown error occured. If this persists, please contact us at recroom.happyfox.com"; // Token: 0x02001D14 RID: 7444 [Token(Token = "0x2001D14")] [CompilerGenerated] private sealed class OKJEBNOLKGJ { // Token: 0x0600C81D RID: 51229 RVA: 0x002F7D5C File Offset: 0x002F5F5C [Token(Token = "0x600C81D")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public OKJEBNOLKGJ() { } // Token: 0x0600C81E RID: 51230 RVA: 0x002F7D70 File Offset: 0x002F5F70 [Token(Token = "0x600C81E")] [Address(RVA = "0x10D6640", Offset = "0x10D5040", VA = "0x1810D6640")] internal bool b__0(AMAGKLLBGEC k) { long num = this.roomId; return k.k__BackingField == num; } // Token: 0x040084CE RID: 33998 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084CE")] public long roomId; } // Token: 0x02001D16 RID: 7446 [Token(Token = "0x2001D16")] [CompilerGenerated] private sealed class HHJAAGEMDFM { // Token: 0x0600C821 RID: 51233 RVA: 0x002F7D94 File Offset: 0x002F5F94 [Token(Token = "0x600C821")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public HHJAAGEMDFM() { } // Token: 0x0600C822 RID: 51234 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600C822")] [Address(RVA = "0x10D65A0", Offset = "0x10D4FA0", VA = "0x1810D65A0")] internal bool b__0(KeyValuePair kvp) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x040084D6 RID: 34006 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084D6")] public Guid replicationId; } // Token: 0x02001D17 RID: 7447 [Token(Token = "0x2001D17")] [CompilerGenerated] private sealed class HLMEELBFEPI { // Token: 0x0600C823 RID: 51235 RVA: 0x002F7DA8 File Offset: 0x002F5FA8 [Token(Token = "0x600C823")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public HLMEELBFEPI() { } // Token: 0x0600C824 RID: 51236 RVA: 0x002F7DBC File Offset: 0x002F5FBC [Token(Token = "0x600C824")] [Address(RVA = "0x10D6640", Offset = "0x10D5040", VA = "0x1810D6640")] internal bool b__0(AMAGKLLBGEC k) { long num = this.roomId; return k.k__BackingField == num; } // Token: 0x040084D7 RID: 34007 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084D7")] public long roomId; } // Token: 0x02001D18 RID: 7448 [Token(Token = "0x2001D18")] [CompilerGenerated] private sealed class LNKFOABCHEK { // Token: 0x0600C825 RID: 51237 RVA: 0x002F7DE0 File Offset: 0x002F5FE0 [Token(Token = "0x600C825")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public LNKFOABCHEK() { } // Token: 0x0600C826 RID: 51238 RVA: 0x002F7DF4 File Offset: 0x002F5FF4 [Token(Token = "0x600C826")] [Address(RVA = "0x10D6660", Offset = "0x10D5060", VA = "0x1810D6660")] internal bool b__0(long id) { AMAGKLLBGEC amagkllbgec = this.roomKey; return id == amagkllbgec.k__BackingField; } // Token: 0x040084D8 RID: 34008 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084D8")] public AMAGKLLBGEC roomKey; } // Token: 0x02001D19 RID: 7449 [Token(Token = "0x2001D19")] [CompilerGenerated] private sealed class OKGLMKJBKKL { // Token: 0x0600C827 RID: 51239 RVA: 0x002F7E18 File Offset: 0x002F6018 [Token(Token = "0x600C827")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public OKGLMKJBKKL() { } // Token: 0x0600C828 RID: 51240 RVA: 0x002F7E2C File Offset: 0x002F602C [Token(Token = "0x600C828")] [Address(RVA = "0x10D6660", Offset = "0x10D5060", VA = "0x1810D6660")] internal bool b__0(long id) { AMAGKLLBGEC amagkllbgec = this.roomKey; return id == amagkllbgec.k__BackingField; } // Token: 0x0600C829 RID: 51241 RVA: 0x002F7E50 File Offset: 0x002F6050 [Token(Token = "0x600C829")] [Address(RVA = "0x10D7A80", Offset = "0x10D6480", VA = "0x1810D7A80")] internal void b__1(bool ownsKey) { if (ownsKey) { AMAGKLLBGEC amagkllbgec = this.roomKey; RoomKeysManager roomKeysManager = this.<>4__this; int num = this.playerId; long k__BackingField = amagkllbgec.k__BackingField; roomKeysManager.StorePlayerOwnedRoomKeyInCache(num, k__BackingField); return; } } // Token: 0x040084D9 RID: 34009 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084D9")] public AMAGKLLBGEC roomKey; // Token: 0x040084DA RID: 34010 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40084DA")] public RoomKeysManager <>4__this; // Token: 0x040084DB RID: 34011 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40084DB")] public int playerId; } // Token: 0x02001D1A RID: 7450 [Token(Token = "0x2001D1A")] [CompilerGenerated] private sealed class NLEDDHIGEGB { // Token: 0x0600C82A RID: 51242 RVA: 0x002F7E8C File Offset: 0x002F608C [Token(Token = "0x600C82A")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public NLEDDHIGEGB() { } // Token: 0x0600C82B RID: 51243 RVA: 0x002F7EA0 File Offset: 0x002F60A0 [Token(Token = "0x600C82B")] [Address(RVA = "0x10D6FC0", Offset = "0x10D59C0", VA = "0x1810D6FC0")] internal IPromise b__0(JPIJGHNNIDP response1) { if (response1 != JPIJGHNNIDP.Affirmative) { return Promise.FromResult(false); } RoomKeysManager roomKeysManager = this.<>4__this; AMAGKLLBGEC amagkllbgec = this.key; int num = 0; int num2 = 0; roomKeysManager.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.BuyButton, amagkllbgec, num2); AMAGKLLBGEC amagkllbgec2 = this.key; Action action; if (amagkllbgec2.k__BackingField == amagkllbgec2) { RoomKeysManager roomKeysManager2 = this.<>4__this; AMAGKLLBGEC amagkllbgec3 = this.key; int num3 = 0; roomKeysManager2.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.NotEnoughTokens, amagkllbgec3, num3); AMAGKLLBGEC amagkllbgec4 = this.key; int num4 = amagkllbgec4.k__BackingField; num4 -= roomKeysManager2; string text = string.Format("{0}{1:n0}", "\ue002", amagkllbgec4); WatchUI local = WatchUI.BFPPPLIJIGC; string[] array = new string[5]; if ("It looks like you need " != 0) { } array[0] = "It looks like you need "; if (text != 0) { } array[1] = text; if (" to purchase " != 0) { } array[2] = " to purchase "; string k__BackingField = this.key.k__BackingField; if (k__BackingField != 0) { } array[3] = k__BackingField; if (".\n\nWould you like to buy more tokens now?" != 0) { } array[4] = ".\n\nWould you like to buy more tokens now?"; string text2 = string.Concat(array); RoomKeysManager.<>c <>; if (RoomKeysManager.<>c.<>9__30_2 == 0) { <> = RoomKeysManager.<>c.<>9; action = delegate(JPIJGHNNIDP response2) { if (response2 == JPIJGHNNIDP.Affirmative) { Player.k__BackingField.playerUI.k__BackingField.ShowStoreScreenTokensTab("Keys_NotEnoughTokens"); return; } }; RoomKeysManager.<>c.<>9__30_2 = action; } int num5; if (num < <>) { num += num; if (num == <>) { num5 += num5; goto IL_154; } num++; } num5 = 0; return Promise.FromResult(num5 != 0); } IL_154: WatchUI local2 = WatchUI.BFPPPLIJIGC; string[] array2 = new string[5]; if ("Unlock " != 0) { } array2[0] = "Unlock "; if (" for " != 0) { } array2[2] = " for "; if ("?" != 0) { } array2[4] = "?"; if (string.Concat(array2) == 0) { Func> func = delegate(JPIJGHNNIDP response2) { if (response2 != JPIJGHNNIDP.Affirmative) { return Promise.FromResult(false); } RoomKeysManager roomKeysManager3 = action.<>4__this; AMAGKLLBGEC amagkllbgec5 = action.key; int num6 = 0; roomKeysManager3.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.ConfirmButton, amagkllbgec5, num6); RoomKeysManager roomKeysManager4 = action.<>4__this; long? num7 = action.initialBalance; AMAGKLLBGEC amagkllbgec6 = action.key; return roomKeysManager4.KGGMAGALNGF(amagkllbgec6, num7); }; } throw new NullReferenceException(); } // Token: 0x0600C82C RID: 51244 RVA: 0x002F8070 File Offset: 0x002F6270 [Token(Token = "0x600C82C")] [Address(RVA = "0x10D7790", Offset = "0x10D6190", VA = "0x1810D7790")] internal IPromise b__1(JPIJGHNNIDP response2) { if (response2 != JPIJGHNNIDP.Affirmative) { return Promise.FromResult(false); } RoomKeysManager roomKeysManager = this.<>4__this; AMAGKLLBGEC amagkllbgec = this.key; int num = 0; roomKeysManager.MPEEBPMKFIK(CFLMJLFBOKH.CDMBDLBLIMH.ConfirmButton, amagkllbgec, num); RoomKeysManager roomKeysManager2 = this.<>4__this; long? num2 = this.initialBalance; AMAGKLLBGEC amagkllbgec2 = this.key; return roomKeysManager2.KGGMAGALNGF(amagkllbgec2, num2); } // Token: 0x040084DC RID: 34012 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084DC")] public RoomKeysManager <>4__this; // Token: 0x040084DD RID: 34013 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40084DD")] public AMAGKLLBGEC key; // Token: 0x040084DE RID: 34014 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40084DE")] public long? initialBalance; // Token: 0x040084DF RID: 34015 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40084DF")] public bool isOwner; // Token: 0x040084E0 RID: 34016 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40084E0")] public string priceText; // Token: 0x040084E1 RID: 34017 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x40084E1")] public string ownerText; // Token: 0x040084E2 RID: 34018 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x40084E2")] public string balanceText; // Token: 0x040084E3 RID: 34019 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x40084E3")] public Func> <>9__1; } // Token: 0x02001D1B RID: 7451 [Token(Token = "0x2001D1B")] [CompilerGenerated] private sealed class PFPALLKBOFJ { // Token: 0x0600C82D RID: 51245 RVA: 0x002F80CC File Offset: 0x002F62CC [Token(Token = "0x600C82D")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public PFPALLKBOFJ() { } // Token: 0x0600C82E RID: 51246 RVA: 0x002F80E0 File Offset: 0x002F62E0 [Token(Token = "0x600C82E")] [Address(RVA = "0x10D7E50", Offset = "0x10D6850", VA = "0x1810D7E50")] internal IPromise b__0(GEAPBDGCKMB.RoomKeyPurchaseResponseDTO response) { BCKIBFNPIPD k__BackingField = response.k__BackingField; if (k__BackingField.k__BackingField != BMHHFIGBOFD.Success) { RoomKeysManager roomKeysManager = this.<>4__this; AMAGKLLBGEC amagkllbgec = this.key; int num = 0; roomKeysManager.OIFDPLPCJCJ(amagkllbgec, num, response); return Promise.FromResult(false); } RoomKeysManager roomKeysManager2 = this.<>4__this; long? num2 = this.initialBalance; AMAGKLLBGEC k__BackingField = k__BackingField.k__BackingField; roomKeysManager2.FAGHNLBJHDI(k__BackingField, num2, response); return Promise.FromResult(true); } // Token: 0x0600C82F RID: 51247 RVA: 0x002F8150 File Offset: 0x002F6350 [Token(Token = "0x600C82F")] [Address(RVA = "0x10D7F60", Offset = "0x10D6960", VA = "0x1810D7F60")] internal void b__1(string error) { RoomKeysManager roomKeysManager = this.<>4__this; AMAGKLLBGEC amagkllbgec = this.key; int num = 0; roomKeysManager.OIFDPLPCJCJ(amagkllbgec, error, num); } // Token: 0x040084E4 RID: 34020 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40084E4")] public RoomKeysManager <>4__this; // Token: 0x040084E5 RID: 34021 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40084E5")] public long? initialBalance; // Token: 0x040084E6 RID: 34022 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40084E6")] public AMAGKLLBGEC key; } } }