using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using MenuLib;
using MenuLib.MonoBehaviors;
using Microsoft.CodeAnalysis;
using Photon.Pun;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("Autodesk.Fbx")]
[assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")]
[assembly: IgnoresAccessChecksTo("FbxBuildTestAssets")]
[assembly: IgnoresAccessChecksTo("Klattersynth")]
[assembly: IgnoresAccessChecksTo("Photon3Unity3D")]
[assembly: IgnoresAccessChecksTo("PhotonChat")]
[assembly: IgnoresAccessChecksTo("PhotonRealtime")]
[assembly: IgnoresAccessChecksTo("PhotonUnityNetworking")]
[assembly: IgnoresAccessChecksTo("PhotonUnityNetworking.Utilities")]
[assembly: IgnoresAccessChecksTo("PhotonVoice.API")]
[assembly: IgnoresAccessChecksTo("PhotonVoice")]
[assembly: IgnoresAccessChecksTo("PhotonVoice.PUN")]
[assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime")]
[assembly: IgnoresAccessChecksTo("SingularityGroup.HotReload.Runtime.Public")]
[assembly: IgnoresAccessChecksTo("Sirenix.OdinInspector.Attributes")]
[assembly: IgnoresAccessChecksTo("Sirenix.Serialization.Config")]
[assembly: IgnoresAccessChecksTo("Sirenix.Serialization")]
[assembly: IgnoresAccessChecksTo("Sirenix.Utilities")]
[assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")]
[assembly: IgnoresAccessChecksTo("Unity.Formats.Fbx.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")]
[assembly: IgnoresAccessChecksTo("Unity.Postprocessing.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")]
[assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")]
[assembly: IgnoresAccessChecksTo("Unity.Timeline")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Antlr3.Runtime")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Core")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.Flow")]
[assembly: IgnoresAccessChecksTo("Unity.VisualScripting.State")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UI")]
[assembly: IgnoresAccessChecksTo("websocket-sharp")]
[assembly: AssemblyCompany("Einhornyordle")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("0.1.2")]
[assembly: AssemblyInformationalVersion("0.1.2")]
[assembly: AssemblyProduct("MaxSkillset")]
[assembly: AssemblyTitle("MaxSkillset")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.2.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
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;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace MaxSkillset
{
[HarmonyPatch(typeof(PunManager))]
internal static class PunManagerPatch
{
[HarmonyPostfix]
[HarmonyPatch("ReceiveSyncData")]
private static void ReceiveSyncData_Postfix(bool finalChunk)
{
if (finalChunk)
{
SaveDataManager.ApplySkills();
}
}
}
[BepInPlugin("Einhornyordle.MaxSkillset", "MaxSkillset", "0.1.2")]
public class MaxSkillset : BaseUnityPlugin
{
private static MaxSkillset Instance { get; set; }
internal static ManualLogSource Logger => Instance._logger;
private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger;
private Harmony? Harmony { get; set; }
private void Awake()
{
Instance = this;
((Component)this).gameObject.transform.parent = null;
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
Patch();
SaveDataManager.Initialize();
SkillsMenu.Initialize();
Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!");
}
private void Patch()
{
//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_0020: Expected O, but got Unknown
//IL_0025: Expected O, but got Unknown
if (Harmony == null)
{
Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID);
Harmony val2 = val;
Harmony = val;
}
Harmony.PatchAll();
}
}
internal static class SaveDataManager
{
internal static ConfigEntry<int> SaveCumulativeHaul;
internal static ConfigEntry<int> SaveMapPlayerCount;
internal static ConfigEntry<int> SaveEnergy;
internal static ConfigEntry<int> SaveExtraJump;
internal static ConfigEntry<int> SaveGrabRange;
internal static ConfigEntry<int> SaveGrabStrength;
internal static ConfigEntry<int> SaveGrabThrow;
internal static ConfigEntry<int> SaveHealth;
internal static ConfigEntry<int> SaveSprintSpeed;
internal static ConfigEntry<int> SaveTumbleLaunch;
internal static void Initialize()
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Expected O, but got Unknown
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Expected O, but got Unknown
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0075: Expected O, but got Unknown
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00a7: Expected O, but got Unknown
//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
//IL_00d9: Expected O, but got Unknown
//IL_0101: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Expected O, but got Unknown
//IL_0133: Unknown result type (might be due to invalid IL or missing references)
//IL_013d: Expected O, but got Unknown
//IL_0165: Unknown result type (might be due to invalid IL or missing references)
//IL_016f: Expected O, but got Unknown
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01a1: Expected O, but got Unknown
//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
//IL_01d3: Expected O, but got Unknown
//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0205: Expected O, but got Unknown
ConfigFile val = new ConfigFile(Path.Combine(Application.persistentDataPath, "REPOModData/MaxSkillset/save.cfg"), false);
SaveCumulativeHaul = val.Bind<int>("General", "CumulativeHaul", 25, new ConfigDescription("The total value of all hauls you've ever completed. This value is used to calculate your available skill points. Increase this to cheat skill points. Set to 25 to reset your progress.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveMapPlayerCount = val.Bind<int>("Skills", "MapPlayerCount", 25, new ConfigDescription("The amount of map player count upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveEnergy = val.Bind<int>("Skills", "Energy", 25, new ConfigDescription("The amount of stamina upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveExtraJump = val.Bind<int>("Skills", "ExtraJump", 25, new ConfigDescription("The amount of double jump upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveGrabRange = val.Bind<int>("Skills", "GrabRange", 25, new ConfigDescription("The amount of range upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveGrabStrength = val.Bind<int>("Skills", "GrabStrength", 25, new ConfigDescription("The amount of strength upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveGrabThrow = val.Bind<int>("Skills", "GrabThrow", 25, new ConfigDescription("The amount of throw upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveHealth = val.Bind<int>("Skills", "Health", 25, new ConfigDescription("The amount of health upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveSprintSpeed = val.Bind<int>("Skills", "SprintSpeed", 25, new ConfigDescription("The amount of sprint speed upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
SaveTumbleLaunch = val.Bind<int>("Skills", "TumbleLaunch", 25, new ConfigDescription("The amount of tumble launch upgrades you've skilled. Set to 25 to regain spent skill points.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(25, int.MaxValue), Array.Empty<object>()));
}
internal static void ResetProgress()
{
SaveCumulativeHaul.Value = 25;
SaveMapPlayerCount.Value = 25;
SaveEnergy.Value = 25;
SaveExtraJump.Value = 25;
SaveGrabRange.Value = 25;
SaveGrabStrength.Value = 25;
SaveGrabThrow.Value = 25;
SaveHealth.Value = 25;
SaveSprintSpeed.Value = 25;
SaveTumbleLaunch.Value = 25;
MaxSkillset.Logger.LogDebug((object)"Progress reset.");
}
private static void ApplyUpgrade(Dictionary<string, int> upgradeDict, ConfigEntry<int> savedValue, Action<string> upgradeAction, string rpcName)
{
upgradeDict.TryAdd(PlayerController.instance.playerSteamID, 0);
while (upgradeDict[PlayerController.instance.playerSteamID] < savedValue.Value)
{
string playerSteamID = PlayerController.instance.playerSteamID;
int value = upgradeDict[playerSteamID] + 1;
upgradeDict[playerSteamID] = value;
upgradeAction(PlayerController.instance.playerSteamID);
if (SemiFunc.IsMultiplayer())
{
PunManager.instance.photonView.RPC(rpcName, (RpcTarget)1, new object[2]
{
PlayerController.instance.playerSteamID,
upgradeDict[PlayerController.instance.playerSteamID]
});
}
}
}
internal static void ApplySkills()
{
MaxSkillset.Logger.LogDebug((object)"Applying skill points...");
ApplyUpgrade(StatsManager.instance.playerUpgradeMapPlayerCount, SaveMapPlayerCount, (Action<string>)PunManager.instance.UpdateMapPlayerCountRightAway, "UpgradeMapPlayerCountRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeStamina, SaveEnergy, (Action<string>)PunManager.instance.UpdateEnergyRightAway, "UpgradePlayerEnergyRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeExtraJump, SaveExtraJump, (Action<string>)PunManager.instance.UpdateExtraJumpRightAway, "UpgradePlayerExtraJumpRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeRange, SaveGrabRange, (Action<string>)PunManager.instance.UpdateGrabRangeRightAway, "UpgradePlayerGrabRangeRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeStrength, SaveGrabStrength, (Action<string>)PunManager.instance.UpdateGrabStrengthRightAway, "UpgradePlayerGrabStrengthRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeThrow, SaveGrabThrow, (Action<string>)PunManager.instance.UpdateThrowStrengthRightAway, "UpgradePlayerThrowStrengthRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeHealth, SaveHealth, (Action<string>)PunManager.instance.UpdateHealthRightAway, "UpgradePlayerHealthRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeSpeed, SaveSprintSpeed, (Action<string>)PunManager.instance.UpdateSprintSpeedRightAway, "UpgradePlayerSprintSpeedRPC");
ApplyUpgrade(StatsManager.instance.playerUpgradeLaunch, SaveTumbleLaunch, (Action<string>)PunManager.instance.UpdateTumbleLaunchRightAway, "UpgradePlayerTumbleLaunchRPC");
MaxSkillset.Logger.LogDebug((object)"Skill points applied.");
}
internal static int SkillPointsFromCumulativeHaul()
{
int num = (int)((-1.0 + Math.Sqrt(1.0 + (double)(4 * SaveCumulativeHaul.Value) / 75.0)) / 2.0);
MaxSkillset.Logger.LogDebug((object)$"Total skill points: {num}");
return num;
}
private static int TotalSpentSkillPoints()
{
int num = SaveMapPlayerCount.Value + SaveEnergy.Value + SaveExtraJump.Value + SaveGrabRange.Value + SaveGrabStrength.Value + SaveGrabThrow.Value + SaveHealth.Value + SaveSprintSpeed.Value + SaveTumbleLaunch.Value;
MaxSkillset.Logger.LogDebug((object)$"Spent skill points: {num}");
return num;
}
internal static int AvailableSkillPoints()
{
int num = SkillPointsFromCumulativeHaul() - TotalSpentSkillPoints();
MaxSkillset.Logger.LogDebug((object)$"Available skill points: {num}");
return num;
}
private static int TotalCumulativeHaulNeededForNextSkillPoint()
{
int num = SkillPointsFromCumulativeHaul() + 1;
int num2 = 75 * num * (num + 1);
MaxSkillset.Logger.LogDebug((object)$"Total haul needed for next skill point: {num2}");
return num2;
}
internal static int NeededCumulativeHaulForNextSkillPoint()
{
int num = TotalCumulativeHaulNeededForNextSkillPoint() - SaveCumulativeHaul.Value;
MaxSkillset.Logger.LogDebug((object)$"Haul still needed for next skill point: {num}");
return num;
}
}
[HarmonyPatch(typeof(SemiFunc))]
internal static class SemiFuncPatch
{
[HarmonyPrefix]
[HarmonyPatch("OnSceneSwitch")]
private static void OnSceneSwitch_Prefix()
{
if (SemiFunc.RunIsArena())
{
MaxSkillset.Logger.LogDebug((object)$"Level failed, saving haul of {StatsManager.instance.GetRunStatTotalHaul()}");
ConfigEntry<int> saveCumulativeHaul = SaveDataManager.SaveCumulativeHaul;
saveCumulativeHaul.Value += StatsManager.instance.GetRunStatTotalHaul();
MaxSkillset.Logger.LogDebug((object)$"New total: {SaveDataManager.SaveCumulativeHaul.Value}");
}
}
[HarmonyPostfix]
[HarmonyPatch("OnSceneSwitch")]
private static void OnSceneSwitch_Postfix()
{
if (SemiFunc.IsMasterClientOrSingleplayer() && SemiFunc.RunIsLevel() && !StatsManager.instance.FetchPlayerUpgrades(PlayerController.instance.playerSteamID).Values.Any((int val) => val != 0))
{
SaveDataManager.ApplySkills();
}
}
}
public static class SkillsMenu
{
[Serializable]
[CompilerGenerated]
private sealed class <>c
{
public static readonly <>c <>9 = new <>c();
public static BuilderDelegate <>9__2_0;
public static BuilderDelegate <>9__2_1;
public static BuilderDelegate <>9__2_2;
internal void <Initialize>b__2_0(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
}
internal void <Initialize>b__2_1(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
}
internal void <Initialize>b__2_2(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
}
}
private static REPOLabel _availableSkillPoints;
private static REPOSlider[] _skillSliders;
internal static void Initialize()
{
//IL_0014: 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_001f: Expected O, but got Unknown
//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_0043: Expected O, but got Unknown
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Expected O, but got Unknown
object obj = <>c.<>9__2_0;
if (obj == null)
{
BuilderDelegate val = delegate(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
};
<>c.<>9__2_0 = val;
obj = (object)val;
}
MenuAPI.AddElementToMainMenu((BuilderDelegate)obj);
object obj2 = <>c.<>9__2_1;
if (obj2 == null)
{
BuilderDelegate val2 = delegate(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
};
<>c.<>9__2_1 = val2;
obj2 = (object)val2;
}
MenuAPI.AddElementToEscapeMenu((BuilderDelegate)obj2);
object obj3 = <>c.<>9__2_2;
if (obj3 == null)
{
BuilderDelegate val3 = delegate(Transform parent)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.CreateREPOButton("JcDesigns Mods", (Action)CreateSkillsMenu, parent, new Vector2(0f, 360f));
};
<>c.<>9__2_2 = val3;
obj3 = (object)val3;
}
MenuAPI.AddElementToLobbyMenu((BuilderDelegate)obj3);
}
private static void CreateSkillsMenu()
{
CreateStatisticsPage();
CreateSkillsPage();
}
private static void CreateStatisticsPage()
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
//IL_011e: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0186: Unknown result type (might be due to invalid IL or missing references)
//IL_01b9: 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_0217: 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)
REPOPopupPage statisticsPage = MenuAPI.CreateREPOPopupPage("Statistics", (PresetSide)0, false, true, 0f);
REPOElement[] array = (REPOElement[])(object)new REPOElement[9]
{
(REPOElement)MenuAPI.CreateREPOLabel("you can turn them off here", ((Component)statisticsPage).transform, new Vector2(70f, 270f)),
(REPOElement)MenuAPI.CreateREPOLabel($"{SaveDataManager.SaveCumulativeHaul.Value}k", ((Component)statisticsPage).transform, new Vector2(260f, 270f)),
(REPOElement)MenuAPI.CreateREPOLabel($"{SaveDataManager.NeededCumulativeHaulForNextSkillPoint()}k", ((Component)statisticsPage).transform, new Vector2(260f, 240f)),
(REPOElement)MenuAPI.CreateREPOLabel($"{SaveDataManager.SkillPointsFromCumulativeHaul()}", ((Component)statisticsPage).transform, new Vector2(260f, 210f)),
(REPOElement)(_availableSkillPoints = MenuAPI.CreateREPOLabel($"{SaveDataManager.AvailableSkillPoints()}", ((Component)statisticsPage).transform, new Vector2(260f, 180f))),
(REPOElement)MenuAPI.CreateREPOLabel($"{StatsManager.instance.GetRunStatTotalHaul()}k", ((Component)statisticsPage).transform, new Vector2(260f, 150f)),
(REPOElement)MenuAPI.CreateREPOLabel("Note: SP = Skill Points", ((Component)statisticsPage).transform, new Vector2(70f, 60f)),
(REPOElement)MenuAPI.CreateREPOButton("made by JcDesigns credits to IsThatTheRealNick for the code", (Action)delegate
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
MenuAPI.OpenPopup("it will put it back at max", Color.red, "Are you sure that you want to reset your progress? This cannot be undone!", (Action)delegate
{
SaveDataManager.ResetProgress();
statisticsPage.ClosePage(true);
}, (Action)null);
}, ((Component)statisticsPage).transform, new Vector2(190f, 30f)),
(REPOElement)MenuAPI.CreateREPOButton("Close", (Action)delegate
{
statisticsPage.ClosePage(true);
}, ((Component)statisticsPage).transform, new Vector2(60f, 30f))
};
REPOElement[] array2 = array;
foreach (REPOElement val in array2)
{
statisticsPage.AddElement(val.rectTransform, Vector2.op_Implicit(((Transform)val.rectTransform).localPosition));
}
statisticsPage.OpenPage(false);
}
private static void CreateSkillsPage()
{
int num = SaveDataManager.AvailableSkillPoints();
REPOPopupPage val = MenuAPI.CreateREPOPopupPage("JcDesigns Mods", (PresetSide)1, false, false, 0f);
}
}
}