304 lines
11 KiB
C#
304 lines
11 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Activities.Quest;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Core.Encounters
|
|
{
|
|
// Token: 0x02003092 RID: 12434
|
|
[Token(Token = "0x2003092")]
|
|
public class OverlapVolumeEncounterStartTrigger : GameEncounterStartTrigger
|
|
{
|
|
// Token: 0x06015134 RID: 86324 RVA: 0x004E9AE4 File Offset: 0x004E7CE4
|
|
[Token(Token = "0x6015134")]
|
|
[Address(RVA = "0x85CAC0", Offset = "0x85BAC0", VA = "0x18085CAC0", Slot = "6")]
|
|
public override void OnCleanup()
|
|
{
|
|
base.StopListening();
|
|
}
|
|
|
|
// Token: 0x17003A00 RID: 14848
|
|
// (get) Token: 0x06015135 RID: 86325 RVA: 0x004E9AF8 File Offset: 0x004E7CF8
|
|
[Token(Token = "0x17003A00")]
|
|
public override string KODBEJPEFOJ
|
|
{
|
|
[Token(Token = "0x6015135")]
|
|
[Address(RVA = "0x13A7AF0", Offset = "0x13A6AF0", VA = "0x1813A7AF0", Slot = "4")]
|
|
get
|
|
{
|
|
return "Players teleport or walk in to volumes.";
|
|
}
|
|
}
|
|
|
|
// Token: 0x06015136 RID: 86326 RVA: 0x004E9B0C File Offset: 0x004E7D0C
|
|
[Token(Token = "0x6015136")]
|
|
[Address(RVA = "0x13A77E0", Offset = "0x13A67E0", VA = "0x1813A77E0", Slot = "9")]
|
|
public override void StartListening()
|
|
{
|
|
if (!string.IsNullOrEmpty(this.defaultNotYetTriggeredNotification))
|
|
{
|
|
EncounterOverlapVolume[] array = this.volumes;
|
|
int num = 0;
|
|
if (num < array.Length)
|
|
{
|
|
int num2 = 0;
|
|
EncounterOverlapVolume encounterOverlapVolume;
|
|
if (encounterOverlapVolume != num2)
|
|
{
|
|
EncounterOverlapVolume[] array2 = this.volumes;
|
|
Action<OverlapVolume> action = new Action(this.LMPDBKLEKLF);
|
|
EncounterOverlapVolume encounterOverlapVolume2;
|
|
encounterOverlapVolume2.LocalPlayerVolumeEnterEvent += action;
|
|
}
|
|
EncounterOverlapVolume[] array3 = this.volumes;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06015137 RID: 86327 RVA: 0x004E9B78 File Offset: 0x004E7D78
|
|
[Token(Token = "0x6015137")]
|
|
[Address(RVA = "0x13A7940", Offset = "0x13A6940", VA = "0x1813A7940", Slot = "11")]
|
|
public override void StopListening()
|
|
{
|
|
Coroutine lpobimhhifa = this.LPOBIMHHIFA;
|
|
int num = 0;
|
|
if (lpobimhhifa != 0)
|
|
{
|
|
base.StopCoroutine(lpobimhhifa);
|
|
this.LPOBIMHHIFA = num;
|
|
}
|
|
EncounterOverlapVolume[] array = this.volumes;
|
|
if (num < array.Length)
|
|
{
|
|
int num2 = 0;
|
|
EncounterOverlapVolume encounterOverlapVolume;
|
|
if (encounterOverlapVolume != num2)
|
|
{
|
|
EncounterOverlapVolume[] array2 = this.volumes;
|
|
Action<OverlapVolume> action = new Action(this.LMPDBKLEKLF);
|
|
EncounterOverlapVolume encounterOverlapVolume2;
|
|
encounterOverlapVolume2.LocalPlayerVolumeEnterEvent -= action;
|
|
}
|
|
EncounterOverlapVolume[] array3 = this.volumes;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06015138 RID: 86328 RVA: 0x004E9BF0 File Offset: 0x004E7DF0
|
|
[Token(Token = "0x6015138")]
|
|
[Address(RVA = "0x13A74E0", Offset = "0x13A64E0", VA = "0x1813A74E0", Slot = "10")]
|
|
public override bool IsTriggered()
|
|
{
|
|
GameManager <PLMNHPJOIKH>k__BackingField = this.ADDBMBCNBKJ.<PLMNHPJOIKH>k__BackingField;
|
|
int num = 0;
|
|
if (!(<PLMNHPJOIKH>k__BackingField != num))
|
|
{
|
|
AGAJMBPABDL[] array = KKPBCOOONNK.DFFEKFNFAKJ;
|
|
AGAJMBPABDL[] array2 = KKPBCOOONNK.DFFEKFNFAKJ;
|
|
}
|
|
IEnumerable<AGAJMBPABDL> activePlayers = this.ADDBMBCNBKJ.<PLMNHPJOIKH>k__BackingField.teamManager.GetActivePlayers();
|
|
int num2 = Enumerable.Count<AGAJMBPABDL>(activePlayers);
|
|
EncounterOverlapVolume[] array3 = this.volumes;
|
|
int num3 = BNLCFFMDFBD.NAPKPMPFNFL(activePlayers, array3);
|
|
OverlapVolumeEncounterStartTrigger.FIIMJPMPJOD fiimjpmpjod = this.playerRequirement;
|
|
bool flag;
|
|
if (fiimjpmpjod != OverlapVolumeEncounterStartTrigger.FIIMJPMPJOD.ONE_PLAYER)
|
|
{
|
|
if (fiimjpmpjod != OverlapVolumeEncounterStartTrigger.FIIMJPMPJOD.ALL_PLAYERS)
|
|
{
|
|
}
|
|
return flag;
|
|
}
|
|
return flag >= true;
|
|
}
|
|
|
|
// Token: 0x06015139 RID: 86329 RVA: 0x004E9C80 File Offset: 0x004E7E80
|
|
[Token(Token = "0x6015139")]
|
|
[Address(RVA = "0x13A7630", Offset = "0x13A6630", VA = "0x1813A7630")]
|
|
private void LMPDBKLEKLF(OverlapVolume DHPCKKKLNDN)
|
|
{
|
|
OverlapVolumeEncounterStartTrigger.StoryStateDependantNotification[] array = this.roomStoryStateNotifications;
|
|
int num = 0;
|
|
if (array != 0 && array.Length != num && QuestManager.FFNIFALJLDD)
|
|
{
|
|
QuestManager.OIHHCDMIMOG currentRoomStoryState = QuestManager.ONCPNMDGGKG.LFKGKLJOOFD;
|
|
OverlapVolumeEncounterStartTrigger.StoryStateDependantNotification[] array2 = this.roomStoryStateNotifications;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
int length = array2.Length;
|
|
if (num3 < length)
|
|
{
|
|
num2 += 2;
|
|
num2 += num2;
|
|
if ("{il2cpp array field local10->}" != currentRoomStoryState)
|
|
{
|
|
num2++;
|
|
}
|
|
}
|
|
}
|
|
string text;
|
|
if (array != 0)
|
|
{
|
|
text = this.defaultNotYetTriggeredNotification;
|
|
}
|
|
if (array == 0)
|
|
{
|
|
Coroutine lpobimhhifa = this.LPOBIMHHIFA;
|
|
if (lpobimhhifa != 0)
|
|
{
|
|
base.StopCoroutine(lpobimhhifa);
|
|
this.LPOBIMHHIFA = (ulong)0L;
|
|
}
|
|
OverlapVolumeEncounterStartTrigger.OIGBOEIDGLN oigboeidgln;
|
|
oigboeidgln.System.IDisposable.Dispose();
|
|
oigboeidgln.<>1__state = (int)((ulong)0L);
|
|
oigboeidgln.<>4__this = this;
|
|
oigboeidgln.notification = text;
|
|
Coroutine coroutine = base.StartCoroutine(oigboeidgln);
|
|
this.LPOBIMHHIFA = coroutine;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601513A RID: 86330 RVA: 0x004E9D64 File Offset: 0x004E7F64
|
|
[Token(Token = "0x601513A")]
|
|
[Address(RVA = "0x13A7320", Offset = "0x13A6320", VA = "0x1813A7320")]
|
|
private void AEJPEFLFODG()
|
|
{
|
|
Coroutine lpobimhhifa = this.LPOBIMHHIFA;
|
|
if (lpobimhhifa != 0)
|
|
{
|
|
base.StopCoroutine(lpobimhhifa);
|
|
this.LPOBIMHHIFA = (ulong)0L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601513B RID: 86331 RVA: 0x004E9D8C File Offset: 0x004E7F8C
|
|
[Token(Token = "0x601513B")]
|
|
[Address(RVA = "0x13A7350", Offset = "0x13A6350", VA = "0x1813A7350")]
|
|
private IEnumerator DDJHGKEBMKA(string NOEDFHOANIO)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0601513B)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.Core.Encounters.OverlapVolumeEncounterStartTrigger::DDJHGKEBMKA(System.String)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
call:void(OIGBOEIDGLN::System.IDisposable.Dispose, ldloc:OIGBOEIDGLN(var_0))
|
|
stfld:OverlapVolumeEncounterStartTrigger(OIGBOEIDGLN::<>4__this, ldloc:OIGBOEIDGLN(var_0), ldloc:OverlapVolumeEncounterStartTrigger(this))
|
|
stfld:int32(OIGBOEIDGLN::<>1__state, ldloc:OIGBOEIDGLN(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0)))
|
|
stfld:string(OIGBOEIDGLN::notification, ldloc:OIGBOEIDGLN(var_0), ldloc:string(NOEDFHOANIO))
|
|
}
|
|
|
|
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: 0x0601513C RID: 86332 RVA: 0x004E9DB8 File Offset: 0x004E7FB8
|
|
[Token(Token = "0x601513C")]
|
|
[Address(RVA = "0x13A73C0", Offset = "0x13A63C0", VA = "0x1813A73C0")]
|
|
private string EBEDLHPGPGE()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
OverlapVolumeEncounterStartTrigger.StoryStateDependantNotification[] array = this.roomStoryStateNotifications;
|
|
num = 0;
|
|
if (array != 0 && array.Length != num && QuestManager.FFNIFALJLDD)
|
|
{
|
|
QuestManager.OIHHCDMIMOG currentRoomStoryState = QuestManager.ONCPNMDGGKG.LFKGKLJOOFD;
|
|
int length = this.roomStoryStateNotifications.Length;
|
|
if (num < length)
|
|
{
|
|
num += 2;
|
|
num += num;
|
|
if ("{il2cpp array field local9->}" != currentRoomStoryState)
|
|
{
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
while (!string.IsNullOrEmpty(num));
|
|
return this.defaultNotYetTriggeredNotification;
|
|
}
|
|
|
|
// Token: 0x0601513D RID: 86333 RVA: 0x004E9E30 File Offset: 0x004E8030
|
|
[Token(Token = "0x601513D")]
|
|
[Address(RVA = "0x13A7AA0", Offset = "0x13A6AA0", VA = "0x1813A7AA0")]
|
|
public OverlapVolumeEncounterStartTrigger()
|
|
{
|
|
this.MAMIAELEMJC = (int)((ulong)4294967295L);
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x0400DE66 RID: 56934
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x400DE66")]
|
|
[SerializeField]
|
|
public EncounterOverlapVolume[] volumes;
|
|
|
|
// Token: 0x0400DE67 RID: 56935
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400DE67")]
|
|
[SerializeField]
|
|
public OverlapVolumeEncounterStartTrigger.FIIMJPMPJOD playerRequirement;
|
|
|
|
// Token: 0x0400DE68 RID: 56936
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400DE68")]
|
|
[SerializeField]
|
|
private string defaultNotYetTriggeredNotification = "";
|
|
|
|
// Token: 0x0400DE69 RID: 56937
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400DE69")]
|
|
[SerializeField]
|
|
private OverlapVolumeEncounterStartTrigger.StoryStateDependantNotification[] roomStoryStateNotifications;
|
|
|
|
// Token: 0x0400DE6A RID: 56938
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400DE6A")]
|
|
private Coroutine LPOBIMHHIFA;
|
|
|
|
// Token: 0x02003093 RID: 12435
|
|
[Token(Token = "0x2003093")]
|
|
public enum FIIMJPMPJOD
|
|
{
|
|
// Token: 0x0400DE6C RID: 56940
|
|
[Token(Token = "0x400DE6C")]
|
|
ONE_PLAYER,
|
|
// Token: 0x0400DE6D RID: 56941
|
|
[Token(Token = "0x400DE6D")]
|
|
ALL_PLAYERS
|
|
}
|
|
|
|
// Token: 0x02003094 RID: 12436
|
|
[Token(Token = "0x2003094")]
|
|
[Serializable]
|
|
public struct StoryStateDependantNotification
|
|
{
|
|
// Token: 0x0400DE6E RID: 56942
|
|
[FieldOffset(Offset = "0x0")]
|
|
[Token(Token = "0x400DE6E")]
|
|
public QuestManager.OIHHCDMIMOG roomStoryState;
|
|
|
|
// Token: 0x0400DE6F RID: 56943
|
|
[FieldOffset(Offset = "0x8")]
|
|
[Token(Token = "0x400DE6F")]
|
|
public string notYetTriggeredNotification;
|
|
}
|
|
}
|
|
}
|