using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using AIGraph;
using AK;
using Agents;
using BepInEx;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using BepInEx.Unity.IL2CPP.Utils.Collections;
using Enemies;
using GTFO.API;
using GameData;
using Globals;
using HarmonyLib;
using Il2CppInterop.Runtime.Injection;
using Il2CppInterop.Runtime.InteropTypes;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using LevelGeneration;
using Localization;
using Microsoft.CodeAnalysis;
using Player;
using SNetwork;
using TMPro;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("Simulacrum")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Simulacrum")]
[assembly: AssemblyTitle("Simulacrum")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
}
namespace Simulacrum
{
[BepInPlugin("com.Brandont.LongerCodes", "LongerCodes", "1.0.0")]
public class Loader : BasePlugin
{
public const string MODNAME = "LongerCodes";
public const string AUTHOR = "Brandont";
public const string GUID = "com.Brandont.LongerCodes";
public const string VERSION = "1.0.0";
public static ManualLogSource Logger;
public override void Load()
{
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Expected O, but got Unknown
Logger = ((BasePlugin)this).Log;
((BasePlugin)this).Log.LogMessage((object)"Loading LongerCodes");
ClassInjector.RegisterTypeInIl2Cpp<SimCore>();
EventAPI.OnManagersSetup += delegate
{
SimCore @object = ((Component)Global.Current).gameObject.AddComponent<SimCore>();
LevelAPI.OnEnterLevel += @object.LevelStarted;
LevelAPI.OnLevelCleanup += @object.LevelCleanup;
};
NetworkAPI.RegisterEvent<int>("SetWave", (Action<ulong, int>)SimCore.SetWave);
NetworkAPI.RegisterEvent<int>("SetSpawnScream", (Action<ulong, int>)SimCore.SetSpawnScream);
Harmony val = new Harmony("LongerCodes");
val.PatchAll();
((BasePlugin)this).Log.LogMessage((object)"Loaded LongerCodes");
}
}
internal class SimCore : MonoBehaviour
{
public static PUI_ObjectiveTimer waveInfo;
public static PUI_InteractionPrompt intPrompt;
public static int currentWave = 0;
public static float timer = 60f;
private static bool updateWave = false;
private static int spawnPoint = 0;
private static bool levelFinished = false;
public static AIG_CourseNode? courseNode;
public static List<Vector3> WaveSpawnPoints = new List<Vector3>
{
new Vector3(-86f, 0f, 0f),
new Vector3(0f, 0f, 86f),
new Vector3(0f, -1f, -80f),
new Vector3(86f, 0f, 0f)
};
public void LevelStarted()
{
courseNode = ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode;
intPrompt.SetTimerFill(0f);
intPrompt.m_timerAlpha = 0f;
CreateAndPlaySound(1779631988u, 20f);
}
public void LevelCleanup()
{
((GuiLayerComp)waveInfo).SetVisible(false, false);
currentWave = 0;
timer = 60f;
}
public void Update()
{
//IL_0352: Unknown result type (might be due to invalid IL or missing references)
//IL_0357: Unknown result type (might be due to invalid IL or missing references)
//IL_0360: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Expected O, but got Unknown
if (!RundownManager.ExpeditionIsStarted)
{
return;
}
if (courseNode == null)
{
courseNode = ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode;
}
if (timer < 0f)
{
timer = 0f;
}
if (SNet.IsMaster)
{
if (timer <= 0f)
{
NetworkAPI.InvokeEvent<int>("SetWave", currentWave, (SNet_ChannelType)2);
IncrementWave();
}
}
else if (!SNet.IsMaster && updateWave)
{
updateWave = false;
IncrementWave();
}
((GuiLayerComp)waveInfo).SetVisible(true, false);
((TMP_Text)waveInfo.m_titleText).text = $"<u>Current Wave</u><color=orange>\n{currentWave}</color>";
List<EnemyAgent> reachableEnemiesInNodes = AIG_CourseGraph.GetReachableEnemiesInNodes(courseNode, 100);
int num = 0;
if (reachableEnemiesInNodes != null)
{
for (int i = 0; i < reachableEnemiesInNodes.Count; i++)
{
if (((Agent)reachableEnemiesInNodes[i]).Alive)
{
num++;
}
}
}
if (num > 0)
{
((TMP_Text)waveInfo.m_timerText).text = "";
((RectTransformComp)intPrompt).SetVisible(true);
intPrompt.SetMessage($"Enemies Remaining: <color=orange>{num}</color>");
}
else if (currentWave != 40)
{
if (SNet.IsMaster)
{
if (Input.GetKeyDown((KeyCode)120))
{
timer = 0f;
}
((TMP_Text)waveInfo.m_timerText).text = $"<size=100%>\nTime until next wave: <color=orange>{(int)timer}</color></size>\n<color=green><size=60%>[Press 'X' to skip to next wave]</size></color>";
}
else
{
((TMP_Text)waveInfo.m_timerText).text = $"<size=100%>\nTime until next wave: <color=orange>{(int)timer}</color></size>";
}
((RectTransformComp)intPrompt).SetVisible(false);
timer -= 1f * Time.deltaTime;
}
else if (!levelFinished)
{
levelFinished = true;
((RectTransformComp)intPrompt).SetVisible(false);
((TMP_Text)waveInfo.m_titleText).text = "";
((TMP_Text)waveInfo.m_timerText).text = "Thank you for participating in the Study";
timer = 100000000f;
CreateAndPlaySound(1762854275u, 15f);
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(CreateAndPlaySoundAfter(1762854272u, 15f, 8f)));
if (SNet.IsMaster)
{
WorldEventManager.ExecuteEvent(new WardenObjectiveEventData
{
Type = (eWardenObjectiveEventType)27,
Delay = 23f
}, 0f);
}
}
}
public static void SetSpawnScream(ulong senderID, int payload)
{
spawnPoint = payload;
}
public static void SetWave(ulong senderID, int payload)
{
currentWave = payload;
updateWave = true;
}
public void IncrementWave()
{
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
currentWave++;
switch (currentWave)
{
case 5:
timer = 60f;
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(CreateAndPlaySoundAfter(1612641498u, 4.9f, 8f)));
break;
case 15:
case 30:
timer = 60f;
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(CreateAndPlaySoundAfter(1779631996u, 5.8f, 8f)));
break;
case 10:
case 20:
case 25:
case 35:
timer = 60f;
break;
default:
timer = 30f;
break;
}
if (SNet.IsMaster)
{
int num = Random.Range(0, WaveSpawnPoints.Count);
SpawnWave(SimData.WaveDatas[currentWave - 1], WaveSpawnPoints[num]);
NetworkAPI.InvokeEvent<int>("SetSpawnScream", num, (SNet_ChannelType)2);
}
else
{
SpawnWave(SimData.WaveDatas[currentWave - 1], WaveSpawnPoints[spawnPoint]);
}
}
public void SpawnWave(WaveData waveData, Vector3 spawnPoint)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Expected O, but got Unknown
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_00df: Unknown result type (might be due to invalid IL or missing references)
//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Expected O, but got Unknown
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
CellSoundPlayer val = new CellSoundPlayer();
if (SNet.IsMaster)
{
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(SpawnEnemies(waveData.EnemyList, spawnPoint)));
}
if (waveData.ScreamType.HasValue)
{
val.SetSwitch(ENEMY_TYPE.GROUP, waveData.ScreamType.Value);
uint num = ((!waveData.ScreamSize.HasValue) ? 1u : waveData.ScreamSize.Value);
val.SetSwitch(ROAR_SIZE.GROUP, num);
val.SetSwitch(ENVIROMENT.GROUP, SWITCH.COMPLEX);
val.Post(EVENTS.PLAY_WAVE_DISTANT_ROAR, spawnPoint);
}
else
{
Debug.Log(Object.op_Implicit("Scream type is null"));
val.Post(EVENTS.PLAY_WAVE_DISTANT_ROAR_R8E1, true);
}
if (!string.IsNullOrWhiteSpace(waveData.WardenIntel))
{
WardenObjectiveManager.DisplayWardenIntel((LG_LayerType)0, new LocalizedText
{
UntranslatedText = waveData.WardenIntel
});
}
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(Cleanup(val, 10f)));
}
public void CreateAndPlaySound(uint soundID, float waitRecycle)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Expected O, but got Unknown
CellSoundPlayer val = new CellSoundPlayer();
val.Post(soundID, true);
((MonoBehaviour)this).StartCoroutine(CollectionExtensions.WrapToIl2Cpp(Cleanup(val, waitRecycle)));
}
private IEnumerator CreateAndPlaySoundAfter(uint soundID, float waitRecycle, float waitPlay)
{
CellSoundPlayer csPlayer = new CellSoundPlayer();
yield return (object)new WaitForSeconds(waitPlay);
csPlayer.Post(soundID, true);
yield return (object)new WaitForSeconds(waitRecycle);
csPlayer.Stop();
csPlayer.Recycle();
}
private IEnumerator Cleanup(CellSoundPlayer csPlayer, float waitTime)
{
yield return (object)new WaitForSeconds(waitTime);
csPlayer.Stop();
csPlayer.Recycle();
}
private IEnumerator SpawnEnemies(Dictionary<uint, int> enemyIDs, Vector3 spawnPos)
{
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
foreach (KeyValuePair<uint, int> val in enemyIDs)
{
for (int i = 0; i < val.Value; i++)
{
if (currentWave % 5 == 0)
{
if (currentWave == 40)
{
EnemyAllocator.Current.SpawnEnemy(val.Key, ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode, (AgentMode)1, WaveSpawnPoints[Random.Range(0, WaveSpawnPoints.Count)], Quaternion.identity, (EnemyGroup)null, -1);
yield return (object)new WaitForSeconds(0.01f);
}
else
{
EnemyAllocator.Current.SpawnEnemy(val.Key, ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode, (AgentMode)1, WaveSpawnPoints[Random.Range(0, WaveSpawnPoints.Count)], Quaternion.identity, (EnemyGroup)null, -1);
yield return (object)new WaitForSeconds(0.2f);
}
}
else if (currentWave == 28 || currentWave == 36)
{
EnemyAllocator.Current.SpawnEnemy(val.Key, ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode, (AgentMode)1, WaveSpawnPoints[Random.Range(0, WaveSpawnPoints.Count)], Quaternion.identity, (EnemyGroup)null, -1);
yield return (object)new WaitForSeconds(Random.Range(0.03f, 0.08f));
}
else
{
EnemyAllocator.Current.SpawnEnemy(val.Key, ((Agent)PlayerManager.GetLocalPlayerAgent()).CourseNode, (AgentMode)1, spawnPos, Quaternion.identity, (EnemyGroup)null, -1);
yield return (object)new WaitForSeconds(Random.Range(0.08f, 0.18f));
}
}
}
}
}
public class SimData
{
public static List<uint> Tier0Ids = new List<uint> { 38u, 63u };
public static List<uint> Tier1Ids = new List<uint> { 13u, 11u, 42u, 21u };
public static List<uint> Tier2Ids = new List<uint> { 30u, 53u, 52u };
public static List<uint> Tier3Ids = new List<uint> { 33u, 16u, 18u, 45u };
public static List<uint> Tier4Ids = new List<uint> { 39u, 46u, 35u, 56u, 62u };
public static List<uint> Tier5Ids = new List<uint> { 36u, 37u, 29u };
public static uint Tier6Id = 55u;
public static List<WaveData> WaveDatas = new List<WaveData>
{
new WaveData(new Dictionary<uint, int> { [13u] = 16 }, 1u, SWITCH.STRIKER, "<color=orange>Strikers</color> Integrated into Simulation"),
new WaveData(new Dictionary<uint, int> { [11u] = 12 }, 1u, SWITCH.SHOOTER, "<color=orange>Shooters</color> Integrated into Simulation"),
new WaveData(new Dictionary<uint, int>
{
[13u] = 10,
[11u] = 6,
[16u] = 2
}, 2u, SWITCH.STRIKER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 12,
[11u] = 8,
[16u] = 2,
[18u] = 2
}, 2u, SWITCH.STRIKER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 15,
[11u] = 8,
[16u] = 4,
[18u] = 2
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int>
{
[21u] = 12,
[13u] = 8
}, 1u, SWITCH.SHADOW, "<color=orange>Shadows</color> Integrated into Simulation"),
new WaveData(new Dictionary<uint, int>
{
[21u] = 12,
[11u] = 6,
[35u] = 2
}, 2u, SWITCH.SHADOW, ""),
new WaveData(new Dictionary<uint, int>
{
[21u] = 20,
[35u] = 2
}, 2u, SWITCH.SHADOW, ""),
new WaveData(new Dictionary<uint, int>
{
[21u] = 12,
[35u] = 4
}, 3u, SWITCH.SHADOW, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 12,
[11u] = 8,
[16u] = 2,
[21u] = 12,
[35u] = 2
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int> { [46u] = 1 }, 1u, SWITCH.POUNCER, "<color=orange>Pouncers</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[46u] = 2,
[13u] = 8
}, 2u, SWITCH.POUNCER, ""),
new WaveData(new Dictionary<uint, int>
{
[46u] = 1,
[42u] = 8
}, 1u, SWITCH.FLYER, "<color=orange>Flyers</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[46u] = 1,
[42u] = 16
}, 2u, SWITCH.FLYER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 12,
[11u] = 8,
[16u] = 2,
[21u] = 12,
[35u] = 2,
[42u] = 12
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int>
{
[13u] = 12,
[30u] = 8
}, 1u, SWITCH.BULLRUSHER, "<color=orange>Chargers</color> Integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[30u] = 12,
[13u] = 8,
[11u] = 6
}, 1u, SWITCH.BULLRUSHER, ""),
new WaveData(new Dictionary<uint, int>
{
[30u] = 16,
[39u] = 2
}, 2u, SWITCH.BULLRUSHER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 8,
[30u] = 16,
[39u] = 3
}, 3u, SWITCH.BULLRUSHER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 16,
[11u] = 8,
[16u] = 2,
[21u] = 12,
[35u] = 2,
[30u] = 8,
[39u] = 2,
[46u] = 1,
[42u] = 8
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int>
{
[33u] = 4,
[11u] = 10,
[18u] = 2
}, 3u, SWITCH.SHOOTER, "<color=orange>Hybrids</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[53u] = 10,
[52u] = 6
}, 1u, SWITCH.STRIKER_BERSERK, "<color=orange>Nightmares</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[53u] = 16,
[52u] = 12
}, 2u, SWITCH.SHOOTER_SPREAD, ""),
new WaveData(new Dictionary<uint, int>
{
[53u] = 12,
[52u] = 8,
[62u] = 1
}, 3u, SWITCH.STRIKER_BERSERK, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 16,
[11u] = 8,
[16u] = 2,
[30u] = 8,
[39u] = 4,
[42u] = 8,
[33u] = 2,
[62u] = 1
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int> { [29u] = 1 }, 1u, SWITCH.TANK, "<color=orange>Tanks</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[29u] = 1,
[33u] = 2,
[30u] = 6,
[13u] = 10
}, 2u, SWITCH.TANK, ""),
new WaveData(new Dictionary<uint, int>
{
[38u] = 50,
[63u] = 50
}, 2u, SWITCH.BIRTHER, "!!!"),
new WaveData(new Dictionary<uint, int>
{
[36u] = 1,
[38u] = 25
}, 3u, SWITCH.BIRTHER, "<color=orange>Birthers</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[13u] = 20,
[11u] = 12,
[16u] = 4,
[21u] = 12,
[33u] = 2,
[18u] = 4,
[38u] = 20,
[29u] = 1
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int>
{
[13u] = 16,
[42u] = 8,
[33u] = 2,
[39u] = 2
}, 2u, SWITCH.STRIKER, ""),
new WaveData(new Dictionary<uint, int>
{
[53u] = 6,
[52u] = 6,
[36u] = 1,
[21u] = 15
}, 3u, SWITCH.STRIKER_BERSERK, ""),
new WaveData(new Dictionary<uint, int>
{
[52u] = 12,
[11u] = 20,
[39u] = 2
}, 3u, SWITCH.SHOOTER_SPREAD, ""),
new WaveData(new Dictionary<uint, int>
{
[16u] = 10,
[29u] = 1
}, 3u, SWITCH.TANK, ""),
new WaveData(new Dictionary<uint, int>
{
[52u] = 12,
[11u] = 12,
[18u] = 2,
[35u] = 3,
[46u] = 1,
[62u] = 1,
[29u] = 1,
[36u] = 1
}, "Big Wave Approaching!!"),
new WaveData(new Dictionary<uint, int> { [56u] = 4 }, 2u, SWITCH.SHOOTER_SPREAD, ""),
new WaveData(new Dictionary<uint, int>
{
[37u] = 1,
[38u] = 35,
[13u] = 10
}, 3u, SWITCH.BIRTHER, "<color=orange>Queen Birthers</color> integrated into simulation"),
new WaveData(new Dictionary<uint, int>
{
[13u] = 8,
[30u] = 12,
[39u] = 2,
[56u] = 2,
[36u] = 1
}, 3u, SWITCH.BULLRUSHER, ""),
new WaveData(new Dictionary<uint, int>
{
[13u] = 29,
[100u] = 1
}, 3u, SWITCH.STRIKER, "???"),
new WaveData(new Dictionary<uint, int>
{
[38u] = 4,
[63u] = 4,
[13u] = 3,
[11u] = 3,
[42u] = 3,
[21u] = 3,
[30u] = 3,
[53u] = 3,
[52u] = 3,
[33u] = 2,
[16u] = 2,
[18u] = 2,
[39u] = 2,
[46u] = 1,
[35u] = 2,
[56u] = 1,
[62u] = 1,
[36u] = 1,
[37u] = 1,
[29u] = 1
}, "Final Wave Approaching!!")
};
public static Dictionary<uint, int> NewDict(List<uint> tier, int min, int max)
{
return new Dictionary<uint, int> { [RandomFromTier(tier)] = Random(min, max) };
}
public static uint RandomFromTier(List<uint> tier)
{
return tier[Random.Range(0, tier.Count)];
}
public static int Random(int min, int max)
{
return Random.Range(min, max + 1);
}
public static string NumberToNumeral(int num)
{
return num switch
{
1 => "I",
2 => "II",
3 => "III",
4 => "IV",
5 => "V",
6 => "VI",
7 => "VII",
8 => "VIII",
9 => "IX",
10 => "X",
_ => "",
};
}
}
[HarmonyPatch]
internal class SimPatches
{
[HarmonyPatch(typeof(PlayerGuiLayer), "Setup")]
[HarmonyPostfix]
private static void AddNewLayer(PlayerGuiLayer __instance)
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
SimCore.waveInfo = ((Il2CppObjectBase)((GuiLayer)__instance).AddComp("Gui/Player/PUI_ObjectiveTimer", (GuiAnchor)3, new Vector2(0f, 400f), (Transform)null)).TryCast<PUI_ObjectiveTimer>();
}
[HarmonyPatch(typeof(InteractionGuiLayer), "Setup")]
[HarmonyPostfix]
private static void AddNewLayer(InteractionGuiLayer __instance)
{
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
SimCore.intPrompt = ((Il2CppObjectBase)((GuiLayer)__instance).AddRectComp("Gui/Player/PUI_InteractionPrompt_CellUI", (GuiAnchor)3, new Vector2(0f, 350f), (Transform)null)).TryCast<PUI_InteractionPrompt>();
}
}
public class WaveData
{
public Dictionary<uint, int> EnemyList { get; set; }
public string? WardenIntel { get; set; }
public uint? ScreamSize { get; set; }
public uint? ScreamType { get; set; }
public WaveData(Dictionary<uint, int> enemyList, uint screamSize, uint screamType, string? wardenIntel)
{
WardenIntel = wardenIntel;
EnemyList = enemyList;
ScreamSize = screamSize;
ScreamType = screamType;
}
public WaveData(Dictionary<uint, int> enemyList, string? wardenIntel)
{
WardenIntel = wardenIntel;
EnemyList = enemyList;
}
}
}