using System; using System.Collections.Generic; using System.Diagnostics; using Photon; using RecRoom.Core.AI; using UnityEngine; namespace RecRoom.Core.Powerups { // Token: 0x02000CF0 RID: 3312 public abstract class Powerup : global::Photon.MonoBehaviour { // Token: 0x14000106 RID: 262 // (add) Token: 0x0601AD14 RID: 109844 RVA: 0x007851EC File Offset: 0x007833EC // (remove) Token: 0x0601AD15 RID: 109845 RVA: 0x00785220 File Offset: 0x00783420 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public static event Powerup.GGBPGIDHNNO AGHOLGLCKLO; // Token: 0x14000107 RID: 263 // (add) Token: 0x0601AD16 RID: 109846 RVA: 0x00785254 File Offset: 0x00783454 // (remove) Token: 0x0601AD17 RID: 109847 RVA: 0x00785288 File Offset: 0x00783488 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public static event Powerup.FAAJGOBJONG IFIOACMJOPE; // Token: 0x14000108 RID: 264 // (add) Token: 0x0601AD18 RID: 109848 RVA: 0x007852BC File Offset: 0x007834BC // (remove) Token: 0x0601AD19 RID: 109849 RVA: 0x007852F0 File Offset: 0x007834F0 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public static event Powerup.FAAJGOBJONG CKMBEOEOEIE; // Token: 0x14000109 RID: 265 // (add) Token: 0x0601AD1A RID: 109850 RVA: 0x00785324 File Offset: 0x00783524 // (remove) Token: 0x0601AD1B RID: 109851 RVA: 0x00785358 File Offset: 0x00783558 [field: DebuggerBrowsable(DebuggerBrowsableState.Never)] public static event Powerup.FAAJGOBJONG FACONGBOJPH; // Token: 0x0601AD1C RID: 109852 RVA: 0x0078538C File Offset: 0x0078358C public static void RequestPowerupActivation(MNJLCAMHLJF EOFKEKKFCME, LNJFBGIBLHA JEFGMHBLLKI) { if (Powerup.AGHOLGLCKLO != null) { Powerup.AGHOLGLCKLO(EOFKEKKFCME, JEFGMHBLLKI); } } // Token: 0x0601AD1D RID: 109853 RVA: 0x007853A4 File Offset: 0x007835A4 public static Powerup MasterSpawnPowerup(MNJLCAMHLJF EOFKEKKFCME, LNJFBGIBLHA JEFGMHBLLKI, int AOFMMAOFOEI, Dictionary JHHHNAEIILP) { if (!IHFKMIAHBFP.HCHIDMOLLAD) { return null; } string text = CFEKMFMMPKE.BNOPBGIKOAJ(EOFKEKKFCME); if (string.IsNullOrEmpty(text)) { return null; } object[] array = new object[] { AOFMMAOFOEI, JHHHNAEIILP, JEFGMHBLLKI.BADMPMDONAH, EOFKEKKFCME }; Vector3 vector = Vector3.zero; Quaternion quaternion = Quaternion.identity; Player player = JEFGMHBLLKI.JHJGDFHNBLO(); if (player != null) { vector = player.transform.position; quaternion = player.transform.rotation; } GameObject gameObject = IHFKMIAHBFP.MBPEECMHBBK(text, vector, quaternion, 0, array); return (!(gameObject != null)) ? null : gameObject.GetComponent(); } // Token: 0x17000C4C RID: 3148 // (get) Token: 0x0601AD1E RID: 109854 RVA: 0x00785464 File Offset: 0x00783664 public float LMPDCNKJMEO { get { return this._lifeTime; } } // Token: 0x17000C4D RID: 3149 // (get) Token: 0x0601AD1F RID: 109855 RVA: 0x0078546C File Offset: 0x0078366C public bool ODFAKFFMPAI { get { return this._grantsInvicibility; } } // Token: 0x17000C4E RID: 3150 // (get) Token: 0x0601AD20 RID: 109856 RVA: 0x00785474 File Offset: 0x00783674 public RecRoomAudioClip MFHNEJJEBMK { get { return this.musicClip; } } // Token: 0x17000C4F RID: 3151 // (get) Token: 0x0601AD21 RID: 109857 RVA: 0x0078547C File Offset: 0x0078367C public Texture GNFGPOKBGBL { get { return this._tonemappingLut; } } // Token: 0x17000C50 RID: 3152 // (get) Token: 0x0601AD22 RID: 109858 RVA: 0x00785484 File Offset: 0x00783684 public float GCBGAJIFLGL { get { return this._tonemappingFadeTime; } } // Token: 0x17000C51 RID: 3153 // (get) Token: 0x0601AD23 RID: 109859 RVA: 0x0078548C File Offset: 0x0078368C // (set) Token: 0x0601AD24 RID: 109860 RVA: 0x00785494 File Offset: 0x00783694 public LNJFBGIBLHA PBCJBEPKBPJ { get; private set; } // Token: 0x17000C52 RID: 3154 // (get) Token: 0x0601AD25 RID: 109861 RVA: 0x007854A0 File Offset: 0x007836A0 // (set) Token: 0x0601AD26 RID: 109862 RVA: 0x007854A8 File Offset: 0x007836A8 public MNJLCAMHLJF EEAOGJHMFII { get; private set; } // Token: 0x17000C53 RID: 3155 // (get) Token: 0x0601AD27 RID: 109863 RVA: 0x007854B4 File Offset: 0x007836B4 public float PICPFDMPDFI { get { return this._lifeTime + this.invincibilityBufferSeconds; } } // Token: 0x0601AD28 RID: 109864 RVA: 0x007854C4 File Offset: 0x007836C4 protected override void Awake() { base.Awake(); IHFKMIAHBFP.ENIGMACDFMJ += new Action(this.OnMasterClientSwitched); if (base.OMNGGJICBBI.NFOKNEKLACK == null || base.OMNGGJICBBI.NFOKNEKLACK.Length != 4) { global::UnityEngine.Debug.LogErrorFormat("Powerup {0} instantiated by something other than Photon.", new object[] { base.gameObject.name }); global::UnityEngine.Object.Destroy(base.gameObject); return; } int num = (int)base.OMNGGJICBBI.NFOKNEKLACK[2]; this.PBCJBEPKBPJ = LNJFBGIBLHA.FDOBBLFBBBK(num); if (this.PBCJBEPKBPJ != null) { this.EEAOGJHMFII = (MNJLCAMHLJF)base.OMNGGJICBBI.NFOKNEKLACK[3]; if (base.OMNGGJICBBI.HKLENNJOICH != this.PBCJBEPKBPJ && base.BHCCHBHNHCG) { base.OMNGGJICBBI.TransferOwnership(this.PBCJBEPKBPJ); } if (Powerup.IFIOACMJOPE != null) { Powerup.IFIOACMJOPE(this); } Weapon.PAOJGBKGGDK += this.EFMNDFLKJEB; Weapon.CEBHMMBCBGM += this.AOEPCAMNPPL; this.LICBGDCELPN = new AONMNAEOJAL(this, "lt", IKCAJLLAFML.MASTER); this.LICBGDCELPN.PAAAOFPDNNF += this.BMKMKNGOEDB; if (IHFKMIAHBFP.HCHIDMOLLAD) { this.MasterRestartTimer(); } this.GDLNEHCLAOB(); return; } global::UnityEngine.Debug.LogWarningFormat("Powerup {0} instantiated for missing target player with ID {1}", new object[] { base.gameObject.name, num }); global::UnityEngine.Object.Destroy(base.gameObject); } // Token: 0x0601AD29 RID: 109865 RVA: 0x00785668 File Offset: 0x00783868 protected override void OnDestroy() { base.OnDestroy(); Weapon.PAOJGBKGGDK -= this.EFMNDFLKJEB; Weapon.CEBHMMBCBGM -= this.AOEPCAMNPPL; this.LICBGDCELPN.PAAAOFPDNNF -= this.BMKMKNGOEDB; this.JOMFALENPKE(); Player player = this.PBCJBEPKBPJ.JHJGDFHNBLO(); if (player != null) { this.GACAABJAFJI(player); } if (Powerup.CKMBEOEOEIE != null) { Powerup.CKMBEOEOEIE(this); } IHFKMIAHBFP.ENIGMACDFMJ -= new Action(this.OnMasterClientSwitched); } // Token: 0x0601AD2A RID: 109866 RVA: 0x0078570C File Offset: 0x0078390C private void Update() { this.LICBGDCELPN.KHJKJGDBPMF(); if (IHFKMIAHBFP.HCHIDMOLLAD && this.LICBGDCELPN.CGELFKLLMBA) { this.KDGDIIGPEHC(); } } // Token: 0x0601AD2B RID: 109867 RVA: 0x0078573C File Offset: 0x0078393C private void LateUpdate() { Player player = this.PBCJBEPKBPJ.JHJGDFHNBLO(); if (player != null) { base.transform.position = player.FGLFIJLGCKD; if (this.DHAPGOKGOAN != null) { this.DHAPGOKGOAN.transform.position = base.transform.position; } } } // Token: 0x0601AD2C RID: 109868 RVA: 0x007857A0 File Offset: 0x007839A0 public void MasterRestartTimer() { if (IHFKMIAHBFP.HCHIDMOLLAD) { this.LICBGDCELPN.BJOJLPHBGMN(this._lifeTime); } } // Token: 0x0601AD2D RID: 109869 RVA: 0x007857C0 File Offset: 0x007839C0 private void BMKMKNGOEDB() { Player player = this.PBCJBEPKBPJ.JHJGDFHNBLO(); if (player != null) { this.ONMFBFFLBPI(player); } if (Powerup.FACONGBOJPH != null) { Powerup.FACONGBOJPH(this); } } // Token: 0x0601AD2E RID: 109870 RVA: 0x00785804 File Offset: 0x00783A04 protected virtual void ONMFBFFLBPI(Player LMLLOKLLODN) { if (this.spawnSfx != null) { AudioManager.Play3DSFX(this.spawnSfx, base.transform, null); } if (this.spawnParticlePrefab != null) { this.DHAPGOKGOAN = this.DCIIDBJDHEH(this.spawnParticlePrefab, false); } } // Token: 0x0601AD2F RID: 109871 RVA: 0x00785854 File Offset: 0x00783A54 protected virtual void GACAABJAFJI(Player LMLLOKLLODN) { if (this.destroyedSfx != null && this.destroyedSfx.audioClip != null) { AudioManager.Play3DSFX(this.destroyedSfx, base.transform, null); } if (this.destroyedParticlePrefab != null) { this.DHAPGOKGOAN = this.DCIIDBJDHEH(this.destroyedParticlePrefab, false); } } // Token: 0x0601AD30 RID: 109872 RVA: 0x007858BC File Offset: 0x00783ABC protected virtual void GDLNEHCLAOB() { if (this.activeLoopSfx != null) { this.PHEFAEMPMLN = AudioManager.StartLooping3DSFX(this.activeLoopSfx, base.transform, null); } if (this.activeParticlesPrefab != null) { this.DHAPGOKGOAN = this.DCIIDBJDHEH(this.activeParticlesPrefab, true); } if (this.PBCJBEPKBPJ.IPFPJCPGENH && !string.IsNullOrEmpty(this.notificationText)) { SingletonMonoBehaviour.NCKMBFBMBFM.PlayPersistent(this.notificationText); } } // Token: 0x0601AD31 RID: 109873 RVA: 0x00785940 File Offset: 0x00783B40 protected virtual void JOMFALENPKE() { if (this.PBCJBEPKBPJ.IPFPJCPGENH && !string.IsNullOrEmpty(this.notificationText)) { SingletonMonoBehaviour.NCKMBFBMBFM.StopPersistent(); } if (this.DHAPGOKGOAN != null) { this.DHAPGOKGOAN.Stop(); } if (this.PHEFAEMPMLN) { this.PHEFAEMPMLN.Release(); } } // Token: 0x0601AD32 RID: 109874 RVA: 0x007859B0 File Offset: 0x00783BB0 protected PooledParticle DCIIDBJDHEH(PooledParticle CABHFOCOOCJ, bool ABFHPMBMGAD) { PooledParticle pooledParticle = null; if (CABHFOCOOCJ != null && this.PBCJBEPKBPJ != null && !this.PBCJBEPKBPJ.IPFPJCPGENH) { Player player = this.PBCJBEPKBPJ.JHJGDFHNBLO(); if (player != null) { pooledParticle = ObjectPool.NCKMBFBMBFM.Acquire(CABHFOCOOCJ); if (pooledParticle != null) { pooledParticle.Play(player.FGLFIJLGCKD, Quaternion.LookRotation(Vector3.up, player.transform.forward), ABFHPMBMGAD); return pooledParticle; } } } return pooledParticle; } // Token: 0x0601AD33 RID: 109875 RVA: 0x00785A3C File Offset: 0x00783C3C private void EFMNDFLKJEB(Weapon BLBPGNFCBEO, Player EFCIKBEHKNL, Enemy LLFCJNJMFOP, IHEAKAOGCIF CACIBBKDNIH) { if (EFCIKBEHKNL.LNJFBGIBLHA == this.PBCJBEPKBPJ) { this.GHFOGLPDKIE(BLBPGNFCBEO, LLFCJNJMFOP, CACIBBKDNIH); } } // Token: 0x0601AD34 RID: 109876 RVA: 0x00785A5C File Offset: 0x00783C5C private void AOEPCAMNPPL(Weapon BLBPGNFCBEO, Player EFCIKBEHKNL, IHEAKAOGCIF CACIBBKDNIH) { if (EFCIKBEHKNL.LNJFBGIBLHA == this.PBCJBEPKBPJ) { if (this.impactSfx != null) { AudioManager.Play3DSFX(this.impactSfx, CACIBBKDNIH.LLKJDBBNPKB, null); } if (this.impactDecalPrefab != null) { ImpactDecal.Spawn(this.impactDecalPrefab, Color.white, CACIBBKDNIH.LLKJDBBNPKB, CACIBBKDNIH.EPIJGDAJDJN, CACIBBKDNIH.JFCOFBFGGFL); } if (this.impactParticle != null) { PooledParticle pooledParticle = ObjectPool.NCKMBFBMBFM.Acquire(this.impactParticle); if (pooledParticle) { pooledParticle.Play(CACIBBKDNIH.LLKJDBBNPKB, Quaternion.LookRotation(CACIBBKDNIH.EPIJGDAJDJN, Vector3.up), false); } } } } // Token: 0x0601AD35 RID: 109877 RVA: 0x00785B1C File Offset: 0x00783D1C protected virtual void GHFOGLPDKIE(Weapon BLBPGNFCBEO, Enemy LLFCJNJMFOP, IHEAKAOGCIF CACIBBKDNIH) { } // Token: 0x0601AD36 RID: 109878 RVA: 0x00785B20 File Offset: 0x00783D20 private void KDGDIIGPEHC() { if (IHFKMIAHBFP.HCHIDMOLLAD) { if (!base.BHCCHBHNHCG) { base.OMNGGJICBBI.TransferOwnership(IHFKMIAHBFP.HGDJAAMBDNH); } IHFKMIAHBFP.JFCIOOHPLFJ(base.OMNGGJICBBI); } } // Token: 0x0601AD37 RID: 109879 RVA: 0x00785B54 File Offset: 0x00783D54 protected void OnMasterClientSwitched(LNJFBGIBLHA BLEEFGJBALL) { if (this.LICBGDCELPN.CGELFKLLMBA) { this.KDGDIIGPEHC(); } } // Token: 0x04004901 RID: 18689 [SerializeField] private string notificationText; // Token: 0x04004902 RID: 18690 [SerializeField] private float _lifeTime = 10f; // Token: 0x04004903 RID: 18691 [SerializeField] [Header("Invincibility")] private bool _grantsInvicibility = true; // Token: 0x04004904 RID: 18692 [SerializeField] private float invincibilityBufferSeconds = 1f; // Token: 0x04004905 RID: 18693 [SerializeField] [Header("Music")] private RecRoomAudioClip musicClip; // Token: 0x04004906 RID: 18694 [SerializeField] [Header("Spawning")] private RecRoomAudioClip spawnSfx; // Token: 0x04004907 RID: 18695 [SerializeField] private PooledParticle spawnParticlePrefab; // Token: 0x04004908 RID: 18696 [SerializeField] [Header("Active")] private RecRoomAudioClip activeLoopSfx; // Token: 0x04004909 RID: 18697 [SerializeField] private PooledParticle activeParticlesPrefab; // Token: 0x0400490A RID: 18698 [SerializeField] private Texture _tonemappingLut; // Token: 0x0400490B RID: 18699 [SerializeField] private float _tonemappingFadeTime = 0.2f; // Token: 0x0400490C RID: 18700 [SerializeField] [Header("Destruction")] private RecRoomAudioClip destroyedSfx; // Token: 0x0400490D RID: 18701 [SerializeField] private PooledParticle destroyedParticlePrefab; // Token: 0x0400490E RID: 18702 [SerializeField] [Header("Impact")] private RecRoomAudioClip impactSfx; // Token: 0x0400490F RID: 18703 [SerializeField] private ImpactDecal impactDecalPrefab; // Token: 0x04004910 RID: 18704 [SerializeField] private PooledParticle impactParticle; // Token: 0x04004911 RID: 18705 protected AONMNAEOJAL LICBGDCELPN; // Token: 0x04004912 RID: 18706 protected SFXAudioSource PHEFAEMPMLN; // Token: 0x04004913 RID: 18707 protected PooledParticle DHAPGOKGOAN; // Token: 0x02000CF1 RID: 3313 private enum DGMPEGMMGOD { // Token: 0x04004917 RID: 18711 INSTANTIATOR_ID, // Token: 0x04004918 RID: 18712 INSTANTIATION_PARAMS, // Token: 0x04004919 RID: 18713 TARGET_PLAYER_ID, // Token: 0x0400491A RID: 18714 POWERUP_TYPE, // Token: 0x0400491B RID: 18715 VALUE_COUNT } // Token: 0x02000CF2 RID: 3314 // (Invoke) Token: 0x0601AD39 RID: 109881 public delegate void GGBPGIDHNNO(MNJLCAMHLJF EOFKEKKFCME, LNJFBGIBLHA JEFGMHBLLKI); // Token: 0x02000CF3 RID: 3315 // (Invoke) Token: 0x0601AD3D RID: 109885 public delegate void FAAJGOBJONG(Powerup OKKIBJCFHKN); } }