Files
Dec2017-Script-Dump/Assembly-CSharp/RecRoom/Core/Encounters/BaseSpawnEnemyEncounterStep.cs
T
2026-06-04 11:42:34 +02:00

183 lines
5.6 KiB
C#

using System;
using System.Collections.Generic;
using RecRoom.Core.AI;
using UnityEngine;
namespace RecRoom.Core.Encounters
{
// Token: 0x020009B7 RID: 2487
public abstract class BaseSpawnEnemyEncounterStep : GameEncounterStep
{
// Token: 0x06012B03 RID: 76547 RVA: 0x00556D68 File Offset: 0x00554F68
public override void OnAwake(GameEncounter EBMDDFDIPEP, int BFDOPNMDIGP, KPFHBPCEMMD MONDEOHAMIO, KPFHBPCEMMD FKAEEDGBEJB)
{
base.OnAwake(EBMDDFDIPEP, BFDOPNMDIGP, MONDEOHAMIO, FKAEEDGBEJB);
Enemy.NNENOABJJPA += this.MIGKILMJBAK;
Enemy.DPDDEBIHPII += this.LHNHAOAKKHN;
this.MCJIOHIJFHB.Add(BaseSpawnEnemyEncounterStep.NKBIPPBLBEC, BFDOPNMDIGP);
}
// Token: 0x06012B04 RID: 76548 RVA: 0x00556DB8 File Offset: 0x00554FB8
public override void OnCleanup()
{
base.OnCleanup();
Enemy.NNENOABJJPA -= this.MIGKILMJBAK;
Enemy.DPDDEBIHPII -= this.LHNHAOAKKHN;
}
// Token: 0x06012B05 RID: 76549 RVA: 0x00556DE4 File Offset: 0x00554FE4
public override void OnEncounterStart()
{
}
// Token: 0x06012B06 RID: 76550 RVA: 0x00556DE8 File Offset: 0x00554FE8
public override void OnEncounterStop()
{
this.MasterKillAllLivingEnemies();
}
// Token: 0x06012B07 RID: 76551 RVA: 0x00556DF0 File Offset: 0x00554FF0
protected Enemy DLLNDEJBMNF(EncounterEnemyDescriptor DPAMLOGEFBO, bool FBNHPKHEGBK, out bool OKJKCKHKHFD)
{
OKJKCKHKHFD = false;
if (!IHFKMIAHBFP.HCHIDMOLLAD || DPAMLOGEFBO.EnemyType == DJGJNJMJDHF.INVALID)
{
return null;
}
Vector3 vector;
Quaternion quaternion;
if (DPAMLOGEFBO.ExplicitSpawnPoint != null)
{
vector = DPAMLOGEFBO.ExplicitSpawnPoint.position;
Vector3 normalized = Vector3.ProjectOnPlane(DPAMLOGEFBO.ExplicitSpawnPoint.forward, Vector3.up).normalized;
quaternion = Quaternion.LookRotation(normalized, Vector3.up);
}
else
{
EnemySpawnNavMeshRegion enemySpawnNavMeshRegion;
if (this.spawnRegions.Length == 0 || (enemySpawnNavMeshRegion = this.spawnRegions[global::UnityEngine.Random.Range(0, this.spawnRegions.Length)]) == null)
{
base.NLLNCFIMHGF("Missing or null spawn regions.");
return null;
}
if (!enemySpawnNavMeshRegion.TryGetSpawnPositionAndRotation(out vector, out quaternion))
{
OKJKCKHKHFD = true;
return null;
}
if (NDOFAEEKBGO.FPGEJOONGNH(DPAMLOGEFBO.EnemyType) == NFHAHJBGBIM.FLYING)
{
vector += Vector3.up * NDOFAEEKBGO.HCEBMDLMDGA();
}
}
EnemyPatrol enemyPatrol;
if (this.EBMDDFDIPEP.IHDGILNHAPC != null)
{
enemyPatrol = this.EBMDDFDIPEP.IHDGILNHAPC;
}
else
{
enemyPatrol = DPAMLOGEFBO.Patrol;
}
Vector3 vector2;
Quaternion quaternion2;
this.spawnerConfiguration.HPAKLLBCAPO(vector, quaternion, out vector2, out quaternion2);
Enemy enemy = Enemy.MasterSpawn(DPAMLOGEFBO.EnemyType, vector2, quaternion2, vector, this.spawnOnPatrol, enemyPatrol, this.EBMDDFDIPEP.HAPPDKOIBKA, FBNHPKHEGBK, this.EBMDDFDIPEP.OMNGGJICBBI.ADMBCINHJOG, this.MCJIOHIJFHB);
if (enemy == null)
{
base.NLLNCFIMHGF("Enemy of type " + DPAMLOGEFBO.EnemyType + " failed to instantiate.");
}
return enemy;
}
// Token: 0x06012B08 RID: 76552 RVA: 0x00556F90 File Offset: 0x00555190
private void MIGKILMJBAK(Enemy OELGAHAMCLH)
{
if (this.IAIMMBDDHDM(OELGAHAMCLH))
{
this.DPCAHEMGIML.Add(OELGAHAMCLH);
}
}
// Token: 0x06012B09 RID: 76553 RVA: 0x00556FAC File Offset: 0x005551AC
private void LHNHAOAKKHN(Enemy OELGAHAMCLH)
{
if (this.IAIMMBDDHDM(OELGAHAMCLH))
{
this.DPCAHEMGIML.Remove(OELGAHAMCLH);
}
}
// Token: 0x06012B0A RID: 76554 RVA: 0x00556FC8 File Offset: 0x005551C8
private bool IAIMMBDDHDM(Enemy OELGAHAMCLH)
{
if (OELGAHAMCLH.GGFGGLCBCON == this.EBMDDFDIPEP.OMNGGJICBBI.ADMBCINHJOG)
{
object obj = -1;
Dictionary<string, object> instantiationParameters = OELGAHAMCLH.OAEPDOMEFGP;
if (instantiationParameters != null && instantiationParameters.TryGetValue(BaseSpawnEnemyEncounterStep.NKBIPPBLBEC, out obj) && (int)obj == this.BFDOPNMDIGP)
{
return true;
}
}
return false;
}
// Token: 0x06012B0B RID: 76555 RVA: 0x0055702C File Offset: 0x0055522C
public void MasterKillAllLivingEnemies()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
BaseSpawnEnemyEncounterStep.FLNIJLLDDFD.Clear();
BaseSpawnEnemyEncounterStep.FLNIJLLDDFD.AddRange(this.DPCAHEMGIML);
this.DPCAHEMGIML.Clear();
for (int i = 0; i < BaseSpawnEnemyEncounterStep.FLNIJLLDDFD.Count; i++)
{
Enemy.MasterKill(BaseSpawnEnemyEncounterStep.FLNIJLLDDFD[i]);
}
}
}
// Token: 0x06012B0C RID: 76556 RVA: 0x00557094 File Offset: 0x00555294
protected int JFALHNMALMK()
{
int num = 0;
for (int i = 0; i < this.DPCAHEMGIML.Count; i++)
{
if (this.DPCAHEMGIML[i].AALIKEFHNIG)
{
num++;
}
}
return num;
}
// Token: 0x0400340C RID: 13324
[SerializeField]
[Header("Spawn Configuration")]
public EnemySpawnerConfiguration spawnerConfiguration;
// Token: 0x0400340D RID: 13325
[Header("Patrol")]
[SerializeField]
public bool spawnOnPatrol = true;
// Token: 0x0400340E RID: 13326
[Header("Spawn Regions")]
[SerializeField]
public EnemySpawnNavMeshRegion[] spawnRegions = new EnemySpawnNavMeshRegion[1];
// Token: 0x0400340F RID: 13327
private static readonly string NKBIPPBLBEC = "ENC_STEP_ID";
// Token: 0x04003410 RID: 13328
private static List<Enemy> FLNIJLLDDFD = new List<Enemy>();
// Token: 0x04003411 RID: 13329
protected List<Enemy> DPCAHEMGIML = new List<Enemy>();
// Token: 0x04003412 RID: 13330
private Dictionary<string, object> MCJIOHIJFHB = new Dictionary<string, object>();
}
}