using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
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 Microsoft.CodeAnalysis;
using Mirror;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;
using YAPYAP;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("com.Omniscye.EmpressSpawnBrowser")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("com.Omniscye.EmpressSpawnBrowser")]
[assembly: AssemblyTitle("EmpressSpawnBrowser")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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 BepInEx
{
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
[Conditional("CodeGeneration")]
internal sealed class BepInAutoPluginAttribute : Attribute
{
public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
{
}
}
}
namespace BepInEx.Preloader.Core.Patching
{
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
[Conditional("CodeGeneration")]
internal sealed class PatcherAutoPluginAttribute : Attribute
{
public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
{
}
}
}
namespace Empress.SpawnBrowser.YapYap
{
[BepInPlugin("com.empress.spawnbrowseryapyap", "EMpressSpawnBrowserYapYap", "1.0.2")]
public class EMpressSpawnBrowserYapYap : BaseUnityPlugin
{
[CompilerGenerated]
private sealed class <InitializeCanvasDelayed>d__25 : IEnumerator<object>, IEnumerator, IDisposable
{
private int <>1__state;
private object <>2__current;
public EMpressSpawnBrowserYapYap <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <InitializeCanvasDelayed>d__25(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Expected O, but got Unknown
int num = <>1__state;
EMpressSpawnBrowserYapYap eMpressSpawnBrowserYapYap = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
<>2__current = (object)new WaitForSeconds(0.5f);
<>1__state = 1;
return true;
case 1:
<>1__state = -1;
eMpressSpawnBrowserYapYap._cachedFont = ((IEnumerable<TMP_FontAsset>)Resources.FindObjectsOfTypeAll<TMP_FontAsset>()).FirstOrDefault((Func<TMP_FontAsset, bool>)((TMP_FontAsset f) => ((Object)f).name.Contains("Arial") || ((Object)f).name.Contains("Liberation")));
if ((Object)(object)eMpressSpawnBrowserYapYap._cachedFont == (Object)null)
{
eMpressSpawnBrowserYapYap._cachedFont = Resources.FindObjectsOfTypeAll<TMP_FontAsset>().FirstOrDefault();
}
eMpressSpawnBrowserYapYap.BuildCanvas();
return false;
}
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
private static bool _uiVisible;
private int _tabIndex;
private string _searchEnemies = "";
private string _searchValuables = "";
private string _searchItems = "";
private readonly List<string> _enemyNames = new List<string>();
private readonly List<string> _valuableNames = new List<string>();
private readonly List<string> _itemNames = new List<string>();
private readonly Dictionary<string, NetworkIdentity> _enemyByKey = new Dictionary<string, NetworkIdentity>(StringComparer.OrdinalIgnoreCase);
private readonly Dictionary<string, NetworkIdentity> _valuableByKey = new Dictionary<string, NetworkIdentity>(StringComparer.OrdinalIgnoreCase);
private readonly Dictionary<string, NetworkIdentity> _itemByKey = new Dictionary<string, NetworkIdentity>(StringComparer.OrdinalIgnoreCase);
private bool _discovered;
private ConfigEntry<KeyCode> _toggleKey;
private ConfigEntry<float> _scrollSpeed;
private ConfigEntry<float> _uiScale;
private ConfigEntry<Vector2> _uiPosition;
private GameObject _canvasRoot;
private Canvas _canvas;
private GameObject _panelRoot;
private ScrollRect _scrollRect;
private Transform _contentContainer;
private TextMeshProUGUI _titleText;
private TextMeshProUGUI _statusText;
private TextMeshProUGUI _countText;
private Button _refreshButton;
private Button[] _tabButtons = (Button[])(object)new Button[4];
private GameObject _itemRowPrefab;
private TMP_InputField _searchInput;
private TMP_FontAsset _cachedFont;
private Color _bg = new Color(0.02f, 0.02f, 0.02f, 0.95f);
private Color _bg2 = new Color(0.04f, 0.01f, 0.01f, 0.98f);
private Color _fg = new Color(0.9f, 0.9f, 0.9f, 1f);
private Color _mutedCol = new Color(0.6f, 0.6f, 0.65f, 0.8f);
private Color _accentBase = new Color(0.9f, 0f, 0f, 1f);
private Color _accentHover = new Color(1f, 0.3f, 0.3f, 1f);
private Color _accentDisabled = new Color(0.4f, 0.1f, 0.1f, 0.7f);
internal static EMpressSpawnBrowserYapYap Instance { get; private set; }
internal static ManualLogSource Logger => Instance._logger;
private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger;
private void Awake()
{
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
Instance = this;
((Component)this).gameObject.transform.parent = null;
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
_toggleKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Input", "ToggleKey", (KeyCode)277, "Key to toggle the Spawn Browser UI.");
_scrollSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("UI", "ScrollSpeed", 35f, "Mouse wheel scroll sensitivity.");
_uiScale = ((BaseUnityPlugin)this).Config.Bind<float>("UI", "UIScale", 1f, "Scale of the UI panel (0.5 to 2.0).");
_uiPosition = ((BaseUnityPlugin)this).Config.Bind<Vector2>("UI", "UIPosition", new Vector2(0f, 0f), "Custom offset position.");
Logger.LogInfo((object)"EMpressSpawnBrowserYapYap loaded. Press Insert to open/close.");
((MonoBehaviour)this).StartCoroutine(InitializeCanvasDelayed());
}
[IteratorStateMachine(typeof(<InitializeCanvasDelayed>d__25))]
private IEnumerator InitializeCanvasDelayed()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <InitializeCanvasDelayed>d__25(0)
{
<>4__this = this
};
}
private void OnDestroy()
{
if (_uiVisible)
{
HideCanvas();
}
if (Object.op_Implicit((Object)(object)_canvasRoot))
{
Object.Destroy((Object)(object)_canvasRoot);
}
}
private void Update()
{
//IL_0006: 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_00f7: Unknown result type (might be due to invalid IL or missing references)
if (Input.GetKeyDown(_toggleKey.Value))
{
_uiVisible = !_uiVisible;
if (_uiVisible)
{
if (!_discovered)
{
DiscoverPrefabs();
}
ShowCanvas();
TakeCursor();
}
else
{
HideCanvas();
RestoreCursor();
}
}
if (_uiVisible)
{
KeepCursorFree();
if (Input.GetKeyDown((KeyCode)27))
{
_uiVisible = false;
HideCanvas();
RestoreCursor();
}
}
if ((Object)(object)_scrollRect != (Object)null && _scrollRect.scrollSensitivity != _scrollSpeed.Value)
{
_scrollRect.scrollSensitivity = _scrollSpeed.Value;
}
if ((Object)(object)_panelRoot != (Object)null)
{
RectTransform component = _panelRoot.GetComponent<RectTransform>();
((Transform)component).localScale = new Vector3(_uiScale.Value, _uiScale.Value, 1f);
component.anchoredPosition = _uiPosition.Value;
}
}
private void TakeCursor()
{
if ((Object)(object)InputManager.Instance != (Object)null)
{
InputManager.Instance.AddToInputFocusStack((object)this);
}
Cursor.lockState = (CursorLockMode)0;
Cursor.visible = true;
}
private void KeepCursorFree()
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
if ((int)Cursor.lockState != 0)
{
Cursor.lockState = (CursorLockMode)0;
}
if (!Cursor.visible)
{
Cursor.visible = true;
}
}
private void RestoreCursor()
{
if ((Object)(object)InputManager.Instance != (Object)null)
{
InputManager.Instance.RemoveFromInputFocusStack((object)this);
}
}
private void ShowCanvas()
{
if (Object.op_Implicit((Object)(object)_canvasRoot))
{
_canvasRoot.SetActive(true);
}
UpdateTabVisuals();
RefreshCurrentTab();
}
private void HideCanvas()
{
if (Object.op_Implicit((Object)(object)_canvasRoot))
{
_canvasRoot.SetActive(false);
}
}
private void DiscoverPrefabs()
{
_enemyNames.Clear();
_valuableNames.Clear();
_itemNames.Clear();
_enemyByKey.Clear();
_valuableByKey.Clear();
_itemByKey.Clear();
if ((Object)(object)NetworkManager.singleton == (Object)null)
{
Logger.LogWarning((object)"NetworkManager.singleton is null - cannot discover prefabs.");
return;
}
foreach (GameObject spawnPrefab in NetworkManager.singleton.spawnPrefabs)
{
if ((Object)(object)spawnPrefab == (Object)null)
{
continue;
}
NetworkIdentity component = spawnPrefab.GetComponent<NetworkIdentity>();
if ((Object)(object)component == (Object)null)
{
continue;
}
string name = ((Object)spawnPrefab).name;
string key = name.ToLowerInvariant();
if (name.ToLower().Contains("enemy") || name.ToLower().Contains("monster") || name.ToLower().Contains("creature"))
{
if (!_enemyByKey.ContainsKey(key))
{
_enemyByKey[key] = component;
_enemyNames.Add(name);
}
}
else if (name.ToLower().Contains("valuable") || name.ToLower().Contains("treasure") || name.ToLower().Contains("loot"))
{
if (!_valuableByKey.ContainsKey(key))
{
_valuableByKey[key] = component;
_valuableNames.Add(name);
}
}
else if (!_itemByKey.ContainsKey(key))
{
_itemByKey[key] = component;
_itemNames.Add(name);
}
}
_enemyNames.Sort();
_valuableNames.Sort();
_itemNames.Sort();
_discovered = true;
Logger.LogInfo((object)$"Discovered {_enemyNames.Count} enemies, {_valuableNames.Count} valuables, {_itemNames.Count} items.");
}
private void SpawnObject(string displayName)
{
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: 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_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: 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_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
//IL_00d7: 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_00df: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: 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_010a: Unknown result type (might be due to invalid IL or missing references)
if (!NetworkClient.active)
{
Logger.LogWarning((object)"Not connected to a server - cannot spawn.");
return;
}
string key = displayName.ToLowerInvariant();
NetworkIdentity value = null;
if (_tabIndex == 0)
{
_enemyByKey.TryGetValue(key, out value);
}
else if (_tabIndex == 1)
{
_valuableByKey.TryGetValue(key, out value);
}
else
{
_itemByKey.TryGetValue(key, out value);
}
if ((Object)(object)value == (Object)null)
{
Logger.LogWarning((object)("Could not find prefab for " + displayName));
return;
}
Vector3 val = Vector3.zero;
Quaternion val2 = Quaternion.identity;
if ((Object)(object)Pawn.LocalInstance != (Object)null)
{
Transform transform = ((Component)Pawn.LocalInstance).transform;
val = transform.position + transform.forward * 2f + Vector3.up * 1f;
val2 = transform.rotation;
}
if ((Object)(object)GameManager.Instance != (Object)null)
{
GameManager.Instance.CmdRequestSpawnNetworkPrefab(value.assetId, val, val2);
Logger.LogInfo((object)$"Spawned {displayName} at {val}");
}
}
private void SwitchTab(int index)
{
_tabIndex = index;
UpdateTabVisuals();
_searchInput.text = GetCurrentSearch();
RefreshCurrentTab();
}
private void UpdateTabVisuals()
{
//IL_003d: 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)
for (int i = 0; i < 3; i++)
{
if ((Object)(object)_tabButtons[i] != (Object)null)
{
Image component = ((Component)_tabButtons[i]).GetComponent<Image>();
if (Object.op_Implicit((Object)(object)component))
{
((Graphic)component).color = ((i == _tabIndex) ? _accentBase : _bg2);
}
}
}
}
private string GetCurrentSearch()
{
if (_tabIndex != 0)
{
if (_tabIndex != 1)
{
return _searchItems;
}
return _searchValuables;
}
return _searchEnemies;
}
private void OnSearchChanged(string val)
{
if (_tabIndex == 0)
{
_searchEnemies = val;
}
else if (_tabIndex == 1)
{
_searchValuables = val;
}
else
{
_searchItems = val;
}
RefreshCurrentTab();
}
private void RefreshCurrentTab()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
//IL_0101: Expected O, but got Unknown
foreach (Transform item in _contentContainer)
{
Object.Destroy((Object)(object)((Component)item).gameObject);
}
List<string> source = ((_tabIndex == 0) ? _enemyNames : ((_tabIndex == 1) ? _valuableNames : _itemNames));
string search = GetCurrentSearch();
List<string> list = source.Where((string s) => string.IsNullOrEmpty(search) || s.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0).ToList();
foreach (string item2 in list)
{
GameObject obj = Object.Instantiate<GameObject>(_itemRowPrefab, _contentContainer);
obj.SetActive(true);
((TMP_Text)obj.GetComponentInChildren<TextMeshProUGUI>()).text = item2;
string capturedName = item2;
((UnityEvent)obj.GetComponentInChildren<Button>().onClick).AddListener((UnityAction)delegate
{
SpawnObject(capturedName);
});
}
((TMP_Text)_statusText).text = ((list.Count > 0) ? "" : "No items found.");
((TMP_Text)_countText).text = $"{list.Count} items";
}
private void BuildCanvas()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Expected O, but got Unknown
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
//IL_0117: 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_0141: Unknown result type (might be due to invalid IL or missing references)
//IL_0151: Unknown result type (might be due to invalid IL or missing references)
//IL_0167: Unknown result type (might be due to invalid IL or missing references)
//IL_0191: 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_01d7: 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_0201: Unknown result type (might be due to invalid IL or missing references)
//IL_0216: Unknown result type (might be due to invalid IL or missing references)
//IL_022a: Unknown result type (might be due to invalid IL or missing references)
//IL_0278: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
//IL_02ea: Expected O, but got Unknown
//IL_0337: Unknown result type (might be due to invalid IL or missing references)
//IL_0341: Expected O, but got Unknown
//IL_0383: Unknown result type (might be due to invalid IL or missing references)
//IL_0398: Unknown result type (might be due to invalid IL or missing references)
//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
//IL_03d6: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: 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_00c3: Expected O, but got Unknown
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_0493: Unknown result type (might be due to invalid IL or missing references)
//IL_049d: Expected O, but got Unknown
//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
//IL_0505: Unknown result type (might be due to invalid IL or missing references)
//IL_051a: Unknown result type (might be due to invalid IL or missing references)
//IL_052f: Unknown result type (might be due to invalid IL or missing references)
//IL_0543: Unknown result type (might be due to invalid IL or missing references)
//IL_0554: Unknown result type (might be due to invalid IL or missing references)
//IL_0581: Unknown result type (might be due to invalid IL or missing references)
//IL_05a1: Unknown result type (might be due to invalid IL or missing references)
//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
//IL_05d5: Unknown result type (might be due to invalid IL or missing references)
//IL_0635: Unknown result type (might be due to invalid IL or missing references)
//IL_0640: Unknown result type (might be due to invalid IL or missing references)
//IL_0655: Unknown result type (might be due to invalid IL or missing references)
//IL_0669: Unknown result type (might be due to invalid IL or missing references)
//IL_0692: Unknown result type (might be due to invalid IL or missing references)
//IL_069e: Unknown result type (might be due to invalid IL or missing references)
//IL_06aa: Unknown result type (might be due to invalid IL or missing references)
//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
//IL_0724: Unknown result type (might be due to invalid IL or missing references)
//IL_073a: Unknown result type (might be due to invalid IL or missing references)
//IL_0750: Unknown result type (might be due to invalid IL or missing references)
//IL_0766: Unknown result type (might be due to invalid IL or missing references)
//IL_080f: Unknown result type (might be due to invalid IL or missing references)
//IL_0824: Unknown result type (might be due to invalid IL or missing references)
//IL_0839: Unknown result type (might be due to invalid IL or missing references)
//IL_084e: Unknown result type (might be due to invalid IL or missing references)
//IL_0862: Unknown result type (might be due to invalid IL or missing references)
//IL_0884: Unknown result type (might be due to invalid IL or missing references)
//IL_08b9: Unknown result type (might be due to invalid IL or missing references)
//IL_08ce: Unknown result type (might be due to invalid IL or missing references)
//IL_08d8: Unknown result type (might be due to invalid IL or missing references)
//IL_08fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0930: Unknown result type (might be due to invalid IL or missing references)
//IL_0945: Unknown result type (might be due to invalid IL or missing references)
//IL_094f: Unknown result type (might be due to invalid IL or missing references)
_canvasRoot = new GameObject("SpawnBrowserCanvas_EMPRESS");
Object.DontDestroyOnLoad((Object)(object)_canvasRoot);
_canvasRoot.layer = LayerMask.NameToLayer("UI");
_canvas = _canvasRoot.AddComponent<Canvas>();
_canvas.renderMode = (RenderMode)0;
_canvas.sortingOrder = 32767;
_canvas.overrideSorting = true;
CanvasScaler obj = _canvasRoot.AddComponent<CanvasScaler>();
obj.uiScaleMode = (ScaleMode)1;
obj.referenceResolution = new Vector2(1920f, 1080f);
obj.matchWidthOrHeight = 1f;
_canvasRoot.AddComponent<GraphicRaycaster>();
if ((Object)(object)EventSystem.current == (Object)null)
{
GameObject val = new GameObject("EventSystem_EMPRESS");
Object.DontDestroyOnLoad((Object)val);
val.AddComponent<EventSystem>();
val.AddComponent<StandaloneInputModule>();
}
_panelRoot = CreateUIElement("Panel", _canvasRoot.transform);
RectTransform component = _panelRoot.GetComponent<RectTransform>();
component.anchorMin = new Vector2(0.5f, 0.5f);
component.anchorMax = new Vector2(0.5f, 0.5f);
component.pivot = new Vector2(0.5f, 0.5f);
component.sizeDelta = new Vector2(600f, 700f);
component.anchoredPosition = _uiPosition.Value;
((Graphic)_panelRoot.AddComponent<Image>()).color = _bg;
Outline obj2 = _panelRoot.AddComponent<Outline>();
((Shadow)obj2).effectColor = new Color(0.5f, 0.1f, 0.1f, 0.5f);
((Shadow)obj2).effectDistance = new Vector2(2f, -2f);
GameObject val2 = CreateUIElement("Header", _panelRoot.transform);
RectTransform component2 = val2.GetComponent<RectTransform>();
component2.anchorMin = new Vector2(0f, 1f);
component2.anchorMax = new Vector2(1f, 1f);
component2.pivot = new Vector2(0.5f, 1f);
component2.sizeDelta = new Vector2(-28f, 60f);
component2.anchoredPosition = new Vector2(0f, -14f);
HorizontalLayoutGroup obj3 = val2.AddComponent<HorizontalLayoutGroup>();
((HorizontalOrVerticalLayoutGroup)obj3).childControlWidth = true;
((HorizontalOrVerticalLayoutGroup)obj3).childControlHeight = true;
((HorizontalOrVerticalLayoutGroup)obj3).childForceExpandWidth = false;
((HorizontalOrVerticalLayoutGroup)obj3).childForceExpandHeight = false;
((HorizontalOrVerticalLayoutGroup)obj3).spacing = 10f;
_titleText = CreateTextMeshPro("Title", val2.transform, "Empress Spawn Browser - YAPYAP", 16f, _fg);
((TMP_Text)_titleText).fontStyle = (FontStyles)1;
((TMP_Text)_titleText).alignment = (TextAlignmentOptions)4097;
((Component)_titleText).gameObject.AddComponent<LayoutElement>().flexibleWidth = 1f;
Button obj4 = CreateButton("CloseButton", val2.transform, "X");
((UnityEvent)obj4.onClick).AddListener((UnityAction)delegate
{
_uiVisible = false;
HideCanvas();
RestoreCursor();
});
LayoutElement obj5 = ((Component)obj4).gameObject.AddComponent<LayoutElement>();
obj5.preferredWidth = 36f;
obj5.preferredHeight = 36f;
_refreshButton = CreateButton("RefreshButton", val2.transform, "REFRESH");
((UnityEvent)_refreshButton.onClick).AddListener((UnityAction)delegate
{
DiscoverPrefabs();
RefreshCurrentTab();
});
((Component)_refreshButton).gameObject.AddComponent<LayoutElement>().preferredWidth = 90f;
GameObject val3 = CreateUIElement("TabBar", _panelRoot.transform);
RectTransform component3 = val3.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(-28f, 40f);
component3.anchoredPosition = new Vector2(0f, -80f);
HorizontalLayoutGroup obj6 = val3.AddComponent<HorizontalLayoutGroup>();
((HorizontalOrVerticalLayoutGroup)obj6).childControlWidth = true;
((HorizontalOrVerticalLayoutGroup)obj6).childControlHeight = true;
((HorizontalOrVerticalLayoutGroup)obj6).childForceExpandWidth = true;
((HorizontalOrVerticalLayoutGroup)obj6).childForceExpandHeight = false;
((HorizontalOrVerticalLayoutGroup)obj6).spacing = 10f;
string[] array = new string[4] { "ENEMIES", "VALUABLES", "ITEMS", "" };
for (int i = 0; i < 3; i++)
{
int idx = i;
_tabButtons[i] = CreateButton($"Tab{i}", val3.transform, array[i]);
((UnityEvent)_tabButtons[i].onClick).AddListener((UnityAction)delegate
{
SwitchTab(idx);
});
((Component)_tabButtons[i]).gameObject.AddComponent<LayoutElement>().preferredHeight = 26f;
}
GameObject val4 = CreateUIElement("Search", _panelRoot.transform);
RectTransform component4 = val4.GetComponent<RectTransform>();
component4.anchorMin = new Vector2(0f, 1f);
component4.anchorMax = new Vector2(1f, 1f);
component4.pivot = new Vector2(0.5f, 1f);
component4.sizeDelta = new Vector2(-28f, 40f);
component4.anchoredPosition = new Vector2(0f, -130f);
((Graphic)val4.AddComponent<Image>()).color = _bg2;
_searchInput = val4.AddComponent<TMP_InputField>();
TextMeshProUGUI val5 = CreateTextMeshPro("Text", val4.transform, "", 14f, _fg);
((TMP_Text)val5).alignment = (TextAlignmentOptions)4097;
RectTransform component5 = ((Component)val5).GetComponent<RectTransform>();
component5.anchorMin = Vector2.zero;
component5.anchorMax = Vector2.one;
component5.offsetMin = new Vector2(10f, 0f);
component5.offsetMax = new Vector2(-10f, 0f);
_searchInput.textComponent = (TMP_Text)(object)val5;
((UnityEvent<string>)(object)_searchInput.onValueChanged).AddListener((UnityAction<string>)OnSearchChanged);
GameObject val6 = CreateUIElement("Scroll", _panelRoot.transform);
_scrollRect = val6.AddComponent<ScrollRect>();
RectTransform component6 = val6.GetComponent<RectTransform>();
component6.anchorMin = Vector2.zero;
component6.anchorMax = Vector2.one;
component6.offsetMin = new Vector2(14f, 60f);
component6.offsetMax = new Vector2(-14f, -180f);
GameObject val7 = CreateUIElement("Viewport", val6.transform);
RectTransform component7 = val7.GetComponent<RectTransform>();
component7.anchorMin = Vector2.zero;
component7.anchorMax = Vector2.one;
component7.sizeDelta = Vector2.zero;
val7.AddComponent<RectMask2D>();
((Graphic)val7.AddComponent<Image>()).color = new Color(0f, 0f, 0f, 0f);
_scrollRect.viewport = component7;
GameObject val8 = CreateUIElement("Content", val7.transform);
_contentContainer = val8.transform;
RectTransform component8 = val8.GetComponent<RectTransform>();
component8.anchorMin = new Vector2(0f, 1f);
component8.anchorMax = new Vector2(1f, 1f);
component8.pivot = new Vector2(0.5f, 1f);
component8.sizeDelta = new Vector2(0f, 0f);
VerticalLayoutGroup obj7 = val8.AddComponent<VerticalLayoutGroup>();
((HorizontalOrVerticalLayoutGroup)obj7).childControlWidth = true;
((HorizontalOrVerticalLayoutGroup)obj7).childControlHeight = true;
((HorizontalOrVerticalLayoutGroup)obj7).childForceExpandWidth = true;
((HorizontalOrVerticalLayoutGroup)obj7).childForceExpandHeight = false;
((HorizontalOrVerticalLayoutGroup)obj7).spacing = 2f;
val8.AddComponent<ContentSizeFitter>().verticalFit = (FitMode)2;
_scrollRect.content = component8;
_scrollRect.horizontal = false;
_scrollRect.vertical = true;
_scrollRect.scrollSensitivity = _scrollSpeed.Value;
GameObject val9 = CreateUIElement("Footer", _panelRoot.transform);
RectTransform component9 = val9.GetComponent<RectTransform>();
component9.anchorMin = new Vector2(0f, 0f);
component9.anchorMax = new Vector2(1f, 0f);
component9.pivot = new Vector2(0.5f, 0f);
component9.sizeDelta = new Vector2(-28f, 46f);
component9.anchoredPosition = new Vector2(0f, 14f);
_statusText = CreateTextMeshPro("Status", val9.transform, "", 12f, Color.yellow);
((TMP_Text)_statusText).alignment = (TextAlignmentOptions)1025;
RectTransform component10 = ((Component)_statusText).GetComponent<RectTransform>();
component10.anchorMin = new Vector2(0f, 0f);
component10.anchorMax = new Vector2(0.5f, 1f);
component10.sizeDelta = Vector2.zero;
_countText = CreateTextMeshPro("Count", val9.transform, "", 12f, _mutedCol);
((TMP_Text)_countText).alignment = (TextAlignmentOptions)1028;
RectTransform component11 = ((Component)_countText).GetComponent<RectTransform>();
component11.anchorMin = new Vector2(0.5f, 0f);
component11.anchorMax = new Vector2(1f, 1f);
component11.sizeDelta = Vector2.zero;
CreateItemRowPrefab();
_canvasRoot.SetActive(false);
}
private void CreateItemRowPrefab()
{
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_011b: 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_0145: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_0167: 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_0181: Unknown result type (might be due to invalid IL or missing references)
//IL_01a3: 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)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
//IL_0209: Unknown result type (might be due to invalid IL or missing references)
_itemRowPrefab = CreateUIElement("RowPrefab", _panelRoot.transform);
_itemRowPrefab.SetActive(false);
_itemRowPrefab.AddComponent<LayoutElement>().preferredHeight = 30f;
HorizontalLayoutGroup obj = _itemRowPrefab.AddComponent<HorizontalLayoutGroup>();
((HorizontalOrVerticalLayoutGroup)obj).childControlWidth = true;
((HorizontalOrVerticalLayoutGroup)obj).childControlHeight = true;
((HorizontalOrVerticalLayoutGroup)obj).spacing = 10f;
GameObject obj2 = CreateUIElement("Label", _itemRowPrefab.transform);
obj2.GetComponent<RectTransform>().sizeDelta = new Vector2(300f, 30f);
TextMeshProUGUI val = obj2.AddComponent<TextMeshProUGUI>();
((TMP_Text)val).text = "Item";
((TMP_Text)val).fontSize = 14f;
((Graphic)val).color = _fg;
((TMP_Text)val).alignment = (TextAlignmentOptions)4097;
((Graphic)val).raycastTarget = false;
if ((Object)(object)_cachedFont != (Object)null)
{
((TMP_Text)val).font = _cachedFont;
}
obj2.AddComponent<LayoutElement>().flexibleWidth = 1f;
GameObject val2 = CreateUIElement("Spawn", _itemRowPrefab.transform);
val2.GetComponent<RectTransform>().sizeDelta = new Vector2(80f, 26f);
((Graphic)val2.AddComponent<Image>()).color = _accentBase;
Button obj3 = val2.AddComponent<Button>();
((Selectable)obj3).transition = (Transition)1;
ColorBlock colors = default(ColorBlock);
((ColorBlock)(ref colors)).normalColor = Color.white;
((ColorBlock)(ref colors)).highlightedColor = _accentHover;
((ColorBlock)(ref colors)).pressedColor = _bg2;
((ColorBlock)(ref colors)).selectedColor = _accentHover;
((ColorBlock)(ref colors)).disabledColor = _accentDisabled;
((ColorBlock)(ref colors)).colorMultiplier = 1f;
((ColorBlock)(ref colors)).fadeDuration = 0.1f;
((Selectable)obj3).colors = colors;
GameObject val3 = new GameObject("Text");
val3.transform.SetParent(val2.transform, false);
RectTransform obj4 = val3.AddComponent<RectTransform>();
obj4.anchorMin = Vector2.zero;
obj4.anchorMax = Vector2.one;
obj4.sizeDelta = Vector2.zero;
TextMeshProUGUI val4 = val3.AddComponent<TextMeshProUGUI>();
((TMP_Text)val4).text = "SPAWN";
((TMP_Text)val4).fontSize = 12f;
((Graphic)val4).color = _fg;
((TMP_Text)val4).alignment = (TextAlignmentOptions)514;
((TMP_Text)val4).fontStyle = (FontStyles)1;
((Graphic)val4).raycastTarget = false;
if ((Object)(object)_cachedFont != (Object)null)
{
((TMP_Text)val4).font = _cachedFont;
}
val2.AddComponent<LayoutElement>().preferredWidth = 80f;
}
private GameObject CreateUIElement(string name, Transform parent)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Expected O, but got Unknown
GameObject val = new GameObject(name);
val.transform.SetParent(parent, false);
val.AddComponent<RectTransform>();
return val;
}
private Button CreateButton(string name, Transform parent, string label)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: 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)
//IL_004c: 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_0066: 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_00a1: 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_00cb: Unknown result type (might be due to invalid IL or missing references)
GameObject val = CreateUIElement(name, parent);
((Graphic)val.AddComponent<Image>()).color = _bg2;
Button obj = val.AddComponent<Button>();
((Selectable)obj).transition = (Transition)1;
ColorBlock colors = default(ColorBlock);
((ColorBlock)(ref colors)).normalColor = Color.white;
((ColorBlock)(ref colors)).highlightedColor = _accentHover;
((ColorBlock)(ref colors)).pressedColor = _accentBase;
((ColorBlock)(ref colors)).selectedColor = _accentBase;
((ColorBlock)(ref colors)).disabledColor = _accentDisabled;
((ColorBlock)(ref colors)).colorMultiplier = 1f;
((ColorBlock)(ref colors)).fadeDuration = 0.1f;
((Selectable)obj).colors = colors;
TextMeshProUGUI obj2 = CreateTextMeshPro("Text", val.transform, label, 12f, _fg);
((TMP_Text)obj2).alignment = (TextAlignmentOptions)514;
((Component)obj2).GetComponent<RectTransform>().anchorMin = Vector2.zero;
((Component)obj2).GetComponent<RectTransform>().anchorMax = Vector2.one;
val.AddComponent<LayoutElement>();
return obj;
}
private TextMeshProUGUI CreateTextMeshPro(string name, Transform parent, string text, float size, Color color)
{
//IL_000f: 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)
//IL_0024: 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)
GameObject obj = CreateUIElement(name, parent);
RectTransform component = obj.GetComponent<RectTransform>();
component.anchorMin = Vector2.zero;
component.anchorMax = Vector2.one;
component.sizeDelta = Vector2.zero;
TextMeshProUGUI val = obj.AddComponent<TextMeshProUGUI>();
((TMP_Text)val).text = text;
((TMP_Text)val).fontSize = size;
((Graphic)val).color = color;
((TMP_Text)val).alignment = (TextAlignmentOptions)514;
((Graphic)val).raycastTarget = false;
if ((Object)(object)_cachedFont != (Object)null)
{
((TMP_Text)val).font = _cachedFont;
}
return val;
}
}
}
namespace System.Diagnostics.CodeAnalysis
{
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ConstantExpectedAttribute : Attribute
{
public object? Min { get; set; }
public object? Max { get; set; }
}
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ExperimentalAttribute : Attribute
{
public string DiagnosticId { get; }
public string? UrlFormat { get; set; }
public ExperimentalAttribute(string diagnosticId)
{
DiagnosticId = diagnosticId;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
[ExcludeFromCodeCoverage]
internal sealed class MemberNotNullAttribute : Attribute
{
public string[] Members { get; }
public MemberNotNullAttribute(string member)
{
Members = new string[1] { member };
}
public MemberNotNullAttribute(params string[] members)
{
Members = members;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
[ExcludeFromCodeCoverage]
internal sealed class MemberNotNullWhenAttribute : Attribute
{
public bool ReturnValue { get; }
public string[] Members { get; }
public MemberNotNullWhenAttribute(bool returnValue, string member)
{
ReturnValue = returnValue;
Members = new string[1] { member };
}
public MemberNotNullWhenAttribute(bool returnValue, params string[] members)
{
ReturnValue = returnValue;
Members = members;
}
}
[AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class SetsRequiredMembersAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class StringSyntaxAttribute : Attribute
{
public const string CompositeFormat = "CompositeFormat";
public const string DateOnlyFormat = "DateOnlyFormat";
public const string DateTimeFormat = "DateTimeFormat";
public const string EnumFormat = "EnumFormat";
public const string GuidFormat = "GuidFormat";
public const string Json = "Json";
public const string NumericFormat = "NumericFormat";
public const string Regex = "Regex";
public const string TimeOnlyFormat = "TimeOnlyFormat";
public const string TimeSpanFormat = "TimeSpanFormat";
public const string Uri = "Uri";
public const string Xml = "Xml";
public string Syntax { get; }
public object?[] Arguments { get; }
public StringSyntaxAttribute(string syntax)
{
Syntax = syntax;
Arguments = new object[0];
}
public StringSyntaxAttribute(string syntax, params object?[] arguments)
{
Syntax = syntax;
Arguments = arguments;
}
}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class UnscopedRefAttribute : Attribute
{
}
}
namespace System.Runtime.Versioning
{
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class RequiresPreviewFeaturesAttribute : Attribute
{
public string? Message { get; }
public string? Url { get; set; }
public RequiresPreviewFeaturesAttribute()
{
}
public RequiresPreviewFeaturesAttribute(string? message)
{
Message = message;
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CallerArgumentExpressionAttribute : Attribute
{
public string ParameterName { get; }
public CallerArgumentExpressionAttribute(string parameterName)
{
ParameterName = parameterName;
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CollectionBuilderAttribute : Attribute
{
public Type BuilderType { get; }
public string MethodName { get; }
public CollectionBuilderAttribute(Type builderType, string methodName)
{
BuilderType = builderType;
MethodName = methodName;
}
}
[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class CompilerFeatureRequiredAttribute : Attribute
{
public const string RefStructs = "RefStructs";
public const string RequiredMembers = "RequiredMembers";
public string FeatureName { get; }
public bool IsOptional { get; set; }
public CompilerFeatureRequiredAttribute(string featureName)
{
FeatureName = featureName;
}
}
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class InterpolatedStringHandlerArgumentAttribute : Attribute
{
public string[] Arguments { get; }
public InterpolatedStringHandlerArgumentAttribute(string argument)
{
Arguments = new string[1] { argument };
}
public InterpolatedStringHandlerArgumentAttribute(params string[] arguments)
{
Arguments = arguments;
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class InterpolatedStringHandlerAttribute : Attribute
{
}
[EditorBrowsable(EditorBrowsableState.Never)]
[ExcludeFromCodeCoverage]
internal static class IsExternalInit
{
}
[AttributeUsage(AttributeTargets.Method, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class ModuleInitializerAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class OverloadResolutionPriorityAttribute : Attribute
{
public int Priority { get; }
public OverloadResolutionPriorityAttribute(int priority)
{
Priority = priority;
}
}
[AttributeUsage(AttributeTargets.Parameter, Inherited = true, AllowMultiple = false)]
[ExcludeFromCodeCoverage]
internal sealed class ParamCollectionAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class RequiredMemberAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[ExcludeFromCodeCoverage]
internal sealed class RequiresLocationAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event | AttributeTargets.Interface, Inherited = false)]
[ExcludeFromCodeCoverage]
internal sealed class SkipLocalsInitAttribute : Attribute
{
}
}