309 lines
11 KiB
C#
309 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Cpp2IlInjected;
|
|
using Photon.Pun;
|
|
using RecRoom.Core.AI;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Core.Encounters
|
|
{
|
|
// Token: 0x02002FBF RID: 12223
|
|
[Token(Token = "0x2002FBF")]
|
|
public abstract class BaseSpawnEnemyEncounterStep : GameEncounterStep
|
|
{
|
|
// Token: 0x06014D40 RID: 85312 RVA: 0x004E07BC File Offset: 0x004DE9BC
|
|
[Token(Token = "0x6014D40")]
|
|
[Address(RVA = "0x89B000", Offset = "0x899E00", VA = "0x18089B000", Slot = "5")]
|
|
public override void OnAwake(GameEncounter ADDBMBCNBKJ, int PNNLJIGIFDL, MACMLJJGBIM GPPMEPEBADM, MACMLJJGBIM POLMFGOLNLC)
|
|
{
|
|
this.POLMFGOLNLC = 0;
|
|
this.ADDBMBCNBKJ = ADDBMBCNBKJ;
|
|
this.PNNLJIGIFDL = PNNLJIGIFDL;
|
|
this.GPPMEPEBADM = GPPMEPEBADM;
|
|
MFBGLIHGCGO<Enemy> enemyInstantiatedEvent = Enemy.EnemyInstantiatedEvent;
|
|
Action<Enemy> action = new Action(this.NDPNGCIFFOJ);
|
|
Enemy.EnemyInstantiatedEvent = MFBGLIHGCGO.BPJDFPACLMK(enemyInstantiatedEvent, action);
|
|
IILCGFIHJLP<Enemy, ENDNBHFKNFL> enemyDeathEvent = Enemy.EnemyDeathEvent;
|
|
Action<Enemy, ENDNBHFKNFL> action2 = new Action(this.LCFGLKPPOFI);
|
|
Enemy.EnemyDeathEvent = IILCGFIHJLP.BPJDFPACLMK(enemyDeathEvent, action2);
|
|
Dictionary<string, object> fmppfapaeoe = this.FMPPFAPAEOE;
|
|
string encounter_ID_KEY = BaseSpawnEnemyEncounterStep.ENCOUNTER_ID_KEY;
|
|
int num = 0;
|
|
if (ADDBMBCNBKJ != num)
|
|
{
|
|
PhotonView photonView = ADDBMBCNBKJ.JDHMIOJKLCK;
|
|
}
|
|
int num2;
|
|
fmppfapaeoe.Add(encounter_ID_KEY, num2);
|
|
Dictionary<string, object> fmppfapaeoe2 = this.FMPPFAPAEOE;
|
|
Dictionary<string, object> fmppfapaeoe3 = this.FMPPFAPAEOE;
|
|
bool flag = this.suppressRewards;
|
|
string encounter_SUPPRESS_REWARDS_KEY = BaseSpawnEnemyEncounterStep.ENCOUNTER_SUPPRESS_REWARDS_KEY;
|
|
fmppfapaeoe3.Add(encounter_SUPPRESS_REWARDS_KEY, flag);
|
|
}
|
|
|
|
// Token: 0x06014D41 RID: 85313 RVA: 0x004E0884 File Offset: 0x004DEA84
|
|
[Token(Token = "0x6014D41")]
|
|
[Address(RVA = "0x89B2C0", Offset = "0x89A0C0", VA = "0x18089B2C0", Slot = "6")]
|
|
public override void OnCleanup()
|
|
{
|
|
MFBGLIHGCGO<Enemy> enemyInstantiatedEvent = Enemy.EnemyInstantiatedEvent;
|
|
Action<Enemy> action = new Action(this.NDPNGCIFFOJ);
|
|
Enemy.EnemyInstantiatedEvent = MFBGLIHGCGO.GMNMHGMFGOL(enemyInstantiatedEvent, action);
|
|
IILCGFIHJLP<Enemy, ENDNBHFKNFL> enemyDeathEvent = Enemy.EnemyDeathEvent;
|
|
Action<Enemy, ENDNBHFKNFL> action2 = new Action(this.LCFGLKPPOFI);
|
|
Enemy.EnemyDeathEvent = IILCGFIHJLP.GMNMHGMFGOL(enemyDeathEvent, action2);
|
|
}
|
|
|
|
// Token: 0x06014D42 RID: 85314 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6014D42")]
|
|
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "9")]
|
|
public override void OnEncounterStart()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06014D43 RID: 85315 RVA: 0x004E08D0 File Offset: 0x004DEAD0
|
|
[Token(Token = "0x6014D43")]
|
|
[Address(RVA = "0x89B3E0", Offset = "0x89A1E0", VA = "0x18089B3E0", Slot = "10")]
|
|
public override void OnEncounterStop()
|
|
{
|
|
this.MasterKillAllLivingEnemies();
|
|
}
|
|
|
|
// Token: 0x06014D44 RID: 85316 RVA: 0x004E08E4 File Offset: 0x004DEAE4
|
|
[Token(Token = "0x6014D44")]
|
|
[Address(RVA = "0x89A400", Offset = "0x899200", VA = "0x18089A400", Slot = "17")]
|
|
protected virtual Enemy IECCPICKICL(EncounterEnemyDescriptor PDDLCLCJLDK, bool CABEJDLDICN, out bool MKNPGPFEMFM)
|
|
{
|
|
int num = 0;
|
|
MKNPGPFEMFM.m_value = num != 0;
|
|
if (KKPBCOOONNK.BNNCCCFFALC && PDDLCLCJLDK.EnemyType != JIEHOGDIGPG.INVALID)
|
|
{
|
|
Enemy enemy = this.IECCPICKICL(PDDLCLCJLDK, num != 0, out MKNPGPFEMFM);
|
|
bool flag = enemy == 0;
|
|
MKNPGPFEMFM.m_value = flag;
|
|
if (enemy != 0)
|
|
{
|
|
EnemyPatrol <CNNIBLAALOF>k__BackingField = this.ADDBMBCNBKJ.<CNNIBLAALOF>k__BackingField;
|
|
int num2 = 0;
|
|
if (!(<CNNIBLAALOF>k__BackingField != num2))
|
|
{
|
|
}
|
|
EnemyPatrol <CNNIBLAALOF>k__BackingField2 = this.ADDBMBCNBKJ.<CNNIBLAALOF>k__BackingField;
|
|
GameEncounter addbmbcnbkj = this.ADDBMBCNBKJ;
|
|
JIEHOGDIGPG enemyType = PDDLCLCJLDK.EnemyType;
|
|
CGLKOJIMDIH <GFJMMJBJGMO>k__BackingField = addbmbcnbkj.<GFJMMJBJGMO>k__BackingField;
|
|
PhotonView photonView = addbmbcnbkj.JDHMIOJKLCK;
|
|
Dictionary<string, object> fmppfapaeoe = this.FMPPFAPAEOE;
|
|
int viewIdField = photonView.viewIdField;
|
|
int num3 = 0;
|
|
Enemy enemy2;
|
|
if (enemy2 == num3)
|
|
{
|
|
JIEHOGDIGPG jiehogdigpg;
|
|
string text = "Enemy of type " + jiehogdigpg + " failed to instantiate.";
|
|
}
|
|
}
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06014D45 RID: 85317 RVA: 0x004E09BC File Offset: 0x004DEBBC
|
|
[Token(Token = "0x6014D45")]
|
|
[Address(RVA = "0x89A790", Offset = "0x899590", VA = "0x18089A790", Slot = "18")]
|
|
protected virtual bool KHODDIADAEL(EncounterEnemyDescriptor PDDLCLCJLDK, out Vector3 JJGDNPNBINJ, out Quaternion MEJCMIKAJCD)
|
|
{
|
|
float z = Vector3.zero.z;
|
|
JJGDNPNBINJ.z = z;
|
|
Quaternion identity = Quaternion.identity;
|
|
Transform explicitSpawnPoint = PDDLCLCJLDK.ExplicitSpawnPoint;
|
|
int num = 0;
|
|
if (!(explicitSpawnPoint != num))
|
|
{
|
|
EnemySpawnNavMeshRegion[] array = this.spawnRegions;
|
|
int length = array.Length;
|
|
if (length != 0)
|
|
{
|
|
EnemySpawnNavMeshRegion enemySpawnNavMeshRegion = array[length];
|
|
int num2 = 0;
|
|
if (!(enemySpawnNavMeshRegion == num2) && enemySpawnNavMeshRegion.TryGetSpawnPositionAndRotation(out JJGDNPNBINJ, out MEJCMIKAJCD))
|
|
{
|
|
int enemyType = (int)PDDLCLCJLDK.EnemyType;
|
|
EOBBJADIFAI eobbjadifai;
|
|
if (eobbjadifai != EOBBJADIFAI.FLYING)
|
|
{
|
|
goto IL_EB;
|
|
}
|
|
int num3 = 0;
|
|
Vector3 up = Vector3.up;
|
|
int num4 = 0;
|
|
float num5 = PFEIDJDACLO.CGIJGEMAGNC();
|
|
Vector3 vector = num4 * (float)num3;
|
|
float z2 = (num4 + num3).z;
|
|
JJGDNPNBINJ.z = z2;
|
|
}
|
|
}
|
|
}
|
|
Transform explicitSpawnPoint2 = PDDLCLCJLDK.ExplicitSpawnPoint;
|
|
float z3 = explicitSpawnPoint.position.z;
|
|
JJGDNPNBINJ.z = z3;
|
|
Transform explicitSpawnPoint3 = PDDLCLCJLDK.ExplicitSpawnPoint;
|
|
Vector3 up2 = Vector3.up;
|
|
Vector3 up3 = Vector3.up;
|
|
IL_EB:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06014D46 RID: 85318 RVA: 0x004E0ABC File Offset: 0x004DECBC
|
|
[Token(Token = "0x6014D46")]
|
|
[Address(RVA = "0x89A730", Offset = "0x899530", VA = "0x18089A730", Slot = "19")]
|
|
protected virtual void JLEFLDGGDMC(Vector3 JJGDNPNBINJ, Quaternion MEJCMIKAJCD, out Vector3 PIJJKOAJIEE, out Quaternion IIBIPBOPBBB)
|
|
{
|
|
EnemySpawnerConfiguration enemySpawnerConfiguration = this.spawnerConfiguration;
|
|
float z = JJGDNPNBINJ.z;
|
|
}
|
|
|
|
// Token: 0x06014D47 RID: 85319 RVA: 0x004E0AE0 File Offset: 0x004DECE0
|
|
[Token(Token = "0x6014D47")]
|
|
[Address(RVA = "0x89AE40", Offset = "0x899C40", VA = "0x18089AE40")]
|
|
private void NDPNGCIFFOJ(Enemy BPJNEFJBBML)
|
|
{
|
|
if (this.OCIKMLKODCP(BPJNEFJBBML))
|
|
{
|
|
this.EILIFMJGCBB.Add(BPJNEFJBBML);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06014D48 RID: 85320 RVA: 0x004E0B0C File Offset: 0x004DED0C
|
|
[Token(Token = "0x6014D48")]
|
|
[Address(RVA = "0x89AB80", Offset = "0x899980", VA = "0x18089AB80")]
|
|
private void LCFGLKPPOFI(Enemy BPJNEFJBBML, ENDNBHFKNFL LJGOHLFADDN)
|
|
{
|
|
if (this.OCIKMLKODCP(BPJNEFJBBML))
|
|
{
|
|
bool flag = this.EILIFMJGCBB.Remove(BPJNEFJBBML);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06014D49 RID: 85321 RVA: 0x004E0B38 File Offset: 0x004DED38
|
|
[Token(Token = "0x6014D49")]
|
|
[Address(RVA = "0x89AEB0", Offset = "0x899CB0", VA = "0x18089AEB0")]
|
|
private bool OCIKMLKODCP(Enemy BPJNEFJBBML)
|
|
{
|
|
GameEncounter addbmbcnbkj = this.ADDBMBCNBKJ;
|
|
int <HIKGLIJCOHC>k__BackingField = BPJNEFJBBML.<HIKGLIJCOHC>k__BackingField;
|
|
PhotonView photonView = addbmbcnbkj.JDHMIOJKLCK;
|
|
bool flag;
|
|
if (<HIKGLIJCOHC>k__BackingField == photonView.viewIdField && BPJNEFJBBML.<HONMKCBCBIM>k__BackingField != 0 && flag)
|
|
{
|
|
int pnnljigifdl = this.PNNLJIGIFDL;
|
|
return true;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06014D4A RID: 85322 RVA: 0x004E0B84 File Offset: 0x004DED84
|
|
[Token(Token = "0x6014D4A")]
|
|
[Address(RVA = "0x89ABF0", Offset = "0x8999F0", VA = "0x18089ABF0")]
|
|
public void MasterKillAllLivingEnemies()
|
|
{
|
|
if (KKPBCOOONNK.BNNCCCFFALC)
|
|
{
|
|
BaseSpawnEnemyEncounterStep.GHBEPPFECBA.Clear();
|
|
List<Enemy> ghbeppfecba = BaseSpawnEnemyEncounterStep.GHBEPPFECBA;
|
|
List<Enemy> eilifmjgcbb = this.EILIFMJGCBB;
|
|
ghbeppfecba.AddRange(eilifmjgcbb);
|
|
this.EILIFMJGCBB.Clear();
|
|
int num = 0;
|
|
List<Enemy> ghbeppfecba2 = BaseSpawnEnemyEncounterStep.GHBEPPFECBA;
|
|
if (!this.ADDBMBCNBKJ.<LOKHDINNFCN>k__BackingField)
|
|
{
|
|
List<Enemy> ghbeppfecba3 = BaseSpawnEnemyEncounterStep.GHBEPPFECBA;
|
|
num++;
|
|
}
|
|
List<Enemy> ghbeppfecba4 = BaseSpawnEnemyEncounterStep.GHBEPPFECBA;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06014D4B RID: 85323 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6014D4B")]
|
|
[Address(RVA = "0x89A340", Offset = "0x899140", VA = "0x18089A340")]
|
|
protected int BOIKGOELJPC()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06014D4C RID: 85324 RVA: 0x004E0BF8 File Offset: 0x004DEDF8
|
|
[Token(Token = "0x6014D4C")]
|
|
[Address(RVA = "0x89B4A0", Offset = "0x89A2A0", VA = "0x18089B4A0")]
|
|
protected BaseSpawnEnemyEncounterStep()
|
|
{
|
|
EnemySpawnNavMeshRegion[] array = new EnemySpawnNavMeshRegion[1];
|
|
this.spawnRegions = array;
|
|
List<Enemy> list = new List();
|
|
this.EILIFMJGCBB = list;
|
|
Dictionary<string, object> dictionary = new Dictionary();
|
|
this.FMPPFAPAEOE = dictionary;
|
|
this.stepName = "New Step";
|
|
this.PNNLJIGIFDL = (int)((ulong)4294967295L);
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x0400DC79 RID: 56441
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400DC79")]
|
|
[SerializeField]
|
|
[Header("Spawn Configuration")]
|
|
public EnemySpawnerConfiguration spawnerConfiguration;
|
|
|
|
// Token: 0x0400DC7A RID: 56442
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400DC7A")]
|
|
[SerializeField]
|
|
[Header("Patrol")]
|
|
public bool spawnOnPatrol = true;
|
|
|
|
// Token: 0x0400DC7B RID: 56443
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400DC7B")]
|
|
[SerializeField]
|
|
[Header("Spawn Regions")]
|
|
public EnemySpawnNavMeshRegion[] spawnRegions;
|
|
|
|
// Token: 0x0400DC7C RID: 56444
|
|
[FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400DC7C")]
|
|
[SerializeField]
|
|
[Header("Rewards")]
|
|
public bool suppressRewards;
|
|
|
|
// Token: 0x0400DC7D RID: 56445
|
|
[Token(Token = "0x400DC7D")]
|
|
public static readonly string ENCOUNTER_ID_KEY = "ENC_ID";
|
|
|
|
// Token: 0x0400DC7E RID: 56446
|
|
[Token(Token = "0x400DC7E")]
|
|
public static readonly string ENCOUNTER_STEP_ID_KEY = "ENC_STEP_ID";
|
|
|
|
// Token: 0x0400DC7F RID: 56447
|
|
[Token(Token = "0x400DC7F")]
|
|
public static readonly string ENCOUNTER_SUPPRESS_REWARDS_KEY = "ENC_SR";
|
|
|
|
// Token: 0x0400DC80 RID: 56448
|
|
[Token(Token = "0x400DC80")]
|
|
private static List<Enemy> GHBEPPFECBA = new List();
|
|
|
|
// Token: 0x0400DC81 RID: 56449
|
|
[FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400DC81")]
|
|
protected List<Enemy> EILIFMJGCBB;
|
|
|
|
// Token: 0x0400DC82 RID: 56450
|
|
[FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x400DC82")]
|
|
private Dictionary<string, object> FMPPFAPAEOE;
|
|
}
|
|
}
|