using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using Microsoft.CodeAnalysis; using SuperFantasyKingdom; using TMPro; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyCompany("LiveDamageMeter")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+123efbaf18f05fa0e611156fa7133517574c692e")] [assembly: AssemblyProduct("Live Damage Meter")] [assembly: AssemblyTitle("LiveDamageMeter")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 LiveDamageMeter { [BepInPlugin("ownly.livedamagemeter", "Live Damage Meter", "1.0.0")] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID).PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Live Damage Meter loaded"); } } [HarmonyPatch(typeof(MusicManager), "Start")] internal static class Patch_Attach { private static void Postfix(MusicManager __instance) { ((Component)__instance).gameObject.AddComponent(); } } [HarmonyPatch(typeof(RelicManager), "Awake")] internal static class Patch_Relics { private const int RelicRows = 9; private static void Postfix(RelicManager __instance) { try { GridLayoutGroup component = ((Component)__instance).GetComponent(); if (!((Object)(object)component == (Object)null)) { component.constraint = (Constraint)2; component.constraintCount = 9; } } catch { } } } internal class Meter : MonoBehaviour { private class Group { public UnitBase unit; public float damage; public int count; public bool allDead; } private class Row { public RectTransform root; public RectTransform bar; public Image icon; public RectTransform disc; public RectTransform levelBox; public TextMeshProUGUI level; public TextMeshProUGUI unitName; public TextMeshProUGUI value; } private const int Rows = 7; private const float RowHeight = 20f; private const float PanelWidth = 200f; private const float EdgeMargin = 14f; private const float TopEdge = 0.3234f; private const float TextPad = 6f; private const float ValueWidth = 68f; private const float RefreshInterval = 0.1f; private const string OutlinedFont = "Passage7Outline"; private const float Border = 2f; private const float Gap = 2f; private const float CornerCut = 2f; private const float EnterRange = 7.5f; private const float LeaveRange = 10f; private const float WidenX = 2.25f; private const float WidenY = 1.5f; private const float TextFill = 1.4f; private const float WideFactor = 1.6f; private const float DiscOpacity = 0.41f; private static readonly Vector2 DiscAnchor = new Vector2(0.78f, 0.79f); private static readonly Vector2 DiscSize = new Vector2(0.5f, 0.56f); private static readonly Vector2 TextNudge = new Vector2(0.015f, 0.02f); private static readonly Color FrameColor = new Color(0f, 0f, 0f, 1f); private static readonly Color RowColor = new Color(0f, 0f, 0f, 0.78f); private static readonly Color BarColor = new Color(0.7f, 0.24f, 0.14f, 0.95f); private static readonly Color NameColor = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); private static readonly Color ValueColor = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)231, (byte)0, byte.MaxValue)); private static readonly Color DeadTint = new Color(1f, 1f, 1f, 0.35f); private const float TextHeight = 24f; private const float InnerWidth = 196f; private const float BarLeft = 22f; private const float BarWidth = 174f; private const float RowPitch = 22f; private static Sprite s_Disc; private static TMP_FontAsset s_Font; private static Material s_Material; private FieldRef m_CombatLocation; private GameObject m_Panel; private RectTransform m_PanelRect; private Row[] m_Rows; private Group[] m_Groups; private GameObject[] m_Dividers; private float m_Timer; private bool m_OnField; private int m_Shown; private void Awake() { try { m_CombatLocation = AccessTools.FieldRefAccess("combatLocation"); } catch { ((Behaviour)this).enabled = false; } } private void Update() { //IL_003c: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) try { if ((Object)(object)MusicManager.Instance == (Object)null || (Object)(object)CombatManager.Instance == (Object)null || (Object)(object)GameCamera.Instance == (Object)null) { return; } Vector3 val = m_CombatLocation.Invoke(MusicManager.Instance) - ((Component)GameCamera.Instance).transform.position; Vector3 val2 = new Vector3(val.x / 2.25f, val.y / 1.5f, val.z); float magnitude = ((Vector3)(ref val2)).magnitude; if (magnitude < 7.5f) { m_OnField = true; } else if (magnitude > 10f) { m_OnField = false; } if (!m_OnField || (!CombatManager.Instance.IsCombat() && !CombatManager.Instance.IsCombatOver())) { if ((Object)(object)m_Panel != (Object)null && m_Panel.activeSelf) { m_Panel.SetActive(false); } m_Timer = 0f; return; } if ((Object)(object)m_Panel == (Object)null) { Build(); } if (!((Object)(object)m_Panel == (Object)null)) { m_Timer -= Time.unscaledDeltaTime; if (m_Timer <= 0f) { m_Timer = 0.1f; Refresh(); } if (m_Panel.activeSelf != m_Shown > 0) { m_Panel.SetActive(m_Shown > 0); } } } catch { if ((Object)(object)m_Panel != (Object)null) { m_Panel.SetActive(false); } ((Behaviour)this).enabled = false; } } private void Build() { //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Expected O, but got Unknown //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Expected O, but got Unknown //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Expected O, but got Unknown //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Expected O, but got Unknown //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03af: 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_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_055c: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Expected O, but got Unknown //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_0627: 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_067a: Unknown result type (might be due to invalid IL or missing references) //IL_06ad: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_081c: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_0905: Unknown result type (might be due to invalid IL or missing references) //IL_0925: 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_0965: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_0a15: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0a49: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Unknown result type (might be due to invalid IL or missing references) //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0a91: Unknown result type (might be due to invalid IL or missing references) //IL_0aab: Unknown result type (might be due to invalid IL or missing references) //IL_0ac5: Unknown result type (might be due to invalid IL or missing references) //IL_0adf: Unknown result type (might be due to invalid IL or missing references) //IL_0af8: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b89: Unknown result type (might be due to invalid IL or missing references) //IL_0ba3: Unknown result type (might be due to invalid IL or missing references) //IL_0bbd: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bf0: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c1f: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c53: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0ca1: Unknown result type (might be due to invalid IL or missing references) //IL_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0ce9: Unknown result type (might be due to invalid IL or missing references) //IL_0d04: Unknown result type (might be due to invalid IL or missing references) //IL_0d41: Unknown result type (might be due to invalid IL or missing references) //IL_0d5f: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) Canvas val = (from c in Object.FindObjectsOfType() where c.isRootCanvas && (int)c.renderMode == 0 orderby ((Component)c).transform.childCount descending select c).FirstOrDefault(); if ((Object)(object)val == (Object)null) { return; } if ((Object)(object)s_Disc == (Object)null) { Texture2D val2 = new Texture2D(16, 16); ((Texture)val2).filterMode = (FilterMode)0; for (int num = 0; num < 16; num++) { for (int num2 = 0; num2 < 16; num2++) { val2.SetPixel(num2, num, new Color(1f, 1f, 1f, (Vector2.Distance(new Vector2((float)num2, (float)num), Vector2.one * 7.5f) <= 8f) ? 1f : 0f)); } } val2.Apply(); s_Disc = Sprite.Create(val2, new Rect(0f, 0f, 16f, 16f), Vector2.one * 0.5f); } if ((Object)(object)s_Font == (Object)null) { TMP_FontAsset[] source = Resources.FindObjectsOfTypeAll(); s_Font = ((IEnumerable)source).FirstOrDefault((Func)((TMP_FontAsset font) => ((Object)font).name == "Passage7Outline")) ?? ((IEnumerable)source).FirstOrDefault((Func)((TMP_FontAsset font) => ((Object)font).name.Contains("Outline"))) ?? ((TMP_Text)((Component)val).GetComponentInChildren(true)).font; s_Material = ((TMP_Asset)s_Font).material; } m_Panel = new GameObject("LiveDamageMeter", new Type[1] { typeof(RectTransform) }); m_PanelRect = (RectTransform)m_Panel.transform; ((Transform)m_PanelRect).SetParent(((Component)val).transform, false); ((Transform)m_PanelRect).SetAsFirstSibling(); m_PanelRect.anchorMin = new Vector2(0f, 0.3234f); m_PanelRect.anchorMax = new Vector2(0f, 0.3234f); m_PanelRect.pivot = new Vector2(0f, 1f); m_PanelRect.sizeDelta = new Vector2(200f, 156f); m_PanelRect.anchoredPosition = new Vector2(14f, 0f); m_Rows = new Row[7]; for (int num3 = 0; num3 < 7; num3++) { Row row = new Row(); m_Rows[num3] = row; row.root = (RectTransform)new GameObject("Row" + num3, new Type[1] { typeof(RectTransform) }).transform; ((Transform)row.root).SetParent((Transform)(object)m_PanelRect, false); row.root.anchorMin = new Vector2(0f, 1f); row.root.anchorMax = new Vector2(0f, 1f); row.root.pivot = new Vector2(0f, 1f); row.root.sizeDelta = new Vector2(196f, 20f); row.root.anchoredPosition = new Vector2(2f, -2f - (float)num3 * 22f); ((Component)row.root).gameObject.SetActive(false); Image obj = MakeImage((Transform)(object)row.root, "Backdrop", RowColor); ((Graphic)obj).rectTransform.anchorMin = Vector2.zero; ((Graphic)obj).rectTransform.anchorMax = Vector2.one; ((Graphic)obj).rectTransform.offsetMin = Vector2.zero; ((Graphic)obj).rectTransform.offsetMax = Vector2.zero; Image val3 = MakeImage((Transform)(object)row.root, "Bar", BarColor); row.bar = ((Graphic)val3).rectTransform; row.bar.anchorMin = new Vector2(0f, 0.5f); row.bar.anchorMax = new Vector2(0f, 0.5f); row.bar.pivot = new Vector2(0f, 0.5f); row.bar.anchoredPosition = new Vector2(22f, 0f); row.icon = MakeImage((Transform)(object)row.root, "Icon", Color.white); ((Graphic)row.icon).rectTransform.anchorMin = new Vector2(0f, 0.5f); ((Graphic)row.icon).rectTransform.anchorMax = new Vector2(0f, 0.5f); ((Graphic)row.icon).rectTransform.pivot = new Vector2(0f, 0.5f); ((Graphic)row.icon).rectTransform.anchoredPosition = Vector2.zero; ((Graphic)row.icon).rectTransform.sizeDelta = new Vector2(20f, 20f); row.icon.preserveAspect = true; RectTransform val4 = (RectTransform)new GameObject("LevelClip", new Type[1] { typeof(RectTransform) }).transform; ((Transform)val4).SetParent((Transform)(object)((Graphic)row.icon).rectTransform, false); val4.anchorMin = Vector2.zero; val4.anchorMax = Vector2.one; val4.offsetMin = Vector2.zero; val4.offsetMax = Vector2.zero; ((Component)val4).gameObject.AddComponent(); Image val5 = MakeImage((Transform)val4, "LevelDisc", new Color(0f, 0f, 0f, 0.41f)); row.disc = ((Graphic)val5).rectTransform; row.disc.offsetMin = Vector2.zero; row.disc.offsetMax = Vector2.zero; val5.sprite = s_Disc; row.level = new GameObject("Level", new Type[1] { typeof(RectTransform) }).AddComponent(); row.levelBox = ((TMP_Text)row.level).rectTransform; ((Transform)row.levelBox).SetParent((Transform)(object)((Graphic)row.icon).rectTransform, false); row.levelBox.offsetMin = Vector2.zero; row.levelBox.offsetMax = Vector2.zero; ((TMP_Text)row.level).font = s_Font; ((TMP_Text)row.level).fontSharedMaterial = s_Material; ((Graphic)row.level).color = ValueColor; ((TMP_Text)row.level).alignment = (TextAlignmentOptions)514; ((TMP_Text)row.level).enableWordWrapping = false; ((Graphic)row.level).raycastTarget = false; ((TMP_Text)row.level).enableAutoSizing = true; ((TMP_Text)row.level).fontSizeMin = 1f; ((TMP_Text)row.level).fontSizeMax = 400f; row.unitName = new GameObject("Name", new Type[1] { typeof(RectTransform) }).AddComponent(); ((Transform)((TMP_Text)row.unitName).rectTransform).SetParent((Transform)(object)row.root, false); ((TMP_Text)row.unitName).rectTransform.anchorMin = new Vector2(0f, 0.5f); ((TMP_Text)row.unitName).rectTransform.anchorMax = new Vector2(0f, 0.5f); ((TMP_Text)row.unitName).rectTransform.pivot = new Vector2(0f, 0.5f); ((TMP_Text)row.unitName).rectTransform.anchoredPosition = new Vector2(28f, 0f); ((TMP_Text)row.unitName).rectTransform.sizeDelta = new Vector2(94f, 24f); ((TMP_Text)row.unitName).font = s_Font; ((TMP_Text)row.unitName).fontSharedMaterial = s_Material; ((Graphic)row.unitName).color = NameColor; ((TMP_Text)row.unitName).alignment = (TextAlignmentOptions)513; ((TMP_Text)row.unitName).enableWordWrapping = false; ((TMP_Text)row.unitName).overflowMode = (TextOverflowModes)1; ((Graphic)row.unitName).raycastTarget = false; ((TMP_Text)row.unitName).enableAutoSizing = true; ((TMP_Text)row.unitName).fontSizeMin = 8f; ((TMP_Text)row.unitName).fontSizeMax = 21f; row.value = new GameObject("Value", new Type[1] { typeof(RectTransform) }).AddComponent(); ((Transform)((TMP_Text)row.value).rectTransform).SetParent((Transform)(object)row.root, false); ((TMP_Text)row.value).rectTransform.anchorMin = new Vector2(0f, 0.5f); ((TMP_Text)row.value).rectTransform.anchorMax = new Vector2(0f, 0.5f); ((TMP_Text)row.value).rectTransform.pivot = new Vector2(0f, 0.5f); ((TMP_Text)row.value).rectTransform.anchoredPosition = new Vector2(122f, 0f); ((TMP_Text)row.value).rectTransform.sizeDelta = new Vector2(68f, 24f); ((TMP_Text)row.value).font = s_Font; ((TMP_Text)row.value).fontSharedMaterial = s_Material; ((Graphic)row.value).color = ValueColor; ((TMP_Text)row.value).alignment = (TextAlignmentOptions)516; ((TMP_Text)row.value).enableWordWrapping = false; ((Graphic)row.value).raycastTarget = false; ((TMP_Text)row.value).enableAutoSizing = true; ((TMP_Text)row.value).fontSizeMin = 8f; ((TMP_Text)row.value).fontSizeMax = 21f; } Image obj2 = MakeImage((Transform)(object)m_PanelRect, "FrameTop", FrameColor); ((Graphic)obj2).rectTransform.anchorMin = new Vector2(0f, 1f); ((Graphic)obj2).rectTransform.anchorMax = new Vector2(1f, 1f); ((Graphic)obj2).rectTransform.offsetMin = new Vector2(2f, -2f); ((Graphic)obj2).rectTransform.offsetMax = new Vector2(-2f, 0f); Image obj3 = MakeImage((Transform)(object)m_PanelRect, "FrameBottom", FrameColor); ((Graphic)obj3).rectTransform.anchorMin = new Vector2(0f, 0f); ((Graphic)obj3).rectTransform.anchorMax = new Vector2(1f, 0f); ((Graphic)obj3).rectTransform.offsetMin = new Vector2(2f, 0f); ((Graphic)obj3).rectTransform.offsetMax = new Vector2(-2f, 2f); Image obj4 = MakeImage((Transform)(object)m_PanelRect, "FrameLeft", FrameColor); ((Graphic)obj4).rectTransform.anchorMin = new Vector2(0f, 0f); ((Graphic)obj4).rectTransform.anchorMax = new Vector2(0f, 1f); ((Graphic)obj4).rectTransform.offsetMin = new Vector2(0f, 2f); ((Graphic)obj4).rectTransform.offsetMax = new Vector2(2f, -2f); Image obj5 = MakeImage((Transform)(object)m_PanelRect, "FrameRight", FrameColor); ((Graphic)obj5).rectTransform.anchorMin = new Vector2(1f, 0f); ((Graphic)obj5).rectTransform.anchorMax = new Vector2(1f, 1f); ((Graphic)obj5).rectTransform.offsetMin = new Vector2(-2f, 2f); ((Graphic)obj5).rectTransform.offsetMax = new Vector2(0f, -2f); Image obj6 = MakeImage((Transform)(object)m_PanelRect, "DividerColumn", FrameColor); ((Graphic)obj6).rectTransform.anchorMin = new Vector2(0f, 0f); ((Graphic)obj6).rectTransform.anchorMax = new Vector2(0f, 1f); ((Graphic)obj6).rectTransform.offsetMin = new Vector2(22f, 2f); ((Graphic)obj6).rectTransform.offsetMax = new Vector2(24f, -2f); m_Dividers = (GameObject[])(object)new GameObject[6]; for (int num4 = 0; num4 < 6; num4++) { Image val6 = MakeImage((Transform)(object)m_PanelRect, "Divider" + num4, FrameColor); m_Dividers[num4] = ((Component)val6).gameObject; ((Graphic)val6).rectTransform.anchorMin = new Vector2(0f, 1f); ((Graphic)val6).rectTransform.anchorMax = new Vector2(1f, 1f); ((Graphic)val6).rectTransform.pivot = new Vector2(0.5f, 1f); float num5 = 2f + (float)(num4 + 1) * 22f - 2f; ((Graphic)val6).rectTransform.offsetMin = new Vector2(2f, 0f - num5 - 2f); ((Graphic)val6).rectTransform.offsetMax = new Vector2(-2f, 0f - num5); ((Component)val6).gameObject.SetActive(false); } m_Panel.SetActive(false); } private static Image MakeImage(Transform parent, string name, Color color) { //IL_0014: 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) Image obj = new GameObject(name, new Type[1] { typeof(RectTransform) }).AddComponent(); ((Transform)((Graphic)obj).rectTransform).SetParent(parent, false); ((Graphic)obj).color = color; ((Graphic)obj).raycastTarget = false; return obj; } private void Refresh() { //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: 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_0402: Unknown result type (might be due to invalid IL or missing references) //IL_040c: 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_041b: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) float[] damageMeter = StatisticsManager.Instance.GetDamageMeter(); if (m_Groups == null || m_Groups.Length < damageMeter.Length) { m_Groups = new Group[damageMeter.Length]; for (int i = 0; i < m_Groups.Length; i++) { m_Groups[i] = new Group(); } } int num = 0; for (int j = 0; j < damageMeter.Length; j++) { if (damageMeter[j] <= 0f) { continue; } UnitBase unit = UnitManager.Instance.GetUnit(j); if ((Object)(object)unit == (Object)null) { continue; } int num2 = -1; for (int k = 0; k < num; k++) { UnitBase unit2 = m_Groups[k].unit; if (unit2.GetLevel() == unit.GetLevel() && ((Entity)unit2).IsEvolved() == ((Entity)unit).IsEvolved() && ((Entity)unit2).GetEntityIdentifier() == ((Entity)unit).GetEntityIdentifier()) { num2 = k; break; } } if (num2 < 0) { num2 = num++; m_Groups[num2].unit = unit; m_Groups[num2].damage = 0f; m_Groups[num2].count = 0; m_Groups[num2].allDead = true; } m_Groups[num2].damage += damageMeter[j]; m_Groups[num2].count++; if (!unit.IsDead()) { m_Groups[num2].allDead = false; } } m_Shown = Mathf.Min(num, 7); for (int l = 0; l < m_Shown; l++) { int num3 = l; for (int m = l + 1; m < num; m++) { if (m_Groups[m].damage > m_Groups[num3].damage) { num3 = m; } } Group obj = m_Groups[l]; m_Groups[l] = m_Groups[num3]; m_Groups[num3] = obj; } if (m_Shown > 0) { m_PanelRect.sizeDelta = new Vector2(200f, 4f + (float)m_Shown * 22f - 2f); } for (int n = 0; n < m_Dividers.Length; n++) { bool flag = n < m_Shown - 1; if (m_Dividers[n].activeSelf != flag) { m_Dividers[n].SetActive(flag); } } float num4 = ((m_Shown > 0) ? m_Groups[0].damage : 1f); for (int num5 = 0; num5 < 7; num5++) { Row row = m_Rows[num5]; if (num5 >= m_Shown) { ((Component)row.root).gameObject.SetActive(false); continue; } Group obj2 = m_Groups[num5]; float damage = obj2.damage; UnitBase unit3 = obj2.unit; ((Component)row.root).gameObject.SetActive(true); row.bar.sizeDelta = new Vector2(174f * Mathf.Clamp01(damage / num4), 20f); row.icon.sprite = ((Entity)unit3).GetIcon(); ((Graphic)row.icon).color = (obj2.allDead ? DeadTint : Color.white); ((TMP_Text)row.unitName).text = ((obj2.count > 1) ? (((Entity)unit3).GetName(true) + " x" + obj2.count) : ((Entity)unit3).GetName(true)); ((TMP_Text)row.value).text = ((damage >= 10000f) ? ((damage / 1000f).ToString("F1") + "k") : Mathf.RoundToInt(damage).ToString("N0")); int level = unit3.GetLevel(); Vector2 val = DiscSize * 0.5f; Vector2 val2 = DiscSize * 1.4f * 0.5f; if (level > 9) { val.x *= 1.6f; val2.x *= 1.6f; } row.disc.anchorMin = DiscAnchor - val; row.disc.anchorMax = DiscAnchor + val; row.levelBox.anchorMin = DiscAnchor - val2 + TextNudge; row.levelBox.anchorMax = DiscAnchor + val2 + TextNudge; ((TMP_Text)row.level).text = level.ToString(); } } } }