using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using Aerolt.Buttons;
using Aerolt.Classes;
using Aerolt.Enums;
using Aerolt.Helpers;
using Aerolt.Managers;
using Aerolt.Messages;
using Aerolt.Overrides;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using JetBrains.Annotations;
using KinematicCharacterController;
using Microsoft.CodeAnalysis;
using RiskOfOptions;
using RiskOfOptions.Components.Panel;
using RiskOfOptions.Options;
using RoR2;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Networking;
using RoR2.UI;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.Networking;
using UnityEngine.Serialization;
using UnityEngine.UI;
using Zio;
using ZioConfigFile;
using ZioRiskOfOptions;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("Aerolt")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+963ab0e1637d8ac5e50c6f32f36b0de4887b7ebc")]
[assembly: AssemblyProduct("Aerolt")]
[assembly: AssemblyTitle("Aerolt")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
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 Aerolt
{
[BepInPlugin("com.Lodington.Aerolt", "Aerolt", "4.1.5")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Load : BaseUnityPlugin
{
public class AeroltHudLoader : MonoBehaviour
{
public HUD hud = null;
public void SpawnHud()
{
if (!Object.op_Implicit((Object)(object)hud.cameraRigController))
{
return;
}
NetworkUser viewer = hud.cameraRigController.viewer;
if (!AeroltUIs.ContainsKey(viewer))
{
if ((Object)(object)_settingsUI != (Object)null && _settingsUI.activeSelf)
{
_settingsUI.SetActive(false);
}
TempViewer = viewer;
TempHud = hud;
GameObject val = Object.Instantiate<GameObject>(Co);
val.GetComponent<MPEventSystemProvider>().eventSystem = hud.eventSystemProvider.eventSystem;
TempViewer = null;
TempHud = null;
AeroltUIs.Add(viewer, val);
Tools.Log(LogLevel.Information, "Created UI");
}
}
}
public const string Name = "Aerolt";
public const string Guid = "com.Lodington.Aerolt";
public const string Version = "4.1.5";
public static ManualLogSource Log = null;
public static GameObject Co = null;
public static AssetBundle Assets = null;
public static Load Instance = null;
public static Dictionary<ButtonNames, ZioConfigEntry<KeyboardShortcut>> KeyBinds = new Dictionary<ButtonNames, ZioConfigEntry<KeyboardShortcut>>();
public static Dictionary<NetworkUser, GameObject> AeroltUIs = new Dictionary<NetworkUser, GameObject>();
private static GameObject? _settingsUI;
public static ZioConfigFile ConfigFile = null;
public static NetworkUser? TempViewer;
public static HUD? TempHud;
public static string Path = null;
public void Awake()
{
Instance = this;
Log = ((BaseUnityPlugin)this).Logger;
Path = System.IO.Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
Assets = AssetBundle.LoadFromFile(System.IO.Path.Combine(Path, "aeroltbundle"));
Tools.Log(LogLevel.Information, "Loaded AssetBundle");
Co = Assets.LoadAsset<GameObject>("PlayerCanvas");
Assets.LoadAsset<GameObject>("AeroltUI");
Tools.Log(LogLevel.Information, Tools.SendCount());
NetworkManager.Initialize();
}
public void Start()
{
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Expected O, but got Unknown
RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(GameLoad));
HUD.shouldHudDisplay += new ShouldHudDisplayDelegate(CreateHud);
}
public void OnGUI()
{
if (Object.op_Implicit((Object)(object)Esp.Instance))
{
Esp.Draw();
}
}
public static bool GetKeyPressed(ZioConfigEntry<KeyboardShortcut> entry)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_004f: Unknown result type (might be due to invalid IL or missing references)
KeyboardShortcut value = entry.Value;
foreach (KeyCode modifier in ((KeyboardShortcut)(ref value)).Modifiers)
{
if (!Input.GetKey(modifier))
{
return false;
}
}
value = entry.Value;
return Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey);
}
private void GameLoad()
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Expected O, but got Unknown
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
ConfigFile = new ZioConfigFile(RoR2Application.cloudStorage, UPath.op_Implicit("/Aerolt/Settings.cfg"), true, (BepInPlugin)null);
CreateKeyBindSettings();
Colors.InitColors();
Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
new PatchClassProcessor(val, typeof(Hooks)).Patch();
}
private void CreateKeyBindSettings()
{
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
KeyBinds.Add(ButtonNames.OpenMenu, ConfigFile.Bind<KeyboardShortcut>("Keybinds", "OpenMenu", new KeyboardShortcut((KeyCode)282, Array.Empty<KeyCode>()), (ConfigDescription)null));
if (Chainloader.PluginInfos.ContainsKey("bubbet.zioriskofoptions"))
{
MakeRiskOfOptions();
}
}
private void MakeRiskOfOptions()
{
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Expected O, but got Unknown
foreach (ZioConfigEntry<KeyboardShortcut> value in KeyBinds.Values)
{
ModSettingsManager.AddOption((BaseOption)new ZioKeyBindOption(value));
}
ModSettingsManager.SetModIcon(Assets.LoadAsset<Sprite>("NewLogo"));
}
public static void CreateHud(HUD hud, ref bool shoulddisplay)
{
if (Object.op_Implicit((Object)(object)hud.cameraRigController) && !Object.op_Implicit((Object)(object)((Component)hud).gameObject.GetComponent<AeroltHudLoader>()))
{
NetworkUser viewer = hud.cameraRigController.viewer;
if (!AeroltUIs.ContainsKey(viewer))
{
AeroltHudLoader aeroltHudLoader = ((Component)hud).gameObject.AddComponent<AeroltHudLoader>();
aeroltHudLoader.hud = hud;
((MonoBehaviour)aeroltHudLoader).Invoke("SpawnHud", 5f);
}
}
}
}
}
namespace Aerolt.Overrides
{
[HarmonyPatch]
public class Hooks
{
}
public class IconSwap : MonoBehaviour
{
public Image discord = null;
public Sprite imageToSwapTo = null;
public void Awake()
{
SwapThisImage();
}
public void SwapThisImage()
{
discord.sprite = imageToSwapTo;
}
}
}
namespace Aerolt.Messages
{
public class BodyStatMessage : AeroltMessageBase
{
private string fieldName = null;
private CharacterBody TargetBody = null;
private float value;
public BodyStatMessage()
{
}
public BodyStatMessage(CharacterBody targetBody, string fieldName, float result)
{
this.fieldName = fieldName;
TargetBody = targetBody;
value = result;
}
public override void Handle()
{
base.Handle();
FieldInfo field = typeof(CharacterBody).GetField(fieldName, BindingFlags.Instance | BindingFlags.Public);
field.SetValue(TargetBody, value);
TargetBody.statsDirty = true;
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
TargetBody = val.GetComponent<CharacterBody>();
}
fieldName = reader.ReadString();
value = reader.ReadSingle();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)TargetBody).netId);
writer.Write(fieldName);
writer.Write(value);
}
}
public class CurrencyMessage : AeroltMessageBase
{
private CurrencyType _type;
private uint amount;
private CharacterMaster master = null;
public CurrencyMessage()
{
}
public CurrencyMessage(CharacterMaster master, CurrencyType type, uint amount)
{
_type = type;
this.amount = amount;
this.master = master;
}
public override void Handle()
{
//IL_00c5: 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)
base.Handle();
switch (_type)
{
case CurrencyType.Money:
master.GiveMoney(amount - master.money);
break;
case CurrencyType.Lunar:
{
NetworkUser networkUser = master.playerCharacterMasterController.networkUser;
long num = (int)amount - networkUser.NetworknetLunarCoins;
if (num < 0)
{
networkUser.DeductLunarCoins((uint)Math.Abs(num));
}
else
{
networkUser.AwardLunarCoins((uint)num);
}
break;
}
case CurrencyType.Void:
master.GiveVoidCoins(amount - master.voidCoins);
break;
case CurrencyType.Experience:
TeamManager.instance.SetTeamExperience(master.teamIndex, (ulong)amount);
break;
case CurrencyType.Level:
TeamManager.instance.SetTeamLevel(master.teamIndex, amount);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
master = val.GetComponent<CharacterMaster>();
}
_type = (CurrencyType)reader.ReadPackedUInt32();
amount = reader.ReadPackedUInt32();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)master).netId);
writer.WritePackedUInt32((uint)_type);
writer.WritePackedUInt32(amount);
}
}
public enum CurrencyType
{
Money,
Lunar,
Void,
Experience,
Level
}
public class GodModeMessage : AeroltMessageBase
{
private bool enabled;
private CharacterMaster master = null;
public GodModeMessage()
{
}
public GodModeMessage(CharacterMaster master, bool enable)
{
this.master = master;
enabled = enable;
}
public override void Handle()
{
base.Handle();
master.godMode = enabled;
master.UpdateBodyGodMode();
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
master = val.GetComponent<CharacterMaster>();
}
enabled = reader.ReadBoolean();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)master).netId);
writer.Write(enabled);
}
}
public class InteractableSpawnMessage : AeroltMessageBase
{
private uint index;
private Vector3 position;
public InteractableSpawnMessage()
{
}
public InteractableSpawnMessage(uint index, Vector3 position)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
this.index = index;
this.position = position;
}
public override void Serialize(NetworkWriter writer)
{
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.WritePackedUInt32(index);
writer.Write(position);
}
public override void Deserialize(NetworkReader reader)
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
index = reader.ReadPackedUInt32();
position = reader.ReadVector3();
}
public override void Handle()
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
InteractableManager.Spawn(index, position);
}
}
public class KillAllTeamMessage : AeroltMessageBase
{
private TeamIndex team;
public KillAllTeamMessage()
{
}
public KillAllTeamMessage(TeamIndex allExcept)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
team = allExcept;
}
public override void Handle()
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
TeamMask mask = TeamMask.AllExcept(team);
CharacterMaster[] array = CharacterMaster.instancesList.Where((CharacterMaster x) => ((TeamMask)(ref mask)).HasTeam(x.teamIndex)).ToArray();
CharacterMaster[] array2 = array;
foreach (CharacterMaster val in array2)
{
CharacterBody body = val.GetBody();
if (Object.op_Implicit((Object)(object)body))
{
Chat.AddMessage("<color=yellow>Killed " + body.GetDisplayName() + " </color>");
}
val.TrueKill();
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
team = NetworkExtensions.ReadTeamIndex(reader);
}
public override void Serialize(NetworkWriter writer)
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
NetworkExtensions.Write(writer, team);
}
}
public class KillMessage : AeroltMessageBase
{
private CharacterMaster master = null;
public KillMessage()
{
}
public KillMessage(CharacterMaster master)
{
this.master = master;
}
public override void Handle()
{
base.Handle();
master.TrueKill();
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
master = val.GetComponent<CharacterMaster>();
}
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)master).netId);
}
}
public class MonsterSpawnMessage : AeroltMessageBase
{
private string bodyName = null;
private bool brainDead;
private EquipmentIndex eliteIndex;
private Dictionary<ItemDef, uint> itemCounts = null;
private Vector3 location;
private string masterName = null;
private TeamIndex teamIndex;
public MonsterSpawnMessage()
{
}
public MonsterSpawnMessage(string masterName, string bodyName, Vector3 vector3, TeamIndex teamIndex1, EquipmentIndex equipmentIndex, bool brainDead, Dictionary<ItemDef, uint> toDictionary)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
this.masterName = masterName;
this.bodyName = bodyName;
location = vector3;
teamIndex = teamIndex1;
eliteIndex = equipmentIndex;
this.brainDead = brainDead;
itemCounts = toDictionary;
}
public override void Handle()
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Invalid comparison between Unknown and I4
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_010a: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
GameObject val = MasterCatalog.FindMasterPrefab(masterName);
GameObject val2 = Object.Instantiate<GameObject>(val.gameObject, location, Quaternion.identity);
CharacterMaster component = val2.GetComponent<CharacterMaster>();
component.teamIndex = teamIndex;
foreach (var (val4, num2) in itemCounts)
{
component.inventory.GiveItem(val4, (int)num2);
}
if ((int)eliteIndex != -1)
{
component.inventory.SetEquipmentIndex(eliteIndex);
}
if (brainDead)
{
BaseAI[] aiComponents = component.aiComponents;
foreach (BaseAI val5 in aiComponents)
{
Object.Destroy((Object)(object)val5);
}
}
NetworkServer.Spawn(val2);
component.bodyPrefab = BodyCatalog.FindBodyPrefab(bodyName);
component.SpawnBody(location, Quaternion.identity);
}
public override void Deserialize(NetworkReader reader)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
masterName = reader.ReadString();
bodyName = reader.ReadString();
location = reader.ReadVector3();
teamIndex = NetworkExtensions.ReadTeamIndex(reader);
eliteIndex = NetworkExtensions.ReadEquipmentIndex(reader);
brainDead = reader.ReadBoolean();
itemCounts = reader.ReadItemAmounts();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(masterName);
writer.Write(bodyName);
writer.Write(location);
NetworkExtensions.Write(writer, teamIndex);
NetworkExtensions.Write(writer, eliteIndex);
writer.Write(brainDead);
writer.Write(itemCounts);
}
}
public class PortalSpawnMessage : AeroltMessageBase
{
private string portal;
public PortalSpawnMessage(string portal)
{
this.portal = portal;
}
public override void Handle()
{
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: Expected O, but got Unknown
//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
//IL_01da: Expected O, but got Unknown
base.Handle();
switch (portal)
{
case "gold":
TeleporterInteraction.instance.shouldAttemptToSpawnGoldshoresPortal = true;
break;
case "newt":
TeleporterInteraction.instance.shouldAttemptToSpawnShopPortal = true;
break;
case "blue":
TeleporterInteraction.instance.shouldAttemptToSpawnMSPortal = true;
break;
case "void":
{
PortalSpawner val2 = ((IEnumerable<PortalSpawner>)TeleporterInteraction.instance.portalSpawners).FirstOrDefault((Func<PortalSpawner, bool>)((PortalSpawner x) => x.spawnMessageToken == "PORTAL_VOID_OPEN"));
if ((Object)(object)val2 != (Object)null && Run.instance.IsExpansionEnabled(val2.requiredExpansion))
{
val2.NetworkwillSpawn = true;
if (!string.IsNullOrEmpty(val2.spawnPreviewMessageToken))
{
Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
{
baseToken = val2.spawnPreviewMessageToken
});
}
if (Object.op_Implicit((Object)(object)val2.previewChild))
{
val2.previewChild.SetActive(true);
}
}
break;
}
case "all":
{
Chat.AddMessage("<color=red>Spawned All Portal</color>");
TeleporterInteraction.instance.shouldAttemptToSpawnGoldshoresPortal = true;
TeleporterInteraction.instance.shouldAttemptToSpawnShopPortal = true;
TeleporterInteraction.instance.shouldAttemptToSpawnMSPortal = true;
PortalSpawner[] portalSpawners = TeleporterInteraction.instance.portalSpawners;
foreach (PortalSpawner val in portalSpawners)
{
if (Run.instance.IsExpansionEnabled(val.requiredExpansion))
{
val.NetworkwillSpawn = true;
if (!string.IsNullOrEmpty(val.spawnPreviewMessageToken))
{
Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage
{
baseToken = val.spawnPreviewMessageToken
});
}
if (Object.op_Implicit((Object)(object)val.previewChild))
{
val.previewChild.SetActive(true);
}
}
}
break;
}
}
}
public override void Deserialize(NetworkReader reader)
{
((MessageBase)this).Deserialize(reader);
portal = reader.ReadString();
}
public override void Serialize(NetworkWriter writer)
{
((MessageBase)this).Serialize(writer);
writer.Write(portal);
}
}
public class SceneChangeMessage : AeroltMessageBase
{
private bool isSet;
private SceneIndex target;
public SceneChangeMessage()
{
}
public SceneChangeMessage(SceneIndex sceneIndex)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
isSet = true;
target = sceneIndex;
}
public override void Handle()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
SceneDef sceneDef = SceneCatalog.GetSceneDef(target);
if (isSet && Object.op_Implicit((Object)(object)sceneDef))
{
Run.instance.AdvanceStage(sceneDef);
Run instance = Run.instance;
instance.stageClearCount--;
}
else
{
Run.instance.AdvanceStage(Run.instance.nextStageScene);
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
isSet = reader.ReadBoolean();
target = (SceneIndex)reader.ReadInt32();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Expected I4, but got Unknown
((MessageBase)this).Serialize(writer);
writer.Write(isSet);
writer.Write((int)target);
}
}
public class SetBodyMessage : AeroltMessageBase
{
private string newBody = null;
private NetworkUser user = null;
public SetBodyMessage()
{
}
public SetBodyMessage(NetworkUser user, CharacterBody newBody)
: this(user)
{
this.newBody = ((Object)newBody).name;
}
public SetBodyMessage(NetworkUser networkUser)
{
user = networkUser;
newBody = "";
}
public override void Handle()
{
base.Handle();
GameOverController val = Object.FindObjectOfType<GameOverController>();
if (Object.op_Implicit((Object)(object)val))
{
foreach (KeyValuePair<HUD, GameEndReportPanelController> reportPanel in val.reportPanels)
{
Object.Destroy((Object)(object)((Component)reportPanel.Value).gameObject);
}
Object.Destroy((Object)(object)((Component)val).gameObject);
}
if (NetworkServer.active)
{
bool usePod = false;
if (Object.op_Implicit((Object)(object)Stage.instance))
{
usePod = Stage.instance.usePod;
Stage.instance.usePod = false;
}
user.master.preventRespawnUntilNextStageServer = false;
user.master.CmdRespawn(newBody);
if (Object.op_Implicit((Object)(object)Stage.instance))
{
Stage.instance.usePod = usePod;
}
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
user = val.GetComponent<NetworkUser>();
}
newBody = reader.ReadString();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)user).netId);
writer.Write(newBody);
}
}
public class SetBuffCountMessage : AeroltMessageBase
{
public CharacterBody body = null;
public Dictionary<BuffIndex, uint> buffCounts = null;
public SetBuffCountMessage()
{
}
public SetBuffCountMessage(CharacterBody bodyIn, Dictionary<BuffIndex, uint> buffCountsIn)
{
body = bodyIn;
buffCounts = buffCountsIn;
}
public override void Handle()
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
foreach (KeyValuePair<BuffIndex, uint> buffCount in buffCounts)
{
body.SetBuffCount(buffCount.Key, (int)buffCount.Value);
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
body = val.GetComponent<CharacterBody>();
}
uint num = reader.ReadPackedUInt32();
buffCounts = new Dictionary<BuffIndex, uint>();
for (int i = 0; i < num; i++)
{
buffCounts.Add((BuffIndex)reader.ReadPackedUInt32(), reader.ReadPackedUInt32());
}
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: 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_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Expected I4, but got Unknown
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)body).netId);
writer.WritePackedUInt32((uint)buffCounts.Count);
foreach (var (val2, num2) in buffCounts)
{
writer.WritePackedUInt32((uint)(int)val2);
writer.WritePackedUInt32(num2);
}
}
}
public class SetEquipmentMessage : AeroltMessageBase
{
private Dictionary<EquipmentDef, int> equipmentCounts = null;
private Inventory inventory = null;
public SetEquipmentMessage()
{
}
public SetEquipmentMessage(Inventory inventory, Dictionary<EquipmentDef, int> equipmentCounts)
{
this.inventory = inventory;
this.equipmentCounts = equipmentCounts;
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Expected I4, but got Unknown
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)inventory).netId);
writer.WritePackedUInt32((uint)equipmentCounts.Count);
foreach (var (val2, num2) in equipmentCounts)
{
writer.WritePackedUInt32((uint)(int)val2.equipmentIndex);
writer.WritePackedUInt32((uint)num2);
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject obj = Util.FindNetworkObject(reader.ReadNetworkId());
inventory = ((obj != null) ? obj.GetComponent<Inventory>() : null);
equipmentCounts = new Dictionary<EquipmentDef, int>();
uint num = reader.ReadPackedUInt32();
for (int i = 0; i < num; i++)
{
EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef((EquipmentIndex)reader.ReadPackedUInt32());
equipmentCounts.Add(equipmentDef, (int)reader.ReadPackedUInt32());
}
}
public override void Handle()
{
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0042->IL0042: Incompatible stack types: O vs I4
//IL_0036->IL0042: Incompatible stack types: I4 vs O
//IL_0036->IL0042: Incompatible stack types: O vs I4
base.Handle();
foreach (KeyValuePair<EquipmentDef, int> equipmentCount in equipmentCounts)
{
object obj = inventory;
int num;
if (!Object.op_Implicit((Object)(object)equipmentCount.Key))
{
num = -1;
obj = num;
num = (int)obj;
}
else
{
obj = equipmentCount.Key.equipmentIndex;
num = (int)obj;
}
((Inventory)num).SetEquipmentIndex((EquipmentIndex)obj);
}
}
}
public class SetItemCountMessage : AeroltMessageBase
{
private Inventory inventory = null;
private Dictionary<ItemDef, uint> itemCounts = null;
public SetItemCountMessage()
{
}
public SetItemCountMessage(Inventory inventory, Dictionary<ItemDef, int> itemCounts)
{
this.inventory = inventory;
this.itemCounts = itemCounts.ToDictionary<KeyValuePair<ItemDef, int>, ItemDef, uint>((KeyValuePair<ItemDef, int> x) => x.Key, (KeyValuePair<ItemDef, int> x) => (uint)x.Value);
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)inventory).netId);
writer.Write(itemCounts);
}
public override void Deserialize(NetworkReader reader)
{
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject obj = Util.FindNetworkObject(reader.ReadNetworkId());
inventory = ((obj != null) ? obj.GetComponent<Inventory>() : null);
itemCounts = reader.ReadItemAmounts();
}
public override void Handle()
{
base.Handle();
foreach (KeyValuePair<ItemDef, uint> itemCount in itemCounts)
{
inventory.GiveItem(itemCount.Key, (int)itemCount.Value - inventory.GetItemCount(itemCount.Key));
}
}
}
public class TeamSwitchMessage : AeroltMessageBase
{
private TeamIndex newTeam;
private CharacterMaster target = null;
public TeamSwitchMessage()
{
}
public TeamSwitchMessage(CharacterMaster who, TeamIndex team)
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
target = who;
newTeam = team;
}
public override void Handle()
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
target.teamIndex = newTeam;
CharacterBody body = target.GetBody();
if (Object.op_Implicit((Object)(object)body))
{
body.teamComponent.teamIndex = newTeam;
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
target = val.GetComponent<CharacterMaster>();
}
newTeam = (TeamIndex)(sbyte)reader.ReadInt32();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Expected I4, but got Unknown
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)target).netId);
writer.Write((int)newTeam);
}
}
public class TeleporterChargeMessage : AeroltMessageBase
{
public override void Handle()
{
base.Handle();
if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance) && Object.op_Implicit((Object)(object)TeleporterInteraction.instance.holdoutZoneController))
{
TeleporterInteraction.instance.holdoutZoneController.charge = 1f;
}
}
}
public class TeleportMessage : AeroltMessageBase
{
private Vector3 targetPosition;
private CharacterBody teleportedBody = null;
public TeleportMessage()
{
}
public TeleportMessage(CharacterBody teleportedBody, Vector3 targetPosition)
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
this.teleportedBody = teleportedBody;
this.targetPosition = targetPosition;
}
public override void Handle()
{
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
base.Handle();
if (Object.op_Implicit((Object)(object)teleportedBody) && Object.op_Implicit((Object)(object)teleportedBody.characterMotor))
{
((BaseCharacterController)teleportedBody.characterMotor).Motor.MoveCharacter(targetPosition);
}
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
teleportedBody = val.GetComponent<CharacterBody>();
}
targetPosition = reader.ReadVector3();
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(((NetworkBehaviour)teleportedBody).netId);
writer.Write(targetPosition);
}
}
}
namespace Aerolt.Managers
{
public static class EspHelper
{
public static void DrawEspLabel(Vector3 worldpos, Color textcolor, Color outlinecolor, string? text, string? outlinetext = null)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00de: 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_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0110: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//IL_0129: Unknown result type (might be due to invalid IL or missing references)
//IL_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_014f: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
//IL_0162: Unknown result type (might be due to invalid IL or missing references)
//IL_0168: Unknown result type (might be due to invalid IL or missing references)
//IL_0174: Unknown result type (might be due to invalid IL or missing references)
//IL_017b: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
GUIContent val = new GUIContent(text);
if (outlinetext == null)
{
outlinetext = text;
}
GUIContent val2 = new GUIContent(outlinetext);
GUIStyle label = GUI.skin.label;
label.alignment = (TextAnchor)4;
Vector2 val3 = label.CalcSize(val);
Vector3 val4 = Camera.main.WorldToScreenPoint(worldpos);
val4.y = (float)Screen.height - val4.y;
if (val4.z >= 0f)
{
GUI.color = Color.black;
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.color = textcolor;
GUI.Label(new Rect(val4.x - val3.x / 2f, val4.y, val3.x, val3.y), val);
GUI.color = Color.black;
}
}
public static void DrawRarityEspLabel(Vector3 worldpos, Color textcolor, Color outlinecolor, string? text, Color itemColor, string itemName = "", string? outlinetext = null)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0106: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_0126: Unknown result type (might be due to invalid IL or missing references)
//IL_012c: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_013e: Unknown result type (might be due to invalid IL or missing references)
//IL_0145: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_0165: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Unknown result type (might be due to invalid IL or missing references)
//IL_0171: Unknown result type (might be due to invalid IL or missing references)
//IL_017d: Unknown result type (might be due to invalid IL or missing references)
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_018b: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
//IL_0365: Unknown result type (might be due to invalid IL or missing references)
//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: Expected O, but got Unknown
//IL_01da: Unknown result type (might be due to invalid IL or missing references)
//IL_01e1: Expected O, but got Unknown
//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0211: Unknown result type (might be due to invalid IL or missing references)
//IL_021e: Unknown result type (might be due to invalid IL or missing references)
//IL_0225: Unknown result type (might be due to invalid IL or missing references)
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_0233: Unknown result type (might be due to invalid IL or missing references)
//IL_0240: Unknown result type (might be due to invalid IL or missing references)
//IL_0247: Unknown result type (might be due to invalid IL or missing references)
//IL_025b: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_026f: Unknown result type (might be due to invalid IL or missing references)
//IL_0276: Unknown result type (might be due to invalid IL or missing references)
//IL_027d: Unknown result type (might be due to invalid IL or missing references)
//IL_028a: Unknown result type (might be due to invalid IL or missing references)
//IL_0291: Unknown result type (might be due to invalid IL or missing references)
//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
//IL_02b2: Unknown result type (might be due to invalid IL or missing references)
//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
//IL_02c0: Unknown result type (might be due to invalid IL or missing references)
//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
//IL_02db: Unknown result type (might be due to invalid IL or missing references)
//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_0311: Unknown result type (might be due to invalid IL or missing references)
//IL_031e: Unknown result type (might be due to invalid IL or missing references)
//IL_0326: Unknown result type (might be due to invalid IL or missing references)
//IL_032d: Unknown result type (might be due to invalid IL or missing references)
//IL_033b: Unknown result type (might be due to invalid IL or missing references)
//IL_0342: Unknown result type (might be due to invalid IL or missing references)
//IL_0349: Unknown result type (might be due to invalid IL or missing references)
//IL_0350: 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)
GUIContent val = new GUIContent(text);
if (outlinetext == null)
{
outlinetext = text;
}
GUIContent val2 = new GUIContent(outlinetext);
GUIStyle label = GUI.skin.label;
label.alignment = (TextAnchor)4;
Vector2 val3 = label.CalcSize(val);
Vector3 val4 = Camera.main.WorldToScreenPoint(worldpos);
val4.y = (float)Screen.height - val4.y;
if (val4.z >= 0f)
{
GUI.color = Color.black;
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.color = textcolor;
GUI.Label(new Rect(val4.x - val3.x / 2f, val4.y, val3.x, val3.y), val);
if (!string.IsNullOrEmpty(itemName))
{
GUIContent val5 = new GUIContent(itemName);
GUIContent val6 = new GUIContent(itemName);
Vector2 val7 = label.CalcSize(val5);
GUI.color = Color.black;
GUI.Label(new Rect(val4.x - val7.x / 2f + 1f, val4.y + 1f + val3.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f - 1f, val4.y - 1f + val3.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f + 1f, val4.y - 1f + val3.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f - 1f, val4.y + 1f + val3.y, val7.x, val7.y), val6);
GUI.color = itemColor;
GUI.Label(new Rect(val4.x - val7.x / 2f, val4.y + val3.y, val7.x, val7.y), val5);
}
GUI.color = Color.black;
}
}
public static void DrawMultiShopRarityESPLabel(Vector3 worldpos, Color textcolor, Color outlinecolor, string text, List<Color> itemColors, List<string> itemNames, string? outlinetext = null)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0106: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_0126: Unknown result type (might be due to invalid IL or missing references)
//IL_012c: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_013e: Unknown result type (might be due to invalid IL or missing references)
//IL_0145: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Unknown result type (might be due to invalid IL or missing references)
//IL_0165: Unknown result type (might be due to invalid IL or missing references)
//IL_016b: Unknown result type (might be due to invalid IL or missing references)
//IL_0171: Unknown result type (might be due to invalid IL or missing references)
//IL_017d: Unknown result type (might be due to invalid IL or missing references)
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_018b: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Unknown result type (might be due to invalid IL or missing references)
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03db: Unknown result type (might be due to invalid IL or missing references)
//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
//IL_01f3: Expected O, but got Unknown
//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
//IL_0200: Expected O, but got Unknown
//IL_0203: Unknown result type (might be due to invalid IL or missing references)
//IL_0208: Unknown result type (might be due to invalid IL or missing references)
//IL_020a: Unknown result type (might be due to invalid IL or missing references)
//IL_0215: Unknown result type (might be due to invalid IL or missing references)
//IL_021c: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_023d: Unknown result type (might be due to invalid IL or missing references)
//IL_0247: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Unknown result type (might be due to invalid IL or missing references)
//IL_0257: Unknown result type (might be due to invalid IL or missing references)
//IL_025e: Unknown result type (might be due to invalid IL or missing references)
//IL_026b: Unknown result type (might be due to invalid IL or missing references)
//IL_0272: Unknown result type (might be due to invalid IL or missing references)
//IL_0286: Unknown result type (might be due to invalid IL or missing references)
//IL_0293: Unknown result type (might be due to invalid IL or missing references)
//IL_029d: Unknown result type (might be due to invalid IL or missing references)
//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_0317: Unknown result type (might be due to invalid IL or missing references)
//IL_031e: Unknown result type (might be due to invalid IL or missing references)
//IL_0332: Unknown result type (might be due to invalid IL or missing references)
//IL_033f: Unknown result type (might be due to invalid IL or missing references)
//IL_0349: Unknown result type (might be due to invalid IL or missing references)
//IL_0352: Unknown result type (might be due to invalid IL or missing references)
//IL_0359: 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_036d: Unknown result type (might be due to invalid IL or missing references)
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_037c: Unknown result type (might be due to invalid IL or missing references)
//IL_038a: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Unknown result type (might be due to invalid IL or missing references)
//IL_039b: Unknown result type (might be due to invalid IL or missing references)
//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
GUIContent val = new GUIContent(text);
if (outlinetext == null)
{
outlinetext = text;
}
GUIContent val2 = new GUIContent(outlinetext);
GUIStyle label = GUI.skin.label;
label.alignment = (TextAnchor)4;
Vector2 val3 = label.CalcSize(val);
Vector3 val4 = Camera.main.WorldToScreenPoint(worldpos);
val4.y = (float)Screen.height - val4.y;
if (!(val4.z >= 0f))
{
return;
}
GUI.color = Color.black;
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f + 1f, val4.y - 1f, val3.x, val3.y), val2);
GUI.Label(new Rect(val4.x - val3.x / 2f - 1f, val4.y + 1f, val3.x, val3.y), val2);
GUI.color = textcolor;
GUI.Label(new Rect(val4.x - val3.x / 2f, val4.y, val3.x, val3.y), val);
for (int i = 0; i < itemNames.Count; i++)
{
string text2 = itemNames[i];
if (!string.IsNullOrEmpty(text2))
{
Color color = itemColors[i];
GUIContent val5 = new GUIContent(text2);
string text3 = text2;
GUIContent val6 = new GUIContent(text3);
Vector2 val7 = label.CalcSize(val5);
GUI.color = Color.black;
GUI.Label(new Rect(val4.x - val7.x / 2f + 1f, val4.y + 1f + val3.y + (float)i * val7.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f - 1f, val4.y - 1f + val3.y + (float)i * val7.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f + 1f, val4.y - 1f + val3.y + (float)i * val7.y, val7.x, val7.y), val6);
GUI.Label(new Rect(val4.x - val7.x / 2f - 1f, val4.y + 1f + val3.y + (float)i * val7.y, val7.x, val7.y), val6);
GUI.color = color;
GUI.Label(new Rect(val4.x - val7.x / 2f, val4.y + val3.y + (float)i * val7.y, val7.x, val7.y), val5);
}
}
GUI.color = Color.black;
}
public static Vector3 WorldToScreen(Vector3 worldpos)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
Vector3 val = Camera.main.WorldToScreenPoint(worldpos);
val.y = (float)Screen.height - val.y;
return new Vector3(val.x, val.y);
}
}
public class BodyManager : MonoBehaviour
{
public GameObject buttonPrefab = null;
public GameObject buttonParent = null;
public TMP_InputField searchFilter = null;
private GameObject _newBody = null;
private readonly Dictionary<CharacterBody, CustomButton> bodyDefRef = new Dictionary<CharacterBody, CustomButton>();
private NetworkUser target = null;
private void Awake()
{
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Expected O, but got Unknown
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0107: Expected O, but got Unknown
foreach (CharacterBody body in BodyCatalog.allBodyPrefabBodyBodyComponents.OrderBy((CharacterBody x) => Language.GetString(x.baseNameToken)))
{
GameObject val = Object.Instantiate<GameObject>(buttonPrefab, buttonParent.transform);
CustomButton component = val.GetComponent<CustomButton>();
component.buttonText.text = Language.GetString(body.baseNameToken);
component.image.sprite = Sprite.Create((Texture2D)body.portraitIcon, new Rect(0f, 0f, (float)body.portraitIcon.width, (float)body.portraitIcon.height), new Vector2(0.5f, 0.5f));
((UnityEvent)component.button.onClick).AddListener((UnityAction)delegate
{
SetBodyDef(body);
});
bodyDefRef[body] = component;
}
if (Object.op_Implicit((Object)(object)searchFilter))
{
((UnityEvent<string>)(object)searchFilter.onValueChanged).AddListener((UnityAction<string>)FilterUpdated);
}
}
public void SpawnAsBody()
{
new SetBodyMessage(target, _newBody.GetComponent<CharacterBody>()).SendToServer();
}
public void SetBodyDef(CharacterBody body)
{
_newBody = BodyCatalog.FindBodyPrefab(body);
SpawnAsBody();
((Component)this).GetComponentInParent<LobbyPlayerPageManager>().SwapViewState();
}
public void Initialize(NetworkUser currentUser)
{
target = currentUser;
}
private void FilterUpdated(string text)
{
if (Utility.IsNullOrWhiteSpace(text))
{
foreach (KeyValuePair<CharacterBody, CustomButton> item in bodyDefRef)
{
((Component)item.Value).gameObject.SetActive(true);
}
return;
}
CustomButton[] array = bodyDefRef.Values.ToArray();
CustomButton[] source = Tools.FindMatches(array, (CustomButton x) => x.buttonText.text, text);
CustomButton[] array2 = array;
foreach (CustomButton customButton in array2)
{
((Component)customButton).gameObject.SetActive(source.Contains(customButton));
}
}
}
public class InteractableManager : MonoBehaviour, IModuleStartup
{
[CanBeNull]
public static SpawnCard[]? _spawnCards;
public GameObject buttonPrefab = null;
public GameObject buttonParent = null;
public TMP_InputField searchFilter = null;
private MenuInfo _info = null;
private readonly Dictionary<SpawnCard, CustomButton> cardDefRef = new Dictionary<SpawnCard, CustomButton>();
private static bool isScalingInteractablePricesConstantly;
public static Dictionary<SpawnCard, int> startOfRoundScaledInteractableCosts;
public static SpawnCard[] cards => _spawnCards ?? (_spawnCards = (from x in (from x in (from x in ClassicStageInfo.instance.interactableDccsPool.GenerateWeightedSelection().choices
where !((object)x).Equals((object?)null) && Object.op_Implicit((Object)(object)x.value)
select x.value into x
where !((object)x).Equals((object?)null) && x.categories != null
select x.categories).SelectMany((Category[] x) => x)
where !((object)(Category)(ref x)).Equals((object?)null) && !x.cards.Equals(null)
select x.cards).SelectMany((DirectorCard[] x) => x)
select x.spawnCard).Union(from x in Object.FindObjectOfType<SceneDirector>().GenerateInteractableCardSelection().choices
where x.value != null && (Object)(object)x.value.spawnCard != (Object)null
select x.value.spawnCard).ToArray());
static InteractableManager()
{
isScalingInteractablePricesConstantly = false;
startOfRoundScaledInteractableCosts = new Dictionary<SpawnCard, int>();
Run.onRunStartGlobal += delegate
{
_spawnCards = null;
};
}
public void ModuleStart()
{
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Expected O, but got Unknown
//IL_0152: Unknown result type (might be due to invalid IL or missing references)
//IL_0158: Invalid comparison between Unknown and I4
_info = ((Component)this).GetComponentInParent<MenuInfo>();
startOfRoundScaledInteractableCosts.Clear();
foreach (SpawnCard card in cards.OrderBy((SpawnCard x) => (x.prefab.GetComponentInChildren<IDisplayNameProvider>() != null) ? x.prefab.GetComponentInChildren<IDisplayNameProvider>().GetDisplayName() : ((Object)x).name))
{
if (!((object)card).Equals((object?)null) && !((object)card).Equals((object?)null))
{
GameObject val = Object.Instantiate<GameObject>(buttonPrefab, buttonParent.transform);
IDisplayNameProvider componentInChildren = card.prefab.GetComponentInChildren<IDisplayNameProvider>();
CustomButton component = val.GetComponent<CustomButton>();
component.buttonText.text = ((componentInChildren != null) ? componentInChildren.GetDisplayName() : ((Object)card).name);
component.image.sprite = PingIndicator.GetInteractableIcon(card.prefab);
((UnityEvent)component.button.onClick).AddListener((UnityAction)delegate
{
SpawnInteractable(card);
});
cardDefRef[card] = component;
GameObject prefab = card.prefab;
PurchaseInteraction component2 = prefab.GetComponent<PurchaseInteraction>();
if (Object.op_Implicit((Object)(object)component2) && (int)component2.costType == 1)
{
int difficultyScaledCost = Run.instance.GetDifficultyScaledCost(component2.cost);
startOfRoundScaledInteractableCosts.Add(card, difficultyScaledCost);
}
}
}
if (Object.op_Implicit((Object)(object)searchFilter))
{
((UnityEvent<string>)(object)searchFilter.onValueChanged).AddListener((UnityAction<string>)FilterUpdated);
}
}
public void SpawnInteractable(SpawnCard card)
{
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
if (!Object.op_Implicit((Object)(object)_info.Master))
{
Tools.Log(LogLevel.Error, "Cant Spawn Interactable Localuser Master is null");
return;
}
CharacterBody val = _info?.Body;
if (!Object.op_Implicit((Object)(object)val))
{
Tools.Log(LogLevel.Error, "Cant Spawn Interactable Localuser Body is null");
return;
}
Vector3 position = val.transform.position;
Ray aimRay = val.inputBank.GetAimRay();
Vector3 val2 = ((Ray)(ref aimRay)).direction * 1.6f;
if (NetworkServer.active)
{
Spawn((uint)Array.IndexOf(cards, card), position + val2);
}
else
{
ClientScene.readyConnection.SendAerolt(new InteractableSpawnMessage((uint)Array.IndexOf(cards, card), position + val2));
}
}
public static void Spawn(uint index, Vector3 position)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Expected O, but got Unknown
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Expected O, but got Unknown
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Invalid comparison between Unknown and I4
SpawnCard val = cards[index];
DirectorPlacementRule val2 = new DirectorPlacementRule
{
placementMode = (PlacementMode)3,
maxDistance = 30f,
minDistance = 10f,
position = position,
preventOverhead = true
};
DirectorSpawnRequest val3 = new DirectorSpawnRequest(val, val2, RoR2Application.rng);
GameObject val4 = DirectorCore.instance.TrySpawnObject(val3);
if (Object.op_Implicit((Object)(object)val4))
{
PurchaseInteraction component = val4.GetComponent<PurchaseInteraction>();
if (Object.op_Implicit((Object)(object)component) && (int)component.costType == 1)
{
component.Networkcost = (isScalingInteractablePricesConstantly ? Run.instance.GetDifficultyScaledCost(component.cost) : startOfRoundScaledInteractableCosts[val]);
}
}
}
private void FilterUpdated(string text)
{
if (Utility.IsNullOrWhiteSpace(text))
{
foreach (KeyValuePair<SpawnCard, CustomButton> item in cardDefRef)
{
((Component)item.Value).gameObject.SetActive(true);
}
return;
}
CustomButton[] array = cardDefRef.Values.ToArray();
CustomButton[] source = Tools.FindMatches(array, (CustomButton x) => x.buttonText.text, text);
CustomButton[] array2 = array;
foreach (CustomButton customButton in array2)
{
((Component)customButton).gameObject.SetActive(source.Contains(customButton));
}
}
}
[RequireComponent(typeof(ToggleGroup))]
public class LobbyPlayerManager : MonoBehaviour, IModuleStartup
{
public GameObject playerEntryPrefab = null;
public Transform playerEntryParent = null;
public readonly Dictionary<NetworkUser, PlayerConfigBinding> users = new Dictionary<NetworkUser, PlayerConfigBinding>();
private LobbyPlayerPageManager _pageManager = null;
private MenuInfo info = null;
private NetworkUser selectedUser = null;
private ToggleGroup toggleGroup = null;
private void OnEnable()
{
foreach (NetworkUser key in users.Keys)
{
UpdateUserLobbyButton(key);
}
}
public void ModuleStart()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Expected O, but got Unknown
NetworkUser.onPostNetworkUserStart += new NetworkUserGenericDelegate(UserAdded);
NetworkUser.onNetworkUserLost += new NetworkUserGenericDelegate(UserLost);
info = ((Component)this).GetComponentInParent<MenuInfo>();
toggleGroup = ((Component)this).GetComponent<ToggleGroup>();
_pageManager = ((Component)this).GetComponent<LobbyPlayerPageManager>();
foreach (NetworkUser instances in NetworkUser.instancesList)
{
UserAdded(instances);
}
}
void IModuleStartup.ModuleEnd()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
NetworkUser.onPostNetworkUserStart -= new NetworkUserGenericDelegate(UserAdded);
NetworkUser.onNetworkUserDiscovered -= new NetworkUserGenericDelegate(UserAdded);
NetworkUser.onNetworkUserLost -= new NetworkUserGenericDelegate(UserLost);
foreach (var (_, playerConfigBinding2) in users)
{
playerConfigBinding2.OnDestroy();
}
}
private void UpdateUserLobbyButton(NetworkUser user)
{
CustomButton customButton = users[user].customButton;
customButton.buttonText.text = user.userName;
if (Object.op_Implicit((Object)(object)user.master) && Object.op_Implicit((Object)(object)user.master.bodyPrefab))
{
customButton.rawImage.texture = user.master.bodyPrefab.GetComponent<CharacterBody>().portraitIcon;
}
}
private void UserAdded(NetworkUser user)
{
NetworkUser user2 = user;
if (users.ContainsKey(user2))
{
return;
}
CustomButton component = Object.Instantiate<GameObject>(playerEntryPrefab, playerEntryParent, false).GetComponent<CustomButton>();
users[user2] = new PlayerConfigBinding(user2, component);
Toggle component2 = ((Component)component).GetComponent<Toggle>();
component2.group = toggleGroup;
((UnityEvent<bool>)(object)component2.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
if (val)
{
SetUser(user2);
}
});
if ((Object)(object)user2 == (Object)(object)info.Owner)
{
component2.Set(true, true);
}
if (Object.op_Implicit((Object)(object)user2.master))
{
if (NetworkServer.active)
{
BodyStart(user2.master.GetBody());
}
user2.master.onBodyStart += BodyStart;
}
}
private void BodyStart(CharacterBody body)
{
if (Object.op_Implicit((Object)(object)body))
{
NetworkUser networkUser = body.master.playerCharacterMasterController.networkUser;
users[networkUser].Sync();
}
}
private void UserLost(NetworkUser user)
{
if (users.ContainsKey(user))
{
Object.Destroy((Object)(object)((Component)users[user].customButton).gameObject);
users[user].OnDestroy();
users.Remove(user);
if ((Object)(object)selectedUser == (Object)(object)user && users.Any())
{
SetUser(users.Keys.Last());
}
if (Object.op_Implicit((Object)(object)user.master))
{
user.master.onBodyStart -= BodyStart;
}
}
}
private void SetUser(NetworkUser user)
{
selectedUser = user;
_pageManager.SetUser(user);
}
}
public class LobbyPlayerPageManager : MonoBehaviour, IModuleStartup
{
[CanBeNull]
private static PickupDropTable? _chest1DropTable;
public PlayerValuesGenerator bodyStats = null;
[Header("Inventory Display")]
public ItemInventoryDisplay inventoryDisplay = null;
public EquipmentIcon equipmentIcon = null;
public BuffDisplay buffDisplay = null;
[Header("Toggles")]
public Toggle aimbotToggle = null;
public Toggle noclipToggle = null;
public Toggle godToggle = null;
public Toggle infiniteSkillsToggle = null;
public Toggle alwaysSprintToggle = null;
public Toggle disableMobSpawnToggle = null;
[Header("Sliders")]
public Slider aimbotWeightSlider = null;
public Slider xpSlider = null;
[Header("DropDowns")]
public TMP_Dropdown teamDropdown = null;
[Header("InputFields")]
public TMP_InputField moneyInputField = null;
public TMP_InputField lunarCoinsInputField = null;
public TMP_InputField voidMarkersInputField = null;
public TMP_InputField xpToGiveInputField = null;
[Header("Content Display")]
public GameObject mainContent = null;
public EditPlayerItemButton itemContent = null;
public EquipmentButtonGenerator equipmentContent = null;
public BodyManager bodyContent = null;
public EditPlayerBuffButton buffContent = null;
public TMP_Text LevelLabel = null;
private PlayerConfigBinding _playerConfig = null;
private ViewState _state = ViewState.Main;
private CharacterBody body = null;
[Header("Character Info")]
private NetworkUser currentUser = null;
private ValueWrapper<bool> disableMobSpawns = null;
private MenuInfo info = null;
private CharacterMaster master = null;
private bool ownerIsSelected;
private LobbyPlayerManager playerManager = null;
private static List<ItemDef>? _giveAllFilteredItems;
public static PickupDropTable Chest1DropTable => _chest1DropTable ?? (_chest1DropTable = LegacyResourcesAPI.Load<PickupDropTable>("DropTables/dtSmallChest"));
public static List<ItemDef> GiveAllFilteredItems
{
get
{
object obj = _giveAllFilteredItems;
if (obj == null)
{
obj = new List<ItemDef>
{
Items.DroneWeaponsBoost,
Items.HealthDecay,
Items.LunarPrimaryReplacement,
Items.LunarSecondaryReplacement,
Items.LunarUtilityReplacement,
Items.LunarSpecialReplacement
};
_giveAllFilteredItems = (List<ItemDef>?)obj;
}
return (List<ItemDef>)obj;
}
}
private PlayerConfigBinding PlayerConfig
{
get
{
return _playerConfig;
}
set
{
if (_playerConfig != null && _playerConfig != value)
{
_playerConfig.UnBind(UpdateCheckboxValues);
}
_playerConfig = value;
_playerConfig.Bind(UpdateCheckboxValues);
UpdateCheckboxValues();
}
}
public void Kick()
{
new KickBanMessage(currentUser, kick: true).SendToServer();
}
public void Ban()
{
new KickBanMessage(currentUser, kick: false, ban: true).SendToServer();
}
public void Goto()
{
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)info.Body) && Object.op_Implicit((Object)(object)body))
{
new TeleportMessage(info.Body, body.transform.position).SendToAuthority(info.Body);
}
}
public void Bring()
{
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)info.Body) && Object.op_Implicit((Object)(object)body))
{
new TeleportMessage(body, info.Body.transform.position).SendToAuthority(body);
}
}
public void Kill()
{
if (Object.op_Implicit((Object)(object)master))
{
new KillMessage(master).SendToServer();
}
}
public void Revive()
{
SetBodyMessage setBodyMessage = new SetBodyMessage(currentUser);
if (!NetworkServer.active)
{
setBodyMessage.Handle();
}
setBodyMessage.SendToServer();
}
public void GiveAllItems()
{
if (Object.op_Implicit((Object)(object)master))
{
Dictionary<ItemDef, int> itemCounts = ContentManager.itemDefs.Except(GiveAllFilteredItems).ToDictionary((ItemDef x) => x, (ItemDef def) => master.inventory.GetItemCount(def) + 1);
new SetItemCountMessage(master.inventory, itemCounts).SendToServer();
}
}
public void GiveRandomItems()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
if (!Object.op_Implicit((Object)(object)master))
{
return;
}
Dictionary<ItemDef, int> dictionary = new Dictionary<ItemDef, int>();
for (int i = 0; i < Random.Range(0, 100); i++)
{
PickupIndex val = Chest1DropTable.GenerateDrop(RoR2Application.rng);
PickupDef pickupDef = PickupCatalog.GetPickupDef(val);
ItemDef itemDef = ItemCatalog.GetItemDef((ItemIndex)((pickupDef == null) ? (-1) : ((int)pickupDef.itemIndex)));
if (!((Object)(object)itemDef == (Object)null))
{
if (!dictionary.ContainsKey(itemDef))
{
dictionary[itemDef] = master.inventory.GetItemCount(itemDef);
}
dictionary[itemDef] += Random.Range(0, 100);
}
}
new SetItemCountMessage(master.inventory, dictionary).SendToServer();
}
public void ClearInventory()
{
Dictionary<ItemDef, int> itemCounts = ContentManager.itemDefs.ToDictionary((ItemDef x) => x, (ItemDef _) => 0);
new SetItemCountMessage(master.inventory, itemCounts).SendToServer();
}
public void OpenInventory()
{
SwapViewState(ViewState.Inventory);
}
public void OpenBuffs()
{
SwapViewState(ViewState.Buff);
}
public void OpenEquipment()
{
SwapViewState(ViewState.Equipment);
}
public void OpenSpawnAs()
{
SwapViewState(ViewState.Body);
}
public void Update()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)currentUser) && Object.op_Implicit((Object)(object)master))
{
((TMP_Text)(TextMeshProUGUI)moneyInputField.placeholder).text = master.money.ToString();
((TMP_Text)(TextMeshProUGUI)voidMarkersInputField.placeholder).text = master.voidCoins.ToString();
((TMP_Text)(TextMeshProUGUI)lunarCoinsInputField.placeholder).text = currentUser.lunarCoins.ToString();
}
}
private void OnEnable()
{
UpdateLevelValues();
}
public void ModuleStart()
{
info = ((Component)this).GetComponentInParent<MenuInfo>();
playerManager = ((Component)this).GetComponent<LobbyPlayerManager>();
bodyStats.Setup();
GlobalEventManager.onTeamLevelUp += OnTeamLevelUp;
teamDropdown.options.Clear();
teamDropdown.AddOptions((from x in Enum.GetNames(typeof(TeamIndex))
where x != "None"
select x).ToList());
((UnityEvent<bool>)(object)godToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
PlayerConfig.GodMode.Value = val;
});
((UnityEvent<bool>)(object)aimbotToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
PlayerConfig.Aimbot.Value = val;
});
((UnityEvent<float>)(object)aimbotWeightSlider.onValueChanged).AddListener((UnityAction<float>)delegate(float val)
{
PlayerConfig.AimbotWeight.Value = val;
});
((UnityEvent<bool>)(object)noclipToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
PlayerConfig.Noclip.Value = val;
});
((UnityEvent<bool>)(object)infiniteSkillsToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
PlayerConfig.InfiniteSkills.Value = val;
});
((UnityEvent<bool>)(object)alwaysSprintToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
PlayerConfig.AlwaysSprint.Value = val;
});
((UnityEvent<string>)(object)moneyInputField.onEndEdit).AddListener((UnityAction<string>)delegate(string amt)
{
SetCurrency(CurrencyType.Money, amt);
moneyInputField.SetTextWithoutNotify("");
});
((UnityEvent<string>)(object)lunarCoinsInputField.onEndEdit).AddListener((UnityAction<string>)delegate(string amt)
{
SetCurrency(CurrencyType.Lunar, amt);
lunarCoinsInputField.SetTextWithoutNotify("");
});
((UnityEvent<string>)(object)voidMarkersInputField.onEndEdit).AddListener((UnityAction<string>)delegate(string amt)
{
SetCurrency(CurrencyType.Void, amt);
lunarCoinsInputField.SetTextWithoutNotify("");
});
((UnityEvent<string>)(object)xpToGiveInputField.onEndEdit).AddListener((UnityAction<string>)delegate(string amt)
{
SetCurrency(CurrencyType.Level, amt);
UpdateLevelValues();
xpToGiveInputField.SetTextWithoutNotify("");
});
((UnityEvent<int>)(object)teamDropdown.onValueChanged).AddListener((UnityAction<int>)TeamChanged);
TeamComponent.onJoinTeamGlobal += TeamJoined;
disableMobSpawns = ValueWrapper.Get("PlayerMenu", "DisableMobSpawns", defaultValue: false, "");
disableMobSpawns.settingChanged += MobSpawnsChanged;
((UnityEvent<bool>)(object)disableMobSpawnToggle.onValueChanged).AddListener((UnityAction<bool>)delegate(bool val)
{
disableMobSpawns.Value = val;
});
disableMobSpawns.Sync();
}
void IModuleStartup.ModuleEnd()
{
disableMobSpawns.settingChanged -= MobSpawnsChanged;
}
private void UpdateCheckboxValues()
{
godToggle.SetIsOnWithoutNotify(PlayerConfig.GodMode.Value);
aimbotToggle.SetIsOnWithoutNotify(PlayerConfig.Aimbot.Value);
noclipToggle.SetIsOnWithoutNotify(PlayerConfig.Noclip.Value);
infiniteSkillsToggle.SetIsOnWithoutNotify(PlayerConfig.InfiniteSkills.Value);
alwaysSprintToggle.SetIsOnWithoutNotify(PlayerConfig.AlwaysSprint.Value);
aimbotWeightSlider.SetValueWithoutNotify(PlayerConfig.AimbotWeight.Value);
}
public void SetUser(NetworkUser user)
{
if ((Object)(object)currentUser != (Object)null && Object.op_Implicit((Object)(object)currentUser.master))
{
currentUser.master.onBodyStart -= SetBody;
}
currentUser = user;
PlayerConfig = playerManager.users[currentUser];
SwapViewState();
ownerIsSelected = (Object)(object)currentUser == (Object)(object)info.Owner;
bodyStats.SetTogglesActive(ownerIsSelected);
master = currentUser.master;
UpdateLevelValues();
if (Object.op_Implicit((Object)(object)master))
{
Inventory inventory = master.inventory;
equipmentIcon.targetInventory = inventory;
master.onBodyStart += SetBody;
CharacterBody val = master.GetBody();
if (Object.op_Implicit((Object)(object)val))
{
SetBody(val);
}
}
}
private void SetBody(CharacterBody bodyIn)
{
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Expected I4, but got Unknown
body = bodyIn;
if (!ownerIsSelected)
{
bodyStats.ProfileSelected(0, applyValuesToBody: false);
}
buffDisplay.source = body;
bodyStats.TargetBody = body;
teamDropdown.SetValueWithoutNotify((int)body.teamComponent.teamIndex);
}
private void MobSpawnsChanged()
{
disableMobSpawnToggle.SetIsOnWithoutNotify(disableMobSpawns.Value);
if (!NetworkServer.active)
{
return;
}
foreach (CombatDirector instances in CombatDirector.instancesList)
{
instances.monsterSpawnTimer = (disableMobSpawns.Value ? float.PositiveInfinity : 0f);
}
}
private void TeamJoined(TeamComponent who, TeamIndex team)
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Expected I4, but got Unknown
if ((Object)(object)who.body == (Object)(object)body)
{
teamDropdown.SetValueWithoutNotify((int)team);
}
}
public void SetCurrency(CurrencyType currencyType, string strAmount)
{
if (uint.TryParse(strAmount, out var result))
{
new CurrencyMessage(master, currencyType, result).SendToServer();
}
}
public void SetXp()
{
SetCurrency(CurrencyType.Experience, Mathf.RoundToInt(xpSlider.value).ToString());
UpdateLevelValues();
}
private void OnTeamLevelUp(TeamIndex obj)
{
xpSlider.value = TeamManager.instance.GetTeamCurrentLevelExperience((TeamIndex)(sbyte)teamDropdown.value);
LevelLabel.text = $"Lv : {TeamManager.instance.GetTeamLevel((TeamIndex)(sbyte)teamDropdown.value)}";
}
private void UpdateLevelValues()
{
LevelLabel.text = $"Lv : {TeamManager.instance.GetTeamLevel((TeamIndex)(sbyte)teamDropdown.value)}";
xpSlider.minValue = TeamManager.instance.GetTeamCurrentLevelExperience((TeamIndex)(sbyte)teamDropdown.value);
xpSlider.maxValue = TeamManager.instance.GetTeamNextLevelExperience((TeamIndex)(sbyte)teamDropdown.value);
xpSlider.value = TeamManager.instance.GetTeamExperience((TeamIndex)(sbyte)teamDropdown.value);
}
public void TeamChanged(int team)
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)master))
{
TeamIndex team2 = (TeamIndex)(sbyte)team;
new TeamSwitchMessage(master, team2).SendToServer();
UpdateLevelValues();
}
}
public void SwapViewState(ViewState newState)
{
switch (_state)
{
case ViewState.Main:
mainContent.SetActive(false);
break;
case ViewState.Inventory:
((Component)itemContent).gameObject.SetActive(false);
break;
case ViewState.Equipment:
((Component)equipmentContent).gameObject.SetActive(false);
break;
case ViewState.Body:
((Component)bodyContent).gameObject.SetActive(false);
break;
case ViewState.Buff:
((Component)buffContent).gameObject.SetActive(false);
break;
default:
throw new ArgumentOutOfRangeException();
}
_state = newState;
switch (newState)
{
case ViewState.Main:
mainContent.SetActive(true);
break;
case ViewState.Inventory:
((Component)itemContent).gameObject.SetActive(true);
itemContent.Initialize(currentUser);
break;
case ViewState.Equipment:
((Component)equipmentContent).gameObject.SetActive(true);
equipmentContent.Initialize(currentUser);
break;
case ViewState.Body:
((Component)bodyContent).gameObject.SetActive(true);
bodyContent.Initialize(currentUser);
break;
case ViewState.Buff:
((Component)buffContent).gameObject.SetActive(true);
buffContent.Initialize(currentUser);
break;
default:
throw new ArgumentOutOfRangeException("newState", newState, null);
}
}
public void KillAllMobs()
{
new KillAllTeamMessage((TeamIndex)1).SendToServer();
}
public void SwapViewState()
{
SwapViewState(ViewState.Main);
}
}
public static class NetworkManager
{
public static Type[] RegisteredMessages;
public static void Initialize()
{
NetworkManagerSystem.onStartServerGlobal += RegisterMessages;
NetworkManagerSystem.onStartClientGlobal += RegisterMessages;
RegisteredMessages = (from x in typeof(AeroltMessageBase).Assembly.GetTypes()
where typeof(AeroltMessageBase).IsAssignableFrom(x) && x != typeof(AeroltMessageBase)
select x).ToArray();
}
private static void RegisterMessages()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
NetworkServer.RegisterHandler((short)2004, new NetworkMessageDelegate(HandleMessage));
}
public static void RegisterMessages(NetworkClient client)
{
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Expected O, but got Unknown
client.RegisterHandler((short)2004, new NetworkMessageDelegate(HandleMessage));
}
private static void HandleMessage(NetworkMessage netmsg)
{
AeroltMessage aeroltMessage = netmsg.ReadMessage<AeroltMessage>();
if (aeroltMessage.message is BroadcastMessage broadcastMessage)
{
broadcastMessage.fromConnection = netmsg.conn;
}
aeroltMessage.message.Handle();
}
public static void SendAerolt<T>(this NetworkConnection connection, T message) where T : AeroltMessageBase
{
AeroltMessage aeroltMessage = new AeroltMessage(message);
connection.Send((short)2004, (MessageBase)(object)aeroltMessage);
}
}
public class AeroltMessageBase : MessageBase
{
public virtual void Handle()
{
}
public void SendToServer()
{
if (!NetworkServer.active)
{
ClientScene.readyConnection.SendAerolt(this);
}
else
{
Handle();
}
}
public void SendToEveryone()
{
Handle();
new BroadcastMessage(this).SendToServer();
}
public void SendToAuthority(NetworkIdentity identity)
{
if (!Util.HasEffectiveAuthority(identity) && NetworkServer.active)
{
identity.clientAuthorityOwner.SendAerolt(this);
}
else if (!NetworkServer.active)
{
new NewAuthMessage(identity, this).SendToServer();
}
else
{
Handle();
}
}
public void SendToAuthority(NetworkUser user)
{
SendToAuthority(((NetworkBehaviour)user).netIdentity);
}
public void SendToAuthority(CharacterMaster master)
{
SendToAuthority(master.networkIdentity);
}
public void SendToAuthority(CharacterBody body)
{
SendToAuthority(body.networkIdentity);
}
}
public class BroadcastMessage : AeroltMessageBase
{
public NetworkConnection fromConnection = null;
private AeroltMessageBase message = null;
public BroadcastMessage()
{
}
public BroadcastMessage(AeroltMessageBase aeroltMessageBase)
{
message = aeroltMessageBase;
}
public override void Handle()
{
base.Handle();
foreach (NetworkConnection connection in NetworkServer.connections)
{
if (connection != fromConnection && connection.isConnected)
{
connection.SendAerolt(message);
}
}
message.Handle();
}
public override void Deserialize(NetworkReader reader)
{
((MessageBase)this).Deserialize(reader);
message = reader.ReadMessage<AeroltMessage>().message;
}
public override void Serialize(NetworkWriter writer)
{
((MessageBase)this).Serialize(writer);
writer.Write((MessageBase)(object)new AeroltMessage(message));
}
}
public class NewAuthMessage : AeroltMessageBase
{
private AeroltMessageBase message = null;
private NetworkIdentity target = null;
public NewAuthMessage()
{
}
public NewAuthMessage(NetworkIdentity identity, AeroltMessageBase aeroltMessageBase)
{
target = identity;
message = aeroltMessageBase;
}
public override void Handle()
{
base.Handle();
message.SendToAuthority(target);
}
public override void Deserialize(NetworkReader reader)
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Deserialize(reader);
GameObject val = Util.FindNetworkObject(reader.ReadNetworkId());
if (Object.op_Implicit((Object)(object)val))
{
target = val.GetComponent<NetworkIdentity>();
}
message = reader.ReadMessage<AeroltMessage>().message;
}
public override void Serialize(NetworkWriter writer)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
((MessageBase)this).Serialize(writer);
writer.Write(target.netId);
writer.Write((MessageBase)(object)new AeroltMessage(message));
}
}
internal class AeroltMessage : MessageBase
{
public AeroltMessageBase message = null;
public uint Type;
public AeroltMessage()
{
}
public AeroltMessage(AeroltMessageBase aeroltMessageBase)
{
message = aeroltMessageBase;
Type = (uint)Array.IndexOf(NetworkManager.RegisteredMessages, ((object)message).GetType());
}
public override void Serialize(NetworkWriter writer)
{
((MessageBase)this).Serialize(writer);
writer.WritePackedUInt32(Type);
writer.Write((MessageBase)(object)message);
}
public override void Deserialize(NetworkReader reader)
{
((MessageBase)this).Deserialize(reader);
Type = reader.ReadPackedUInt32();
AeroltMessageBase aeroltMessageBase = (AeroltMessageBase)Activator.CreateInstance(NetworkManager.RegisteredMessages[Type]);
((MessageBase)aeroltMessageBase).Deserialize(reader);
message = aeroltMessageBase;
}
}
public class PlayerConfigBinding
{
public ValueWrapper<bool> Aimbot;
public ValueWrapper<float> AimbotWeight;
public ValueWrapper<bool> AlwaysSprint;
public CustomButton customButton;
public ValueWrapper<bool> GodMode;
public ValueWrapper<bool> InfiniteSkills;
public ValueWrapper<bool> Noclip;
public ValueWrapper<bool> NoclipInteractForDown;
private readonly NetworkUser user;
public PlayerConfigBinding(NetworkUser currentUser, CustomButton button)
{
//IL_01df: Unknown result type (might be due to invalid IL or missing references)
//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
customButton = button;
user = currentUser;
AimbotWeight = ValueWrapper.Get("PlayerMenu", "AimbotWeight", 0.5f, "", user);
AimbotWeight.settingChanged += OnAimbotWeightChanged;
Aimbot = ValueWrapper.Get("PlayerMenu", "Aimbot", defaultValue: false, "", user);
Aimbot.settingChanged += OnAimbotChanged;
InfiniteSkills = ValueWrapper.Get("PlayerMenu", "InfiniteSkills", defaultValue: false, "", user);
InfiniteSkills.settingChanged += OnInfiniteSkillsChanged;
AlwaysSprint = ValueWrapper.Get("PlayerMenu", "AlwaysSprint", defaultValue: false, "", user);
AlwaysSprint.settingChanged += OnAlwaysSprintChanged;
GodMode = ValueWrapper.Get("PlayerMenu", "GodMode", defaultValue: false, "", user);
GodMode.settingChanged += OnGodModeChanged;
Noclip = ValueWrapper.Get("PlayerMenu", "Noclip", defaultValue: false, "", user);
Noclip.settingChanged += OnNoclipChanged;
object obj;
if (!Object.op_Implicit((Object)(object)user) || user.localUser == null)
{
obj = "com.Lodington.Aerolt";
}
else
{
NetworkPlayerName networkPlayerName = user.GetNetworkPlayerName();
obj = "Aerolt " + ((NetworkPlayerName)(ref networkPlayerName)).GetResolvedName();
}
string who = (string)obj;
NoclipInteractForDown = ValueWrapper.Get("PlayerMenu", "NoclipInteractForDown", defaultValue: true, "", user, null, delegate(ZioConfigEntry<bool> config)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Expected O, but got Unknown
ModSettingsManager.AddOption((BaseOption)new ZioCheckBoxOption(config), who, who);
});
NoclipInteractForDown.settingChanged += OnNoclipForInteractDownChanged;
}
public void OnDestroy()
{
AimbotWeight.settingChanged -= OnAimbotWeightChanged;
Aimbot.settingChanged -= OnAimbotChanged;
InfiniteSkills.settingChanged -= OnInfiniteSkillsChanged;
AlwaysSprint.settingChanged -= OnAlwaysSprintChanged;
GodMode.settingChanged -= OnGodModeChanged;
Noclip.settingChanged -= OnNoclipChanged;
NoclipInteractForDown.settingChanged -= OnNoclipForInteractDownChanged;
}
private void OnNoclipForInteractDownChanged()
{
if (!Object.op_Implicit((Object)(object)user.master))
{
return;
}
CharacterBody body = user.master.GetBody();
if (Object.op_Implicit((Object)(object)body))
{
NoclipBehavior component = ((Component)body).GetComponent<NoclipBehavior>();
if (Object.op_Implicit((Object)(object)component))
{
component.shouldUseInteractForDown = NoclipInteractForDown.Value;
}
}
}
private void OnNoclipChanged()
{
if (Object.op_Implicit((Object)(object)user.master))
{
SetNoclip(user.master.GetBody(), Noclip.Value);
OnNoclipForInteractDownChanged();
}
}
private void OnGodModeChanged()
{
if (Object.op_Implicit((Object)(object)user.master))
{
SetGodMode(user.master.GetBody(), GodMode.Value);
}
}
private void OnAlwaysSprintChanged()
{
if (Object.op_Implicit((Object)(object)user.master))
{
SetAlwaysSprint(user.master.GetBody(), AlwaysSprint.Value);
}
}
private void OnInfiniteSkillsChanged()
{
if (Object.op_Implicit((Object)(object)user.master))
{
SetInfiniteSkills(user.master.GetBody(), InfiniteSkills.Value);
}
}
private void OnAimbotChanged()
{
if (Object.op_Implicit((Object)(object)user.mas