This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,166 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Networking.SynchronizedFields;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
namespace RecRoom.Consumable
{
// Token: 0x02002125 RID: 8485
[Token(Token = "0x2002125")]
[StructLayout(3)]
public class CameraFilterConsumableEffect : ConsumableEffect
{
// Token: 0x0600EA28 RID: 59944 RVA: 0x003780D8 File Offset: 0x003762D8
[Token(Token = "0x600EA28")]
[Address(RVA = "0x1662570", Offset = "0x1660F70", VA = "0x181662570", Slot = "13")]
protected override void Awake()
{
base..ctor();
List<ConsumableManager.KIDKMAOBOIG> list = new List();
this.<CEKFDODGELA>k__BackingField = list;
bool isLocal = base.photonView.isLocal;
this.<MHCDCIGJNNA>k__BackingField = isLocal;
string[] array = new string[0];
Action action = new Action(base.MHNEGDPFLNL);
SynchronizedField<string[]> synchronizedField;
this.LDIDFEJLBPK = synchronizedField;
SynchronizedField<bool> synchronizedField2;
this.CLNHDLDPMOI = synchronizedField2;
ConsumableEffect.AllLocal.Add(this);
Action action2 = new Action(base.GCILAGCGICN);
Coroutine coroutine = this.EndOfFrameRoutine(action2);
List<ConsumableManager.KIDKMAOBOIG> <CEKFDODGELA>k__BackingField = this.<CEKFDODGELA>k__BackingField;
int num = 0;
<CEKFDODGELA>k__BackingField.Add(num);
}
// Token: 0x0600EA29 RID: 59945 RVA: 0x0037816C File Offset: 0x0037636C
[Token(Token = "0x600EA29")]
[Address(RVA = "0x1662CB0", Offset = "0x16616B0", VA = "0x181662CB0", Slot = "15")]
protected override void Start()
{
if (NetworkedSingletonMonoBehaviour.FFNIFALJLDD)
{
NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.TryApplyConsumableEffect(this);
}
ShareCamera shareCamera = this.shareCamera;
Action action = new Action(this.CFGDOPBGFJE);
shareCamera.NFDCNGAAKBC += action;
}
// Token: 0x0600EA2A RID: 59946 RVA: 0x003781B0 File Offset: 0x003763B0
[Token(Token = "0x600EA2A")]
[Address(RVA = "0x1662790", Offset = "0x1661190", VA = "0x181662790")]
private void CFGDOPBGFJE()
{
OOCCCGPICOG[] array = this.ACDOAOMJGBF.ToArray();
int num = 0;
int length = array.Length;
if (num < length)
{
OOCCCGPICOG oocccgpicog = array[num];
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num2 = 0;
IEnumerator enumerator = FOEHJBDMMBH.LCELAOEOIJO(oocccgpicog, 1, num2);
num++;
}
}
// Token: 0x0600EA2B RID: 59947 RVA: 0x00378200 File Offset: 0x00376400
[Token(Token = "0x600EA2B")]
[Address(RVA = "0x1662AF0", Offset = "0x16614F0", VA = "0x181662AF0", Slot = "16")]
protected override void IEKANKBCIBP(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
GameObject effectPrefab = ALMOGLHMFHL.effectPrefab;
int num = 0;
if (effectPrefab != num)
{
GameObject effectPrefab2 = ALMOGLHMFHL.effectPrefab;
Transform transform = base.transform;
GameObject gameObject = global::UnityEngine.Object.Instantiate<GameObject>(effectPrefab2, transform);
Dictionary<string, GameObject> pafplmgleof = this.PAFPLMGLEOF;
string guidString = ALMOGLHMFHL.guidString;
pafplmgleof[guidString] = gameObject;
}
int num2 = 0;
if (ALMOGLHMFHL != num2)
{
this.shareCamera.HBCEKOLOOCK = ALMOGLHMFHL;
if (CPNHCODHDAD)
{
string text = ALMOGLHMFHL.friendlyName + " activated";
base.KOEKICOBBKF(text);
}
}
}
// Token: 0x0600EA2C RID: 59948 RVA: 0x00378294 File Offset: 0x00376494
[Token(Token = "0x600EA2C")]
[Address(RVA = "0x16628E0", Offset = "0x16612E0", VA = "0x1816628E0", Slot = "17")]
protected override void HHBCNEEODDB(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
GameObject effectPrefab = ALMOGLHMFHL.effectPrefab;
int num = 0;
if (effectPrefab != num)
{
Dictionary<string, GameObject> pafplmgleof = this.PAFPLMGLEOF;
string guidString = ALMOGLHMFHL.guidString;
if (pafplmgleof.ContainsKey(guidString))
{
Dictionary<string, GameObject> pafplmgleof2 = this.PAFPLMGLEOF;
string guidString2 = ALMOGLHMFHL.guidString;
GameObject gameObject = pafplmgleof2[guidString2];
Dictionary<string, GameObject> pafplmgleof3 = this.PAFPLMGLEOF;
string guidString3 = ALMOGLHMFHL.guidString;
bool flag = pafplmgleof3.Remove(guidString3);
int num2 = 0;
if (gameObject != num2)
{
global::UnityEngine.Object.Destroy(gameObject);
}
}
}
int num3 = 0;
if (ALMOGLHMFHL != num3)
{
this.shareCamera.HBCEKOLOOCK = (ulong)0L;
if (CPNHCODHDAD)
{
string text = ALMOGLHMFHL.friendlyName + " deactivated";
base.KOEKICOBBKF(text);
}
}
}
// Token: 0x0600EA2D RID: 59949 RVA: 0x0037835C File Offset: 0x0037655C
[Token(Token = "0x600EA2D")]
[Address(RVA = "0x1662DD0", Offset = "0x16617D0", VA = "0x181662DD0")]
public CameraFilterConsumableEffect()
{
HashSet<string> hashSet = new HashSet();
this.JKMOCAJOOPF = hashSet;
List<OOCCCGPICOG> list = new List();
this.ACDOAOMJGBF = list;
Dictionary<string, GameObject> dictionary = new Dictionary();
this.PAFPLMGLEOF = dictionary;
base..ctor();
}
// Token: 0x04009B12 RID: 39698
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009B12")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private ShareCamera shareCamera;
// Token: 0x04009B13 RID: 39699
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009B13")]
[SerializeField]
private PostProcessProfile filterProfile;
}
}
@@ -0,0 +1,85 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002126 RID: 8486
[Token(Token = "0x2002126")]
[StructLayout(3)]
public class CameraFilterConsumableItem : ConsumableItem
{
// Token: 0x1700271C RID: 10012
// (get) Token: 0x0600EA2E RID: 59950 RVA: 0x00378398 File Offset: 0x00376598
[Token(Token = "0x1700271C")]
public EquipmentSkin DBBKHADKFMN
{
[Token(Token = "0x600EA2E")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
return this.shareCamSkin;
}
}
// Token: 0x1700271D RID: 10013
// (get) Token: 0x0600EA2F RID: 59951 RVA: 0x003783AC File Offset: 0x003765AC
[Token(Token = "0x1700271D")]
public Texture2D AKACHFMDLDP
{
[Token(Token = "0x600EA2F")]
[Address(RVA = "0x3EDE90", Offset = "0x3EC890", VA = "0x1803EDE90")]
get
{
return this.lookUpTexture;
}
}
// Token: 0x1700271E RID: 10014
// (get) Token: 0x0600EA30 RID: 59952 RVA: 0x003783C0 File Offset: 0x003765C0
[Token(Token = "0x1700271E")]
public Texture PMLKAJBJDBH
{
[Token(Token = "0x600EA30")]
[Address(RVA = "0x48F050", Offset = "0x48DA50", VA = "0x18048F050")]
get
{
return this.overlayTexture;
}
}
// Token: 0x0600EA31 RID: 59953 RVA: 0x003783D4 File Offset: 0x003765D4
[Token(Token = "0x600EA31")]
[Address(RVA = "0x1662EB0", Offset = "0x16618B0", VA = "0x181662EB0")]
public CameraFilterConsumableItem()
{
Guid guid = Guid.NewGuid();
string text;
this.guidString = text;
this.limitCount = (int)((ulong)1L);
base..ctor();
}
// Token: 0x04009B14 RID: 39700
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009B14")]
[SerializeField]
[Header("Camera Filter settings")]
protected EquipmentSkin shareCamSkin;
// Token: 0x04009B15 RID: 39701
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009B15")]
[SerializeField]
[Header("Image Settings")]
private Texture2D lookUpTexture;
// Token: 0x04009B16 RID: 39702
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4009B16")]
[SerializeField]
[Header("Overlay")]
protected Texture overlayTexture;
}
}
@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002127 RID: 8487
[Token(Token = "0x2002127")]
[StructLayout(3)]
public class ConsumableCollectionBuildConfig : ScriptableObject
{
// Token: 0x0600EA32 RID: 59954 RVA: 0x00378400 File Offset: 0x00376600
[Token(Token = "0x600EA32")]
[Address(RVA = "0x1669A70", Offset = "0x1668470", VA = "0x181669A70")]
public static void HDECHBMKJCO(ConsumableCollectionBuildConfig PFPAJKHPEFN, ConsumableCollectionRuntimeConfig JPPKOPCBAIF)
{
List<ConsumableItem> list = PFPAJKHPEFN.consumablePrefabs;
Func<ConsumableItem, ConsumableInfo> <>9__1_ = ConsumableCollectionBuildConfig.<>c.<>9__1_0;
if (<>9__1_ == 0)
{
ConsumableCollectionBuildConfig.<>c.<>9__1_0 = delegate(ConsumableItem p)
{
bool isCompleted = ((IAsyncResult)p).IsCompleted;
throw new NullReferenceException();
};
}
IEnumerable<ConsumableItem> enumerable = Enumerable.Select<ConsumableItem, ConsumableInfo>(list, <>9__1_);
Func<ConsumableInfo, bool> func;
if (ConsumableCollectionBuildConfig.<>c.<>9__1_1 == 0)
{
func = delegate(ConsumableInfo i)
{
if (i == 0)
{
return 0 != 0;
}
return i != 0;
};
ConsumableCollectionBuildConfig.<>c.<>9__1_1 = func;
}
GenericConsumableInfo[] array = Enumerable.ToArray<GenericConsumableInfo>(Enumerable.Cast<GenericConsumableInfo>(Enumerable.Where<ConsumableInfo>(enumerable, func)));
JPPKOPCBAIF.GenericConsumables = array;
Func<ConsumableInfo, bool> func2;
if (ConsumableCollectionBuildConfig.<>c.<>9__1_2 == 0)
{
func2 = delegate(ConsumableInfo i)
{
if (i == 0)
{
return 0 != 0;
}
return i != 0;
};
ConsumableCollectionBuildConfig.<>c.<>9__1_2 = func2;
}
HairDyeConsumableInfo[] array2 = Enumerable.ToArray<HairDyeConsumableInfo>(Enumerable.Cast<HairDyeConsumableInfo>(Enumerable.Where<ConsumableInfo>(enumerable, func2)));
JPPKOPCBAIF.HairDyeConsumables = array2;
Func<ConsumableInfo, bool> func3;
if (ConsumableCollectionBuildConfig.<>c.<>9__1_3 == 0)
{
func3 = delegate(ConsumableInfo i)
{
if (i == 0)
{
return 0 != 0;
}
return i != 0;
};
ConsumableCollectionBuildConfig.<>c.<>9__1_3 = func3;
}
CouponConsumableInfo[] array3 = Enumerable.ToArray<CouponConsumableInfo>(Enumerable.Cast<CouponConsumableInfo>(Enumerable.Where<ConsumableInfo>(enumerable, func3)));
JPPKOPCBAIF.CouponConsumables = array3;
Func<ConsumableInfo, bool> func4;
if (ConsumableCollectionBuildConfig.<>c.<>9__1_4 == 0)
{
func4 = delegate(ConsumableInfo i)
{
if (i == 0)
{
return 0 != 0;
}
return i != 0;
};
ConsumableCollectionBuildConfig.<>c.<>9__1_4 = func4;
}
HeadPotionConsumableInfo[] array4 = Enumerable.ToArray<HeadPotionConsumableInfo>(Enumerable.Cast<HeadPotionConsumableInfo>(Enumerable.Where<ConsumableInfo>(enumerable, func4)));
JPPKOPCBAIF.HeadPotionConsumables = array4;
}
// Token: 0x0600EA33 RID: 59955 RVA: 0x00378534 File Offset: 0x00376734
[Token(Token = "0x600EA33")]
[Address(RVA = "0x1669EB0", Offset = "0x16688B0", VA = "0x181669EB0")]
public ConsumableCollectionBuildConfig()
{
List<ConsumableItem> list = new List();
this.consumablePrefabs = list;
base..ctor();
}
// Token: 0x04009B17 RID: 39703
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B17")]
public List<ConsumableItem> consumablePrefabs;
}
}
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002129 RID: 8489
[Token(Token = "0x2002129")]
[StructLayout(3)]
public class ConsumableCollectionRuntimeConfig : ScriptableObject
{
// Token: 0x0600EA3B RID: 59963 RVA: 0x0037862C File Offset: 0x0037682C
[Token(Token = "0x600EA3B")]
[Address(RVA = "0x1669F10", Offset = "0x1668910", VA = "0x181669F10")]
public ConsumableInfo[] OMNPEILCEOD()
{
HairDyeConsumableInfo[] hairDyeConsumables = this.HairDyeConsumables;
IEnumerable<ConsumableInfo> enumerable = Enumerable.Concat<ConsumableInfo>(this.GenericConsumables, hairDyeConsumables);
CouponConsumableInfo[] couponConsumables = this.CouponConsumables;
IEnumerable<ConsumableInfo> enumerable2 = Enumerable.Concat<ConsumableInfo>(enumerable, couponConsumables);
HeadPotionConsumableInfo[] headPotionConsumables = this.HeadPotionConsumables;
return Enumerable.ToArray<ConsumableInfo>(Enumerable.Concat<ConsumableInfo>(enumerable2, headPotionConsumables));
}
// Token: 0x0600EA3C RID: 59964 RVA: 0x00378674 File Offset: 0x00376874
[Token(Token = "0x600EA3C")]
[Address(RVA = "0x3C6D30", Offset = "0x3C5730", VA = "0x1803C6D30")]
public ConsumableCollectionRuntimeConfig()
{
}
// Token: 0x04009B1E RID: 39710
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B1E")]
[SerializeField]
public GenericConsumableInfo[] GenericConsumables;
// Token: 0x04009B1F RID: 39711
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009B1F")]
[SerializeField]
public HairDyeConsumableInfo[] HairDyeConsumables;
// Token: 0x04009B20 RID: 39712
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009B20")]
[SerializeField]
public CouponConsumableInfo[] CouponConsumables;
// Token: 0x04009B21 RID: 39713
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009B21")]
[SerializeField]
public HeadPotionConsumableInfo[] HeadPotionConsumables;
}
}
@@ -0,0 +1,470 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Networking.SynchronizedFields;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x0200212F RID: 8495
[Token(Token = "0x200212F")]
[StructLayout(3)]
public abstract class ConsumableEffect : MonoBehaviourPun
{
// Token: 0x17002720 RID: 10016
// (get) Token: 0x0600EA43 RID: 59971 RVA: 0x00378708 File Offset: 0x00376908
// (set) Token: 0x0600EA44 RID: 59972 RVA: 0x0037871C File Offset: 0x0037691C
[Token(Token = "0x17002720")]
public List<ConsumableManager.KIDKMAOBOIG> DPCHAPDNDAI
{
[Token(Token = "0x600EA43")]
[Address(RVA = "0x3D32F0", Offset = "0x3D1CF0", VA = "0x1803D32F0")]
get;
[Token(Token = "0x600EA44")]
[Address(RVA = "0x3D3460", Offset = "0x3D1E60", VA = "0x1803D3460")]
protected set;
}
// Token: 0x17002721 RID: 10017
// (get) Token: 0x0600EA45 RID: 59973 RVA: 0x00378730 File Offset: 0x00376930
// (set) Token: 0x0600EA46 RID: 59974 RVA: 0x00378744 File Offset: 0x00376944
[Token(Token = "0x17002721")]
public bool DKLGNFGONEM
{
[Token(Token = "0x600EA45")]
[Address(RVA = "0x3F0F40", Offset = "0x3EF940", VA = "0x1803F0F40")]
get;
[Token(Token = "0x600EA46")]
[Address(RVA = "0x3F1290", Offset = "0x3EFC90", VA = "0x1803F1290")]
private set;
}
// Token: 0x0600EA47 RID: 59975 RVA: 0x00378758 File Offset: 0x00376958
[Token(Token = "0x600EA47")]
[Address(RVA = "0x166AFF0", Offset = "0x16699F0", VA = "0x18166AFF0")]
protected ConsumableItem PHILEFGALDN()
{
string[] array = this.LDIDFEJLBPK.Get();
if (array.Length == 0)
{
}
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
string text = array[0];
return instance.GetOrLoadConsumablePrefab(text);
}
// Token: 0x0600EA48 RID: 59976 RVA: 0x00378798 File Offset: 0x00376998
[Token(Token = "0x600EA48")]
[Address(RVA = "0x1669F90", Offset = "0x1668990", VA = "0x181669F90", Slot = "13")]
protected override void Awake()
{
base..ctor();
List<ConsumableManager.KIDKMAOBOIG> list = new List();
this.<CEKFDODGELA>k__BackingField = list;
bool isLocal = base.photonView.isLocal;
this.<MHCDCIGJNNA>k__BackingField = isLocal;
string[] array = new string[0];
Action action = new Action(this.MHNEGDPFLNL);
SynchronizedField<string[]> synchronizedField;
this.LDIDFEJLBPK = synchronizedField;
SynchronizedField<bool> synchronizedField2;
this.CLNHDLDPMOI = synchronizedField2;
if (this.<MHCDCIGJNNA>k__BackingField)
{
ConsumableEffect.AllLocal.Add(this);
}
Action action2 = new Action(this.GCILAGCGICN);
Coroutine coroutine = this.EndOfFrameRoutine(action2);
}
// Token: 0x0600EA49 RID: 59977 RVA: 0x00378824 File Offset: 0x00376A24
[Token(Token = "0x600EA49")]
[Address(RVA = "0x166B0A0", Offset = "0x1669AA0", VA = "0x18166B0A0", Slot = "15")]
protected virtual void Start()
{
if (NetworkedSingletonMonoBehaviour.FFNIFALJLDD && this.<MHCDCIGJNNA>k__BackingField)
{
NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.TryApplyConsumableEffect(this);
return;
}
}
// Token: 0x0600EA4A RID: 59978 RVA: 0x00378854 File Offset: 0x00376A54
[Token(Token = "0x600EA4A")]
[Address(RVA = "0x166AF10", Offset = "0x1669910", VA = "0x18166AF10", Slot = "14")]
protected override void OnDestroy()
{
if (this.<MHCDCIGJNNA>k__BackingField)
{
bool flag = ConsumableEffect.AllLocal.Remove(this);
}
base.OnDestroy();
}
// Token: 0x0600EA4B RID: 59979 RVA: 0x00378884 File Offset: 0x00376A84
[Token(Token = "0x600EA4B")]
[Address(RVA = "0x166A980", Offset = "0x1669380", VA = "0x18166A980")]
public bool LocalActivateConsumable(OOCCCGPICOG BAJGNABECMN, bool CPNHCODHDAD)
{
if (this.<MHCDCIGJNNA>k__BackingField)
{
List<ConsumableManager.KIDKMAOBOIG> list = this.<CEKFDODGELA>k__BackingField;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField = BAJGNABECMN.<MPBLJOGNHKP>k__BackingField;
if (list.Contains(<MPBLJOGNHKP>k__BackingField) && !this.ACDOAOMJGBF.Contains(BAJGNABECMN))
{
this.ACDOAOMJGBF.Add(BAJGNABECMN);
SynchronizedField<bool> clnhdldpmoi = this.CLNHDLDPMOI;
int num = this.LDIDFEJLBPK.Get().Length;
num++;
string[] array = new string[num];
string <CNJALCEBPMC>k__BackingField = BAJGNABECMN.<CNJALCEBPMC>k__BackingField;
if (<CNJALCEBPMC>k__BackingField != 0)
{
}
array[0] = <CNJALCEBPMC>k__BackingField;
SynchronizedField<string[]> ldidfejlbpk = this.LDIDFEJLBPK;
}
}
throw new ArrayTypeMismatchException();
}
// Token: 0x0600EA4C RID: 59980 RVA: 0x00378918 File Offset: 0x00376B18
[Token(Token = "0x600EA4C")]
[Address(RVA = "0x166ACC0", Offset = "0x16696C0", VA = "0x18166ACC0")]
public static IEnumerable<ConsumableEffect> LocalGetAll(ConsumableManager.KIDKMAOBOIG DJFBMCIDJNK)
{
List<ConsumableEffect> allLocal = ConsumableEffect.AllLocal;
Func<ConsumableEffect, bool> func = delegate(ConsumableEffect e)
{
List<ConsumableManager.KIDKMAOBOIG> list = e.<CEKFDODGELA>k__BackingField;
ConsumableManager.KIDKMAOBOIG category = DJFBMCIDJNK;
return list.Contains(category);
};
return Enumerable.Where<ConsumableEffect>(allLocal, func);
}
// Token: 0x0600EA4D RID: 59981 RVA: 0x00378954 File Offset: 0x00376B54
[Token(Token = "0x600EA4D")]
[Address(RVA = "0x166AB20", Offset = "0x1669520", VA = "0x18166AB20")]
public bool LocalDeactivateConsumable(OOCCCGPICOG BAJGNABECMN, bool CPNHCODHDAD)
{
OOCCCGPICOG consumable = BAJGNABECMN;
if (this.<MHCDCIGJNNA>k__BackingField)
{
List<ConsumableManager.KIDKMAOBOIG> list = this.<CEKFDODGELA>k__BackingField;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField = BAJGNABECMN.<MPBLJOGNHKP>k__BackingField;
if (list.Contains(<MPBLJOGNHKP>k__BackingField))
{
List<OOCCCGPICOG> acdoaomjgbf = this.ACDOAOMJGBF;
OOCCCGPICOG consumable3 = consumable;
if (acdoaomjgbf.Contains(consumable3))
{
List<OOCCCGPICOG> acdoaomjgbf2 = this.ACDOAOMJGBF;
OOCCCGPICOG consumable2 = consumable;
bool flag = acdoaomjgbf2.Remove(consumable2);
SynchronizedField<bool> clnhdldpmoi = this.CLNHDLDPMOI;
string[] array = this.LDIDFEJLBPK.Get();
Func<string, bool> func = delegate(string d)
{
string <CNJALCEBPMC>k__BackingField = consumable.<CNJALCEBPMC>k__BackingField;
return d != <CNJALCEBPMC>k__BackingField;
};
string[] array2 = Enumerable.ToArray<string>(Enumerable.Where<string>(array, func));
SynchronizedField<string[]> ldidfejlbpk = this.LDIDFEJLBPK;
return true;
}
}
}
throw new NullReferenceException();
}
// Token: 0x0600EA4E RID: 59982 RVA: 0x00378A0C File Offset: 0x00376C0C
[Token(Token = "0x600EA4E")]
[Address(RVA = "0x166A180", Offset = "0x1668B80", VA = "0x18166A180")]
private void EMKJNFKEMAK(bool EEGJPAHLMCH = false)
{
int num;
do
{
num = 0;
if (this.CLNHDLDPMOI.Get() == 0)
{
}
string[] array = this.LDIDFEJLBPK.Get();
string text;
if (array != 0)
{
int length = array.Length;
if (num < length)
{
text = array[num];
if (!this.JKMOCAJOOPF.Contains(text))
{
ConsumableItem orLoadConsumablePrefab = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.GetOrLoadConsumablePrefab(text);
bool flag = this.JKMOCAJOOPF.Add(text);
int num2 = 0;
if (orLoadConsumablePrefab != num2)
{
this.Start();
}
}
num++;
}
List<string> list = Enumerable.ToList<string>(Enumerable.Except<string>(this.JKMOCAJOOPF, array));
List<string>.Enumerator enumerator;
if (enumerator != 0)
{
bool flag2 = this.JKMOCAJOOPF.Remove(num);
ConsumableItem orLoadConsumablePrefab2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.GetOrLoadConsumablePrefab(num);
int num3 = 0;
if (!(orLoadConsumablePrefab2 != num3))
{
continue;
}
this.IEKANKBCIBP(orLoadConsumablePrefab2, EEGJPAHLMCH);
}
if (num != -1)
{
}
if (num != 0)
{
continue;
}
}
List<string> list2 = Enumerable.ToList<string>(this.JKMOCAJOOPF);
List<string>.Enumerator enumerator2;
if (enumerator2 != 0)
{
bool flag3 = this.JKMOCAJOOPF.Remove(text);
ConsumableItem orLoadConsumablePrefab3 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.GetOrLoadConsumablePrefab(text);
int num4 = 0;
if (!(orLoadConsumablePrefab3 != num4))
{
continue;
}
this.IEKANKBCIBP(orLoadConsumablePrefab3, EEGJPAHLMCH);
}
num++;
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600EA4F RID: 59983 RVA: 0x00378B48 File Offset: 0x00376D48
[Token(Token = "0x600EA4F")]
[Address(RVA = "0x166AE40", Offset = "0x1669840", VA = "0x18166AE40")]
protected void OCFKJPHFMCH(OOCCCGPICOG BAJGNABECMN, int FKKAPHAMPMG)
{
if (this.<MHCDCIGJNNA>k__BackingField)
{
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num = 0;
IEnumerator enumerator = FOEHJBDMMBH.LCELAOEOIJO(BAJGNABECMN, FKKAPHAMPMG, num);
}
}
// Token: 0x0600EA50 RID: 59984 RVA: 0x00378B78 File Offset: 0x00376D78
[Token(Token = "0x600EA50")]
[Address(RVA = "0x166A800", Offset = "0x1669200", VA = "0x18166A800", Slot = "16")]
protected virtual void IEKANKBCIBP(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
GameObject effectPrefab = ALMOGLHMFHL.effectPrefab;
int num = 0;
if (effectPrefab != num)
{
GameObject effectPrefab2 = ALMOGLHMFHL.effectPrefab;
Transform transform = base.transform;
GameObject gameObject = global::UnityEngine.Object.Instantiate<GameObject>(effectPrefab2, transform);
Dictionary<string, GameObject> pafplmgleof = this.PAFPLMGLEOF;
string guidString = ALMOGLHMFHL.guidString;
pafplmgleof[guidString] = gameObject;
}
}
// Token: 0x0600EA51 RID: 59985 RVA: 0x00378BD0 File Offset: 0x00376DD0
[Token(Token = "0x600EA51")]
[Address(RVA = "0x166AFA0", Offset = "0x16699A0", VA = "0x18166AFA0")]
protected Dictionary<string, GameObject>.ValueCollection PGHKOFAMNJA()
{
return this.PAFPLMGLEOF.Values;
}
// Token: 0x0600EA52 RID: 59986 RVA: 0x00378BF0 File Offset: 0x00376DF0
[Token(Token = "0x600EA52")]
[Address(RVA = "0x166ADB0", Offset = "0x16697B0", VA = "0x18166ADB0")]
protected GameObject NKEAAJDOLJK(ConsumableItem ALMOGLHMFHL)
{
Dictionary<string, GameObject> pafplmgleof = this.PAFPLMGLEOF;
string guidString = ALMOGLHMFHL.guidString;
if (pafplmgleof.ContainsKey(guidString))
{
Dictionary<string, GameObject> pafplmgleof2 = this.PAFPLMGLEOF;
string guidString2 = ALMOGLHMFHL.guidString;
return pafplmgleof2[guidString2];
}
throw new NullReferenceException();
}
// Token: 0x0600EA53 RID: 59987 RVA: 0x00378C34 File Offset: 0x00376E34
[Token(Token = "0x600EA53")]
[Address(RVA = "0x166A6C0", Offset = "0x16690C0", VA = "0x18166A6C0", Slot = "17")]
protected virtual void HHBCNEEODDB(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
GameObject effectPrefab = ALMOGLHMFHL.effectPrefab;
int num = 0;
if (effectPrefab != num)
{
Dictionary<string, GameObject> pafplmgleof = this.PAFPLMGLEOF;
string guidString = ALMOGLHMFHL.guidString;
if (pafplmgleof.ContainsKey(guidString))
{
Dictionary<string, GameObject> pafplmgleof2 = this.PAFPLMGLEOF;
string guidString2 = ALMOGLHMFHL.guidString;
GameObject gameObject = pafplmgleof2[guidString2];
Dictionary<string, GameObject> pafplmgleof3 = this.PAFPLMGLEOF;
string guidString3 = ALMOGLHMFHL.guidString;
bool flag = pafplmgleof3.Remove(guidString3);
int num2 = 0;
if (gameObject != num2)
{
global::UnityEngine.Object.Destroy(gameObject);
}
}
}
}
// Token: 0x0600EA54 RID: 59988 RVA: 0x00378CC0 File Offset: 0x00376EC0
[Token(Token = "0x600EA54")]
[Address(RVA = "0x166A8F0", Offset = "0x16692F0", VA = "0x18166A8F0")]
protected void KOEKICOBBKF(string NGPMADFHHKP)
{
NotificationManager instance = SingletonMonoBehaviour.Instance;
int num = 0;
IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Medium, NGPMADFHHKP, 3f, num, num);
}
// Token: 0x0600EA55 RID: 59989 RVA: 0x00378CEC File Offset: 0x00376EEC
[Token(Token = "0x600EA55")]
[Address(RVA = "0x166B1B0", Offset = "0x1669BB0", VA = "0x18166B1B0")]
protected ConsumableEffect()
{
HashSet<string> hashSet = new HashSet();
this.JKMOCAJOOPF = hashSet;
List<OOCCCGPICOG> list = new List();
this.ACDOAOMJGBF = list;
Dictionary<string, GameObject> dictionary = new Dictionary();
this.PAFPLMGLEOF = dictionary;
base..ctor();
}
// Token: 0x0600EA57 RID: 59991 RVA: 0x00378D40 File Offset: 0x00376F40
[Token(Token = "0x600EA57")]
[Address(RVA = "0x166ADA0", Offset = "0x16697A0", VA = "0x18166ADA0")]
[CompilerGenerated]
private void MHNEGDPFLNL()
{
int num = 0;
this.EMKJNFKEMAK(num != 0);
}
// Token: 0x0600EA58 RID: 59992 RVA: 0x00378D58 File Offset: 0x00376F58
[Token(Token = "0x600EA58")]
[Address(RVA = "0x166A6B0", Offset = "0x16690B0", VA = "0x18166A6B0")]
[CompilerGenerated]
private void GCILAGCGICN()
{
this.EMKJNFKEMAK(true);
}
// Token: 0x04009B30 RID: 39728
[Token(Token = "0x4009B30")]
public static List<ConsumableEffect> AllLocal = new List();
// Token: 0x04009B33 RID: 39731
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009B33")]
private SynchronizedField<bool> CLNHDLDPMOI;
// Token: 0x04009B34 RID: 39732
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009B34")]
private SynchronizedField<string[]> LDIDFEJLBPK;
// Token: 0x04009B35 RID: 39733
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009B35")]
private HashSet<string> JKMOCAJOOPF;
// Token: 0x04009B36 RID: 39734
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4009B36")]
protected List<OOCCCGPICOG> ACDOAOMJGBF;
// Token: 0x04009B37 RID: 39735
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009B37")]
private Dictionary<string, GameObject> PAFPLMGLEOF;
// Token: 0x02002130 RID: 8496
[Token(Token = "0x2002130")]
[CompilerGenerated]
private sealed class AFDMFCGFNKG
{
// Token: 0x0600EA59 RID: 59993 RVA: 0x00378D6C File Offset: 0x00376F6C
[Token(Token = "0x600EA59")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public AFDMFCGFNKG()
{
}
// Token: 0x0600EA5A RID: 59994 RVA: 0x00378D80 File Offset: 0x00376F80
[Token(Token = "0x600EA5A")]
[Address(RVA = "0x1660D80", Offset = "0x165F780", VA = "0x181660D80")]
internal bool <LocalGetAll>b__0(ConsumableEffect e)
{
List<ConsumableManager.KIDKMAOBOIG> <CEKFDODGELA>k__BackingField = e.<CEKFDODGELA>k__BackingField;
ConsumableManager.KIDKMAOBOIG kidkmaoboig = this.category;
return <CEKFDODGELA>k__BackingField.Contains(kidkmaoboig);
}
// Token: 0x04009B38 RID: 39736
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B38")]
public ConsumableManager.KIDKMAOBOIG category;
}
// Token: 0x02002131 RID: 8497
[Token(Token = "0x2002131")]
[CompilerGenerated]
private sealed class HPCLPDDEDEG
{
// Token: 0x0600EA5B RID: 59995 RVA: 0x00378DA8 File Offset: 0x00376FA8
[Token(Token = "0x600EA5B")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public HPCLPDDEDEG()
{
}
// Token: 0x0600EA5C RID: 59996 RVA: 0x00378DBC File Offset: 0x00376FBC
[Token(Token = "0x600EA5C")]
[Address(RVA = "0x1672440", Offset = "0x1670E40", VA = "0x181672440")]
internal bool <LocalDeactivateConsumable>b__0(string d)
{
string <CNJALCEBPMC>k__BackingField = this.consumable.<CNJALCEBPMC>k__BackingField;
return d != <CNJALCEBPMC>k__BackingField;
}
// Token: 0x04009B39 RID: 39737
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B39")]
public OOCCCGPICOG consumable;
}
}
}
@@ -0,0 +1,73 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace RecRoom.Consumable
{
// Token: 0x0200212A RID: 8490
[Token(Token = "0x200212A")]
[Serializable]
[StructLayout(3)]
public abstract class ConsumableInfo
{
// Token: 0x1700271F RID: 10015
// (get) Token: 0x0600EA3D RID: 59965 RVA: 0x00378688 File Offset: 0x00376888
[Token(Token = "0x1700271F")]
public bool HasConsumableTool
{
[Token(Token = "0x600EA3D")]
[Address(RVA = "0x12447E0", Offset = "0x12431E0", VA = "0x1812447E0")]
get
{
return !string.IsNullOrEmpty(this.ConsumableToolName);
}
}
// Token: 0x0600EA3E RID: 59966 RVA: 0x003786A4 File Offset: 0x003768A4
[Token(Token = "0x600EA3E")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
protected ConsumableInfo()
{
}
// Token: 0x04009B22 RID: 39714
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B22")]
public string FileName;
// Token: 0x04009B23 RID: 39715
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B23")]
public string ConsumableItemDesc;
// Token: 0x04009B24 RID: 39716
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009B24")]
public string FriendlyName;
// Token: 0x04009B25 RID: 39717
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009B25")]
public ConsumableManager.KIDKMAOBOIG Category;
// Token: 0x04009B26 RID: 39718
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4009B26")]
public ConsumableManager.FFCJLEMFFAJ LimitType;
// Token: 0x04009B27 RID: 39719
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009B27")]
public int LimitCount;
// Token: 0x04009B28 RID: 39720
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x4009B28")]
public bool AutoActivateNextItem;
// Token: 0x04009B29 RID: 39721
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4009B29")]
public string ConsumableToolName;
}
}
@@ -0,0 +1,259 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002132 RID: 8498
[Token(Token = "0x2002132")]
[StructLayout(3)]
public abstract class ConsumableItem : MonoBehaviour, IComparable<ConsumableItem>
{
// Token: 0x17002722 RID: 10018
// (get) Token: 0x0600EA5D RID: 59997 RVA: 0x00378DE4 File Offset: 0x00376FE4
[Token(Token = "0x17002722")]
public string KENGPMDDCML
{
[Token(Token = "0x600EA5D")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")]
get
{
return this.friendlyName;
}
}
// Token: 0x17002723 RID: 10019
// (get) Token: 0x0600EA5E RID: 59998 RVA: 0x00378DF8 File Offset: 0x00376FF8
[Token(Token = "0x17002723")]
public ConsumableManager.KIDKMAOBOIG GMMAAAGFAKO
{
[Token(Token = "0x600EA5E")]
[Address(RVA = "0x4FBD40", Offset = "0x4FA740", VA = "0x1804FBD40")]
get
{
return this.category;
}
}
// Token: 0x17002724 RID: 10020
// (get) Token: 0x0600EA5F RID: 59999 RVA: 0x00378E0C File Offset: 0x0037700C
[Token(Token = "0x17002724")]
public string HAKADJAKPDO
{
[Token(Token = "0x600EA5F")]
[Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")]
get
{
return this.guidString;
}
}
// Token: 0x17002725 RID: 10021
// (get) Token: 0x0600EA60 RID: 60000 RVA: 0x00378E20 File Offset: 0x00377020
[Token(Token = "0x17002725")]
public int KFAAPLBOPPF
{
[Token(Token = "0x600EA60")]
[Address(RVA = "0x3EDF60", Offset = "0x3EC960", VA = "0x1803EDF60")]
get
{
return this.limitCount;
}
}
// Token: 0x17002726 RID: 10022
// (get) Token: 0x0600EA61 RID: 60001 RVA: 0x00378E34 File Offset: 0x00377034
[Token(Token = "0x17002726")]
public ConsumableManager.FFCJLEMFFAJ NLFGJKJJFFO
{
[Token(Token = "0x600EA61")]
[Address(RVA = "0x621DB0", Offset = "0x6207B0", VA = "0x180621DB0")]
get
{
return this.limitType;
}
}
// Token: 0x17002727 RID: 10023
// (get) Token: 0x0600EA62 RID: 60002 RVA: 0x00378E48 File Offset: 0x00377048
[Token(Token = "0x17002727")]
public bool IPAFOLPNGFD
{
[Token(Token = "0x600EA62")]
[Address(RVA = "0x52F470", Offset = "0x52DE70", VA = "0x18052F470")]
get
{
return this.autoActivateNextItem;
}
}
// Token: 0x17002728 RID: 10024
// (get) Token: 0x0600EA63 RID: 60003 RVA: 0x00378E5C File Offset: 0x0037705C
[Token(Token = "0x17002728")]
public Transform MLDAPHCKOKF
{
[Token(Token = "0x600EA63")]
[Address(RVA = "0x3D32F0", Offset = "0x3D1CF0", VA = "0x1803D32F0")]
get
{
return this.visualRoot;
}
}
// Token: 0x17002729 RID: 10025
// (get) Token: 0x0600EA64 RID: 60004 RVA: 0x00378E70 File Offset: 0x00377070
[Token(Token = "0x17002729")]
public ConsumableTool MIJHIIPIIGO
{
[Token(Token = "0x600EA64")]
[Address(RVA = "0x3EDEA0", Offset = "0x3EC8A0", VA = "0x1803EDEA0")]
get
{
return this.consumableTool;
}
}
// Token: 0x1700272A RID: 10026
// (get) Token: 0x0600EA65 RID: 60005 RVA: 0x00378E84 File Offset: 0x00377084
[Token(Token = "0x1700272A")]
public GameObject IMNJKLMBGEO
{
[Token(Token = "0x600EA65")]
[Address(RVA = "0x462740", Offset = "0x461140", VA = "0x180462740")]
get
{
return this.effectPrefab;
}
}
// Token: 0x0600EA66 RID: 60006 RVA: 0x00378E98 File Offset: 0x00377098
[Token(Token = "0x600EA66")]
[Address(RVA = "0x166B260", Offset = "0x1669C60", VA = "0x18166B260", Slot = "4")]
public int CompareTo(ConsumableItem HPKICPNGMDJ)
{
do
{
int num = 0;
if (HPKICPNGMDJ == num)
{
return 0;
}
}
while (this.category != ConsumableManager.KIDKMAOBOIG.CameraFilter);
string text = this.friendlyName;
string text2 = HPKICPNGMDJ.friendlyName;
return text.CompareTo(text2);
}
// Token: 0x0600EA67 RID: 60007 RVA: 0x00378ED8 File Offset: 0x003770D8
[Token(Token = "0x600EA67")]
[Address(RVA = "0x166B310", Offset = "0x1669D10", VA = "0x18166B310", Slot = "5")]
public virtual ConsumableInfo ToConsumableInfo()
{
/*
An exception occurred when decompiling this method (0600EA67)
ICSharpCode.Decompiler.DecompilerException: Error decompiling RecRoom.Consumable.ConsumableInfo RecRoom.Consumable.ConsumableItem::ToConsumableInfo()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:GenericConsumableInfo(var_1_05, newobj:GenericConsumableInfo(GenericConsumableInfo::.ctor))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600EA68 RID: 60008 RVA: 0x00378EEC File Offset: 0x003770EC
[Token(Token = "0x600EA68")]
[Address(RVA = "0x1AAEFA0", Offset = "0x1AAD9A0", VA = "0x181AAEFA0")]
protected void DKBOALDPDAN<T>(ref T DBDDKLHPNNA) where T : ConsumableInfo
{
string name = base.gameObject.name;
ConsumableTool consumableTool = this.consumableTool;
if (consumableTool != 0)
{
string name2 = consumableTool.name;
}
}
// Token: 0x0600EA69 RID: 60009 RVA: 0x00378F20 File Offset: 0x00377120
[Token(Token = "0x600EA69")]
[Address(RVA = "0x1662EB0", Offset = "0x16618B0", VA = "0x181662EB0")]
protected ConsumableItem()
{
Guid guid = Guid.NewGuid();
string text;
this.guidString = text;
this.limitCount = (int)((ulong)1L);
base..ctor();
}
// Token: 0x04009B3A RID: 39738
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B3A")]
[SerializeField]
protected string friendlyName;
// Token: 0x04009B3B RID: 39739
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009B3B")]
[SerializeField]
protected ConsumableManager.KIDKMAOBOIG category;
// Token: 0x04009B3C RID: 39740
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009B3C")]
[SerializeField]
[Tooltip("This guid is auto generated at the time of the prefab creation and should never change if you do not want to break an existing players consumables.")]
protected string guidString;
// Token: 0x04009B3D RID: 39741
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009B3D")]
[SerializeField]
[Header("Usage limits.")]
protected int limitCount;
// Token: 0x04009B3E RID: 39742
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
[Token(Token = "0x4009B3E")]
[SerializeField]
protected ConsumableManager.FFCJLEMFFAJ limitType;
// Token: 0x04009B3F RID: 39743
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4009B3F")]
[SerializeField]
protected bool autoActivateNextItem;
// Token: 0x04009B40 RID: 39744
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B40")]
[SerializeField]
[Header("Visual for the boxes.")]
protected Transform visualRoot;
// Token: 0x04009B41 RID: 39745
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009B41")]
[SerializeField]
[Tooltip("If there is a custom consumable tool to activate the effect mapping, assign it here. This tool will replace the default tool and will be spawned whenever necessary.")]
protected ConsumableTool consumableTool;
// Token: 0x04009B42 RID: 39746
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009B42")]
[SerializeField]
[Tooltip("This prefab will be spawned under the ConsumableEffect to add additional functionality.")]
protected GameObject effectPrefab;
}
}
@@ -0,0 +1,1438 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Async;
using RecRoom.Systems.PlayerRoles;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
namespace RecRoom.Consumable
{
// Token: 0x02002133 RID: 8499
[Token(Token = "0x2002133")]
[StructLayout(3)]
public class ConsumableManager : NetworkedSingletonMonoBehaviour<ConsumableManager>
{
// Token: 0x140000F1 RID: 241
// (add) Token: 0x0600EA6A RID: 60010 RVA: 0x00378F4C File Offset: 0x0037714C
// (remove) Token: 0x0600EA6B RID: 60011 RVA: 0x00378F74 File Offset: 0x00377174
[Token(Token = "0x140000F1")]
public event Action<OOCCCGPICOG, bool> HNCNGJFLMEL
{
[Token(Token = "0x600EA6A")]
[Address(RVA = "0x166EC50", Offset = "0x166D650", VA = "0x18166EC50")]
[CompilerGenerated]
add
{
Action<OOCCCGPICOG, bool> hncngjflmel;
Delegate @delegate;
do
{
hncngjflmel = this.HNCNGJFLMEL;
@delegate = Delegate.Combine(hncngjflmel, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != hncngjflmel)
{
}
}
[Token(Token = "0x600EA6B")]
[Address(RVA = "0x166ED90", Offset = "0x166D790", VA = "0x18166ED90")]
[CompilerGenerated]
remove
{
Action<OOCCCGPICOG, bool> hncngjflmel;
Delegate @delegate;
do
{
hncngjflmel = this.HNCNGJFLMEL;
@delegate = Delegate.Remove(hncngjflmel, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != hncngjflmel)
{
}
}
}
// Token: 0x140000F2 RID: 242
// (add) Token: 0x0600EA6C RID: 60012 RVA: 0x00378F9C File Offset: 0x0037719C
// (remove) Token: 0x0600EA6D RID: 60013 RVA: 0x00378FC4 File Offset: 0x003771C4
[Token(Token = "0x140000F2")]
public event Action<OOCCCGPICOG, bool> BNFPEINEDCC
{
[Token(Token = "0x600EA6C")]
[Address(RVA = "0x166ECF0", Offset = "0x166D6F0", VA = "0x18166ECF0")]
[CompilerGenerated]
add
{
Action<OOCCCGPICOG, bool> bnfpeinedcc;
Delegate @delegate;
do
{
bnfpeinedcc = this.BNFPEINEDCC;
@delegate = Delegate.Combine(bnfpeinedcc, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != bnfpeinedcc)
{
}
}
[Token(Token = "0x600EA6D")]
[Address(RVA = "0x166EE30", Offset = "0x166D830", VA = "0x18166EE30")]
[CompilerGenerated]
remove
{
Action<OOCCCGPICOG, bool> bnfpeinedcc;
Delegate @delegate;
do
{
bnfpeinedcc = this.BNFPEINEDCC;
@delegate = Delegate.Remove(bnfpeinedcc, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != bnfpeinedcc)
{
}
}
}
// Token: 0x1700272B RID: 10027
// (get) Token: 0x0600EA6E RID: 60014 RVA: 0x00378FEC File Offset: 0x003771EC
// (set) Token: 0x0600EA6F RID: 60015 RVA: 0x00379000 File Offset: 0x00377200
[Token(Token = "0x1700272B")]
public List<OOCCCGPICOG> HBNKDJHPFIH
{
[Token(Token = "0x600EA6E")]
[Address(RVA = "0x3EDE90", Offset = "0x3EC890", VA = "0x1803EDE90")]
get;
[Token(Token = "0x600EA6F")]
[Address(RVA = "0x3EDEC0", Offset = "0x3EC8C0", VA = "0x1803EDEC0")]
private set;
}
// Token: 0x1700272C RID: 10028
// (get) Token: 0x0600EA70 RID: 60016 RVA: 0x00379014 File Offset: 0x00377214
// (set) Token: 0x0600EA71 RID: 60017 RVA: 0x00379028 File Offset: 0x00377228
[Token(Token = "0x1700272C")]
public Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> GLGIFBBIJMO
{
[Token(Token = "0x600EA70")]
[Address(RVA = "0x48F050", Offset = "0x48DA50", VA = "0x18048F050")]
get;
[Token(Token = "0x600EA71")]
[Address(RVA = "0x52F860", Offset = "0x52E260", VA = "0x18052F860")]
private set;
}
// Token: 0x1700272D RID: 10029
// (get) Token: 0x0600EA72 RID: 60018 RVA: 0x0037903C File Offset: 0x0037723C
// (set) Token: 0x0600EA73 RID: 60019 RVA: 0x00379050 File Offset: 0x00377250
[Token(Token = "0x1700272D")]
private Dictionary<int, List<OOCCCGPICOG>> IKCILKBNLDL
{
[Token(Token = "0x600EA72")]
[Address(RVA = "0x4D2570", Offset = "0x4D0F70", VA = "0x1804D2570")]
get;
[Token(Token = "0x600EA73")]
[Address(RVA = "0x7D4760", Offset = "0x7D3160", VA = "0x1807D4760")]
set;
}
// Token: 0x0600EA74 RID: 60020 RVA: 0x00379064 File Offset: 0x00377264
[Token(Token = "0x600EA74")]
[Address(RVA = "0x166BBC0", Offset = "0x166A5C0", VA = "0x18166BBC0", Slot = "13")]
protected override void Awake()
{
base.Awake();
List<OOCCCGPICOG> list = new List();
this.<KBFCNIPECEB>k__BackingField = list;
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary = new Dictionary();
this.<EJMJIFKMMDN>k__BackingField = dictionary;
Dictionary<int, List<OOCCCGPICOG>> dictionary2 = new Dictionary();
this.<MPOGFALEMEO>k__BackingField = dictionary2;
ActionEvent<OOCCCGPICOG> kpcjmbnihhl = FOEHJBDMMBH.KPCJMBNIHHL;
Action<OOCCCGPICOG> action = new Action(this.LJNJNJPEHJI);
FOEHJBDMMBH.KPCJMBNIHHL = kpcjmbnihhl + action;
ActionEvent<long> gflphdlaeop = FOEHJBDMMBH.GFLPHDLAEOP;
Action<long> action2 = new Action(this.BKKNBEAIHFN);
FOEHJBDMMBH.GFLPHDLAEOP = gflphdlaeop + action2;
ActionEvent afkmkiapopl = FOEHJBDMMBH.AFKMKIAPOPL;
Action action3 = new Action(this.AFKMKIAPOPL);
FOEHJBDMMBH.AFKMKIAPOPL = afkmkiapopl + action3;
ConsumableCollectionRuntimeConfig consumableCollectionRuntimeConfig = this.consumableCollection;
HairDyeConsumableInfo[] hairDyeConsumables = consumableCollectionRuntimeConfig.HairDyeConsumables;
IEnumerable<ConsumableInfo> enumerable = Enumerable.Concat<ConsumableInfo>(consumableCollectionRuntimeConfig.GenericConsumables, hairDyeConsumables);
CouponConsumableInfo[] couponConsumables = consumableCollectionRuntimeConfig.CouponConsumables;
IEnumerable<ConsumableInfo> enumerable2 = Enumerable.Concat<ConsumableInfo>(enumerable, couponConsumables);
HeadPotionConsumableInfo[] headPotionConsumables = consumableCollectionRuntimeConfig.HeadPotionConsumables;
ConsumableInfo[] array = Enumerable.ToArray<ConsumableInfo>(Enumerable.Concat<ConsumableInfo>(enumerable2, headPotionConsumables));
Func<ConsumableInfo, string> <>9__28_ = ConsumableManager.<>c.<>9__28_0;
if (<>9__28_ == 0)
{
ConsumableManager.<>c.<>9__28_0 = (ConsumableInfo i) => i.ConsumableItemDesc;
}
Dictionary<ConsumableInfo, string> dictionary3 = Enumerable.ToDictionary<ConsumableInfo, string>(array, <>9__28_);
this.LPPDCFEJBGA = dictionary3;
SceneManager.sceneUnloaded += new UnityAction(this.LMOACMLMLAB);
}
// Token: 0x0600EA75 RID: 60021 RVA: 0x003791A0 File Offset: 0x003773A0
[Token(Token = "0x600EA75")]
[Address(RVA = "0x166E0C0", Offset = "0x166CAC0", VA = "0x18166E0C0", Slot = "14")]
protected override void OnDestroy()
{
ActionEvent<OOCCCGPICOG> kpcjmbnihhl = FOEHJBDMMBH.KPCJMBNIHHL;
Action<OOCCCGPICOG> action = new Action(this.LJNJNJPEHJI);
FOEHJBDMMBH.KPCJMBNIHHL = kpcjmbnihhl - action;
ActionEvent<long> gflphdlaeop = FOEHJBDMMBH.GFLPHDLAEOP;
Action<long> action2 = new Action(this.BKKNBEAIHFN);
FOEHJBDMMBH.GFLPHDLAEOP = gflphdlaeop - action2;
ActionEvent afkmkiapopl = FOEHJBDMMBH.AFKMKIAPOPL;
Action action3 = new Action(this.AFKMKIAPOPL);
FOEHJBDMMBH.AFKMKIAPOPL = afkmkiapopl - action3;
SceneManager.sceneUnloaded -= new UnityAction(this.LMOACMLMLAB);
base.OnDestroy();
}
// Token: 0x0600EA76 RID: 60022 RVA: 0x00379228 File Offset: 0x00377428
[Token(Token = "0x600EA76")]
[Address(RVA = "0x166E880", Offset = "0x166D280", VA = "0x18166E880")]
private IEnumerator Start()
{
int num;
ConsumableManager.IENDGKFKBBL iendgkfkbbl = new ConsumableManager.IENDGKFKBBL(num);
num = 0;
iendgkfkbbl.<>4__this = this;
throw new NullReferenceException();
}
// Token: 0x0600EA77 RID: 60023 RVA: 0x0037924C File Offset: 0x0037744C
[Token(Token = "0x600EA77")]
[Address(RVA = "0x166E070", Offset = "0x166CA70", VA = "0x18166E070")]
private void LMOACMLMLAB(Scene LHECBPFGEMH)
{
this.NJMOJCFCNJI.Clear();
}
// Token: 0x0600EA78 RID: 60024 RVA: 0x0037926C File Offset: 0x0037746C
[Token(Token = "0x600EA78")]
[Address(RVA = "0x166E270", Offset = "0x166CC70", VA = "0x18166E270")]
private void PEOHHDHGDMB()
{
ConsumableCollectionRuntimeConfig consumableCollectionRuntimeConfig = this.consumableCollection;
HairDyeConsumableInfo[] hairDyeConsumables = consumableCollectionRuntimeConfig.HairDyeConsumables;
IEnumerable<ConsumableInfo> enumerable = Enumerable.Concat<ConsumableInfo>(consumableCollectionRuntimeConfig.GenericConsumables, hairDyeConsumables);
CouponConsumableInfo[] couponConsumables = consumableCollectionRuntimeConfig.CouponConsumables;
IEnumerable<ConsumableInfo> enumerable2 = Enumerable.Concat<ConsumableInfo>(enumerable, couponConsumables);
HeadPotionConsumableInfo[] headPotionConsumables = consumableCollectionRuntimeConfig.HeadPotionConsumables;
ConsumableInfo[] array = Enumerable.ToArray<ConsumableInfo>(Enumerable.Concat<ConsumableInfo>(enumerable2, headPotionConsumables));
Func<ConsumableInfo, string> <>9__28_ = ConsumableManager.<>c.<>9__28_0;
if (<>9__28_ == 0)
{
ConsumableManager.<>c.<>9__28_0 = (ConsumableInfo i) => i.ConsumableItemDesc;
}
Dictionary<ConsumableInfo, string> dictionary = Enumerable.ToDictionary<ConsumableInfo, string>(array, <>9__28_);
this.LPPDCFEJBGA = dictionary;
}
// Token: 0x0600EA79 RID: 60025 RVA: 0x003792F8 File Offset: 0x003774F8
[Token(Token = "0x600EA79")]
[Address(RVA = "0x166C560", Offset = "0x166AF60", VA = "0x18166C560")]
public void DeactivateConsumableOfCategory(ConsumableManager.KIDKMAOBOIG DJFBMCIDJNK, bool CPNHCODHDAD)
{
int num;
int num2;
do
{
num = 0;
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary = this.<EJMJIFKMMDN>k__BackingField;
bool flag;
if (!flag)
{
return;
}
if (flag && num < (flag ? 1 : 0))
{
num += num;
if (num != (flag ? 1 : 0))
{
num++;
}
}
if (flag)
{
num2 = 0;
}
if (num != -1)
{
}
}
while (num != 0);
if (num2 == 1 || num2 == 2)
{
this.JAHAJMKIEFD(num);
}
BPHGKAEDBPE.CBEOHBCIPEA cbeohbcipea;
if (ConsumableManager.<>c.<>9__29_0 == 0)
{
cbeohbcipea = delegate(string error)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
};
ConsumableManager.<>c.<>9__29_0 = cbeohbcipea;
}
int num3 = 0;
IEnumerator enumerator = FOEHJBDMMBH.PKHAMBFCEJI(num, num3 != 0, cbeohbcipea);
bool flag2 = this.<EJMJIFKMMDN>k__BackingField.Remove(num3);
int num4 = 0;
this.JJEGNEPGBNA(num3, num4 != 0);
}
// Token: 0x0600EA7A RID: 60026 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EA7A")]
[Address(RVA = "0x166B620", Offset = "0x166A020", VA = "0x18166B620")]
public void ActivateConsumable(OOCCCGPICOG KGNADIFEIML, bool CPNHCODHDAD)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600EA7B RID: 60027 RVA: 0x003793B0 File Offset: 0x003775B0
[Token(Token = "0x600EA7B")]
[Address(RVA = "0x166D8C0", Offset = "0x166C2C0", VA = "0x18166D8C0")]
private IEnumerator IKAOJDNCCJO()
{
int num;
ConsumableManager.BBNLOOEHPKF bbnlooehpkf = new ConsumableManager.BBNLOOEHPKF(num);
num = 0;
bbnlooehpkf.<>4__this = this;
throw new NullReferenceException();
}
// Token: 0x0600EA7C RID: 60028 RVA: 0x003793D4 File Offset: 0x003775D4
[Token(Token = "0x600EA7C")]
[Address(RVA = "0x166C8E0", Offset = "0x166B2E0", VA = "0x18166C8E0")]
public IEnumerator DownloadPurchasedConsumables(BPHGKAEDBPE.CBEOHBCIPEA AFLPGGJMPOE)
{
return FOEHJBDMMBH.BAKHDHHALHF(delegate(string error, List<OOCCCGPICOG> selections)
{
if (selections != 0)
{
this.<KBFCNIPECEB>k__BackingField.AddRange(selections);
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Comparison<OOCCCGPICOG> <>9__32_ = ConsumableManager.<>c.<>9__32_1;
if (<>9__32_ == 0)
{
ConsumableManager.<>c.<>9__32_1 = delegate(OOCCCGPICOG x, OOCCCGPICOG y)
{
DateTime <IPLPEOMCNPJ>k__BackingField = x.<IPLPEOMCNPJ>k__BackingField;
DateTime <IPLPEOMCNPJ>k__BackingField2 = y.<IPLPEOMCNPJ>k__BackingField;
return DateTime.Compare(<IPLPEOMCNPJ>k__BackingField, <IPLPEOMCNPJ>k__BackingField2);
};
}
list.Sort(<>9__32_);
}
BPHGKAEDBPE.HADGLCCBNHM(AFLPGGJMPOE, error);
});
}
// Token: 0x0600EA7D RID: 60029 RVA: 0x0037940C File Offset: 0x0037760C
[Token(Token = "0x600EA7D")]
[Address(RVA = "0x166EB10", Offset = "0x166D510", VA = "0x18166EB10")]
public IEnumerator UseConsumable(OOCCCGPICOG BAJGNABECMN, int FKKAPHAMPMG, BPHGKAEDBPE.CBEOHBCIPEA AFLPGGJMPOE)
{
return FOEHJBDMMBH.LCELAOEOIJO(BAJGNABECMN, FKKAPHAMPMG, AFLPGGJMPOE);
}
// Token: 0x0600EA7E RID: 60030 RVA: 0x00379424 File Offset: 0x00377624
[Token(Token = "0x600EA7E")]
[Address(RVA = "0x166E8F0", Offset = "0x166D2F0", VA = "0x18166E8F0")]
public void TryApplyConsumableEffect(ConsumableEffect EPEIGGODCIN)
{
List<ConsumableManager.KIDKMAOBOIG> <CEKFDODGELA>k__BackingField = EPEIGGODCIN.<CEKFDODGELA>k__BackingField;
throw new NullReferenceException();
}
// Token: 0x0600EA7F RID: 60031 RVA: 0x00379478 File Offset: 0x00377678
[Token(Token = "0x600EA7F")]
[Address(RVA = "0x166E3F0", Offset = "0x166CDF0", VA = "0x18166E3F0")]
public Tool SpawnConsumableForLocalPlayer(string BFMHPKIEKIF, long? NJCHOELCFME, Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, float FNJKKNKLDPB, PlayerSpawnedEquipment.IILDIBHEIDO OEFOIFHDBEN)
{
if (!PlayerRoomRoleManager.IPCFEPKLJNG)
{
NotificationManager instance = SingletonMonoBehaviour.Instance;
}
ConsumableInfo consumableInfo = this.TryGetConsumableInfo(BFMHPKIEKIF);
if (consumableInfo != 0)
{
Dictionary<string, object> dictionary = new Dictionary();
int actorNumber = PhotonNetwork.LocalPlayer.actorNumber;
dictionary.Add("Owner", actorNumber);
dictionary.Add("Purpose", actorNumber);
dictionary.Add("ConsumableType", BFMHPKIEKIF);
dictionary.Add("ConsumableId", actorNumber);
string consumableToolName = consumableInfo.ConsumableToolName;
if (actorNumber == 0)
{
}
string name = this.defaultConsumableToolPrefab.name;
int viewIdField = base.photonView.viewIdField;
float z = DDHPAFKBMON.z;
Tool tool;
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = tool.<FLFJCIPBAPA>k__BackingField;
int num2 = 0;
<FLFJCIPBAPA>k__BackingField2.HICLCBMIPIN = num2 != 0;
}
}
Debug.LogError("Spawn Consumable For Local Player: Unable to find consumable");
throw new NullReferenceException();
}
// Token: 0x0600EA80 RID: 60032 RVA: 0x00379568 File Offset: 0x00377768
[Token(Token = "0x600EA80")]
[Address(RVA = "0x166E780", Offset = "0x166D180", VA = "0x18166E780")]
public GameObject SpawnConsumableImposter(string BFMHPKIEKIF)
{
ConsumableItem orLoadConsumablePrefab = this.GetOrLoadConsumablePrefab(BFMHPKIEKIF);
int num = 0;
if (!(orLoadConsumablePrefab != num))
{
}
GameObject gameObject = orLoadConsumablePrefab.gameObject;
int num2 = 0;
GameObject gameObject2 = JODFIHBJHJM.EIJJOKINEIL(gameObject, num2, true).gameObject;
gameObject2.layer = 5;
return gameObject2;
}
// Token: 0x0600EA81 RID: 60033 RVA: 0x003795B8 File Offset: 0x003777B8
[Token(Token = "0x600EA81")]
[Address(RVA = "0x166DB90", Offset = "0x166C590", VA = "0x18166DB90")]
private void JAHAJMKIEFD(OOCCCGPICOG BAJGNABECMN)
{
Func<ConsumableManager.DKKBNGODEOM, bool> func = delegate(ConsumableManager.DKKBNGODEOM c)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
};
ConsumableManager.DKKBNGODEOM dkkbngodeom;
if (dkkbngodeom != 0)
{
if (ConsumableManager.<>c.<>9__40_1 == 0)
{
ConsumableManager.<>c.<>9__40_1 = delegate(string e)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
};
}
LinkedList<ConsumableManager.DKKBNGODEOM> fllfjeooncc = this.FLLFJEOONCC;
}
}
// Token: 0x0600EA82 RID: 60034 RVA: 0x00379610 File Offset: 0x00377810
[Token(Token = "0x600EA82")]
[Address(RVA = "0x166DE30", Offset = "0x166C830", VA = "0x18166DE30")]
private IEnumerator KFCOBPNHEAK()
{
int num;
ConsumableManager.BOPFCJIBDON bopfcjibdon = new ConsumableManager.BOPFCJIBDON(num);
num = 0;
bopfcjibdon.<>4__this = this;
throw new NullReferenceException();
}
// Token: 0x0600EA83 RID: 60035 RVA: 0x00379634 File Offset: 0x00377834
[Token(Token = "0x600EA83")]
[Address(RVA = "0x166B470", Offset = "0x1669E70", VA = "0x18166B470")]
private void AJGKEJPEJMI(OOCCCGPICOG BAJGNABECMN)
{
LinkedListNode head;
float num2;
do
{
int num = 0;
if (!OOCCCGPICOG.BDBLGMKABNK(BAJGNABECMN, num))
{
return;
}
ConsumableInfo <JDADGBIDGIB>k__BackingField = BAJGNABECMN.<JDADGBIDGIB>k__BackingField;
if (<JDADGBIDGIB>k__BackingField == 0 || <JDADGBIDGIB>k__BackingField.LimitType > ConsumableManager.FFCJLEMFFAJ.Time || !this.<EJMJIFKMMDN>k__BackingField.ContainsValue(BAJGNABECMN))
{
return;
}
float time = Time.time;
head = this.FLLFJEOONCC.head;
}
while (head != 0 && num2 > num2 && head.Next != 0);
LinkedList<ConsumableManager.DKKBNGODEOM> fllfjeooncc = this.FLLFJEOONCC;
if (head != 0)
{
throw new NullReferenceException();
}
}
// Token: 0x0600EA84 RID: 60036 RVA: 0x003796B0 File Offset: 0x003778B0
[Token(Token = "0x600EA84")]
[Address(RVA = "0x166CB90", Offset = "0x166B590", VA = "0x18166CB90")]
public IPromise<List<OOCCCGPICOG>> GetAllTransferableConsumableTypesByCreatorId(int OEMFFOMNDPB)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary = this.<MPOGFALEMEO>k__BackingField;
bool flag;
if (!flag)
{
IPromise<List<OOCCCGPICOG>> promise = FOEHJBDMMBH.AFMKIHFMMBI(OEMFFOMNDPB);
Func<List<OOCCCGPICOG>, List<OOCCCGPICOG>> func = delegate(List<OOCCCGPICOG> consumables)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary2 = this.<MPOGFALEMEO>k__BackingField;
int creatorId = OEMFFOMNDPB;
dictionary2.Add(creatorId, consumables);
Func<OOCCCGPICOG, string> <>9__43_ = ConsumableManager.<>c.<>9__43_3;
if (<>9__43_ == 0)
{
ConsumableManager.<>c.<>9__43_3 = (OOCCCGPICOG c) => c.<CNJALCEBPMC>k__BackingField;
}
IEnumerable enumerable2 = Enumerable.GroupBy<OOCCCGPICOG, string>(consumables, <>9__43_);
Func<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG> func3;
if (ConsumableManager.<>c.<>9__43_4 == 0)
{
func3 = (IGrouping<string, OOCCCGPICOG> c) => Enumerable.Last<OOCCCGPICOG>(c);
ConsumableManager.<>c.<>9__43_4 = func3;
}
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Select<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG>(enumerable2, func3));
};
}
if (ConsumableManager.<>c.<>9__43_0 == 0)
{
ConsumableManager.<>c.<>9__43_0 = (OOCCCGPICOG c) => c.<CNJALCEBPMC>k__BackingField;
}
Func<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG> func2;
if (ConsumableManager.<>c.<>9__43_1 == 0)
{
func2 = (IGrouping<string, OOCCCGPICOG> c) => Enumerable.Last<OOCCCGPICOG>(c);
ConsumableManager.<>c.<>9__43_1 = func2;
}
IEnumerable enumerable;
List<OOCCCGPICOG> list = Enumerable.ToList<OOCCCGPICOG>(Enumerable.Select<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG>(enumerable, func2));
IPromise<OOCCCGPICOG> promise2;
return promise2;
}
// Token: 0x0600EA85 RID: 60037 RVA: 0x00379750 File Offset: 0x00377950
[Token(Token = "0x600EA85")]
[Address(RVA = "0x166D710", Offset = "0x166C110", VA = "0x18166D710")]
public IPromise<List<OOCCCGPICOG>> GetTransferableConsumablesOfTypeByCreatorId(string BFMHPKIEKIF, int OEMFFOMNDPB)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary = this.<MPOGFALEMEO>k__BackingField;
bool flag;
if (!flag)
{
IPromise<List<OOCCCGPICOG>> promise = FOEHJBDMMBH.AFMKIHFMMBI(OEMFFOMNDPB);
Func<OOCCCGPICOG, bool> <>9__2;
Func<List<OOCCCGPICOG>, List<OOCCCGPICOG>> func = delegate(List<OOCCCGPICOG> consumables)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary2 = this.<MPOGFALEMEO>k__BackingField;
int creatorId = OEMFFOMNDPB;
dictionary2.Add(creatorId, consumables);
Func<OOCCCGPICOG, bool> <>9__ = <>9__2;
if (<>9__ == 0)
{
Func<OOCCCGPICOG, bool> func3 = delegate(OOCCCGPICOG c)
{
string consumableType = BFMHPKIEKIF;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, consumableType);
};
<>9__2 = func3;
}
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Where<OOCCCGPICOG>(consumables, <>9__));
};
}
Func<OOCCCGPICOG, bool> func2 = delegate(OOCCCGPICOG c)
{
string consumableType2 = BFMHPKIEKIF;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, consumableType2);
};
IEnumerable<OOCCCGPICOG> enumerable;
List<OOCCCGPICOG> list = Enumerable.ToList<OOCCCGPICOG>(enumerable);
throw new NullReferenceException();
}
// Token: 0x0600EA86 RID: 60038 RVA: 0x003797BC File Offset: 0x003779BC
[Token(Token = "0x600EA86")]
[Address(RVA = "0x166CFF0", Offset = "0x166B9F0", VA = "0x18166CFF0")]
public OOCCCGPICOG GetLatestNonActiveNonTransferableConsumableByType(string BFMHPKIEKIF)
{
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Func<OOCCCGPICOG, bool> func = delegate(OOCCCGPICOG pc)
{
string consumableType = BFMHPKIEKIF;
bool flag = string.Equals(pc.<CNJALCEBPMC>k__BackingField, consumableType);
if (!flag)
{
return flag;
}
return !pc.<OLCLLOHLPEH>k__BackingField;
};
IEnumerable<OOCCCGPICOG> enumerable = Enumerable.Where<OOCCCGPICOG>(list, func);
Func<OOCCCGPICOG, DateTime> <>9__45_ = ConsumableManager.<>c.<>9__45_1;
if (<>9__45_ == 0)
{
ConsumableManager.<>c.<>9__45_1 = (OOCCCGPICOG pc) => pc.<IPLPEOMCNPJ>k__BackingField;
}
return Enumerable.FirstOrDefault<OOCCCGPICOG>(Enumerable.OrderByDescending<OOCCCGPICOG, DateTime>(enumerable, <>9__45_));
}
// Token: 0x0600EA87 RID: 60039 RVA: 0x00379828 File Offset: 0x00377A28
[Token(Token = "0x600EA87")]
[Address(RVA = "0x166D4F0", Offset = "0x166BEF0", VA = "0x18166D4F0")]
public int GetRemainingCount(OOCCCGPICOG BAJGNABECMN)
{
OOCCCGPICOG consumable = BAJGNABECMN;
ConsumableInfo <JDADGBIDGIB>k__BackingField = BAJGNABECMN.<JDADGBIDGIB>k__BackingField;
ConsumableManager.FFCJLEMFFAJ limitType = <JDADGBIDGIB>k__BackingField.LimitType;
if (<JDADGBIDGIB>k__BackingField != 0)
{
if (<JDADGBIDGIB>k__BackingField == 0)
{
return BAJGNABECMN.<MAAELOFEKIJ>k__BackingField;
}
if (<JDADGBIDGIB>k__BackingField == 0 || limitType == ConsumableManager.FFCJLEMFFAJ.Time)
{
int num = BAJGNABECMN.<MAAELOFEKIJ>k__BackingField;
if (BAJGNABECMN.<OLCLLOHLPEH>k__BackingField)
{
LinkedList<ConsumableManager.DKKBNGODEOM> fllfjeooncc = this.FLLFJEOONCC;
Func<ConsumableManager.DKKBNGODEOM, bool> func = delegate(ConsumableManager.DKKBNGODEOM ct)
{
long <JPAOOKPLEDB>k__BackingField = consumable.<JPAOOKPLEDB>k__BackingField;
return "{il2cpp field on {'constant4' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x10}" == <JPAOOKPLEDB>k__BackingField;
};
IEnumerable<ConsumableManager.DKKBNGODEOM> enumerable = Enumerable.Where<ConsumableManager.DKKBNGODEOM>(fllfjeooncc, func);
Func<ConsumableManager.DKKBNGODEOM, float> <>9__46_ = ConsumableManager.<>c.<>9__46_1;
if (<>9__46_ == 0)
{
ConsumableManager.<>c.<>9__46_1 = (ConsumableManager.DKKBNGODEOM ct) => ct.HPIOFBILNMC;
}
float num2 = Enumerable.FirstOrDefault<float>(Enumerable.Select<ConsumableManager.DKKBNGODEOM, float>(enumerable, <>9__46_));
int num3 = 0;
if (num2 > (float)num3)
{
int num4 = 0;
float time = Time.time;
num += num4;
}
}
return num;
}
}
return 0;
}
// Token: 0x0600EA88 RID: 60040 RVA: 0x003798F4 File Offset: 0x00377AF4
[Token(Token = "0x600EA88")]
[Address(RVA = "0x166CE50", Offset = "0x166B850", VA = "0x18166CE50")]
public OOCCCGPICOG GetConsumableById(long NJCHOELCFME)
{
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Func<OOCCCGPICOG, bool> func = delegate(OOCCCGPICOG pc)
{
long consumableId = NJCHOELCFME;
return pc.<JPAOOKPLEDB>k__BackingField == consumableId;
};
IEnumerable<OOCCCGPICOG> enumerable = Enumerable.Where<OOCCCGPICOG>(list, func);
Func<OOCCCGPICOG, DateTime> <>9__47_ = ConsumableManager.<>c.<>9__47_1;
if (<>9__47_ == 0)
{
ConsumableManager.<>c.<>9__47_1 = (OOCCCGPICOG pc) => pc.<IPLPEOMCNPJ>k__BackingField;
}
return Enumerable.FirstOrDefault<OOCCCGPICOG>(Enumerable.OrderByDescending<OOCCCGPICOG, DateTime>(enumerable, <>9__47_));
}
// Token: 0x0600EA89 RID: 60041 RVA: 0x00379960 File Offset: 0x00377B60
[Token(Token = "0x600EA89")]
[Address(RVA = "0x166D990", Offset = "0x166C390", VA = "0x18166D990")]
public bool IsConsumableOfTypeActive(string GEDCEIDOKJL)
{
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary = this.<EJMJIFKMMDN>k__BackingField;
if (this.TryGetConsumableInfo(GEDCEIDOKJL) != 0)
{
}
bool flag;
if (!flag)
{
return flag;
}
throw new NullReferenceException();
}
// Token: 0x0600EA8A RID: 60042 RVA: 0x00379994 File Offset: 0x00377B94
[Token(Token = "0x600EA8A")]
[Address(RVA = "0x166D160", Offset = "0x166BB60", VA = "0x18166D160")]
public List<OOCCCGPICOG> GetLatestPurchasedNonTransferableConsumablesInCategory(ConsumableManager.KIDKMAOBOIG DJFBMCIDJNK)
{
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Func<OOCCCGPICOG, bool> func = delegate(OOCCCGPICOG c)
{
ConsumableManager.KIDKMAOBOIG category = DJFBMCIDJNK;
return c.<MPBLJOGNHKP>k__BackingField == category;
};
IEnumerable<OOCCCGPICOG> enumerable = Enumerable.Where<OOCCCGPICOG>(list, func);
Func<OOCCCGPICOG, string> <>9__49_ = ConsumableManager.<>c.<>9__49_1;
if (<>9__49_ == 0)
{
ConsumableManager.<>c.<>9__49_1 = (OOCCCGPICOG c) => c.<CNJALCEBPMC>k__BackingField;
}
IEnumerable enumerable2 = Enumerable.GroupBy<OOCCCGPICOG, string>(enumerable, <>9__49_);
Func<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG> func2;
if (ConsumableManager.<>c.<>9__49_2 == 0)
{
func2 = (IGrouping<string, OOCCCGPICOG> c) => Enumerable.Last<OOCCCGPICOG>(c);
ConsumableManager.<>c.<>9__49_2 = func2;
}
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Select<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG>(enumerable2, func2));
}
// Token: 0x0600EA8B RID: 60043 RVA: 0x00379A30 File Offset: 0x00377C30
[Token(Token = "0x600EA8B")]
[Address(RVA = "0x166CAD0", Offset = "0x166B4D0", VA = "0x18166CAD0")]
public List<OOCCCGPICOG> GetAllPurchasedNonTransferableConsumablesOfType(string GEDCEIDOKJL)
{
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Func<OOCCCGPICOG, bool> func = delegate(OOCCCGPICOG c)
{
string type = GEDCEIDOKJL;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, type);
};
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Where<OOCCCGPICOG>(list, func));
}
// Token: 0x0600EA8C RID: 60044 RVA: 0x00379A70 File Offset: 0x00377C70
[Token(Token = "0x600EA8C")]
[Address(RVA = "0x166CA60", Offset = "0x166B460", VA = "0x18166CA60")]
public OOCCCGPICOG GetActiveConsumableInCategory(ConsumableManager.KIDKMAOBOIG DJFBMCIDJNK)
{
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary = this.<EJMJIFKMMDN>k__BackingField;
throw new NullReferenceException();
}
// Token: 0x0600EA8D RID: 60045 RVA: 0x00379A8C File Offset: 0x00377C8C
[Token(Token = "0x600EA8D")]
[Address(RVA = "0x166DA60", Offset = "0x166C460", VA = "0x18166DA60")]
public bool IsHairDyeConsumableActive(string CBCHEMNOLBO)
{
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary = this.<EJMJIFKMMDN>k__BackingField;
int num = 0;
bool flag = dictionary.TryGetValue(6, num);
int num2 = 0;
if (flag && num2 != 0)
{
int num3 = 0;
if (num2 != 0 && num3 != 0)
{
return true;
}
}
throw new NullReferenceException();
}
// Token: 0x0600EA8E RID: 60046 RVA: 0x00379ACC File Offset: 0x00377CCC
[Token(Token = "0x600EA8E")]
[Address(RVA = "0x166CFC0", Offset = "0x166B9C0", VA = "0x18166CFC0")]
public ConsumableManager.KIDKMAOBOIG GetConsumableCategory(string AKAMDLHKMGM)
{
ConsumableInfo consumableInfo = this.TryGetConsumableInfo(AKAMDLHKMGM);
if (consumableInfo != 0)
{
return consumableInfo.Category;
}
return ConsumableManager.KIDKMAOBOIG.Invalid;
}
// Token: 0x0600EA8F RID: 60047 RVA: 0x00379AF0 File Offset: 0x00377CF0
[Token(Token = "0x600EA8F")]
[Address(RVA = "0x166EA90", Offset = "0x166D490", VA = "0x18166EA90")]
public ConsumableInfo TryGetConsumableInfo(string AKAMDLHKMGM)
{
Dictionary<string, ConsumableInfo> lppdcfejbga = this.LPPDCFEJBGA;
int num = 0;
bool flag = lppdcfejbga.TryGetValue(AKAMDLHKMGM, num);
throw new NullReferenceException();
}
// Token: 0x0600EA90 RID: 60048 RVA: 0x00379B14 File Offset: 0x00377D14
[Token(Token = "0x600EA90")]
[Address(RVA = "0x166D380", Offset = "0x166BD80", VA = "0x18166D380")]
public ConsumableItem GetOrLoadConsumablePrefab(string GEDCEIDOKJL)
{
int num = 0;
if (num == 0 && !this.NJMOJCFCNJI.TryGetValue(GEDCEIDOKJL, num) && this.LPPDCFEJBGA.TryGetValue(GEDCEIDOKJL, num))
{
ConsumableItem consumableItem = Resources.Load<ConsumableItem>(num);
int num2 = 0;
if (consumableItem != num2)
{
this.NJMOJCFCNJI.Add(GEDCEIDOKJL, consumableItem);
}
}
Debug.LogError("Tried to GetConsumablePrefab for empty type!");
throw new NullReferenceException();
}
// Token: 0x0600EA91 RID: 60049 RVA: 0x00379B78 File Offset: 0x00377D78
[Token(Token = "0x600EA91")]
[Address(RVA = "0x166D930", Offset = "0x166C330", VA = "0x18166D930")]
public void InvalidateTransferableConsumablesByCreatorId(int OEMFFOMNDPB)
{
bool flag = this.<MPOGFALEMEO>k__BackingField.Remove(OEMFFOMNDPB);
}
// Token: 0x0600EA92 RID: 60050 RVA: 0x00379B98 File Offset: 0x00377D98
[Token(Token = "0x600EA92")]
[Address(RVA = "0x166DD70", Offset = "0x166C770", VA = "0x18166DD70")]
private void JJEGNEPGBNA(OOCCCGPICOG BAJGNABECMN, bool CNEIBILGFCO)
{
Action<OOCCCGPICOG, bool> hncngjflmel = this.HNCNGJFLMEL;
if (hncngjflmel != 0)
{
hncngjflmel(BAJGNABECMN, CNEIBILGFCO);
}
Debug.LogError("Error raising OnActiveConsumableChanged: " + BAJGNABECMN);
}
// Token: 0x0600EA93 RID: 60051 RVA: 0x00379BC8 File Offset: 0x00377DC8
[Token(Token = "0x600EA93")]
[Address(RVA = "0x166C9A0", Offset = "0x166B3A0", VA = "0x18166C9A0")]
private void FGAIIFEMKKE(OOCCCGPICOG BAJGNABECMN, bool AKJFIEJBCJA)
{
Action<OOCCCGPICOG, bool> bnfpeinedcc = this.BNFPEINEDCC;
if (bnfpeinedcc != 0)
{
bnfpeinedcc(BAJGNABECMN, AKJFIEJBCJA);
}
Debug.LogError("Error raising OnPurchasedConsumableChanged: " + BAJGNABECMN);
}
// Token: 0x0600EA94 RID: 60052 RVA: 0x00379BF8 File Offset: 0x00377DF8
[Token(Token = "0x600EA94")]
[Address(RVA = "0x166B390", Offset = "0x1669D90", VA = "0x18166B390")]
private void AFKMKIAPOPL()
{
int <OIBJLPBDMML>k__BackingField = BPHGKAEDBPE.<OIBJLPBDMML>k__BackingField;
bool flag = this.<MPOGFALEMEO>k__BackingField.Remove(<OIBJLPBDMML>k__BackingField);
}
// Token: 0x0600EA95 RID: 60053 RVA: 0x00379C20 File Offset: 0x00377E20
[Token(Token = "0x600EA95")]
[Address(RVA = "0x166DEA0", Offset = "0x166C8A0", VA = "0x18166DEA0")]
private void LJNJNJPEHJI(OOCCCGPICOG BAJGNABECMN)
{
if (!BAJGNABECMN.<JJIMAAMFCLN>k__BackingField)
{
this.<KBFCNIPECEB>k__BackingField.Add(BAJGNABECMN);
this.FGAIIFEMKKE(BAJGNABECMN, true);
return;
}
Dictionary<int, List<OOCCCGPICOG>> dictionary = this.<MPOGFALEMEO>k__BackingField;
bool flag;
if (!flag)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary2 = this.<MPOGFALEMEO>k__BackingField;
dictionary2[flag] = new List { BAJGNABECMN };
}
throw new NullReferenceException();
}
// Token: 0x0600EA96 RID: 60054 RVA: 0x00379C7C File Offset: 0x00377E7C
[Token(Token = "0x600EA96")]
[Address(RVA = "0x166BF30", Offset = "0x166A930", VA = "0x18166BF30")]
private void BKKNBEAIHFN(long NJCHOELCFME)
{
OOCCCGPICOG oocccgpicog2;
for (;;)
{
int num = 0;
List<OOCCCGPICOG> list = this.<KBFCNIPECEB>k__BackingField;
Predicate<OOCCCGPICOG> predicate = delegate(OOCCCGPICOG c)
{
long consumableId = NJCHOELCFME;
return c.<JPAOOKPLEDB>k__BackingField == consumableId;
};
OOCCCGPICOG oocccgpicog = ListExt.RemoveWhere<OOCCCGPICOG>(list, predicate);
OOCCCGPICOG consumable = oocccgpicog;
if (oocccgpicog == 0)
{
return;
}
if ((consumable.<JJIMAAMFCLN>k__BackingField ? 1 : 0) != num)
{
Dictionary<int, List<OOCCCGPICOG>> dictionary = this.<MPOGFALEMEO>k__BackingField;
bool flag;
if (flag)
{
break;
}
}
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary2 = this.<EJMJIFKMMDN>k__BackingField;
OOCCCGPICOG consumable7 = consumable;
if (dictionary2.ContainsValue(consumable7))
{
int <MPBLJOGNHKP>k__BackingField = (int)consumable.<MPBLJOGNHKP>k__BackingField;
if ((consumable.<JDADGBIDGIB>k__BackingField.AutoActivateNextItem ? 1 : 0) != num)
{
List<OOCCCGPICOG> list2 = this.<KBFCNIPECEB>k__BackingField;
Func<OOCCCGPICOG, bool> func = delegate(OOCCCGPICOG pc)
{
string <CNJALCEBPMC>k__BackingField = pc.<CNJALCEBPMC>k__BackingField;
string <CNJALCEBPMC>k__BackingField2 = consumable.<CNJALCEBPMC>k__BackingField;
return string.Equals(<CNJALCEBPMC>k__BackingField, <CNJALCEBPMC>k__BackingField2);
};
IEnumerable<OOCCCGPICOG> enumerable = Enumerable.Where<OOCCCGPICOG>(list2, func);
Func<OOCCCGPICOG, DateTime> func2;
if (ConsumableManager.<>c.<>9__61_2 == 0)
{
func2 = (OOCCCGPICOG pc) => pc.<IPLPEOMCNPJ>k__BackingField;
ConsumableManager.<>c.<>9__61_2 = func2;
}
oocccgpicog2 = Enumerable.FirstOrDefault<OOCCCGPICOG>(Enumerable.OrderByDescending<OOCCCGPICOG, DateTime>(enumerable, func2));
}
if (oocccgpicog2 != 0)
{
}
if (oocccgpicog2 != 0)
{
}
if (num != -1)
{
}
if (num == 0)
{
OOCCCGPICOG consumable2 = consumable;
BPHGKAEDBPE.CBEOHBCIPEA cbeohbcipea;
if (ConsumableManager.<>c.<>9__61_3 == 0)
{
cbeohbcipea = delegate(string error)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
};
ConsumableManager.<>c.<>9__61_3 = cbeohbcipea;
}
int num2 = 0;
IEnumerator enumerator = FOEHJBDMMBH.PKHAMBFCEJI(consumable2, num2 != 0, cbeohbcipea);
Dictionary<ConsumableManager.KIDKMAOBOIG, OOCCCGPICOG> dictionary3 = this.<EJMJIFKMMDN>k__BackingField;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField2 = consumable.<MPBLJOGNHKP>k__BackingField;
bool flag2 = dictionary3.Remove(<MPBLJOGNHKP>k__BackingField2);
int num3 = 0;
OOCCCGPICOG consumable3 = consumable;
this.JJEGNEPGBNA(consumable3, num3 != 0);
int num4 = 0;
if (OOCCCGPICOG.BDBLGMKABNK(oocccgpicog2, num4))
{
goto Block_8;
}
}
}
}
OOCCCGPICOG consumable4 = okplgghobpb.consumable;
int num5 = 0;
OOCCCGPICOG consumable5 = okplgghobpb.consumable;
this.FGAIIFEMKKE(consumable5, num5 != 0);
OOCCCGPICOG consumable6 = okplgghobpb.consumable;
string friendlyName = consumable6.<JDADGBIDGIB>k__BackingField.FriendlyName;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField3 = consumable6.<MPBLJOGNHKP>k__BackingField;
return;
Block_8:
int num6 = 0;
this.ActivateConsumable(oocccgpicog2, num6 != 0);
throw new NullReferenceException();
}
// Token: 0x0600EA97 RID: 60055 RVA: 0x00379E54 File Offset: 0x00378054
[Token(Token = "0x600EA97")]
[Address(RVA = "0x166EB80", Offset = "0x166D580", VA = "0x18166EB80")]
public ConsumableManager()
{
Dictionary<string, ConsumableInfo> dictionary = new Dictionary();
this.LPPDCFEJBGA = dictionary;
Dictionary<string, ConsumableItem> dictionary2 = new Dictionary();
this.NJMOJCFCNJI = dictionary2;
LinkedList<ConsumableManager.DKKBNGODEOM> linkedList = new LinkedList();
this.FLLFJEOONCC = linkedList;
base..ctor();
}
// Token: 0x04009B45 RID: 39749
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009B45")]
[SerializeField]
private ConsumableTool defaultConsumableToolPrefab;
// Token: 0x04009B46 RID: 39750
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009B46")]
[SerializeField]
private ConsumableCollectionRuntimeConfig consumableCollection;
// Token: 0x04009B4A RID: 39754
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009B4A")]
private Dictionary<string, ConsumableInfo> LPPDCFEJBGA;
// Token: 0x04009B4B RID: 39755
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009B4B")]
private Dictionary<string, ConsumableItem> NJMOJCFCNJI;
// Token: 0x04009B4C RID: 39756
[Token(Token = "0x4009B4C")]
private const float OLCOPMKCBDB = 60f;
// Token: 0x04009B4D RID: 39757
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x4009B4D")]
private LinkedList<ConsumableManager.DKKBNGODEOM> FLLFJEOONCC;
// Token: 0x02002134 RID: 8500
[Token(Token = "0x2002134")]
public enum FFCJLEMFFAJ
{
// Token: 0x04009B4F RID: 39759
[Token(Token = "0x4009B4F")]
Invalid = -1,
// Token: 0x04009B50 RID: 39760
[Token(Token = "0x4009B50")]
Usage,
// Token: 0x04009B51 RID: 39761
[Token(Token = "0x4009B51")]
Time,
// Token: 0x04009B52 RID: 39762
[Token(Token = "0x4009B52")]
RealWorldTime
}
// Token: 0x02002135 RID: 8501
[Token(Token = "0x2002135")]
public enum KIDKMAOBOIG
{
// Token: 0x04009B54 RID: 39764
[Token(Token = "0x4009B54")]
Invalid = -1,
// Token: 0x04009B55 RID: 39765
[Token(Token = "0x4009B55")]
CameraFilter,
// Token: 0x04009B56 RID: 39766
[Token(Token = "0x4009B56")]
Potion_Head = 2,
// Token: 0x04009B57 RID: 39767
[Token(Token = "0x4009B57")]
Potion_Hand,
// Token: 0x04009B58 RID: 39768
[Token(Token = "0x4009B58")]
Food,
// Token: 0x04009B59 RID: 39769
[Token(Token = "0x4009B59")]
KO_Customization,
// Token: 0x04009B5A RID: 39770
[Token(Token = "0x4009B5A")]
Potion_HairDye,
// Token: 0x04009B5B RID: 39771
[Token(Token = "0x4009B5B")]
Coupon
}
// Token: 0x02002136 RID: 8502
[Token(Token = "0x2002136")]
private struct DKKBNGODEOM
{
// Token: 0x04009B5C RID: 39772
[global::Cpp2IlInjected.FieldOffset(Offset = "0x0")]
[Token(Token = "0x4009B5C")]
public OOCCCGPICOG BAJGNABECMN;
// Token: 0x04009B5D RID: 39773
[global::Cpp2IlInjected.FieldOffset(Offset = "0x8")]
[Token(Token = "0x4009B5D")]
public float HPIOFBILNMC;
}
// Token: 0x0200213A RID: 8506
[Token(Token = "0x200213A")]
[CompilerGenerated]
private sealed class JHIJHOMNCKN
{
// Token: 0x0600EAB9 RID: 60089 RVA: 0x0037A434 File Offset: 0x00378634
[Token(Token = "0x600EAB9")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public JHIJHOMNCKN()
{
}
// Token: 0x0600EABA RID: 60090 RVA: 0x0037A448 File Offset: 0x00378648
[Token(Token = "0x600EABA")]
[Address(RVA = "0x17B0A30", Offset = "0x17AF430", VA = "0x1817B0A30")]
internal void <DownloadPurchasedConsumables>b__0(string error, List<OOCCCGPICOG> selections)
{
if (selections != 0)
{
this.<>4__this.<KBFCNIPECEB>k__BackingField.AddRange(selections);
List<OOCCCGPICOG> <KBFCNIPECEB>k__BackingField = this.<>4__this.<KBFCNIPECEB>k__BackingField;
Comparison<OOCCCGPICOG> <>9__32_ = ConsumableManager.<>c.<>9__32_1;
if (<>9__32_ == 0)
{
ConsumableManager.<>c.<>9__32_1 = delegate(OOCCCGPICOG x, OOCCCGPICOG y)
{
DateTime <IPLPEOMCNPJ>k__BackingField = x.<IPLPEOMCNPJ>k__BackingField;
DateTime <IPLPEOMCNPJ>k__BackingField2 = y.<IPLPEOMCNPJ>k__BackingField;
return DateTime.Compare(<IPLPEOMCNPJ>k__BackingField, <IPLPEOMCNPJ>k__BackingField2);
};
}
<KBFCNIPECEB>k__BackingField.Sort(<>9__32_);
}
BPHGKAEDBPE.HADGLCCBNHM(this.callback, error);
}
// Token: 0x04009B78 RID: 39800
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B78")]
public ConsumableManager <>4__this;
// Token: 0x04009B79 RID: 39801
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B79")]
public BPHGKAEDBPE.CBEOHBCIPEA callback;
}
// Token: 0x0200213B RID: 8507
[Token(Token = "0x200213B")]
[CompilerGenerated]
private sealed class DOANPNOOBAD
{
// Token: 0x0600EABB RID: 60091 RVA: 0x0037A4B0 File Offset: 0x003786B0
[Token(Token = "0x600EABB")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public DOANPNOOBAD()
{
}
// Token: 0x0600EABC RID: 60092 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EABC")]
[Address(RVA = "0x179BD90", Offset = "0x179A790", VA = "0x18179BD90")]
internal bool <RemoveFromActiveTimedConsumableQueue>b__0(ConsumableManager.DKKBNGODEOM c)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04009B7A RID: 39802
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B7A")]
public OOCCCGPICOG consumable;
}
// Token: 0x0200213D RID: 8509
[Token(Token = "0x200213D")]
[CompilerGenerated]
private sealed class LLEOPOOCNCG
{
// Token: 0x0600EAC3 RID: 60099 RVA: 0x0037A600 File Offset: 0x00378800
[Token(Token = "0x600EAC3")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public LLEOPOOCNCG()
{
}
// Token: 0x0600EAC4 RID: 60100 RVA: 0x0037A614 File Offset: 0x00378814
[Token(Token = "0x600EAC4")]
[Address(RVA = "0x17B0BB0", Offset = "0x17AF5B0", VA = "0x1817B0BB0")]
internal List<OOCCCGPICOG> <GetAllTransferableConsumableTypesByCreatorId>b__2(List<OOCCCGPICOG> consumables)
{
Dictionary<int, List<OOCCCGPICOG>> <MPOGFALEMEO>k__BackingField = this.<>4__this.<MPOGFALEMEO>k__BackingField;
int num = this.creatorId;
<MPOGFALEMEO>k__BackingField.Add(num, consumables);
Func<OOCCCGPICOG, string> <>9__43_ = ConsumableManager.<>c.<>9__43_3;
if (<>9__43_ == 0)
{
ConsumableManager.<>c.<>9__43_3 = (OOCCCGPICOG c) => c.<CNJALCEBPMC>k__BackingField;
}
IEnumerable enumerable = Enumerable.GroupBy<OOCCCGPICOG, string>(consumables, <>9__43_);
Func<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG> func;
if (ConsumableManager.<>c.<>9__43_4 == 0)
{
func = (IGrouping<string, OOCCCGPICOG> c) => Enumerable.Last<OOCCCGPICOG>(c);
ConsumableManager.<>c.<>9__43_4 = func;
}
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Select<IGrouping<string, OOCCCGPICOG>, OOCCCGPICOG>(enumerable, func));
}
// Token: 0x04009B7F RID: 39807
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B7F")]
public ConsumableManager <>4__this;
// Token: 0x04009B80 RID: 39808
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B80")]
public int creatorId;
}
// Token: 0x0200213E RID: 8510
[Token(Token = "0x200213E")]
[CompilerGenerated]
private sealed class BFCGKOAPJEC
{
// Token: 0x0600EAC5 RID: 60101 RVA: 0x0037A698 File Offset: 0x00378898
[Token(Token = "0x600EAC5")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BFCGKOAPJEC()
{
}
// Token: 0x0600EAC6 RID: 60102 RVA: 0x0037A6AC File Offset: 0x003788AC
[Token(Token = "0x600EAC6")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <GetTransferableConsumablesOfTypeByCreatorId>b__0(OOCCCGPICOG c)
{
string text = this.consumableType;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, text);
}
// Token: 0x0600EAC7 RID: 60103 RVA: 0x0037A6D4 File Offset: 0x003788D4
[Token(Token = "0x600EAC7")]
[Address(RVA = "0x1798B80", Offset = "0x1797580", VA = "0x181798B80")]
internal List<OOCCCGPICOG> <GetTransferableConsumablesOfTypeByCreatorId>b__1(List<OOCCCGPICOG> consumables)
{
Dictionary<int, List<OOCCCGPICOG>> <MPOGFALEMEO>k__BackingField = this.<>4__this.<MPOGFALEMEO>k__BackingField;
int num = this.creatorId;
<MPOGFALEMEO>k__BackingField.Add(num, consumables);
Func<OOCCCGPICOG, bool> func = this.<>9__2;
if (func == 0)
{
Func<OOCCCGPICOG, bool> func2 = delegate(OOCCCGPICOG c)
{
string text = this.consumableType;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, text);
};
this.<>9__2 = func2;
}
return Enumerable.ToList<OOCCCGPICOG>(Enumerable.Where<OOCCCGPICOG>(consumables, func));
}
// Token: 0x0600EAC8 RID: 60104 RVA: 0x0037A730 File Offset: 0x00378930
[Token(Token = "0x600EAC8")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <GetTransferableConsumablesOfTypeByCreatorId>b__2(OOCCCGPICOG c)
{
string text = this.consumableType;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, text);
}
// Token: 0x04009B81 RID: 39809
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B81")]
public string consumableType;
// Token: 0x04009B82 RID: 39810
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B82")]
public ConsumableManager <>4__this;
// Token: 0x04009B83 RID: 39811
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009B83")]
public int creatorId;
// Token: 0x04009B84 RID: 39812
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009B84")]
public Func<OOCCCGPICOG, bool> <>9__2;
}
// Token: 0x0200213F RID: 8511
[Token(Token = "0x200213F")]
[CompilerGenerated]
private sealed class OILBDNFLMKD
{
// Token: 0x0600EAC9 RID: 60105 RVA: 0x0037A758 File Offset: 0x00378958
[Token(Token = "0x600EAC9")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public OILBDNFLMKD()
{
}
// Token: 0x0600EACA RID: 60106 RVA: 0x0037A76C File Offset: 0x0037896C
[Token(Token = "0x600EACA")]
[Address(RVA = "0x17B0D90", Offset = "0x17AF790", VA = "0x1817B0D90")]
internal bool <GetLatestNonActiveNonTransferableConsumableByType>b__0(OOCCCGPICOG pc)
{
string text = this.consumableType;
bool flag = string.Equals(pc.<CNJALCEBPMC>k__BackingField, text);
if (!flag)
{
return flag;
}
return !pc.<OLCLLOHLPEH>k__BackingField;
}
// Token: 0x04009B85 RID: 39813
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B85")]
public string consumableType;
}
// Token: 0x02002140 RID: 8512
[Token(Token = "0x2002140")]
[CompilerGenerated]
private sealed class BMPAPIDNKAC
{
// Token: 0x0600EACB RID: 60107 RVA: 0x0037A7A4 File Offset: 0x003789A4
[Token(Token = "0x600EACB")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BMPAPIDNKAC()
{
}
// Token: 0x0600EACC RID: 60108 RVA: 0x0037A7B8 File Offset: 0x003789B8
[Token(Token = "0x600EACC")]
[Address(RVA = "0x1798C50", Offset = "0x1797650", VA = "0x181798C50")]
internal bool <GetRemainingCount>b__0(ConsumableManager.DKKBNGODEOM ct)
{
long <JPAOOKPLEDB>k__BackingField = this.consumable.<JPAOOKPLEDB>k__BackingField;
return "{il2cpp field on {'constant4' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x10}" == <JPAOOKPLEDB>k__BackingField;
}
// Token: 0x04009B86 RID: 39814
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B86")]
public OOCCCGPICOG consumable;
}
// Token: 0x02002141 RID: 8513
[Token(Token = "0x2002141")]
[CompilerGenerated]
private sealed class ODJCBMEABHI
{
// Token: 0x0600EACD RID: 60109 RVA: 0x0037A7E0 File Offset: 0x003789E0
[Token(Token = "0x600EACD")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ODJCBMEABHI()
{
}
// Token: 0x0600EACE RID: 60110 RVA: 0x0037A7F4 File Offset: 0x003789F4
[Token(Token = "0x600EACE")]
[Address(RVA = "0x74DC80", Offset = "0x74C680", VA = "0x18074DC80")]
internal bool <GetConsumableById>b__0(OOCCCGPICOG pc)
{
long num = this.consumableId;
return pc.<JPAOOKPLEDB>k__BackingField == num;
}
// Token: 0x04009B87 RID: 39815
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B87")]
public long consumableId;
}
// Token: 0x02002142 RID: 8514
[Token(Token = "0x2002142")]
[CompilerGenerated]
private sealed class DKELPJNFIDO
{
// Token: 0x0600EACF RID: 60111 RVA: 0x0037A818 File Offset: 0x00378A18
[Token(Token = "0x600EACF")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public DKELPJNFIDO()
{
}
// Token: 0x0600EAD0 RID: 60112 RVA: 0x0037A82C File Offset: 0x00378A2C
[Token(Token = "0x600EAD0")]
[Address(RVA = "0x179BD70", Offset = "0x179A770", VA = "0x18179BD70")]
internal bool <GetLatestPurchasedNonTransferableConsumablesInCategory>b__0(OOCCCGPICOG c)
{
ConsumableManager.KIDKMAOBOIG kidkmaoboig = this.category;
return c.<MPBLJOGNHKP>k__BackingField == kidkmaoboig;
}
// Token: 0x04009B88 RID: 39816
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B88")]
public ConsumableManager.KIDKMAOBOIG category;
}
// Token: 0x02002143 RID: 8515
[Token(Token = "0x2002143")]
[CompilerGenerated]
private sealed class PLNPAHNMEIH
{
// Token: 0x0600EAD1 RID: 60113 RVA: 0x0037A850 File Offset: 0x00378A50
[Token(Token = "0x600EAD1")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public PLNPAHNMEIH()
{
}
// Token: 0x0600EAD2 RID: 60114 RVA: 0x0037A864 File Offset: 0x00378A64
[Token(Token = "0x600EAD2")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <GetAllPurchasedNonTransferableConsumablesOfType>b__0(OOCCCGPICOG c)
{
string text = this.type;
return string.Equals(c.<CNJALCEBPMC>k__BackingField, text);
}
// Token: 0x04009B89 RID: 39817
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B89")]
public string type;
}
// Token: 0x02002144 RID: 8516
[Token(Token = "0x2002144")]
[CompilerGenerated]
private sealed class OKPLGGHOBPB
{
// Token: 0x0600EAD3 RID: 60115 RVA: 0x0037A88C File Offset: 0x00378A8C
[Token(Token = "0x600EAD3")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public OKPLGGHOBPB()
{
}
// Token: 0x0600EAD4 RID: 60116 RVA: 0x0037A8A0 File Offset: 0x00378AA0
[Token(Token = "0x600EAD4")]
[Address(RVA = "0x74DC80", Offset = "0x74C680", VA = "0x18074DC80")]
internal bool <Consumables_OnConsumableRemoved>b__0(OOCCCGPICOG c)
{
long num = this.consumableId;
return c.<JPAOOKPLEDB>k__BackingField == num;
}
// Token: 0x0600EAD5 RID: 60117 RVA: 0x0037A8C4 File Offset: 0x00378AC4
[Token(Token = "0x600EAD5")]
[Address(RVA = "0x17B0DD0", Offset = "0x17AF7D0", VA = "0x1817B0DD0")]
internal bool <Consumables_OnConsumableRemoved>b__1(OOCCCGPICOG pc)
{
string <CNJALCEBPMC>k__BackingField = pc.<CNJALCEBPMC>k__BackingField;
string <CNJALCEBPMC>k__BackingField2 = this.consumable.<CNJALCEBPMC>k__BackingField;
return string.Equals(<CNJALCEBPMC>k__BackingField, <CNJALCEBPMC>k__BackingField2);
}
// Token: 0x04009B8A RID: 39818
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B8A")]
public long consumableId;
// Token: 0x04009B8B RID: 39819
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009B8B")]
public OOCCCGPICOG consumable;
}
}
}
@@ -0,0 +1,230 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002145 RID: 8517
[Token(Token = "0x2002145")]
[StructLayout(3)]
public class ConsumableSpawnedContainerToolPiece : ConsumableSpawnedToolPiece
{
// Token: 0x0600EAD6 RID: 60118 RVA: 0x0037A8F4 File Offset: 0x00378AF4
[Token(Token = "0x600EAD6")]
[Address(RVA = "0x1798F60", Offset = "0x1797960", VA = "0x181798F60", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.tool.DisablePickup(this);
float time = Time.time;
this.JLMJPAABPEA = time;
Player player = base.owner.GPOMCJICJIH();
int num = 0;
if (player != num)
{
string playerName = base.owner.GPOMCJICJIH().KONALLBMCGK;
this.CJKJPAAIKNI = playerName;
return;
}
this.CJKJPAAIKNI = "Owner";
}
// Token: 0x0600EAD7 RID: 60119 RVA: 0x0037A968 File Offset: 0x00378B68
[Token(Token = "0x600EAD7")]
[Address(RVA = "0x17991D0", Offset = "0x1797BD0", VA = "0x1817991D0", Slot = "14")]
protected override void OnDestroy()
{
for (;;)
{
int num = 0;
List<Tool> cpeekaiahak = this.CPEEKAIAHAK;
Player player = base.owner.GPOMCJICJIH();
int num2 = 0;
if (!(player == num2))
{
Transform transform = base.transform;
Vector3 up = Vector3.up;
}
string text = this.CJKJPAAIKNI + " has left the room";
Transform transform2 = base.transform;
Vector3 up2 = Vector3.up;
List<Tool> cpeekaiahak2 = this.CPEEKAIAHAK;
List.Enumerator enumerator;
if (enumerator != 0)
{
Action<Tool> action = new Action(this.DNOLJKCKLJO);
Action<Tool> action2 = new Action(this.LBLMBNMBCMI);
}
int num3 = 0;
if (num3 == -1)
{
goto IL_DC;
}
ConsumableInfo mddmbjdbogd = this.MDDMBJDBOGD;
float time = Time.time;
int size = this.CPEEKAIAHAK._size;
int size2 = this.DNMFCBOFFLM._size;
List<Tool> gdlnphnblhj = this.GDLNPHNBLHJ;
List.Enumerator enumerator2;
if (enumerator2 != 0)
{
bool flag;
while (!flag)
{
}
int num4 = 0;
GameObject gameObject;
if (gameObject != num4)
{
GameObject gameObject2;
PhotonNetwork.GetOwnershipAndDestroy(gameObject2);
goto IL_DC;
}
continue;
}
IL_E3:
num3++;
if (num3 != -1)
{
}
if (num == 0)
{
break;
}
continue;
IL_DC:
if (num == 0)
{
goto IL_E3;
}
goto IL_169;
}
GameManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num5 = 0;
if (instance != num5)
{
GameManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
MIEIBBPMDMP.GGPHEKCPPMP ggphekcppmp = new MIEIBBPMDMP.GGPHEKCPPMP(base.OENCFJHENPB);
instance2.KMKCFILCLNO -= ggphekcppmp;
}
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action3 = new Action(base.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent - action3;
tool.PostPickupEvent = actionEvent;
base.OnDestroy();
return;
IL_169:
throw new NullReferenceException();
}
// Token: 0x0600EAD8 RID: 60120 RVA: 0x0037AAE4 File Offset: 0x00378CE4
[Token(Token = "0x600EAD8")]
[Address(RVA = "0x17999C0", Offset = "0x17983C0", VA = "0x1817999C0")]
public void SetNonHolderPieces(List<Tool> MAMMMHBMAPG, ConsumableInfo DBDDKLHPNNA)
{
int num;
do
{
num = 0;
this.MDDMBJDBOGD = DBDDKLHPNNA;
List.Enumerator enumerator;
if (enumerator != 0)
{
int num2 = 0;
ConsumableSpawnedToolPiece consumableSpawnedToolPiece;
if (!(consumableSpawnedToolPiece != num2))
{
List<Tool> gdlnphnblhj = this.GDLNPHNBLHJ;
}
List<Tool> cpeekaiahak = this.CPEEKAIAHAK;
Action<Tool> action = new Action(this.DNOLJKCKLJO);
Action<Tool> action2 = new Action(this.LBLMBNMBCMI);
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600EAD9 RID: 60121 RVA: 0x0037AB50 File Offset: 0x00378D50
[Token(Token = "0x600EAD9")]
[Address(RVA = "0x1799050", Offset = "0x1797A50", VA = "0x181799050")]
private void DNOLJKCKLJO(Tool DOOFPDFKCMK)
{
Player <OKDFEPHLKCB>k__BackingField = DOOFPDFKCMK.<OKDFEPHLKCB>k__BackingField;
int num = 0;
if (<OKDFEPHLKCB>k__BackingField != num)
{
Player <OKDFEPHLKCB>k__BackingField2 = DOOFPDFKCMK.<OKDFEPHLKCB>k__BackingField;
List<int> dnmfcbofflm = this.DNMFCBOFFLM;
int <FMMJEJMBDPL>k__BackingField = <OKDFEPHLKCB>k__BackingField2.<FMMJEJMBDPL>k__BackingField;
if (!dnmfcbofflm.Contains(<FMMJEJMBDPL>k__BackingField))
{
Player <OKDFEPHLKCB>k__BackingField3 = DOOFPDFKCMK.<OKDFEPHLKCB>k__BackingField;
List<int> dnmfcbofflm2 = this.DNMFCBOFFLM;
int <FMMJEJMBDPL>k__BackingField2 = <OKDFEPHLKCB>k__BackingField3.<FMMJEJMBDPL>k__BackingField;
dnmfcbofflm2.Add(<FMMJEJMBDPL>k__BackingField2);
}
}
}
// Token: 0x0600EADA RID: 60122 RVA: 0x0037ABBC File Offset: 0x00378DBC
[Token(Token = "0x600EADA")]
[Address(RVA = "0x1799130", Offset = "0x1797B30", VA = "0x181799130")]
private void LBLMBNMBCMI(Tool DOOFPDFKCMK)
{
bool flag = this.CPEEKAIAHAK.Remove(DOOFPDFKCMK);
List<Tool> cpeekaiahak = this.CPEEKAIAHAK;
PhotonNetwork.GetOwnershipAndDestroy(base.gameObject);
}
// Token: 0x0600EADB RID: 60123 RVA: 0x0037ABF0 File Offset: 0x00378DF0
[Token(Token = "0x600EADB")]
[Address(RVA = "0x1799C50", Offset = "0x1798650", VA = "0x181799C50")]
public ConsumableSpawnedContainerToolPiece()
{
List<Tool> list = new List();
this.CPEEKAIAHAK = list;
List<Tool> list2 = new List();
this.GDLNPHNBLHJ = list2;
List<int> list3 = new List();
this.DNMFCBOFFLM = list3;
base..ctor();
}
// Token: 0x04009B8C RID: 39820
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009B8C")]
private List<Tool> CPEEKAIAHAK;
// Token: 0x04009B8D RID: 39821
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009B8D")]
private List<Tool> GDLNPHNBLHJ;
// Token: 0x04009B8E RID: 39822
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009B8E")]
private List<int> DNMFCBOFFLM;
// Token: 0x04009B8F RID: 39823
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009B8F")]
private float JLMJPAABPEA;
// Token: 0x04009B90 RID: 39824
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4009B90")]
private ConsumableInfo MDDMBJDBOGD;
// Token: 0x04009B91 RID: 39825
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009B91")]
private string CJKJPAAIKNI;
}
}
@@ -0,0 +1,100 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Tools;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002146 RID: 8518
[Token(Token = "0x2002146")]
[StructLayout(3)]
public class ConsumableSpawnedToolPiece : MonoBehaviourPun
{
// Token: 0x0600EADC RID: 60124 RVA: 0x0037AC2C File Offset: 0x00378E2C
[Token(Token = "0x600EADC")]
[Address(RVA = "0x1799D00", Offset = "0x1798700", VA = "0x181799D00", Slot = "13")]
protected override void Awake()
{
base..ctor();
this.tool.rigidbodyEx.AddKinematic(this);
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool.PostPickupEvent = actionEvent;
this.tool.toolEntity.AddMainToolBrokenBehavior((ToolEntity.PACMMGFMOEN)((uint)2), this, 999);
GameManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num = 0;
if (instance != num)
{
GameManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
MIEIBBPMDMP.GGPHEKCPPMP ggphekcppmp = new MIEIBBPMDMP.GGPHEKCPPMP(this.OENCFJHENPB);
instance2.KMKCFILCLNO += ggphekcppmp;
}
}
// Token: 0x0600EADD RID: 60125 RVA: 0x0037ACCC File Offset: 0x00378ECC
[Token(Token = "0x600EADD")]
[Address(RVA = "0x1799ED0", Offset = "0x17988D0", VA = "0x181799ED0")]
private void MNCLFHBBPHB(Tool NBHJPDBHDHB)
{
this.tool.rigidbodyEx.RemoveKinematic(this);
}
// Token: 0x0600EADE RID: 60126 RVA: 0x0037ACF0 File Offset: 0x00378EF0
[Token(Token = "0x600EADE")]
[Address(RVA = "0x1799F80", Offset = "0x1798980", VA = "0x181799F80", Slot = "14")]
protected override void OnDestroy()
{
GameManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num = 0;
if (instance != num)
{
GameManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
MIEIBBPMDMP.GGPHEKCPPMP ggphekcppmp = new MIEIBBPMDMP.GGPHEKCPPMP(this.OENCFJHENPB);
instance2.KMKCFILCLNO -= ggphekcppmp;
}
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent - action;
tool.PostPickupEvent = actionEvent;
base.OnDestroy();
}
// Token: 0x0600EADF RID: 60127 RVA: 0x0037AD68 File Offset: 0x00378F68
[Token(Token = "0x600EADF")]
[Address(RVA = "0x179A0F0", Offset = "0x1798AF0", VA = "0x18179A0F0")]
private void OnDisable()
{
PhotonNetwork.GetOwnershipAndDestroy(base.gameObject);
}
// Token: 0x0600EAE0 RID: 60128 RVA: 0x0037AD84 File Offset: 0x00378F84
[Token(Token = "0x600EAE0")]
[Address(RVA = "0x1799F00", Offset = "0x1798900", VA = "0x181799F00")]
private void OENCFJHENPB(ushort LLEHBLJHJHM, ushort CPMPEJFMDED, ushort PLGFJEILFGP, ushort OEAPMLMHLLF)
{
if (base.hasAuthority)
{
PhotonNetwork.Destroy(base.gameObject);
}
}
// Token: 0x0600EAE1 RID: 60129 RVA: 0x0037ADA8 File Offset: 0x00378FA8
[Token(Token = "0x600EAE1")]
[Address(RVA = "0x6A4030", Offset = "0x6A2A30", VA = "0x1806A4030")]
public ConsumableSpawnedToolPiece()
{
}
// Token: 0x04009B92 RID: 39826
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B92")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected Tool tool;
}
}
@@ -0,0 +1,442 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Tools;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002147 RID: 8519
[Token(Token = "0x2002147")]
[StructLayout(3)]
public abstract class ConsumableTool : MonoBehaviourPun
{
// Token: 0x17002734 RID: 10036
// (get) Token: 0x0600EAE2 RID: 60130 RVA: 0x0037ADBC File Offset: 0x00378FBC
// (set) Token: 0x0600EAE3 RID: 60131 RVA: 0x0037ADD0 File Offset: 0x00378FD0
[Token(Token = "0x17002734")]
public PlayerSpawnedEquipment.IILDIBHEIDO GDKPKFJGOFO
{
[Token(Token = "0x600EAE2")]
[Address(RVA = "0x4F8170", Offset = "0x4F6B70", VA = "0x1804F8170")]
get;
[Token(Token = "0x600EAE3")]
[Address(RVA = "0x4F8620", Offset = "0x4F7020", VA = "0x1804F8620")]
private set;
}
// Token: 0x17002735 RID: 10037
// (get) Token: 0x0600EAE4 RID: 60132 RVA: 0x0037ADE4 File Offset: 0x00378FE4
// (set) Token: 0x0600EAE5 RID: 60133 RVA: 0x0037ADF8 File Offset: 0x00378FF8
[Token(Token = "0x17002735")]
public bool DKLGNFGONEM
{
[Token(Token = "0x600EAE4")]
[Address(RVA = "0x9EF5F0", Offset = "0x9EDFF0", VA = "0x1809EF5F0")]
get;
[Token(Token = "0x600EAE5")]
[Address(RVA = "0x10D4C40", Offset = "0x10D3640", VA = "0x1810D4C40")]
private set;
}
// Token: 0x17002736 RID: 10038
// (get) Token: 0x0600EAE6 RID: 60134 RVA: 0x0037AE0C File Offset: 0x0037900C
// (set) Token: 0x0600EAE7 RID: 60135 RVA: 0x0037AE20 File Offset: 0x00379020
[Token(Token = "0x17002736")]
public OOCCCGPICOG PCCJOKHNIPL
{
[Token(Token = "0x600EAE6")]
[Address(RVA = "0x3EDE90", Offset = "0x3EC890", VA = "0x1803EDE90")]
get
{
return this.CKNFEDPPDOO;
}
[Token(Token = "0x600EAE7")]
[Address(RVA = "0x179AEE0", Offset = "0x17998E0", VA = "0x18179AEE0")]
set
{
Tool tool = this.tool;
this.CKNFEDPPDOO = value;
int num = 0;
bool flag = OOCCCGPICOG.BDBLGMKABNK(value, num);
object bnmoddgeghn = this.BNMODDGEGHN;
tool.SetPickupEnabled(flag, bnmoddgeghn);
}
}
// Token: 0x17002737 RID: 10039
// (get) Token: 0x0600EAE8 RID: 60136 RVA: 0x0037AE5C File Offset: 0x0037905C
// (set) Token: 0x0600EAE9 RID: 60137 RVA: 0x0037AE70 File Offset: 0x00379070
[Token(Token = "0x17002737")]
protected ConsumableInfo MDDMBJDBOGD
{
[Token(Token = "0x600EAE8")]
[Address(RVA = "0x48F050", Offset = "0x48DA50", VA = "0x18048F050")]
get;
[Token(Token = "0x600EAE9")]
[Address(RVA = "0x52F860", Offset = "0x52E260", VA = "0x18052F860")]
set;
}
// Token: 0x0600EAEA RID: 60138 RVA: 0x0037AE84 File Offset: 0x00379084
[Token(Token = "0x600EAEA")]
[Address(RVA = "0x179A170", Offset = "0x1798B70", VA = "0x18179A170", Slot = "13")]
protected override void Awake()
{
ConsumableManager instance;
int num;
ulong num2;
do
{
base..ctor();
bool isLocal = base.photonView.isLocal;
Tool tool = this.tool;
this.<MHCDCIGJNNA>k__BackingField = isLocal;
if (tool.NDKHDFJHGPP || this.tool.InstantiationParameters == 0)
{
goto IL_8E;
}
Dictionary<string, object> instantiationParameters = this.tool.InstantiationParameters;
bool flag;
if (!flag)
{
goto IL_8E;
}
instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
num = 0;
}
while (num2 != (ulong)0L && num2 == (ulong)0L);
if (instance.TryGetConsumableInfo(num) != 0)
{
this.OnDestroy();
}
Dictionary<string, object> instantiationParameters2 = this.tool.InstantiationParameters;
bool flag2;
if (flag2)
{
ulong num4;
ulong num3 = num4;
this.<NAIDKNLBACJ>k__BackingField = (PlayerSpawnedEquipment.IILDIBHEIDO)num3;
}
IL_8E:
if (this.<ENJFOPBELFF>k__BackingField == (ulong)0L)
{
Debug.LogError("ConsumableItem is null, something is very wrong");
}
Tool tool2 = this.tool;
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool2.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action = new Action(this.FICCBKGGJOE);
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> actionEvent = postResetEvent + action;
tool2.PostResetEvent = actionEvent;
this.tool.toolEntity.AddMainToolBrokenBehavior((ToolEntity.PACMMGFMOEN)((uint)2), this, 999);
if (this.<MHCDCIGJNNA>k__BackingField)
{
ConsumableTool.HCIKBFLBMPH.Add(this);
}
Tool tool3 = this.tool;
object leckfkbfhgb = this.LECKFKBFHGB;
bool flag3 = this.<MHCDCIGJNNA>k__BackingField;
tool3.SetPickupEnabled(flag3, leckfkbfhgb);
Tool tool4 = this.tool;
Tool.HMMDPJMIHGJ hmmdpjmihgj = new Tool.HMMDPJMIHGJ(this.EPPFLONEOMA);
tool4.CustomAuthorityResetOnKillzoneBehavior = hmmdpjmihgj;
GameManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num5 = 0;
if (instance2 != num5)
{
GameManager instance3 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
MIEIBBPMDMP.GGPHEKCPPMP ggphekcppmp = new MIEIBBPMDMP.GGPHEKCPPMP(this.OENCFJHENPB);
instance3.KMKCFILCLNO += ggphekcppmp;
}
}
// Token: 0x0600EAEB RID: 60139 RVA: 0x0037B010 File Offset: 0x00379210
[Token(Token = "0x600EAEB")]
[Address(RVA = "0x179A5A0", Offset = "0x1798FA0", VA = "0x18179A5A0")]
private void FICCBKGGJOE(Tool NBHJPDBHDHB, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
if (base.hasOwnership)
{
PhotonNetwork.Destroy(base.gameObject);
return;
}
}
// Token: 0x0600EAEC RID: 60140 RVA: 0x0037B034 File Offset: 0x00379234
[Token(Token = "0x600EAEC")]
[Address(RVA = "0x179AC20", Offset = "0x1799620", VA = "0x18179AC20")]
private void OENCFJHENPB(ushort LLEHBLJHJHM, ushort CPMPEJFMDED, ushort PLGFJEILFGP, ushort OEAPMLMHLLF)
{
if (base.hasAuthority)
{
PhotonNetwork.Destroy(base.gameObject);
}
}
// Token: 0x0600EAED RID: 60141 RVA: 0x0037B058 File Offset: 0x00379258
[Token(Token = "0x600EAED")]
[Address(RVA = "0x179ACA0", Offset = "0x17996A0", VA = "0x18179ACA0", Slot = "14")]
protected override void OnDestroy()
{
if (this.<MHCDCIGJNNA>k__BackingField)
{
bool flag = ConsumableTool.HCIKBFLBMPH.Remove(this);
}
GameManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
int num = 0;
if (instance != num)
{
GameManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
MIEIBBPMDMP.GGPHEKCPPMP ggphekcppmp = new MIEIBBPMDMP.GGPHEKCPPMP(this.OENCFJHENPB);
instance2.KMKCFILCLNO -= ggphekcppmp;
}
base.OnDestroy();
}
// Token: 0x0600EAEE RID: 60142 RVA: 0x0037B0B4 File Offset: 0x003792B4
[Token(Token = "0x600EAEE")]
[Address(RVA = "0x179A620", Offset = "0x1799020", VA = "0x18179A620", Slot = "15")]
protected virtual void FIENOGGFMIE(ConsumableInfo FNPFHJHDDAC)
{
for (;;)
{
this.<ENJFOPBELFF>k__BackingField = FNPFHJHDDAC;
if (!this.<MHCDCIGJNNA>k__BackingField)
{
return;
}
if (!this.tool.NDKHDFJHGPP && this.tool.InstantiationParameters != 0)
{
Dictionary<string, object> instantiationParameters = this.tool.InstantiationParameters;
bool flag;
if (flag)
{
break;
}
}
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
string consumableItemDesc = this.<ENJFOPBELFF>k__BackingField.ConsumableItemDesc;
OOCCCGPICOG latestNonActiveNonTransferableConsumableByType = instance.GetLatestNonActiveNonTransferableConsumableByType(consumableItemDesc);
Tool tool = this.tool;
int num = 0;
this.CKNFEDPPDOO = latestNonActiveNonTransferableConsumableByType;
bool flag2 = OOCCCGPICOG.BDBLGMKABNK(latestNonActiveNonTransferableConsumableByType, num);
object bnmoddgeghn = this.BNMODDGEGHN;
tool.SetPickupEnabled(flag2, bnmoddgeghn);
OOCCCGPICOG cknfedppdoo = this.CKNFEDPPDOO;
int num2 = 0;
if (OOCCCGPICOG.JGIMJGNAJHP(cknfedppdoo, num2))
{
goto Block_4;
}
}
ConsumableManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
ulong num4;
ulong num3 = num4;
OOCCCGPICOG consumableById = instance2.GetConsumableById((long)num3);
this.PCCJOKHNIPL = consumableById;
return;
Block_4:
ActionEvent<OOCCCGPICOG> kpcjmbnihhl = FOEHJBDMMBH.KPCJMBNIHHL;
Action<OOCCCGPICOG> action = new Action(this.LJNJNJPEHJI);
FOEHJBDMMBH.KPCJMBNIHHL = kpcjmbnihhl + action;
}
// Token: 0x0600EAEF RID: 60143 RVA: 0x0037B1AC File Offset: 0x003793AC
[Token(Token = "0x600EAEF")]
[Address(RVA = "0x179AAF0", Offset = "0x17994F0", VA = "0x18179AAF0")]
private void LJNJNJPEHJI(OOCCCGPICOG BAJGNABECMN)
{
string consumableItemDesc = this.<ENJFOPBELFF>k__BackingField.ConsumableItemDesc;
if (string.Equals(BAJGNABECMN.<CNJALCEBPMC>k__BackingField, consumableItemDesc))
{
Tool tool = this.tool;
int num = 0;
this.CKNFEDPPDOO = BAJGNABECMN;
bool flag = OOCCCGPICOG.BDBLGMKABNK(BAJGNABECMN, num);
object bnmoddgeghn = this.BNMODDGEGHN;
tool.SetPickupEnabled(flag, bnmoddgeghn);
ActionEvent<OOCCCGPICOG> kpcjmbnihhl = FOEHJBDMMBH.KPCJMBNIHHL;
Action<OOCCCGPICOG> action = new Action(this.LJNJNJPEHJI);
FOEHJBDMMBH.KPCJMBNIHHL = kpcjmbnihhl - action;
}
}
// Token: 0x0600EAF0 RID: 60144 RVA: 0x0037B228 File Offset: 0x00379428
[Token(Token = "0x600EAF0")]
[Address(RVA = "0x179A980", Offset = "0x1799380", VA = "0x18179A980")]
public static ConsumableTool FindConsumableTool(long ENJEOLBEALP)
{
List<ConsumableTool> hcikbflbmph = ConsumableTool.HCIKBFLBMPH;
Func<ConsumableTool, bool> func = delegate(ConsumableTool ct)
{
OOCCCGPICOG cknfedppdoo = ct.CKNFEDPPDOO;
int num = 0;
bool flag = OOCCCGPICOG.BDBLGMKABNK(cknfedppdoo, num);
if (!flag)
{
return flag;
}
OOCCCGPICOG cknfedppdoo2 = ct.CKNFEDPPDOO;
long id = ENJEOLBEALP;
return cknfedppdoo2.<JPAOOKPLEDB>k__BackingField == id;
};
return Enumerable.FirstOrDefault<ConsumableTool>(hcikbflbmph, func);
}
// Token: 0x0600EAF1 RID: 60145 RVA: 0x0037B264 File Offset: 0x00379464
[Token(Token = "0x600EAF1")]
[Address(RVA = "0x179A8A0", Offset = "0x17992A0", VA = "0x18179A8A0")]
public static ConsumableTool FindConsumableTool(ConsumableManager.KIDKMAOBOIG DJFBMCIDJNK)
{
List<ConsumableTool> hcikbflbmph = ConsumableTool.HCIKBFLBMPH;
Func<ConsumableTool, bool> func = delegate(ConsumableTool ct)
{
OOCCCGPICOG cknfedppdoo = ct.CKNFEDPPDOO;
int num = 0;
bool flag = OOCCCGPICOG.BDBLGMKABNK(cknfedppdoo, num);
if (!flag)
{
return flag;
}
OOCCCGPICOG cknfedppdoo2 = ct.CKNFEDPPDOO;
ConsumableManager.KIDKMAOBOIG category = DJFBMCIDJNK;
return cknfedppdoo2.<MPBLJOGNHKP>k__BackingField == category;
};
return Enumerable.FirstOrDefault<ConsumableTool>(hcikbflbmph, func);
}
// Token: 0x0600EAF2 RID: 60146 RVA: 0x0037B2A0 File Offset: 0x003794A0
[Token(Token = "0x600EAF2")]
[Address(RVA = "0x179AA60", Offset = "0x1799460", VA = "0x18179AA60")]
protected void LHBLHBEIFKA()
{
if (this.<MHCDCIGJNNA>k__BackingField)
{
NotificationManager instance = SingletonMonoBehaviour.Instance;
int num = 0;
IDisposable disposable = instance.Play(NotificationManager.IBIDFAOPIPC.Medium, "Added to your backpack!", 3f, num, num);
}
}
// Token: 0x0600EAF3 RID: 60147 RVA: 0x0037B2D8 File Offset: 0x003794D8
[Token(Token = "0x600EAF3")]
[Address(RVA = "0x4405A0", Offset = "0x43EFA0", VA = "0x1804405A0")]
private bool EPPFLONEOMA(Tool NBHJPDBHDHB, Killzone IKPBPBLJCOC)
{
return true;
}
// Token: 0x0600EAF4 RID: 60148 RVA: 0x0037B2E8 File Offset: 0x003794E8
[Token(Token = "0x600EAF4")]
[Address(RVA = "0x179AE60", Offset = "0x1799860", VA = "0x18179AE60")]
protected ConsumableTool()
{
object obj = new object();
this.BNMODDGEGHN = obj;
object obj2 = new object();
this.LECKFKBFHGB = obj2;
base..ctor();
}
// Token: 0x04009B93 RID: 39827
[Token(Token = "0x4009B93")]
private static List<ConsumableTool> HCIKBFLBMPH = new List();
// Token: 0x04009B94 RID: 39828
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B94")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected Tool tool;
// Token: 0x04009B95 RID: 39829
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009B95")]
private object BNMODDGEGHN;
// Token: 0x04009B96 RID: 39830
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009B96")]
private object LECKFKBFHGB;
// Token: 0x04009B99 RID: 39833
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009B99")]
protected OOCCCGPICOG CKNFEDPPDOO;
// Token: 0x02002148 RID: 8520
[Token(Token = "0x2002148")]
[CompilerGenerated]
private sealed class AJIFIAHMIEK
{
// Token: 0x0600EAF6 RID: 60150 RVA: 0x0037B330 File Offset: 0x00379530
[Token(Token = "0x600EAF6")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public AJIFIAHMIEK()
{
}
// Token: 0x0600EAF7 RID: 60151 RVA: 0x0037B344 File Offset: 0x00379544
[Token(Token = "0x600EAF7")]
[Address(RVA = "0x1798730", Offset = "0x1797130", VA = "0x181798730")]
internal bool <FindConsumableTool>b__0(ConsumableTool ct)
{
OOCCCGPICOG cknfedppdoo = ct.CKNFEDPPDOO;
int num = 0;
bool flag = OOCCCGPICOG.BDBLGMKABNK(cknfedppdoo, num);
if (!flag)
{
return flag;
}
OOCCCGPICOG cknfedppdoo2 = ct.CKNFEDPPDOO;
long num2 = this.id;
return cknfedppdoo2.<JPAOOKPLEDB>k__BackingField == num2;
}
// Token: 0x04009B9B RID: 39835
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B9B")]
public long id;
}
// Token: 0x02002149 RID: 8521
[Token(Token = "0x2002149")]
[CompilerGenerated]
private sealed class DFGDNDPNCJE
{
// Token: 0x0600EAF8 RID: 60152 RVA: 0x0037B388 File Offset: 0x00379588
[Token(Token = "0x600EAF8")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public DFGDNDPNCJE()
{
}
// Token: 0x0600EAF9 RID: 60153 RVA: 0x0037B39C File Offset: 0x0037959C
[Token(Token = "0x600EAF9")]
[Address(RVA = "0x179BD10", Offset = "0x179A710", VA = "0x18179BD10")]
internal bool <FindConsumableTool>b__0(ConsumableTool ct)
{
OOCCCGPICOG cknfedppdoo = ct.CKNFEDPPDOO;
int num = 0;
bool flag = OOCCCGPICOG.BDBLGMKABNK(cknfedppdoo, num);
if (!flag)
{
return flag;
}
OOCCCGPICOG cknfedppdoo2 = ct.CKNFEDPPDOO;
ConsumableManager.KIDKMAOBOIG kidkmaoboig = this.category;
return cknfedppdoo2.<MPBLJOGNHKP>k__BackingField == kidkmaoboig;
}
// Token: 0x04009B9C RID: 39836
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009B9C")]
public ConsumableManager.KIDKMAOBOIG category;
}
}
}
@@ -0,0 +1,40 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace RecRoom.Consumable
{
// Token: 0x0200212D RID: 8493
[Token(Token = "0x200212D")]
[Serializable]
[StructLayout(3)]
public class CouponConsumableInfo : ConsumableInfo
{
// Token: 0x0600EA41 RID: 59969 RVA: 0x003786E0 File Offset: 0x003768E0
[Token(Token = "0x600EA41")]
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
public CouponConsumableInfo()
{
}
// Token: 0x04009B2B RID: 39723
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B2B")]
public CouponConsumableItem.OBDKMHPGAAN DiscountType;
// Token: 0x04009B2C RID: 39724
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
[Token(Token = "0x4009B2C")]
public DGOHCPBKOHD StorefrontType;
// Token: 0x04009B2D RID: 39725
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009B2D")]
public ACDKILABNNC CurrencyType;
// Token: 0x04009B2E RID: 39726
[global::Cpp2IlInjected.FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4009B2E")]
public int CouponValue;
}
}
@@ -0,0 +1,168 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x0200214A RID: 8522
[Token(Token = "0x200214A")]
[StructLayout(3)]
public class CouponConsumableItem : ConsumableItem
{
// Token: 0x17002738 RID: 10040
// (get) Token: 0x0600EAFA RID: 60154 RVA: 0x0037B3E0 File Offset: 0x003795E0
[Token(Token = "0x17002738")]
public CouponConsumableItem.OBDKMHPGAAN FEABCBEJONC
{
[Token(Token = "0x600EAFA")]
[Address(RVA = "0x4F8170", Offset = "0x4F6B70", VA = "0x1804F8170")]
get
{
return this.discountType;
}
}
// Token: 0x17002739 RID: 10041
// (get) Token: 0x0600EAFB RID: 60155 RVA: 0x0037B3F4 File Offset: 0x003795F4
[Token(Token = "0x17002739")]
public int DMLIOOCLKKP
{
[Token(Token = "0x600EAFB")]
[Address(RVA = "0x567EB0", Offset = "0x5668B0", VA = "0x180567EB0")]
get
{
return this.value;
}
}
// Token: 0x1700273A RID: 10042
// (get) Token: 0x0600EAFC RID: 60156 RVA: 0x0037B408 File Offset: 0x00379608
[Token(Token = "0x1700273A")]
public DGOHCPBKOHD GHOKCIMBEMM
{
[Token(Token = "0x600EAFC")]
[Address(RVA = "0x501240", Offset = "0x4FFC40", VA = "0x180501240")]
get
{
return this.storefrontType;
}
}
// Token: 0x1700273B RID: 10043
// (get) Token: 0x0600EAFD RID: 60157 RVA: 0x0037B41C File Offset: 0x0037961C
[Token(Token = "0x1700273B")]
public ACDKILABNNC IILDJGJNFIM
{
[Token(Token = "0x600EAFD")]
[Address(RVA = "0x567EA0", Offset = "0x5668A0", VA = "0x180567EA0")]
get
{
return this.currencyType;
}
}
// Token: 0x0600EAFE RID: 60158 RVA: 0x0037B430 File Offset: 0x00379630
[Token(Token = "0x600EAFE")]
[Address(RVA = "0x179AF30", Offset = "0x1799930", VA = "0x18179AF30")]
public int GetDiscountedPrice(int DENMLCGOKNK)
{
CouponConsumableItem.OBDKMHPGAAN obdkmhpgaan = this.discountType;
int num = this.value;
if (obdkmhpgaan == CouponConsumableItem.OBDKMHPGAAN.PERCENTAGE)
{
uint num2;
num2 -= (uint)num;
ulong num3;
num3 += num3;
}
if (obdkmhpgaan != CouponConsumableItem.OBDKMHPGAAN.EXACT_AMOUNT)
{
return DENMLCGOKNK;
}
int num4 = 0;
return Mathf.Clamp(DENMLCGOKNK, num4, DENMLCGOKNK);
}
// Token: 0x0600EAFF RID: 60159 RVA: 0x0037B46C File Offset: 0x0037966C
[Token(Token = "0x600EAFF")]
[Address(RVA = "0x179B000", Offset = "0x1799A00", VA = "0x18179B000")]
public static int GetDiscountedPrice(CouponConsumableItem.OBDKMHPGAAN CFHMIOODGOK, int AKBBOKJIHMM, int DENMLCGOKNK)
{
if (CFHMIOODGOK == CouponConsumableItem.OBDKMHPGAAN.PERCENTAGE)
{
uint num;
num -= (uint)AKBBOKJIHMM;
ulong num2;
num2 += num2;
}
if (CFHMIOODGOK != CouponConsumableItem.OBDKMHPGAAN.EXACT_AMOUNT)
{
return DENMLCGOKNK;
}
int num3 = 0;
return Mathf.Clamp(DENMLCGOKNK, num3, DENMLCGOKNK);
}
// Token: 0x0600EB00 RID: 60160 RVA: 0x0037B498 File Offset: 0x00379698
[Token(Token = "0x600EB00")]
[Address(RVA = "0x179B0D0", Offset = "0x1799AD0", VA = "0x18179B0D0", Slot = "5")]
public override ConsumableInfo ToConsumableInfo()
{
CouponConsumableInfo couponConsumableInfo = new CouponConsumableInfo();
CouponConsumableItem.OBDKMHPGAAN obdkmhpgaan = this.discountType;
couponConsumableInfo.DiscountType = obdkmhpgaan;
DGOHCPBKOHD dgohcpbkohd = this.storefrontType;
couponConsumableInfo.StorefrontType = dgohcpbkohd;
ACDKILABNNC acdkilabnnc = this.currencyType;
couponConsumableInfo.CurrencyType = acdkilabnnc;
int num = this.value;
couponConsumableInfo.CouponValue = num;
throw new NullReferenceException();
}
// Token: 0x0600EB01 RID: 60161 RVA: 0x0037B4EC File Offset: 0x003796EC
[Token(Token = "0x600EB01")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public CouponConsumableItem()
{
}
// Token: 0x04009B9D RID: 39837
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009B9D")]
[SerializeField]
[Header("Coupon Settings")]
protected CouponConsumableItem.OBDKMHPGAAN discountType;
// Token: 0x04009B9E RID: 39838
[global::Cpp2IlInjected.FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4009B9E")]
[SerializeField]
protected int value;
// Token: 0x04009B9F RID: 39839
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009B9F")]
[SerializeField]
protected DGOHCPBKOHD storefrontType;
// Token: 0x04009BA0 RID: 39840
[global::Cpp2IlInjected.FieldOffset(Offset = "0x64")]
[Token(Token = "0x4009BA0")]
[SerializeField]
protected ACDKILABNNC currencyType;
// Token: 0x0200214B RID: 8523
[Token(Token = "0x200214B")]
public enum OBDKMHPGAAN
{
// Token: 0x04009BA2 RID: 39842
[Token(Token = "0x4009BA2")]
PERCENTAGE = 1,
// Token: 0x04009BA3 RID: 39843
[Token(Token = "0x4009BA3")]
EXACT_AMOUNT
}
}
}
@@ -0,0 +1,149 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core;
using TMPro;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x0200214C RID: 8524
[Token(Token = "0x200214C")]
[StructLayout(3)]
public class CouponConsumableTool : ConsumableTool
{
// Token: 0x0600EB02 RID: 60162 RVA: 0x0037B500 File Offset: 0x00379700
[Token(Token = "0x600EB02")]
[Address(RVA = "0x179B180", Offset = "0x1799B80", VA = "0x18179B180", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool.PostPickupEvent = actionEvent;
}
// Token: 0x0600EB03 RID: 60163 RVA: 0x0037B544 File Offset: 0x00379744
[Token(Token = "0x600EB03")]
[Address(RVA = "0x179B570", Offset = "0x1799F70", VA = "0x18179B570", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent - action;
tool.PostPickupEvent = actionEvent;
if (!this.OEJHFGNAGFB)
{
OOCCCGPICOG cknfedppdoo = this.CKNFEDPPDOO;
if (actionEvent != 0)
{
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
OOCCCGPICOG cknfedppdoo2 = this.CKNFEDPPDOO;
instance.ActivateConsumable(cknfedppdoo2, true);
NotificationManager instance2 = SingletonMonoBehaviour.Instance;
int num = 0;
IDisposable disposable = instance2.Play(NotificationManager.IBIDFAOPIPC.Vital, "Coupon activated!", 3f, num, num);
}
}
base.OnDestroy();
}
// Token: 0x0600EB04 RID: 60164 RVA: 0x0037B5D8 File Offset: 0x003797D8
[Token(Token = "0x600EB04")]
[Address(RVA = "0x179B230", Offset = "0x1799C30", VA = "0x18179B230", Slot = "15")]
protected override void FIENOGGFMIE(ConsumableInfo BJAHKKNDHKN)
{
ConsumableInfo <ENJFOPBELFF>k__BackingField;
int num;
do
{
base.FIENOGGFMIE(BJAHKKNDHKN);
<ENJFOPBELFF>k__BackingField = this.<ENJFOPBELFF>k__BackingField;
if (<ENJFOPBELFF>k__BackingField == 0)
{
}
num = 0;
}
while (<ENJFOPBELFF>k__BackingField == 0);
TextMeshPro textMeshPro = this.mainText;
this.OICOOGLDGMH = <ENJFOPBELFF>k__BackingField;
textMeshPro.text = num;
TextMeshPro textMeshPro2;
TextMeshPro textMeshPro3;
if (this.OICOOGLDGMH.DiscountType == CouponConsumableItem.OBDKMHPGAAN.PERCENTAGE)
{
textMeshPro2 = this.mainText;
string text = textMeshPro2.m_text + "%";
textMeshPro2.text = text;
textMeshPro3 = this.subText;
textMeshPro3.text = "discount";
return;
}
while (textMeshPro3 != (ulong)2L)
{
}
CurrencyManager instance = SingletonMonoBehaviour.Instance;
string text2;
textMeshPro2.text = text2;
}
// Token: 0x0600EB05 RID: 60165 RVA: 0x0037B66C File Offset: 0x0037986C
[Token(Token = "0x600EB05")]
[Address(RVA = "0x179B450", Offset = "0x1799E50", VA = "0x18179B450")]
private void MNCLFHBBPHB(Tool NBHJPDBHDHB)
{
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
OOCCCGPICOG cknfedppdoo = this.CKNFEDPPDOO;
instance.ActivateConsumable(cknfedppdoo, true);
NotificationManager instance2 = SingletonMonoBehaviour.Instance;
int num = 0;
IDisposable disposable = instance2.Play(NotificationManager.IBIDFAOPIPC.Vital, "Coupon activated!", 3f, num, num);
this.OEJHFGNAGFB = true;
Action action = new Action(this.JBLHCCMIJGL);
ISchedulerPromise schedulerPromise = this.InvokeNextEndOfFrame(action);
}
// Token: 0x0600EB06 RID: 60166 RVA: 0x0037B6D0 File Offset: 0x003798D0
[Token(Token = "0x600EB06")]
[Address(RVA = "0x179B6F0", Offset = "0x179A0F0", VA = "0x18179B6F0")]
public CouponConsumableTool()
{
}
// Token: 0x0600EB07 RID: 60167 RVA: 0x0037B6E4 File Offset: 0x003798E4
[Token(Token = "0x600EB07")]
[Address(RVA = "0x179B3F0", Offset = "0x1799DF0", VA = "0x18179B3F0")]
[CompilerGenerated]
private void JBLHCCMIJGL()
{
PhotonNetwork.Destroy(base.gameObject);
}
// Token: 0x04009BA4 RID: 39844
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009BA4")]
[SerializeField]
private TextMeshPro mainText;
// Token: 0x04009BA5 RID: 39845
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BA5")]
[SerializeField]
private TextMeshPro subText;
// Token: 0x04009BA6 RID: 39846
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009BA6")]
private CouponConsumableInfo OICOOGLDGMH;
// Token: 0x04009BA7 RID: 39847
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x4009BA7")]
private bool OEJHFGNAGFB;
}
}
@@ -0,0 +1,78 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Core.Pools;
namespace RecRoom.Consumable
{
// Token: 0x0200214D RID: 8525
[Token(Token = "0x200214D")]
[StructLayout(3)]
public class CustomKOConsumableEffect : ConsumableEffect
{
// Token: 0x0600EB08 RID: 60168 RVA: 0x0037B6FC File Offset: 0x003798FC
[Token(Token = "0x600EB08")]
[Address(RVA = "0x179B750", Offset = "0x179A150", VA = "0x18179B750", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.<CEKFDODGELA>k__BackingField.Add((uint)5);
}
// Token: 0x0600EB09 RID: 60169 RVA: 0x0037B724 File Offset: 0x00379924
[Token(Token = "0x600EB09")]
[Address(RVA = "0x179B850", Offset = "0x179A250", VA = "0x18179B850")]
public CustomKOEffect GetInstanceOfActiveEffect(bool LOGKHBDLICB = true)
{
ConsumableItem consumableItem = base.PHILEFGALDN();
int num = 0;
if (consumableItem != num)
{
if (consumableItem == 0)
{
}
int num2 = 0;
int num3 = 0;
if (consumableItem != num3)
{
if (LOGKHBDLICB)
{
OOCCCGPICOG[] array = this.ACDOAOMJGBF.ToArray();
int length = array.Length;
if (num2 < length)
{
OOCCCGPICOG oocccgpicog = array[num2];
base.OCFKJPHFMCH(oocccgpicog, 1);
num2++;
}
}
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600EB0A RID: 60170 RVA: 0x0037B7A4 File Offset: 0x003799A4
[Token(Token = "0x600EB0A")]
[Address(RVA = "0x179B7B0", Offset = "0x179A1B0", VA = "0x18179B7B0")]
private void GJPJPHBFGNC()
{
OOCCCGPICOG[] array = this.ACDOAOMJGBF.ToArray();
int num = 0;
int length = array.Length;
if (num < length)
{
OOCCCGPICOG oocccgpicog = array[num];
base.OCFKJPHFMCH(oocccgpicog, 1);
num++;
}
}
// Token: 0x0600EB0B RID: 60171 RVA: 0x0037B7E4 File Offset: 0x003799E4
[Token(Token = "0x600EB0B")]
[Address(RVA = "0x179BA30", Offset = "0x179A430", VA = "0x18179BA30")]
public CustomKOConsumableEffect()
{
}
}
}
@@ -0,0 +1,40 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x0200214E RID: 8526
[Token(Token = "0x200214E")]
[StructLayout(3)]
public class CustomKOConsumableItem : ConsumableItem
{
// Token: 0x1700273C RID: 10044
// (get) Token: 0x0600EB0C RID: 60172 RVA: 0x0037B7F8 File Offset: 0x003799F8
[Token(Token = "0x1700273C")]
public CustomKOEffect BLGOJIKBOFB
{
[Token(Token = "0x600EB0C")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
return this.customKOPrefab;
}
}
// Token: 0x0600EB0D RID: 60173 RVA: 0x0037B80C File Offset: 0x00379A0C
[Token(Token = "0x600EB0D")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public CustomKOConsumableItem()
{
}
// Token: 0x04009BA8 RID: 39848
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009BA8")]
[SerializeField]
[Header("KO Customization")]
protected CustomKOEffect customKOPrefab;
}
}
@@ -0,0 +1,89 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x0200214F RID: 8527
[Token(Token = "0x200214F")]
[StructLayout(3)]
public class DefaultConsumableTool : ConsumableTool
{
// Token: 0x0600EB0E RID: 60174 RVA: 0x0037B820 File Offset: 0x00379A20
[Token(Token = "0x600EB0E")]
[Address(RVA = "0x179BDB0", Offset = "0x179A7B0", VA = "0x18179BDB0", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool.PostPickupEvent = actionEvent;
}
// Token: 0x0600EB0F RID: 60175 RVA: 0x0037B864 File Offset: 0x00379A64
[Token(Token = "0x600EB0F")]
[Address(RVA = "0x179C000", Offset = "0x179AA00", VA = "0x18179C000", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent - action;
tool.PostPickupEvent = actionEvent;
base.LHBLHBEIFKA();
base.OnDestroy();
}
// Token: 0x0600EB10 RID: 60176 RVA: 0x0037B8B0 File Offset: 0x00379AB0
[Token(Token = "0x600EB10")]
[Address(RVA = "0x179BE60", Offset = "0x179A860", VA = "0x18179BE60", Slot = "15")]
protected override void FIENOGGFMIE(ConsumableInfo FNPFHJHDDAC)
{
base.FIENOGGFMIE(FNPFHJHDDAC);
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
string consumableItemDesc = this.<ENJFOPBELFF>k__BackingField.ConsumableItemDesc;
Transform transform = instance.GetOrLoadConsumablePrefab(consumableItemDesc).visualRoot;
Transform transform2 = this.visualRoot;
int num = 0;
Transform transform3 = global::UnityEngine.Object.Instantiate<Transform>(transform, transform2, num != 0);
}
// Token: 0x0600EB11 RID: 60177 RVA: 0x0037B900 File Offset: 0x00379B00
[Token(Token = "0x600EB11")]
[Address(RVA = "0x179BF30", Offset = "0x179A930", VA = "0x18179BF30")]
private void MNCLFHBBPHB(Tool NBHJPDBHDHB)
{
base.LHBLHBEIFKA();
Action action = new Action(this.ONAALNFGKAF);
ISchedulerPromise schedulerPromise = this.InvokeNextEndOfFrame(action);
}
// Token: 0x0600EB12 RID: 60178 RVA: 0x0037B928 File Offset: 0x00379B28
[Token(Token = "0x600EB12")]
[Address(RVA = "0x179C0C0", Offset = "0x179AAC0", VA = "0x18179C0C0")]
public DefaultConsumableTool()
{
}
// Token: 0x0600EB13 RID: 60179 RVA: 0x0037B93C File Offset: 0x00379B3C
[Token(Token = "0x600EB13")]
[Address(RVA = "0x179BFA0", Offset = "0x179A9A0", VA = "0x18179BFA0")]
[CompilerGenerated]
private void ONAALNFGKAF()
{
PhotonNetwork.Destroy(base.gameObject);
}
// Token: 0x04009BA9 RID: 39849
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009BA9")]
[SerializeField]
protected Transform visualRoot;
}
}
@@ -0,0 +1,39 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002150 RID: 8528
[Token(Token = "0x2002150")]
[StructLayout(3)]
public class FoodConsumableItem : ConsumableItem
{
// Token: 0x1700273D RID: 10045
// (get) Token: 0x0600EB14 RID: 60180 RVA: 0x0037B954 File Offset: 0x00379B54
[Token(Token = "0x1700273D")]
public EquipmentSkin BFENKJBKJBD
{
[Token(Token = "0x600EB14")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
return this.foodSkin;
}
}
// Token: 0x0600EB15 RID: 60181 RVA: 0x0037B968 File Offset: 0x00379B68
[Token(Token = "0x600EB15")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public FoodConsumableItem()
{
}
// Token: 0x04009BAA RID: 39850
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009BAA")]
[SerializeField]
protected EquipmentSkin foodSkin;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace RecRoom.Consumable
{
// Token: 0x0200212B RID: 8491
[Token(Token = "0x200212B")]
[Serializable]
[StructLayout(3)]
public class GenericConsumableInfo : ConsumableInfo
{
// Token: 0x0600EA3F RID: 59967 RVA: 0x003786B8 File Offset: 0x003768B8
[Token(Token = "0x600EA3F")]
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
public GenericConsumableInfo()
{
}
}
}
@@ -0,0 +1,25 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace RecRoom.Consumable
{
// Token: 0x0200212C RID: 8492
[Token(Token = "0x200212C")]
[Serializable]
[StructLayout(3)]
public class HairDyeConsumableInfo : ConsumableInfo
{
// Token: 0x0600EA40 RID: 59968 RVA: 0x003786CC File Offset: 0x003768CC
[Token(Token = "0x600EA40")]
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
public HairDyeConsumableInfo()
{
}
// Token: 0x04009B2A RID: 39722
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B2A")]
public string HairColorGUID;
}
}
@@ -0,0 +1,108 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002151 RID: 8529
[Token(Token = "0x2002151")]
[StructLayout(3)]
public class HairDyePotionConsumableEffect : ConsumableEffect
{
// Token: 0x0600EB16 RID: 60182 RVA: 0x0037B97C File Offset: 0x00379B7C
[Token(Token = "0x600EB16")]
[Address(RVA = "0x17AECE0", Offset = "0x17AD6E0", VA = "0x1817AECE0", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.<CEKFDODGELA>k__BackingField.Add((uint)6);
}
// Token: 0x0600EB17 RID: 60183 RVA: 0x0037B9A4 File Offset: 0x00379BA4
[Token(Token = "0x600EB17")]
[Address(RVA = "0x17AF010", Offset = "0x17ADA10", VA = "0x1817AF010", Slot = "16")]
protected override void IEKANKBCIBP(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.IEKANKBCIBP(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
Player player = this.myPlayer;
string text = ALMOGLHMFHL.friendlyName + " activated";
base.KOEKICOBBKF(text);
AudioClip audioClip = this.applySound;
int num2 = 0;
if (audioClip != num2)
{
Player player2 = this.myPlayer;
AudioClip audioClip2 = this.applySound;
Transform transform = player2.head.transform;
}
}
PlayerAvatar playerAvatar = this.myPlayer.playerAvatar;
PlayerAvatar playerAvatar2 = this.myPlayer.playerAvatar;
}
}
// Token: 0x0600EB18 RID: 60184 RVA: 0x0037BA4C File Offset: 0x00379C4C
[Token(Token = "0x600EB18")]
[Address(RVA = "0x17AED40", Offset = "0x17AD740", VA = "0x1817AED40", Slot = "17")]
protected override void HHBCNEEODDB(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.HHBCNEEODDB(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
Player player = this.myPlayer;
string text = ALMOGLHMFHL.friendlyName + " deactivated";
base.KOEKICOBBKF(text);
AudioClip audioClip = this.unapplySound;
int num2 = 0;
if (audioClip != num2)
{
Player player2 = this.myPlayer;
AudioClip audioClip2 = this.unapplySound;
Transform transform = player2.head.transform;
}
}
}
}
// Token: 0x0600EB19 RID: 60185 RVA: 0x0037BAE0 File Offset: 0x00379CE0
[Token(Token = "0x600EB19")]
[Address(RVA = "0x17AF270", Offset = "0x17ADC70", VA = "0x1817AF270")]
public HairDyePotionConsumableEffect()
{
}
// Token: 0x04009BAB RID: 39851
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BAB")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private Player myPlayer;
// Token: 0x04009BAC RID: 39852
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009BAC")]
[SerializeField]
private AudioClip applySound;
// Token: 0x04009BAD RID: 39853
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x4009BAD")]
[SerializeField]
private AudioClip unapplySound;
}
}
@@ -0,0 +1,51 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002152 RID: 8530
[Token(Token = "0x2002152")]
[StructLayout(3)]
public class HairDyePotionConsumableItem : ConsumableItem
{
// Token: 0x1700273E RID: 10046
// (get) Token: 0x0600EB1A RID: 60186 RVA: 0x0037BAF4 File Offset: 0x00379CF4
[Token(Token = "0x1700273E")]
public string GFOABAHHBPO
{
[Token(Token = "0x600EB1A")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
return this.colorGuid;
}
}
// Token: 0x0600EB1B RID: 60187 RVA: 0x0037BB08 File Offset: 0x00379D08
[Token(Token = "0x600EB1B")]
[Address(RVA = "0x17AF2D0", Offset = "0x17ADCD0", VA = "0x1817AF2D0", Slot = "5")]
public override ConsumableInfo ToConsumableInfo()
{
HairDyeConsumableInfo hairDyeConsumableInfo = new HairDyeConsumableInfo();
string text = this.colorGuid;
hairDyeConsumableInfo.HairColorGUID = text;
throw new NullReferenceException();
}
// Token: 0x0600EB1C RID: 60188 RVA: 0x0037BB30 File Offset: 0x00379D30
[Token(Token = "0x600EB1C")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public HairDyePotionConsumableItem()
{
}
// Token: 0x04009BAE RID: 39854
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009BAE")]
[SerializeField]
[Header("Hair dye potion")]
protected string colorGuid;
}
}
@@ -0,0 +1,218 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Core.Gestures;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002153 RID: 8531
[Token(Token = "0x2002153")]
[StructLayout(3)]
public class HandPotionConsumableEffect : ConsumableEffect
{
// Token: 0x0600EB1D RID: 60189 RVA: 0x0037BB44 File Offset: 0x00379D44
[Token(Token = "0x600EB1D")]
[Address(RVA = "0x17AF360", Offset = "0x17ADD60", VA = "0x1817AF360", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.<CEKFDODGELA>k__BackingField.Add((uint)3);
}
// Token: 0x0600EB1E RID: 60190 RVA: 0x0037BB6C File Offset: 0x00379D6C
[Token(Token = "0x600EB1E")]
[Address(RVA = "0x17AF600", Offset = "0x17AE000", VA = "0x1817AF600", Slot = "16")]
protected override void IEKANKBCIBP(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.IEKANKBCIBP(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
PlayerHand playerHand = this.myHand;
string text = ALMOGLHMFHL.friendlyName + " activated";
base.KOEKICOBBKF(text);
}
PlayerHand playerHand2 = this.myHand;
ActionEvent<PlayerHand, Tool> pickupToolEvent = playerHand2.PickupToolEvent;
Action<PlayerHand, Tool> action = new Action(this.MADAMADCJNN);
ActionEvent<PlayerHand, Tool> actionEvent = pickupToolEvent + action;
playerHand2.PickupToolEvent = actionEvent;
PlayerHand playerHand3 = this.myHand;
ActionEvent<PlayerHand, Tool> releaseToolEvent = playerHand3.ReleaseToolEvent;
Action<PlayerHand, Tool> action2 = new Action(this.OGHNKALGNEJ);
ActionEvent<PlayerHand, Tool> actionEvent2 = releaseToolEvent + action2;
playerHand3.ReleaseToolEvent = actionEvent2;
PlayerHandGestures gestures = this.myHand._gestures;
PlayerHandGestures.OGGNBMJDKKO oggnbmjdkko = new PlayerHandGestures.OGGNBMJDKKO(this.NAABCHABGKF);
gestures.HPOKCPNGHEF += oggnbmjdkko;
this.myHand._gestures.SuppressHighFive();
}
}
// Token: 0x0600EB1F RID: 60191 RVA: 0x0037BC5C File Offset: 0x00379E5C
[Token(Token = "0x600EB1F")]
[Address(RVA = "0x17AF3C0", Offset = "0x17ADDC0", VA = "0x1817AF3C0", Slot = "17")]
protected override void HHBCNEEODDB(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.HHBCNEEODDB(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
PlayerHand playerHand = this.myHand;
string text = ALMOGLHMFHL.friendlyName + " deactivated";
base.KOEKICOBBKF(text);
}
PlayerHand playerHand2 = this.myHand;
ActionEvent<PlayerHand, Tool> pickupToolEvent = playerHand2.PickupToolEvent;
Action<PlayerHand, Tool> action = new Action(this.MADAMADCJNN);
ActionEvent<PlayerHand, Tool> actionEvent = pickupToolEvent - action;
playerHand2.PickupToolEvent = actionEvent;
PlayerHand playerHand3 = this.myHand;
ActionEvent<PlayerHand, Tool> releaseToolEvent = playerHand3.ReleaseToolEvent;
Action<PlayerHand, Tool> action2 = new Action(this.OGHNKALGNEJ);
ActionEvent<PlayerHand, Tool> actionEvent2 = releaseToolEvent - action2;
playerHand3.ReleaseToolEvent = actionEvent2;
PlayerHandGestures gestures = this.myHand._gestures;
PlayerHandGestures.OGGNBMJDKKO oggnbmjdkko = new PlayerHandGestures.OGGNBMJDKKO(this.NAABCHABGKF);
gestures.HPOKCPNGHEF -= oggnbmjdkko;
this.myHand._gestures.UnsuppressHighFive();
}
}
// Token: 0x0600EB20 RID: 60192 RVA: 0x0037BD4C File Offset: 0x00379F4C
[Token(Token = "0x600EB20")]
[Address(RVA = "0x17AF840", Offset = "0x17AE240", VA = "0x1817AF840")]
private void MADAMADCJNN(PlayerHand ONFJHABGCIP, Tool EGFEJGHDNAI)
{
int num;
do
{
num = 0;
Dictionary<string, GameObject>.ValueCollection valueCollection = base.PGHKOFAMNJA();
Dictionary.ValueCollection.Enumerator enumerator;
if (enumerator != 0)
{
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600EB21 RID: 60193 RVA: 0x0037BD78 File Offset: 0x00379F78
[Token(Token = "0x600EB21")]
[Address(RVA = "0x17AFE60", Offset = "0x17AE860", VA = "0x1817AFE60")]
private void OGHNKALGNEJ(PlayerHand ONFJHABGCIP, Tool EGFEJGHDNAI)
{
int num;
do
{
num = 0;
Dictionary<string, GameObject>.ValueCollection valueCollection = base.PGHKOFAMNJA();
Dictionary.ValueCollection.Enumerator enumerator;
if (enumerator != 0)
{
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600EB22 RID: 60194 RVA: 0x0037BDA0 File Offset: 0x00379FA0
[Token(Token = "0x600EB22")]
[Address(RVA = "0x17AF980", Offset = "0x17AE380", VA = "0x1817AF980")]
private void NAABCHABGKF(PlayerHand JEDDOIPMCMC, PlayerHand GBEAALMHMBE, PlayerHandGestures.FHEGMOCKLHA LDMFCILCLPG, [Optional] Player JKICGKMBIMP, [Optional] Player LDFLMCNJOIF)
{
PlayerHand playerHand = this.myHand;
if (!(JEDDOIPMCMC == playerHand))
{
PlayerHand playerHand2 = this.myHand;
if (!(GBEAALMHMBE == playerHand2))
{
return;
}
}
if (LDMFCILCLPG == PlayerHandGestures.FHEGMOCKLHA.Highfive)
{
ConsumableItem consumableItem = base.PHILEFGALDN();
if (consumableItem == 0)
{
}
int num = 0;
int num2 = 0;
if (consumableItem != num2)
{
int num3 = 0;
bool flag = GBEAALMHMBE == num3;
PlayerHand playerHand3 = this.myHand;
if (flag)
{
Transform transform = playerHand3.transform;
}
Vector3 vector;
float z = vector.z;
Transform transform2 = GBEAALMHMBE.transform;
Vector3 vector2;
float z2 = vector2.z;
Vector3 vector3;
float z3 = vector3.z;
Vector3 vector4;
float z4 = vector4.z;
int num4 = 0;
bool flag2;
if (flag2)
{
PooledParticle pooledParticle = GlobalPool.ONCPNMDGGKG.Acquire<PooledParticle>(num4);
int num5 = 0;
if (pooledParticle != num5)
{
Transform transform3 = pooledParticle.transform;
}
}
int num6 = 0;
if (consumableItem != num6)
{
}
OOCCCGPICOG[] array = this.ACDOAOMJGBF.ToArray();
int length = array.Length;
if (num < length)
{
OOCCCGPICOG oocccgpicog = array[num];
base.OCFKJPHFMCH(oocccgpicog, 1);
num++;
}
}
}
}
// Token: 0x0600EB23 RID: 60195 RVA: 0x0037BECC File Offset: 0x0037A0CC
[Token(Token = "0x600EB23")]
[Address(RVA = "0x17AFFA0", Offset = "0x17AE9A0", VA = "0x1817AFFA0")]
public HandPotionConsumableEffect()
{
}
// Token: 0x04009BAF RID: 39855
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BAF")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private PlayerHand myHand;
}
}
@@ -0,0 +1,60 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Core.Pools;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002154 RID: 8532
[Token(Token = "0x2002154")]
[StructLayout(3)]
public class HandPotionConsumableItem : ConsumableItem
{
// Token: 0x1700273F RID: 10047
// (get) Token: 0x0600EB24 RID: 60196 RVA: 0x0037BEE0 File Offset: 0x0037A0E0
[Token(Token = "0x1700273F")]
public PooledParticle ILNJDIBBKPM
{
[Token(Token = "0x600EB24")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
return this.particleEffectObject;
}
}
// Token: 0x17002740 RID: 10048
// (get) Token: 0x0600EB25 RID: 60197 RVA: 0x0037BEF4 File Offset: 0x0037A0F4
[Token(Token = "0x17002740")]
public AudioClip DAKFMMOODOL
{
[Token(Token = "0x600EB25")]
[Address(RVA = "0x3EDE90", Offset = "0x3EC890", VA = "0x1803EDE90")]
get
{
return this.onGestureAudio;
}
}
// Token: 0x0600EB26 RID: 60198 RVA: 0x0037BF08 File Offset: 0x0037A108
[Token(Token = "0x600EB26")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public HandPotionConsumableItem()
{
}
// Token: 0x04009BB0 RID: 39856
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009BB0")]
[SerializeField]
[Header("Hand potion")]
protected PooledParticle particleEffectObject;
// Token: 0x04009BB1 RID: 39857
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009BB1")]
[SerializeField]
protected AudioClip onGestureAudio;
}
}
@@ -0,0 +1,116 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002155 RID: 8533
[Token(Token = "0x2002155")]
[StructLayout(3)]
public class HeadPotionConsumableEffect : ConsumableEffect
{
// Token: 0x0600EB27 RID: 60199 RVA: 0x0037BF1C File Offset: 0x0037A11C
[Token(Token = "0x600EB27")]
[Address(RVA = "0x17B0000", Offset = "0x17AEA00", VA = "0x1817B0000", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.<CEKFDODGELA>k__BackingField.Add((uint)2);
}
// Token: 0x0600EB28 RID: 60200 RVA: 0x0037BF44 File Offset: 0x0037A144
[Token(Token = "0x600EB28")]
[Address(RVA = "0x17B0280", Offset = "0x17AEC80", VA = "0x1817B0280", Slot = "16")]
protected override void IEKANKBCIBP(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.IEKANKBCIBP(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
Player player = this.myPlayer;
string text = ALMOGLHMFHL.friendlyName + " activated";
base.KOEKICOBBKF(text);
AudioClip audioClip = this.inflateSound;
int num2 = 0;
if (audioClip != num2)
{
Player player2 = this.myPlayer;
AudioClip audioClip2 = this.inflateSound;
Transform transform = player2.head.transform;
}
}
Player player3 = this.myPlayer;
float num3 = this.inflatedHeadScale;
player3.SetHeadScale(num3);
}
}
// Token: 0x0600EB29 RID: 60201 RVA: 0x0037BFE8 File Offset: 0x0037A1E8
[Token(Token = "0x600EB29")]
[Address(RVA = "0x17B0060", Offset = "0x17AEA60", VA = "0x1817B0060", Slot = "17")]
protected override void HHBCNEEODDB(ConsumableItem ALMOGLHMFHL, bool CPNHCODHDAD)
{
base.HHBCNEEODDB(ALMOGLHMFHL, CPNHCODHDAD);
if (ALMOGLHMFHL == 0)
{
}
int num = 0;
if (ALMOGLHMFHL != num)
{
if (CPNHCODHDAD)
{
Player player = this.myPlayer;
string text = ALMOGLHMFHL.friendlyName + " deactivated";
base.KOEKICOBBKF(text);
AudioClip audioClip = this.deflateSound;
int num2 = 0;
if (audioClip != num2)
{
Player player2 = this.myPlayer;
AudioClip audioClip2 = this.deflateSound;
Transform transform = player2.head.transform;
}
}
this.myPlayer.SetHeadScale(1f);
}
}
// Token: 0x0600EB2A RID: 60202 RVA: 0x0037C080 File Offset: 0x0037A280
[Token(Token = "0x600EB2A")]
[Address(RVA = "0x17B0490", Offset = "0x17AEE90", VA = "0x1817B0490")]
public HeadPotionConsumableEffect()
{
}
// Token: 0x04009BB2 RID: 39858
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BB2")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private Player myPlayer;
// Token: 0x04009BB3 RID: 39859
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009BB3")]
[SerializeField]
private AudioClip inflateSound;
// Token: 0x04009BB4 RID: 39860
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x4009BB4")]
[SerializeField]
private AudioClip deflateSound;
// Token: 0x04009BB5 RID: 39861
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x4009BB5")]
[SerializeField]
private float inflatedHeadScale = 2f;
}
}
@@ -0,0 +1,25 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace RecRoom.Consumable
{
// Token: 0x0200212E RID: 8494
[Token(Token = "0x200212E")]
[Serializable]
[StructLayout(3)]
public class HeadPotionConsumableInfo : ConsumableInfo
{
// Token: 0x0600EA42 RID: 59970 RVA: 0x003786F4 File Offset: 0x003768F4
[Token(Token = "0x600EA42")]
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
public HeadPotionConsumableInfo()
{
}
// Token: 0x04009B2F RID: 39727
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009B2F")]
public HeadPotionConsumableItem.HAIOIEHFIOH PotionType;
}
}
@@ -0,0 +1,63 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002156 RID: 8534
[Token(Token = "0x2002156")]
[StructLayout(3)]
public class HeadPotionConsumableItem : ConsumableItem
{
// Token: 0x17002741 RID: 10049
// (get) Token: 0x0600EB2B RID: 60203 RVA: 0x0037C0A0 File Offset: 0x0037A2A0
[Token(Token = "0x17002741")]
public HeadPotionConsumableItem.HAIOIEHFIOH BPOJHOFMKOO
{
[Token(Token = "0x600EB2B")]
[Address(RVA = "0x4F8170", Offset = "0x4F6B70", VA = "0x1804F8170")]
get
{
return this.potionType;
}
}
// Token: 0x0600EB2C RID: 60204 RVA: 0x0037C0B4 File Offset: 0x0037A2B4
[Token(Token = "0x600EB2C")]
[Address(RVA = "0x17B04F0", Offset = "0x17AEEF0", VA = "0x1817B04F0", Slot = "5")]
public override ConsumableInfo ToConsumableInfo()
{
HeadPotionConsumableInfo headPotionConsumableInfo = new HeadPotionConsumableInfo();
HeadPotionConsumableItem.HAIOIEHFIOH haioiehfioh = this.potionType;
headPotionConsumableInfo.PotionType = haioiehfioh;
throw new NullReferenceException();
}
// Token: 0x0600EB2D RID: 60205 RVA: 0x0037C0DC File Offset: 0x0037A2DC
[Token(Token = "0x600EB2D")]
[Address(RVA = "0x179B170", Offset = "0x1799B70", VA = "0x18179B170")]
public HeadPotionConsumableItem()
{
}
// Token: 0x04009BB6 RID: 39862
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009BB6")]
[SerializeField]
[Header("Head potion")]
protected HeadPotionConsumableItem.HAIOIEHFIOH potionType;
// Token: 0x02002157 RID: 8535
[Token(Token = "0x2002157")]
public enum HAIOIEHFIOH
{
// Token: 0x04009BB8 RID: 39864
[Token(Token = "0x4009BB8")]
INVALID,
// Token: 0x04009BB9 RID: 39865
[Token(Token = "0x4009BB9")]
DKMode
}
}
}
@@ -0,0 +1,100 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using Photon.Realtime;
using RecRoom.Activities.Quest.Goblin2;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002158 RID: 8536
[Token(Token = "0x2002158")]
[StructLayout(3)]
public class PotionConsumableTool : ConsumableTool
{
// Token: 0x0600EB2E RID: 60206 RVA: 0x0037C0F0 File Offset: 0x0037A2F0
[Token(Token = "0x600EB2E")]
[Address(RVA = "0x17B0E00", Offset = "0x17AF800", VA = "0x1817B0E00", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this.tool;
ActionEvent<Tool> postReleaseEvent = tool.PostReleaseEvent;
Action<Tool> action = new Action(this.PDEEFICICFG);
ActionEvent<Tool> actionEvent = postReleaseEvent + action;
tool.PostReleaseEvent = actionEvent;
Potion potion = this.potion;
Potion.JICLAAJLNCE jiclaajlnce = new Potion.JICLAAJLNCE(this.BHFMPLDIHFG);
potion.AOFFBPHMBBP += jiclaajlnce;
}
// Token: 0x0600EB2F RID: 60207 RVA: 0x0037C154 File Offset: 0x0037A354
[Token(Token = "0x600EB2F")]
[Address(RVA = "0x17B0FB0", Offset = "0x17AF9B0", VA = "0x1817B0FB0", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this.tool;
ActionEvent<Tool> postReleaseEvent = tool.PostReleaseEvent;
Action<Tool> action = new Action(this.PDEEFICICFG);
ActionEvent<Tool> actionEvent = postReleaseEvent - action;
tool.PostReleaseEvent = actionEvent;
Potion potion = this.potion;
Potion.JICLAAJLNCE jiclaajlnce = new Potion.JICLAAJLNCE(this.BHFMPLDIHFG);
potion.AOFFBPHMBBP -= jiclaajlnce;
base.OnDestroy();
}
// Token: 0x0600EB30 RID: 60208 RVA: 0x0037C1B8 File Offset: 0x0037A3B8
[Token(Token = "0x600EB30")]
[Address(RVA = "0x17B10B0", Offset = "0x17AFAB0", VA = "0x1817B10B0")]
private void PDEEFICICFG(Tool NBHJPDBHDHB)
{
if (!this.OEJHFGNAGFB && !this.tool.NDKHDFJHGPP)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this.tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num && this.tool.<FLFJCIPBAPA>k__BackingField.<EPECNEBCMLG>k__BackingField == PlayerSpawnedEquipment.IILDIBHEIDO.GiftBox)
{
base.LHBLHBEIFKA();
PhotonNetwork.Destroy(base.gameObject);
return;
}
}
}
// Token: 0x0600EB31 RID: 60209 RVA: 0x0037C220 File Offset: 0x0037A420
[Token(Token = "0x600EB31")]
[Address(RVA = "0x17B0F00", Offset = "0x17AF900", VA = "0x1817B0F00")]
private void BHFMPLDIHFG(Potion GCEPCEDMAHI, Photon.Realtime.Player IEKDDPPNFPF)
{
OOCCCGPICOG cknfedppdoo = this.CKNFEDPPDOO;
if (IEKDDPPNFPF != 0 && IEKDDPPNFPF.IsLocal)
{
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
OOCCCGPICOG cknfedppdoo2 = this.CKNFEDPPDOO;
instance.ActivateConsumable(cknfedppdoo2, true);
this.OEJHFGNAGFB = true;
}
}
// Token: 0x0600EB32 RID: 60210 RVA: 0x0037C264 File Offset: 0x0037A464
[Token(Token = "0x600EB32")]
[Address(RVA = "0x17B11C0", Offset = "0x17AFBC0", VA = "0x1817B11C0")]
public PotionConsumableTool()
{
}
// Token: 0x04009BBA RID: 39866
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009BBA")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected Potion potion;
// Token: 0x04009BBB RID: 39867
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BBB")]
private bool OEJHFGNAGFB;
}
}
@@ -0,0 +1,241 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Core;
using UnityEngine;
namespace RecRoom.Consumable
{
// Token: 0x02002159 RID: 8537
[Token(Token = "0x2002159")]
[RequireComponent(typeof(ToolSet))]
[RequireComponent(typeof(Tool))]
[StructLayout(3)]
public class SpawnerConsumableTool : ConsumableTool
{
// Token: 0x0600EB33 RID: 60211 RVA: 0x0037C278 File Offset: 0x0037A478
[Token(Token = "0x600EB33")]
[Address(RVA = "0x17B1220", Offset = "0x17AFC20", VA = "0x1817B1220", Slot = "13")]
protected override void Awake()
{
base.Awake();
Tool tool = this.tool;
ActionEvent<Tool> postPickupEvent = tool.PostPickupEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool.PostPickupEvent = actionEvent;
ToolSet toolSet = this.toolSet;
Action<List<Tool>> action2 = new Action(this.JMENIIMAPPH);
toolSet.OnPiecesSpawned += action2;
}
// Token: 0x0600EB34 RID: 60212 RVA: 0x0037C2DC File Offset: 0x0037A4DC
[Token(Token = "0x600EB34")]
[Address(RVA = "0x17B1780", Offset = "0x17B0180", VA = "0x1817B1780", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this.tool;
ActionEvent<Tool> postReleaseEvent = tool.PostReleaseEvent;
Action<Tool> action = new Action(this.MNCLFHBBPHB);
ActionEvent<Tool> actionEvent = postReleaseEvent - action;
tool.PostReleaseEvent = actionEvent;
ToolSet toolSet = this.toolSet;
Action<List<Tool>> action2 = new Action(this.JMENIIMAPPH);
toolSet.OnPiecesSpawned -= action2;
base.OnDestroy();
}
// Token: 0x0600EB35 RID: 60213 RVA: 0x0037C340 File Offset: 0x0037A540
[Token(Token = "0x600EB35")]
[Address(RVA = "0x17B1620", Offset = "0x17B0020", VA = "0x1817B1620")]
private void MNCLFHBBPHB(Tool NBHJPDBHDHB)
{
if (!this.HCJBMDICMFA && !this.tool.NDKHDFJHGPP)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this.tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num && this.tool.<FLFJCIPBAPA>k__BackingField.<EPECNEBCMLG>k__BackingField == PlayerSpawnedEquipment.IILDIBHEIDO.GiftBox)
{
base.LHBLHBEIFKA();
Action action = new Action(this.ONAALNFGKAF);
ISchedulerPromise schedulerPromise = this.InvokeNextEndOfFrame(action);
}
}
}
// Token: 0x0600EB36 RID: 60214 RVA: 0x0037C3B0 File Offset: 0x0037A5B0
[Token(Token = "0x600EB36")]
[Address(RVA = "0x17B1320", Offset = "0x17AFD20", VA = "0x1817B1320")]
private void JMENIIMAPPH(List<Tool> LCMLJHDFCOJ)
{
int num;
do
{
num = 0;
List<Tool> pieces = LCMLJHDFCOJ;
Predicate<Tool> <>9__5_ = SpawnerConsumableTool.<>c.<>9__5_0;
if (<>9__5_ == 0)
{
SpawnerConsumableTool.<>c.<>9__5_0 = delegate(Tool c)
{
ConsumableSpawnedContainerToolPiece component = c.GetComponent<ConsumableSpawnedContainerToolPiece>();
int num2 = 0;
return component != num2;
};
}
List<Tool> list = ListExt.RemoveAllWhere<Tool>(LCMLJHDFCOJ, <>9__5_);
if (LCMLJHDFCOJ.GetEnumerator() != 0)
{
ConsumableInfo <JDADGBIDGIB>k__BackingField = this.CKNFEDPPDOO.<JDADGBIDGIB>k__BackingField;
List<Tool> pieces2 = pieces;
ConsumableSpawnedContainerToolPiece consumableSpawnedContainerToolPiece;
consumableSpawnedContainerToolPiece.SetNonHolderPieces(pieces2, <JDADGBIDGIB>k__BackingField);
}
if (0 != -1)
{
}
}
while (num != 0);
ConsumableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
OOCCCGPICOG cknfedppdoo = this.CKNFEDPPDOO;
BPHGKAEDBPE.CBEOHBCIPEA cbeohbcipea = delegate(string error)
{
long <JPAOOKPLEDB>k__BackingField = dbofahkbhfl.<>4__this.CKNFEDPPDOO.<JPAOOKPLEDB>k__BackingField;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField = dbofahkbhfl.<>4__this.CKNFEDPPDOO.<MPBLJOGNHKP>k__BackingField;
Debug.LogError(string.Format("Consumable Id:{0} Category:{1} can not be consumed: {2}", <JPAOOKPLEDB>k__BackingField, <JPAOOKPLEDB>k__BackingField, error));
Action <>9__3 = dbofahkbhfl.<>9__2;
SpawnerConsumableTool <>4__this = dbofahkbhfl.<>4__this;
if (<>9__3 == 0)
{
Action action = delegate
{
Tool[] array = dbofahkbhfl.pieces.ToArray();
int num3 = 0;
int length = array.Length;
if (num3 < length)
{
Tool tool = array[num3];
OKIMOMGKKDH ekjclgjfign = OKIMOMGKKDH.EKJCLGJFIGN;
tool.IKEGONLJBPP = ekjclgjfign;
PhotonNetwork.Destroy(tool.gameObject);
num3++;
}
};
dbofahkbhfl.<>9__2 = action;
}
ISchedulerPromise schedulerPromise = <>4__this.InvokeNextEndOfFrame(<>9__3);
};
IEnumerator enumerator = instance.UseConsumable(cknfedppdoo, 1, cbeohbcipea);
this.HCJBMDICMFA = true;
}
// Token: 0x0600EB37 RID: 60215 RVA: 0x0037C478 File Offset: 0x0037A678
[Token(Token = "0x600EB37")]
[Address(RVA = "0x17B1880", Offset = "0x17B0280", VA = "0x1817B1880")]
public SpawnerConsumableTool()
{
}
// Token: 0x0600EB38 RID: 60216 RVA: 0x0037C48C File Offset: 0x0037A68C
[Token(Token = "0x600EB38")]
[Address(RVA = "0x17B1720", Offset = "0x17B0120", VA = "0x1817B1720")]
[CompilerGenerated]
private void ONAALNFGKAF()
{
PhotonNetwork.Destroy(base.gameObject);
}
// Token: 0x04009BBC RID: 39868
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009BBC")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private ToolSet toolSet;
// Token: 0x04009BBD RID: 39869
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009BBD")]
private bool HCJBMDICMFA;
// Token: 0x0200215A RID: 8538
[Token(Token = "0x200215A")]
[CompilerGenerated]
private sealed class DBOFAHKBHFL
{
// Token: 0x0600EB39 RID: 60217 RVA: 0x0037C4A4 File Offset: 0x0037A6A4
[Token(Token = "0x600EB39")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public DBOFAHKBHFL()
{
}
// Token: 0x0600EB3A RID: 60218 RVA: 0x0037C4B8 File Offset: 0x0037A6B8
[Token(Token = "0x600EB3A")]
[Address(RVA = "0x179BA90", Offset = "0x179A490", VA = "0x18179BA90")]
internal void <ToolSet_OnPiecesSpawned>b__1(string error)
{
long <JPAOOKPLEDB>k__BackingField = this.<>4__this.CKNFEDPPDOO.<JPAOOKPLEDB>k__BackingField;
ConsumableManager.KIDKMAOBOIG <MPBLJOGNHKP>k__BackingField = this.<>4__this.CKNFEDPPDOO.<MPBLJOGNHKP>k__BackingField;
Debug.LogError(string.Format("Consumable Id:{0} Category:{1} can not be consumed: {2}", <JPAOOKPLEDB>k__BackingField, <JPAOOKPLEDB>k__BackingField, error));
Action action = this.<>9__2;
SpawnerConsumableTool spawnerConsumableTool = this.<>4__this;
if (action == 0)
{
Action action2 = delegate
{
Tool[] array = this.pieces.ToArray();
int num = 0;
int length = array.Length;
if (num < length)
{
Tool tool = array[num];
OKIMOMGKKDH ekjclgjfign = OKIMOMGKKDH.EKJCLGJFIGN;
tool.IKEGONLJBPP = ekjclgjfign;
PhotonNetwork.Destroy(tool.gameObject);
num++;
}
};
this.<>9__2 = action2;
}
ISchedulerPromise schedulerPromise = spawnerConsumableTool.InvokeNextEndOfFrame(action);
}
// Token: 0x0600EB3B RID: 60219 RVA: 0x0037C534 File Offset: 0x0037A734
[Token(Token = "0x600EB3B")]
[Address(RVA = "0x179BBE0", Offset = "0x179A5E0", VA = "0x18179BBE0")]
internal void <ToolSet_OnPiecesSpawned>b__2()
{
Tool[] array = this.pieces.ToArray();
int num = 0;
int length = array.Length;
if (num < length)
{
Tool tool = array[num];
OKIMOMGKKDH ekjclgjfign = OKIMOMGKKDH.EKJCLGJFIGN;
tool.IKEGONLJBPP = ekjclgjfign;
PhotonNetwork.Destroy(tool.gameObject);
num++;
}
}
// Token: 0x04009BBE RID: 39870
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009BBE")]
public SpawnerConsumableTool <>4__this;
// Token: 0x04009BBF RID: 39871
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009BBF")]
public List<Tool> pieces;
// Token: 0x04009BC0 RID: 39872
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009BC0")]
public Action <>9__2;
}
}
}