using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using MenuLib; using MenuLib.MonoBehaviors; using Microsoft.CodeAnalysis; using TMPro; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("")] [assembly: AssemblyCompany("Korbah")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+68b39bf6208625f3a2adacd935ce0508d0c828bc")] [assembly: AssemblyProduct("TotalLootTracker")] [assembly: AssemblyTitle("TotalLootTracker")] [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 TotalLootTracker { [BepInPlugin("Korbah.TotalLootTracker", "TotalLootTracker", "1.0.0")] public class TotalLootTracker : BaseUnityPlugin { private const string ModGuid = "Korbah.TotalLootTracker"; private const string ModName = "TotalLootTracker"; private const string ModVersion = "1.0.0"; internal static TotalLootTracker Instance { get; private set; } internal static ManualLogSource Logger => Instance._logger; private ManualLogSource _logger => ((BaseUnityPlugin)this).Logger; internal Harmony? Harmony { get; set; } internal static ConfigEntry LabelHoldDuration { get; private set; } internal static ConfigEntry LabelFadeDuration { get; private set; } private void Awake() { Instance = this; LabelHoldDuration = ((BaseUnityPlugin)this).Config.Bind("Labels", "HoldDuration", 2f, "How long transient labels stay fully visible before fading (seconds)."); LabelFadeDuration = ((BaseUnityPlugin)this).Config.Bind("Labels", "FadeDuration", 1f, "How long transient labels take to fade out (seconds)."); ((Component)this).gameObject.transform.parent = null; ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; Patch(); Logger.LogInfo((object)$"{((BaseUnityPlugin)this).Info.Metadata.GUID} v{((BaseUnityPlugin)this).Info.Metadata.Version} has loaded!"); } internal void Patch() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown //IL_0025: Expected O, but got Unknown if (Harmony == null) { Harmony val = new Harmony(((BaseUnityPlugin)this).Info.Metadata.GUID); Harmony val2 = val; Harmony = val; } Harmony.PatchAll(); } internal void Unpatch() { Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } } private void Update() { } } } namespace TotalLootTracker.Patches { [HarmonyPatch(typeof(RoundDirector))] internal static class TotalLootPatch { [CompilerGenerated] private sealed class d__21 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public EnemyValuable enemyValuable; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__21(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown switch (<>1__state) { 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; ValuableObject component = ((Component)enemyValuable).GetComponent(); if ((Object)(object)component == (Object)null) { TotalLootTracker.Logger.LogWarning((object)("DelayedAddEnemyValuable(): Could not find ValuableObject on " + ((Object)enemyValuable).name + ".")); return false; } TotalLootTracker.Logger.LogDebug((object)("DelayedAddEnemyValuable(): EnemyValuable name: " + ((Object)enemyValuable).name)); TotalLootTracker.Logger.LogDebug((object)$"DelayedAddEnemyValuable(): EnemyValuable dollarValueOriginal: {component.dollarValueOriginal}"); _totalLoot += component.dollarValueOriginal; UpdateLabel(_totalLoot, "DelayedAddEnemyValuable"); 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(); } } [CompilerGenerated] private sealed class d__15 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ExtractionPoint extractionPoint; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__15(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Invalid comparison between Unknown and I4 switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 1; return true; case 1: { <>1__state = -1; State value = Traverse.Create((object)extractionPoint).Field("currentState").Value; if ((int)value != 6) { TotalLootTracker.Logger.LogDebug((object)"DelayedCaptureExtractionTotal(): State changed from Extracting, aborting."); return false; } if (RoundDirector.instance.extractionPointsCompleted != RoundDirector.instance.extractionPoints - 1) { _extractionDollarTotal = RoundDirector.instance.currentHaul; TotalLootTracker.Logger.LogDebug((object)$"DelayedCaptureExtractionTotal(): Non-final extraction, currentHaul: ${_extractionDollarTotal}"); } else { _extractionDollarTotal = 0f; foreach (GameObject dollarHaul in RoundDirector.instance.dollarHaulList) { if (!((Object)(object)dollarHaul == (Object)null)) { ValuableObject component = dollarHaul.GetComponent(); if ((Object)(object)component != (Object)null) { _extractionDollarTotal += component.dollarValueCurrent; } } } foreach (ItemValuableBox valuableBoxHaul in RoundDirector.instance.valuableBoxHaulList) { if ((Object)(object)valuableBoxHaul != (Object)null) { _extractionDollarTotal += valuableBoxHaul.ExtractionValue; } } TotalLootTracker.Logger.LogInfo((object)$"DelayedCaptureExtractionTotal(): Final extraction, total: ${_extractionDollarTotal}"); } _totalLoot -= _extractionDollarTotal; if (_extractionDollarTotal > 0f) { _extractionLabelCoroutine = ((MonoBehaviour)TotalLootTracker.Instance).StartCoroutine(ShowExtractionAmount(_extractionDollarTotal)); } UpdateLabel(_totalLoot, "DelayedCaptureExtractionTotal"); 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(); } } [CompilerGenerated] private sealed class d__25 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; private float 5__2; private float 5__3; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__25(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Expected O, but got Unknown //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected O, but got Unknown //IL_0147: 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) switch (<>1__state) { default: return false; case 0: { <>1__state = -1; if ((Object)(object)_damageLabel == (Object)null) { return false; } float value = TotalLootTracker.LabelHoldDuration.Value; 5__2 = TotalLootTracker.LabelFadeDuration.Value; RectTransform val = (RectTransform)((Component)_damageLabel).transform; if (!((Component)_damageLabel).gameObject.activeSelf) { val.anchoredPosition = new Vector2(_damageAlignX, ExtractionLabelActive() ? (-140f) : (-170f)); } ((TMP_Text)_damageLabel.labelTMP).text = $"-${_damageAccumulated:N0}"; ((Graphic)_damageLabel.labelTMP).color = Color.red; ((Component)_damageLabel).gameObject.SetActive(true); <>2__current = (object)new WaitForSeconds(value); <>1__state = 1; return true; } case 1: <>1__state = -1; 5__3 = 0f; break; case 2: <>1__state = -1; break; } if (5__3 < 5__2) { 5__3 += Time.deltaTime; ((Graphic)_damageLabel.labelTMP).color = new Color(1f, 0f, 0f, Mathf.Lerp(1f, 0f, 5__3 / 5__2)); <>2__current = null; <>1__state = 2; return true; } ((Component)_damageLabel).gameObject.SetActive(false); _damageAccumulated = 0f; _damageLabelCoroutine = null; 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(); } } [CompilerGenerated] private sealed class d__23 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float amount; private float 5__2; private float 5__3; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__23(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: { <>1__state = -1; if ((Object)(object)_extractionAmountLabel == (Object)null) { return false; } float value = TotalLootTracker.LabelHoldDuration.Value; 5__2 = TotalLootTracker.LabelFadeDuration.Value; ((RectTransform)((Component)_extractionAmountLabel).transform).anchoredPosition = new Vector2(135f, DamageLabelActive() ? (-140f) : (-170f)); ((TMP_Text)_extractionAmountLabel.labelTMP).text = $"Extracted: ${amount:N0}"; ((Graphic)_extractionAmountLabel.labelTMP).color = Color.green; ((Component)_extractionAmountLabel).gameObject.SetActive(true); <>2__current = (object)new WaitForSeconds(value); <>1__state = 1; return true; } case 1: <>1__state = -1; 5__3 = 0f; break; case 2: <>1__state = -1; break; } if (5__3 < 5__2) { 5__3 += Time.deltaTime; ((Graphic)_extractionAmountLabel.labelTMP).color = new Color(0f, 1f, 0f, Mathf.Lerp(1f, 0f, 5__3 / 5__2)); <>2__current = null; <>1__state = 2; return true; } ((Component)_extractionAmountLabel).gameObject.SetActive(false); _extractionLabelCoroutine = null; 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 float _totalLoot; private static float _extractionDollarTotal; private static bool _duringBreak; private static REPOLabel? _totalLootLabel; private static REPOLabel? _extractionAmountLabel; private static Coroutine? _extractionLabelCoroutine; private static REPOLabel? _damageLabel; private static float _damageAccumulated; private static Coroutine? _damageLabelCoroutine; private static float _damageAlignX; private const int StartingX = 135; private const string TotalLootPrefix = "Loot Left: "; [HarmonyPostfix] [HarmonyPatch(typeof(ExtractionPoint), "ActivateTheFirstExtractionPointAutomaticallyWhenAPlayerLeaveTruck")] private static void PlayerLeaveTruck_Postfix(ExtractionPoint __instance) { TotalLootTracker.Logger.LogDebug((object)string.Format("{0}: {1}", "PlayerLeaveTruck_Postfix", __instance)); _totalLoot = 0f; if (!LevelGenerator.Instance.Generated) { TotalLootTracker.Logger.LogWarning((object)"PlayerLeaveTruck_Postfix LevelGenerator instance not found."); return; } if ((Object)(object)_totalLootLabel == (Object)null) { TotalLootTracker.Logger.LogError((object)"PlayerLeaveTruck_Postfix _totalLootLabel is null."); return; } if (SemiFunc.RunIsShop()) { ((Component)_totalLootLabel).gameObject.SetActive(false); return; } ((Component)_totalLootLabel).gameObject.SetActive(true); List valuableList = ValuableDirector.instance.valuableList; for (int i = 0; i < valuableList.Count; i++) { ValuableObject val = valuableList[i]; if (val == null) { TotalLootTracker.Logger.LogWarning((object)string.Format("{0} Found null valuable at index {1}.", "PlayerLeaveTruck_Postfix", i)); } else if (!float.IsFinite(val.dollarValueCurrent)) { TotalLootTracker.Logger.LogWarning((object)string.Format("{0} Found valuable with non-finite dollar value at index {1}: {2}.", "PlayerLeaveTruck_Postfix", i, val)); } else { _totalLoot += val.dollarValueCurrent; } } TotalLootTracker.Logger.LogInfo((object)string.Format("{0} Total loot for this round: ${1}", "PlayerLeaveTruck_Postfix", _totalLoot)); UpdateLabel(_totalLoot, "PlayerLeaveTruck_Postfix"); } [HarmonyPostfix] [HarmonyPatch(typeof(LoadingUI), "StopLoading")] private static void StopLoading_Postfix(LoadingUI __instance) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: 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) TotalLootTracker.Logger.LogDebug((object)$"StopLoading_Postfix(): {__instance} Start Postfix"); Transform transform = GameObject.Find("Game Hud").transform; _totalLootLabel = MenuAPI.CreateREPOLabel("Loot Left", transform, new Vector2(135f, -200f)); float x = ((TMP_Text)_totalLootLabel.labelTMP).GetPreferredValues("Loot Left: ").x; float x2 = ((TMP_Text)_totalLootLabel.labelTMP).GetPreferredValues("-").x; _damageAlignX = 135f + x - x2 / 2f; TotalLootTracker.Logger.LogDebug((object)$"prefixWidth: {x}"); TotalLootTracker.Logger.LogDebug((object)$"minusWidth: {x2}"); ((Component)_totalLootLabel).gameObject.SetActive(false); _extractionAmountLabel = MenuAPI.CreateREPOLabel("", transform, new Vector2(135f, -170f)); ((Component)_extractionAmountLabel).gameObject.SetActive(false); _damageLabel = MenuAPI.CreateREPOLabel("", transform, new Vector2(_damageAlignX, -170f)); ((Component)_damageLabel).gameObject.SetActive(false); TotalLootTracker.Logger.LogDebug((object)$"Labels created, totalLootLabel: {_totalLootLabel}"); } [HarmonyPostfix] [HarmonyPatch(typeof(ExtractionPoint), "StateSetRPC")] private static void StateSetRPC_Postfix(ExtractionPoint __instance, State state) { //IL_000a: 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_001c: Invalid comparison between Unknown and I4 TotalLootTracker.Logger.LogDebug((object)$"StateSetRPC_Postfix(): New state: {state}"); if ((int)state == 6) { _extractionDollarTotal = 0f; ((MonoBehaviour)TotalLootTracker.Instance).StartCoroutine(DelayedCaptureExtractionTotal(__instance)); } } [IteratorStateMachine(typeof(d__15))] private static IEnumerator DelayedCaptureExtractionTotal(ExtractionPoint extractionPoint) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__15(0) { extractionPoint = extractionPoint }; } [HarmonyPostfix] [HarmonyPatch(typeof(ExtractionPoint), "ExtractionPointSurplusRPC")] private static void ExtractionPointSurplusRPC_Postfix(int surplus, bool ___taxReturn) { if (surplus > 0 && ___taxReturn) { TotalLootTracker.Logger.LogInfo((object)$"ExtractionPointSurplusRPC_Postfix: surplus bag worth ${surplus} added to total"); _totalLoot += surplus; UpdateLabel(_totalLoot, "ExtractionPointSurplusRPC_Postfix"); } } [HarmonyPrefix] [HarmonyPatch(typeof(PhysGrabObjectImpactDetector), "BreakRPC")] private static void BreakRPC_Prefix() { _duringBreak = true; } [HarmonyPostfix] [HarmonyPatch(typeof(PhysGrabObjectImpactDetector), "BreakRPC")] private static void BreakRPC_Postfix(PhysGrabObjectImpactDetector __instance, float valueLost, bool _loseValue) { _duringBreak = false; if (Object.op_Implicit((Object)(object)__instance.valuableObject) && _loseValue) { if (__instance.valuableObject.dollarValueCurrent < __instance.valuableObject.dollarValueOriginal * 0.15f) { TotalLootTracker.Logger.LogInfo((object)$"BreakRPC_Postfix(): {((Object)__instance.valuableObject).name} Has been destroyed ${valueLost}"); } else { TotalLootTracker.Logger.LogInfo((object)$"BreakRPC_Postfix(): {((Object)__instance.valuableObject).name} lost ${valueLost}"); } _totalLoot -= valueLost; UpdateLabel(_totalLoot, "BreakRPC_Postfix"); ShowOrUpdateDamageLabel(valueLost); } } [HarmonyPostfix] [HarmonyPatch(typeof(PhysGrabObjectImpactDetector), "DestroyObjectRPC")] private static void DestroyObjectRPC_Postfix(PhysGrabObjectImpactDetector __instance) { if (Object.op_Implicit((Object)(object)__instance.valuableObject) && !_duringBreak) { float dollarValueCurrent = __instance.valuableObject.dollarValueCurrent; TotalLootTracker.Logger.LogInfo((object)$"DestroyObjectRPC_Postfix(): {((Object)__instance.valuableObject).name} Has been destroyed ${dollarValueCurrent}"); _totalLoot -= dollarValueCurrent; UpdateLabel(_totalLoot, "DestroyObjectRPC_Postfix"); ShowOrUpdateDamageLabel(dollarValueCurrent); } } [HarmonyPostfix] [HarmonyPatch(typeof(EnemyValuable), "Start")] private static void EnemyValuableStart_Postfix(EnemyValuable __instance) { TotalLootTracker.Logger.LogDebug((object)"EnemyValuableStart_Postfix(): Start Postfix"); if (!LevelGenerator.Instance.Generated) { TotalLootTracker.Logger.LogWarning((object)"EnemyValuableStart_Postfix(): LevelGenerator has not finished generating the level"); } else if ((Object)(object)_totalLootLabel == (Object)null) { TotalLootTracker.Logger.LogWarning((object)"EnemyValuableStart_Postfix(): _totalLootLabel is null"); } else { ((MonoBehaviour)TotalLootTracker.Instance).StartCoroutine(DelayedAddEnemyValuable(__instance)); } } [IteratorStateMachine(typeof(d__21))] private static IEnumerator DelayedAddEnemyValuable(EnemyValuable enemyValuable) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__21(0) { enemyValuable = enemyValuable }; } [HarmonyPostfix] [HarmonyPatch(typeof(ClownTrap), "TrapStop")] private static void ClownTrapStop_Postfix(ClownTrap __instance) { TotalLootTracker.Logger.LogDebug((object)$"ClownTrapStop_Postfix(): {__instance} Start Postfix"); ValuableObject componentInParent = ((Component)__instance).GetComponentInParent(); if ((Object)(object)componentInParent == (Object)null) { TotalLootTracker.Logger.LogWarning((object)"ClownTrapStop_Postfix(): Could not find ValuableObject on clown parent."); return; } float dollarValueCurrent = componentInParent.dollarValueCurrent; TotalLootTracker.Logger.LogInfo((object)$"ClownTrapStop_Postfix(): Clown Current Value: ${dollarValueCurrent}"); _totalLoot -= dollarValueCurrent; UpdateLabel(_totalLoot, "ClownTrapStop_Postfix"); } [IteratorStateMachine(typeof(d__23))] private static IEnumerator ShowExtractionAmount(float amount) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__23(0) { amount = amount }; } private static void ShowOrUpdateDamageLabel(float amount) { _damageAccumulated += amount; if (_damageLabelCoroutine != null) { ((MonoBehaviour)TotalLootTracker.Instance).StopCoroutine(_damageLabelCoroutine); } _damageLabelCoroutine = ((MonoBehaviour)TotalLootTracker.Instance).StartCoroutine(ShowDamageAmount()); } [IteratorStateMachine(typeof(d__25))] private static IEnumerator ShowDamageAmount() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__25(0); } private static bool ExtractionLabelActive() { if ((Object)(object)_extractionAmountLabel != (Object)null) { return ((Component)_extractionAmountLabel).gameObject.activeSelf; } return false; } private static bool DamageLabelActive() { if ((Object)(object)_damageLabel != (Object)null) { return ((Component)_damageLabel).gameObject.activeSelf; } return false; } private static void UpdateLabel(float totalLoot, [CallerMemberName] string callerName = "") { TotalLootTracker.Logger.LogDebug((object)(callerName + "(): running UpdateLabel()")); if ((Object)(object)_totalLootLabel == (Object)null) { TotalLootTracker.Logger.LogError((object)"UpdateLabel(): _totalLootLabel is null"); return; } TotalLootTracker.Logger.LogDebug((object)$"Total loot: {totalLoot}"); ((TMP_Text)_totalLootLabel.labelTMP).text = string.Format("{0}${1:N0}", "Loot Left: ", totalLoot); } } }