using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using TMPro;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using Zorro.Core;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.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 PeakLevelSelect
{
[BepInPlugin("PeakLevelSelect", "PeakLevelSelect", "1.0.4")]
public class PeakLevelSelectPlugin : BaseUnityPlugin
{
internal static ManualLogSource logger;
public static ConfigEntry<int> SelectedLevel { get; set; }
public static ConfigEntry<int> SelectedAscent { get; set; }
private void Awake()
{
logger = ((BaseUnityPlugin)this).Logger;
SelectedLevel = ((BaseUnityPlugin)this).Config.Bind<int>("General", "SelectedLevel", -2, "-2 = Random,-1 = Daily,0-14=Level_Num");
SelectedAscent = ((BaseUnityPlugin)this).Config.Bind<int>("General", "SelectedAscent", -2, "-2 = Default,-1-7 = AscentNum");
Harmony.CreateAndPatchAll(typeof(GUIManagerPatch), (string)null);
}
}
[HarmonyWrapSafe]
public static class GUIManagerPatch
{
private static int todayLevelIndex;
private static TMP_FontAsset font;
private static Image image;
public static TextMeshProUGUI dropDownText;
public static GameObject dropDown;
private static TextMeshProUGUI To1;
private static Image dropdownImage;
private static readonly Dictionary<char, string> BiomeCharToName = new Dictionary<char, string>
{
{ 'S', "Shore" },
{ 'T', "Tropics" },
{ 'A', "Alpine" },
{ 'V', "Volcano" },
{ 'P', "Peak" },
{ 'M', "Mesa" },
{ 'R', "Roots" }
};
private static Dictionary<string, List<string>> langTable { get; set; }
public static List<GameObject> buttons { get; set; }
[HarmonyPatch(typeof(BoardingPass), "UpdateAscent")]
[HarmonyPostfix]
public static void OnEnable()
{
bool isCustomRun = RunSettings.IsCustomRun;
dropDown.gameObject.SetActive(!isCustomRun);
foreach (GameObject button in buttons)
{
button.gameObject.SetActive(!isCustomRun);
}
if (isCustomRun)
{
int level = GetLevel();
string text = string.Join(",", from x in SingletonAsset<MapBaker>.Instance.selectedBiomes[level].biomeTypes
where (int)x != 0 && (int)x != 3
select LocalizedText.GetText(((object)(BiomeType)(ref x)).ToString(), true));
TMP_Text ascentDesc = GUIManager.instance.boardingPass.ascentDesc;
ascentDesc.text = ascentDesc.text + "\r\n\r\n" + GetText("Level", level) + "(" + text + ")";
}
}
[HarmonyPatch(typeof(BoardingPass), "UpdateAscent")]
[HarmonyPostfix]
public static void UpdateAscent(BoardingPass __instance)
{
PeakLevelSelectPlugin.SelectedAscent.Value = __instance.ascentIndex;
}
[HarmonyPatch(typeof(MapBaker), "GetLevel")]
[HarmonyPrefix]
public static void GetLevel(ref int levelIndex)
{
levelIndex = GetLevel();
}
public static int GetLevel()
{
if (PeakLevelSelectPlugin.SelectedLevel.Value == -2)
{
return Random.Range(0, SingletonAsset<MapBaker>.Instance.selectedBiomes.Count);
}
if (PeakLevelSelectPlugin.SelectedLevel.Value == -1)
{
return todayLevelIndex;
}
if (PeakLevelSelectPlugin.SelectedLevel.Value < SingletonAsset<MapBaker>.Instance.selectedBiomes.Count)
{
return PeakLevelSelectPlugin.SelectedLevel.Value;
}
throw new NotImplementedException();
}
[HarmonyPatch(typeof(GUIManager), "Start")]
[HarmonyPostfix]
public static void Start()
{
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_0229: 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_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_032e: Unknown result type (might be due to invalid IL or missing references)
//IL_033d: Unknown result type (might be due to invalid IL or missing references)
langTable = new Dictionary<string, List<string>>();
langTable.Add("Random", MakeList(((Language)0, "Random"), ((Language)9, "随机地图")));
langTable.Add("Daily", MakeList(((Language)0, "Daily"), ((Language)9, "当天地图")));
langTable.Add("Level", MakeList(((Language)0, "Level_{0}"), ((Language)9, "轮换{0}")));
langTable.Add("Today", MakeList(((Language)0, "Today"), ((Language)9, "今日地图")));
NextLevelService service = GameHandler.GetService<NextLevelService>();
if (service != null && service.Data.IsSome)
{
int num = service.Data.Value.CurrentLevelIndex + NextLevelService.debugLevelIndexOffset;
num %= SingletonAsset<MapBaker>.Instance.ScenePaths.Length;
todayLevelIndex = num;
}
else
{
todayLevelIndex = -3;
}
buttons = new List<GameObject>();
GameObject val = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass");
BoardingPass component = val.GetComponent<BoardingPass>();
GameObject val2 = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass/BoardingPass/Panel/Ascent/IncrementButton");
if ((Object)(object)val2 == (Object)null)
{
Debug.LogError((object)"find IncrementButton fail!");
return;
}
Transform transform = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass/BoardingPass/Panel").transform;
if ((Object)(object)transform == (Object)null)
{
Debug.LogError((object)"fail Panel fail!");
return;
}
To1 = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass/BoardingPass/Panel/To (1)").GetComponent<TextMeshProUGUI>();
GameObject val3 = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass/BoardingPass/Panel/BOARDING PASS");
font = ((TMP_Text)val3.GetComponent<TextMeshProUGUI>()).font;
GameObject val4 = CreateButton(val2, transform, GetText("Random"), new Vector2(140f, 75f), delegate
{
RandomInvoke();
});
buttons.Add(val4);
float x = val4.GetComponent<RectTransform>().sizeDelta.x;
string text = GetText("Daily");
if (todayLevelIndex != -3)
{
text += $"({todayLevelIndex})";
}
GameObject item = CreateButton(val2, transform, text, new Vector2(140f + x + 20f, 75f), delegate
{
DailyInvoke();
});
buttons.Add(item);
GameObject val5 = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass/BoardingPass/Panel/Ascent/Reward");
if ((Object)(object)val5 != (Object)null)
{
RectTransform component2 = val5.GetComponent<RectTransform>();
component2.anchoredPosition = new Vector2(component2.anchoredPosition.x, -10f);
}
PeakLevelSelectPlugin.logger.LogInfo((object)"Create Button Sussecs!");
CreateDropdown(transform);
if (PeakLevelSelectPlugin.SelectedAscent.Value != -2)
{
component.ascentIndex = PeakLevelSelectPlugin.SelectedAscent.Value;
component.UpdateAscent();
}
}
private static void RandomInvoke()
{
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
((TMP_Text)dropDownText).text = GetText("Random");
PeakLevelSelectPlugin.SelectedLevel.Value = -2;
((Graphic)buttons[0].GetComponent<Image>()).color = new Color(0.9804f, 0.8075f, 0.1922f, 1f);
((TMP_Text)To1).text = "???";
}
private static void DailyInvoke()
{
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
((TMP_Text)dropDownText).text = GetText("Daily");
MapBaker instance = SingletonAsset<MapBaker>.Instance;
if (todayLevelIndex != -3 && todayLevelIndex < instance.selectedBiomes.Count)
{
((TMP_Text)To1).text = todayLevelIndex.ToString();
string text = string.Join(",", from x in instance.selectedBiomes[todayLevelIndex].biomeTypes
where (int)x != 0 && (int)x != 3
select LocalizedText.GetText(((object)(BiomeType)(ref x)).ToString(), true));
TextMeshProUGUI obj = dropDownText;
((TMP_Text)obj).text = ((TMP_Text)obj).text + "(" + text + ")";
string biomeID = instance.GetBiomeID(todayLevelIndex);
string text2 = ParseBiomeID(biomeID);
if (!string.IsNullOrEmpty(text2))
{
TextMeshProUGUI obj2 = dropDownText;
((TMP_Text)obj2).text = ((TMP_Text)obj2).text + "(" + text2 + ")";
}
}
else
{
((TMP_Text)To1).text = "0";
}
PeakLevelSelectPlugin.SelectedLevel.Value = -1;
((Graphic)buttons[1].GetComponent<Image>()).color = new Color(0.9804f, 0.8075f, 0.1922f, 1f);
}
private static string ParseBiomeID(string biomeID)
{
if (string.IsNullOrEmpty(biomeID))
{
return "";
}
List<string> list = new List<string>();
foreach (char c in biomeID)
{
if (c != 'S' && c != 'V' && BiomeCharToName.TryGetValue(c, out string value))
{
list.Add(LocalizedText.GetText(value, true));
}
}
return string.Join(",", list);
}
private static List<string> MakeList(params (Language lang, string text)[] items)
{
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: 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_0034: Expected I4, but got Unknown
List<string> list = new List<string>(new string[14]);
for (int i = 0; i < items.Length; i++)
{
var (val, value) = items[i];
list[(int)val] = value;
}
for (int j = 0; j < 14; j++)
{
if (string.IsNullOrEmpty(list[j]))
{
list[j] = list[0];
}
}
return list;
}
private static void CreateDropdown(Transform panel)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Expected O, but got Unknown
//IL_0039: 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)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: 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_00cf: 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_012f: Expected O, but got Unknown
//IL_0166: Unknown result type (might be due to invalid IL or missing references)
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: 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)
//IL_01eb: Expected O, but got Unknown
//IL_021b: Unknown result type (might be due to invalid IL or missing references)
//IL_0262: Unknown result type (might be due to invalid IL or missing references)
//IL_0279: Unknown result type (might be due to invalid IL or missing references)
//IL_0290: Unknown result type (might be due to invalid IL or missing references)
//IL_02a7: Unknown result type (might be due to invalid IL or missing references)
//IL_02be: Unknown result type (might be due to invalid IL or missing references)
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02d5: Expected O, but got Unknown
//IL_0312: Unknown result type (might be due to invalid IL or missing references)
//IL_0329: Unknown result type (might be due to invalid IL or missing references)
//IL_0340: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: Unknown result type (might be due to invalid IL or missing references)
//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
//IL_03c6: Expected O, but got Unknown
//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
//IL_0400: Unknown result type (might be due to invalid IL or missing references)
//IL_0416: Unknown result type (might be due to invalid IL or missing references)
//IL_042f: Unknown result type (might be due to invalid IL or missing references)
//IL_0436: Expected O, but got Unknown
//IL_0460: Unknown result type (might be due to invalid IL or missing references)
//IL_0477: Unknown result type (might be due to invalid IL or missing references)
//IL_048e: Unknown result type (might be due to invalid IL or missing references)
//IL_049b: Unknown result type (might be due to invalid IL or missing references)
//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
//IL_04c2: Unknown result type (might be due to invalid IL or missing references)
//IL_04c9: Expected O, but got Unknown
//IL_04fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0513: Unknown result type (might be due to invalid IL or missing references)
//IL_052a: Unknown result type (might be due to invalid IL or missing references)
//IL_0541: Unknown result type (might be due to invalid IL or missing references)
//IL_0551: Unknown result type (might be due to invalid IL or missing references)
//IL_0558: Expected O, but got Unknown
//IL_0587: Unknown result type (might be due to invalid IL or missing references)
//IL_059d: Unknown result type (might be due to invalid IL or missing references)
//IL_05aa: Unknown result type (might be due to invalid IL or missing references)
//IL_05b7: Unknown result type (might be due to invalid IL or missing references)
//IL_05c4: Unknown result type (might be due to invalid IL or missing references)
//IL_05de: Unknown result type (might be due to invalid IL or missing references)
//IL_05e5: Expected O, but got Unknown
//IL_0605: Unknown result type (might be due to invalid IL or missing references)
//IL_0625: Unknown result type (might be due to invalid IL or missing references)
//IL_063c: Unknown result type (might be due to invalid IL or missing references)
//IL_0653: Unknown result type (might be due to invalid IL or missing references)
//IL_066a: Unknown result type (might be due to invalid IL or missing references)
//IL_0681: Unknown result type (might be due to invalid IL or missing references)
//IL_069a: Unknown result type (might be due to invalid IL or missing references)
//IL_06a1: Expected O, but got Unknown
//IL_06db: Unknown result type (might be due to invalid IL or missing references)
//IL_0708: Unknown result type (might be due to invalid IL or missing references)
//IL_071f: Unknown result type (might be due to invalid IL or missing references)
//IL_0736: Unknown result type (might be due to invalid IL or missing references)
//IL_074d: Unknown result type (might be due to invalid IL or missing references)
//IL_08fa: Unknown result type (might be due to invalid IL or missing references)
//IL_0904: Unknown result type (might be due to invalid IL or missing references)
//IL_0942: Unknown result type (might be due to invalid IL or missing references)
//IL_09c9: Unknown result type (might be due to invalid IL or missing references)
//IL_0899: Unknown result type (might be due to invalid IL or missing references)
//IL_089e: Unknown result type (might be due to invalid IL or missing references)
//IL_08a0: Unknown result type (might be due to invalid IL or missing references)
//IL_08c5: Unknown result type (might be due to invalid IL or missing references)
//IL_08cf: Expected O, but got Unknown
//IL_08b2: Unknown result type (might be due to invalid IL or missing references)
//IL_0aac: Unknown result type (might be due to invalid IL or missing references)
try
{
dropDown = new GameObject("CustomDropdown");
dropDown.transform.SetParent(panel, false);
RectTransform val = dropDown.AddComponent<RectTransform>();
val.anchorMin = new Vector2(0f, 0f);
val.anchorMax = new Vector2(0f, 0f);
val.pivot = new Vector2(0f, 0f);
val.anchoredPosition = new Vector2(520f, 75f);
val.sizeDelta = new Vector2(0f, 65f);
Image val2 = dropDown.AddComponent<Image>();
val2.sprite = image.sprite;
((Graphic)val2).color = ((Graphic)image).color;
val2.type = image.type;
val2.pixelsPerUnitMultiplier = image.pixelsPerUnitMultiplier;
((Graphic)val2).material = ((Graphic)image).material;
val2.overrideSprite = image.overrideSprite;
((Graphic)val2).raycastTarget = ((Graphic)image).raycastTarget;
dropdownImage = val2;
GameObject val3 = new GameObject("Label");
val3.transform.SetParent(dropDown.transform, false);
TextMeshProUGUI val4 = val3.AddComponent<TextMeshProUGUI>();
((TMP_Text)val4).fontSize = 14f;
((TMP_Text)val4).font = font;
((Graphic)val4).color = Color.white;
((TMP_Text)val4).text = "";
((TMP_Text)val4).alignment = (TextAlignmentOptions)513;
dropDownText = val4;
RectTransform component = ((Component)val4).GetComponent<RectTransform>();
component.anchorMin = Vector2.zero;
component.anchorMax = Vector2.one;
component.offsetMin = new Vector2(10f, 6f);
component.offsetMax = new Vector2(-30f, -7f);
GameObject val5 = new GameObject("Arrow");
val5.transform.SetParent(dropDown.transform, false);
TextMeshProUGUI val6 = val5.AddComponent<TextMeshProUGUI>();
((TMP_Text)val6).font = font;
((Graphic)val6).color = Color.white;
((TMP_Text)val6).text = "▼";
((TMP_Text)val6).fontSize = 24f;
((TMP_Text)val6).alignment = (TextAlignmentOptions)514;
RectTransform component2 = ((Component)val6).GetComponent<RectTransform>();
component2.anchorMin = new Vector2(1f, 0.5f);
component2.anchorMax = new Vector2(1f, 0.5f);
component2.pivot = new Vector2(1f, 0.5f);
component2.sizeDelta = new Vector2(20f, 20f);
component2.anchoredPosition = new Vector2(-20f, 0f);
GameObject val7 = new GameObject("Template");
val7.transform.SetParent(dropDown.transform, false);
val7.SetActive(false);
MapBaker instance = SingletonAsset<MapBaker>.Instance;
RectTransform val8 = val7.AddComponent<RectTransform>();
val8.anchorMin = new Vector2(0f, 0f);
val8.anchorMax = new Vector2(1f, 0f);
val8.pivot = new Vector2(0.5f, 1f);
PeakLevelSelectPlugin.logger.LogInfo((object)$"ScenePaths: {instance.ScenePaths.Length}");
val8.sizeDelta = new Vector2(0f, (float)(instance.ScenePaths.Length * 25));
Image val9 = val7.AddComponent<Image>();
((Graphic)val9).color = new Color(0.2f, 0.2f, 0.2f);
val7.AddComponent<RectMask2D>();
GameObject val10 = new GameObject("Viewport");
val10.transform.SetParent(val7.transform, false);
RectTransform val11 = val10.AddComponent<RectTransform>();
val11.anchorMin = Vector2.zero;
val11.anchorMax = Vector2.one;
val11.sizeDelta = Vector2.zero;
Image val12 = val10.AddComponent<Image>();
((Graphic)val12).color = Color.clear;
((Graphic)val12).raycastTarget = false;
GameObject val13 = new GameObject("Content");
val13.transform.SetParent(val10.transform, false);
RectTransform val14 = val13.AddComponent<RectTransform>();
val14.anchorMin = new Vector2(0f, 1f);
val14.anchorMax = new Vector2(1f, 1f);
val14.pivot = new Vector2(0.5f, 1f);
val14.anchoredPosition = Vector2.zero;
val14.sizeDelta = new Vector2(0f, 0f);
GameObject val15 = new GameObject("Item");
val15.transform.SetParent(val13.transform, false);
Toggle val16 = val15.AddComponent<Toggle>();
RectTransform component3 = val15.GetComponent<RectTransform>();
component3.anchorMin = new Vector2(0f, 1f);
component3.anchorMax = new Vector2(1f, 1f);
component3.pivot = new Vector2(0.5f, 1f);
component3.sizeDelta = new Vector2(0f, 25f);
GameObject val17 = new GameObject("Item Background");
val17.transform.SetParent(val15.transform, false);
Image val18 = val17.AddComponent<Image>();
((Graphic)val18).color = new Color(0.3f, 0.3f, 0.3f);
RectTransform component4 = val17.GetComponent<RectTransform>();
component4.anchorMin = Vector2.zero;
component4.anchorMax = Vector2.one;
component4.offsetMin = Vector2.zero;
component4.offsetMax = Vector2.zero;
((Selectable)val16).targetGraphic = (Graphic)(object)val18;
GameObject val19 = new GameObject("Item Checkmark");
val19.transform.SetParent(val17.transform, false);
Image val20 = val19.AddComponent<Image>();
((Graphic)val20).color = Color.white;
RectTransform component5 = val19.GetComponent<RectTransform>();
component5.anchorMin = new Vector2(0f, 0.5f);
component5.anchorMax = new Vector2(0f, 0.5f);
component5.pivot = new Vector2(0f, 0.5f);
component5.sizeDelta = new Vector2(20f, 20f);
component5.anchoredPosition = new Vector2(10f, 0f);
val16.graphic = (Graphic)(object)val20;
GameObject val21 = new GameObject("Item Label");
val21.transform.SetParent(val15.transform, false);
TextMeshProUGUI val22 = val21.AddComponent<TextMeshProUGUI>();
((TMP_Text)val22).font = font;
((TMP_Text)val22).fontSize = 14f;
((Graphic)val22).color = Color.white;
((TMP_Text)val22).text = "Option";
RectTransform component6 = ((Component)val22).GetComponent<RectTransform>();
component6.anchorMin = new Vector2(0f, 0f);
component6.anchorMax = new Vector2(1f, 1f);
component6.offsetMin = new Vector2(30f, 0f);
component6.offsetMax = new Vector2(-10f, 0f);
TMP_Dropdown val23 = dropDown.AddComponent<TMP_Dropdown>();
((Selectable)val23).targetGraphic = (Graphic)(object)val2;
val23.captionText = (TMP_Text)(object)val4;
val23.template = val8;
val23.itemText = (TMP_Text)(object)val22;
val23.itemImage = val20;
val23.options.Clear();
float num = 0f;
GameObject val24 = GameObject.Find("GAME/GUIManager/Canvas_BoardingPass");
val24.SetActive(true);
val24.SetActive(false);
for (int i = 0; i < instance.selectedBiomes.Count; i++)
{
string text = GetText("Level", i) + "(" + string.Join(",", from x in instance.selectedBiomes[i].biomeTypes
where (int)x != 0 && (int)x != 3
select LocalizedText.GetText(((object)(BiomeType)(ref x)).ToString(), true)) + ")";
if (i == todayLevelIndex)
{
text = "(" + GetText("Today") + ")" + text;
}
Vector2 preferredValues = ((TMP_Text)dropDownText).GetPreferredValues(text);
if (preferredValues.x > num)
{
num = preferredValues.x;
}
val23.options.Add(new OptionData(text));
}
val.sizeDelta = new Vector2(num + 80f, val.sizeDelta.y);
float num2 = 25f;
float num3 = 8f;
float num4 = Mathf.Min((float)instance.selectedBiomes.Count * num2, num3 * num2);
val8.sizeDelta = new Vector2(0f, num4);
ScrollRect val25 = val7.AddComponent<ScrollRect>();
val25.content = val14;
val25.viewport = val11;
val25.horizontal = false;
val25.vertical = true;
val25.verticalScrollbar = null;
val25.verticalScrollbarVisibility = (ScrollbarVisibility)0;
val25.inertia = true;
if ((Object)(object)val10.GetComponent<RectMask2D>() == (Object)null)
{
val10.AddComponent<RectMask2D>();
}
val14.sizeDelta = new Vector2(0f, (float)instance.selectedBiomes.Count * num2);
((UnityEvent<int>)(object)val23.onValueChanged).AddListener((UnityAction<int>)delegate(int value)
{
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
((TMP_Text)To1).text = value.ToString();
PeakLevelSelectPlugin.SelectedLevel.Value = value;
foreach (GameObject button in buttons)
{
((Graphic)button.GetComponent<Image>()).color = new Color(0.1922f, 0.2941f, 0.9804f, 1f);
}
((Graphic)dropdownImage).color = new Color(0.9804f, 0.8075f, 0.1922f, 1f);
});
if (PeakLevelSelectPlugin.SelectedLevel.Value == -1)
{
DailyInvoke();
}
else if (PeakLevelSelectPlugin.SelectedLevel.Value == -2)
{
RandomInvoke();
}
else if (PeakLevelSelectPlugin.SelectedLevel.Value < val23.options.Count)
{
val23.value = PeakLevelSelectPlugin.SelectedLevel.Value;
((TMP_Text)To1).text = val23.value.ToString();
val23.RefreshShownValue();
((Graphic)dropdownImage).color = new Color(0.9804f, 0.8075f, 0.1922f, 1f);
}
}
catch (Exception ex)
{
PeakLevelSelectPlugin.logger.LogError((object)("CreateDropdown Exception: " + ex));
}
}
public static string GetText(string key, params object[] args)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Expected I4, but got Unknown
if (!langTable.TryGetValue(key, out List<string> value))
{
return (args.Length != 0) ? string.Format(key, args) : key;
}
string text = value[(int)LocalizedText.CURRENT_LANGUAGE];
return (args.Length != 0) ? string.Format(text, args) : text;
}
private static GameObject CreateButton(GameObject referenceButton, Transform parent, string buttonText, Vector2 position, UnityAction<GameObject> onClick)
{
//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: 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)
//IL_0125: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_016a: Unknown result type (might be due to invalid IL or missing references)
//IL_0174: Expected O, but got Unknown
UnityAction<GameObject> onClick2 = onClick;
if (!Object.op_Implicit((Object)(object)referenceButton))
{
Debug.LogError((object)"ReferenceButton is null!");
return null;
}
GameObject button = Object.Instantiate<GameObject>(referenceButton);
((Object)button).name = "Button_" + buttonText;
button.transform.SetParent(parent, false);
Transform obj = button.transform.Find("Image");
Object.Destroy((Object)(object)((obj != null) ? ((Component)obj).gameObject : null));
Object.Destroy((Object)(object)((Component)button.transform).GetComponent<Animator>());
if ((Object)(object)image == (Object)null)
{
image = button.GetComponent<Image>();
}
RectTransform component = button.GetComponent<RectTransform>();
component.sizeDelta = new Vector2(170f, component.sizeDelta.y);
component.anchorMin = new Vector2(0f, 0f);
component.anchorMax = new Vector2(0f, 0f);
component.pivot = new Vector2(0f, 0f);
component.anchoredPosition = position;
CreateButtonText(button, buttonText);
Button component2 = button.GetComponent<Button>();
((UnityEventBase)component2.onClick).RemoveAllListeners();
((UnityEvent)component2.onClick).AddListener((UnityAction)delegate
{
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Unknown result type (might be due to invalid IL or missing references)
foreach (GameObject button2 in buttons)
{
((Graphic)dropdownImage).color = new Color(0.1922f, 0.2941f, 0.9804f, 1f);
if ((Object)(object)button2 == (Object)(object)button)
{
((Graphic)button2.GetComponent<Image>()).color = new Color(0.9804f, 0.8075f, 0.1922f, 1f);
}
else
{
((Graphic)button2.GetComponent<Image>()).color = new Color(0.1922f, 0.2941f, 0.9804f, 1f);
}
}
onClick2.Invoke(button);
});
return button;
}
private static void CreateButtonText(GameObject button, string text)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
//IL_0027: 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_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: 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)
GameObject val = new GameObject("Text (TMP)");
val.transform.SetParent(button.transform, false);
RectTransform val2 = val.AddComponent<RectTransform>();
val2.anchorMin = Vector2.zero;
val2.anchorMax = Vector2.one;
val2.offsetMin = Vector2.zero;
val2.offsetMax = Vector2.zero;
TextMeshProUGUI val3 = val.AddComponent<TextMeshProUGUI>();
((TMP_Text)val3).text = text;
((TMP_Text)val3).font = font;
((Graphic)val3).color = Color.white;
((TMP_Text)val3).fontStyle = (FontStyles)0;
((TMP_Text)val3).alignment = (TextAlignmentOptions)514;
((TMP_Text)val3).autoSizeTextContainer = true;
((TMP_Text)val3).fontSize = 24f;
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}