using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Omni.WalkieTalkie;
using Photon.Pun;
using RepoHUDTweaks.compatibilityPatches;
using RepoHUDTweaks.patches;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("RepoHUDTweaks")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RepoHUDTweaks")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("537e4ad8-2470-446c-9fa9-0ebfd7b9dd00")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace RepoHUDTweaks
{
public class Helpers
{
public static string ToHex(Color color)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
return ColorUtility.ToHtmlStringRGB(color);
}
public static string ToHexAlpha(Color color)
{
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
return ColorUtility.ToHtmlStringRGBA(color);
}
public static Color ToColor(string hex, Color fallback)
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
Color result = default(Color);
if (ColorUtility.TryParseHtmlString(hex, ref result))
{
return result;
}
return fallback;
}
public static Color ToColor(string hex, string fallback)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
Color result = default(Color);
if (ColorUtility.TryParseHtmlString(hex, ref result))
{
return result;
}
return ToColor(fallback, Color.white);
}
}
[BepInPlugin("Swaggies.PlayerTweaks", "PlayerTweaks", "0.4.0")]
public class Plugin : BaseUnityPlugin
{
private const string _guid = "Swaggies.PlayerTweaks";
private const string _name = "PlayerTweaks";
public const string _ver = "0.4.0";
private readonly Harmony harmony = new Harmony("Swaggies.PlayerTweaks");
public static ManualLogSource loggy;
public static ConfigEntry<string> HealthPlusSignColor;
public static ConfigEntry<string> HealthColor;
public static ConfigEntry<string> HealthMaxColor;
public static ConfigEntry<bool> HealthMaxMatchSlash;
public static ConfigEntry<bool> HealthPlusSignAsHealthBar;
public static ConfigEntry<string> StaminaZapSignColor;
public static ConfigEntry<string> StaminaColor;
public static ConfigEntry<string> StaminaMaxColor;
public static ConfigEntry<bool> StaminaMaxMatchSlash;
public static ConfigEntry<bool> StaminaZapSignAsStaminaBar;
public static ConfigEntry<int> TumbleUIFrameRate;
public static ConfigEntry<int> TumbleUIInSpeed;
public static ConfigEntry<int> TumbleUIOutSpeed;
public static ConfigEntry<string> TumbleUIColorExitLight;
public static ConfigEntry<string> TumbleUIColorExitDark;
public static ConfigEntry<string> TumbleUIColorStunnedLight;
public static ConfigEntry<string> TumbleUIColorStunnedDark;
public static ConfigEntry<string> TumbleWingUIWingColor;
public static ConfigEntry<string> TumbleWingUIHolderColor;
public static ConfigEntry<string> TumbleWingUIBarColorStart;
public static ConfigEntry<string> TumbleWingUIBarColorEnd;
public static ConfigEntry<string> HaulUIColor;
public static ConfigEntry<string> HaulUIDollarSignColor;
public static ConfigEntry<string> HaulUISlashColor;
public static ConfigEntry<string> GoalUIColor;
public static ConfigEntry<string> GoalUISlashColor;
public static ConfigEntry<bool> WASDCancelsTumbleImmediately;
public static ConfigEntry<bool> SpaceToExitCrouch;
public static ConfigEntry<bool> SprintToExitCrouch;
public static ConfigEntry<string> AimColorDefault;
public static ConfigEntry<string> AimColorGrabbable;
public static ConfigEntry<string> AimColorGrab;
public static ConfigEntry<string> AimColorRotate;
public static ConfigEntry<string> AimColorClimbable;
public static ConfigEntry<string> AimColorClimb;
public static ConfigEntry<string> HurtVignetteColor;
public static ConfigEntry<bool> HurtVignetteHealthBased;
public static ConfigEntry<float> HurtVignetteHealthBasedScaleMax;
public static ConfigEntry<float> HurtVignetteHealthBasedScaleMin;
public static ConfigEntry<bool> HurtVignetteWhileDead;
public static ConfigEntry<bool> HurtVignetteAtMaxHealth;
public static ConfigEntry<bool> WorldSpaceValueUIEnablePatch;
public static ConfigEntry<string> WorldSpaceValueUIColorMax;
public static ConfigEntry<string> WorldSpaceValueUIColorMed;
public static ConfigEntry<string> WorldSpaceValueUIColorMin;
public static ConfigEntry<string> WorldSpaceValueUIColorCost;
public static ConfigEntry<float> WorldSpaceValueUICountUpTime;
public static ConfigEntry<float> WorldSpaceValueUICountDownTime;
public static ConfigEntry<bool> WSUIVL_EnablePatch;
public static ConfigEntry<bool> WSUIVL_AlwaysDisplayWhenPossible;
public static ConfigEntry<float> WSUIVL_Scale0;
public static ConfigEntry<float> WSUIVL_Scale1000;
public static ConfigEntry<float> WSUIVL_Scale5000;
public static ConfigEntry<float> WSUIVL_Scale10000;
public static ConfigEntry<float> WSUIVL_Scale50000;
public static ConfigEntry<float> WSUIVL_Timer0;
public static ConfigEntry<float> WSUIVL_Timer1000;
public static ConfigEntry<float> WSUIVL_Timer5000;
public static ConfigEntry<float> WSUIVL_Timer10000;
public static ConfigEntry<float> WSUIVL_Timer50000;
public static ConfigEntry<string> WSUIVL_Color0;
public static ConfigEntry<string> WSUIVL_Color1000;
public static ConfigEntry<string> WSUIVL_Color5000;
public static ConfigEntry<string> WSUIVL_Color10000;
public static ConfigEntry<string> WSUIVL_Color50000;
public static ConfigEntry<bool> WSUIVL_InterpolateScale;
public static ConfigEntry<bool> WSUIVL_InterpolateTimer;
public static ConfigEntry<bool> WSUIVL_InterpolateColor;
public static ConfigEntry<bool> ItemInfoUIShowValuableNames;
public static ConfigEntry<string> ItemInfoUIGradStart;
public static ConfigEntry<string> ItemInfoUIGradEnd;
public static ConfigEntry<string> ItemInfoUIGradEnemyStart;
public static ConfigEntry<string> ItemInfoUIGradEnemyEnd;
public static ConfigEntry<bool> OverchargeUIShowLegacy;
public static ConfigEntry<string> OverchargeUILegacySignColor;
public static ConfigEntry<string> OverchargeUILegacyColor;
public static ConfigEntry<string> OverchargeUILegacyMaxColor;
public static ConfigEntry<bool> OverchargeUILegacyMatchSlash;
public static ConfigEntry<bool> OverchargeUILegacySignAsBar;
public static ConfigEntry<string> OverchargeUIRoundBarColor;
public static ConfigEntry<string> MapObjectValuableColor;
public static ConfigEntry<string> MapObjectItemColor;
public static ConfigEntry<string> MapObjectDeathHeadColor;
public static ConfigEntry<string> MapObjectDoorColor;
public static ConfigEntry<string> MapObjectPlayerColor;
public static ConfigEntry<string> MapObjectBacktrackColorStart;
public static ConfigEntry<string> MapObjectBacktrackColorEnd;
public static ConfigEntry<string> MapWallColor;
public static ConfigEntry<string> MapFloorColor;
public static ConfigEntry<string> MapStairsColor;
public static ConfigEntry<string> MapInactiveWallColor;
public static ConfigEntry<string> MapInactiveFloorColor;
public static ConfigEntry<string> MapTruckWallColor;
public static ConfigEntry<string> MapTruckFloorColor;
public static ConfigEntry<string> MapUsedWallColor;
public static ConfigEntry<string> MapUsedFloorColor;
public static ConfigEntry<string> MapUnexploredOutlineColor;
public static ConfigEntry<string> MapUnexploredColor;
public static ConfigEntry<string> MapUnexploredGraphicColor;
private void Awake()
{
loggy = Logger.CreateLogSource("Swaggies.PlayerTweaks");
loggy.LogMessage((object)"PlayerTweaks's up and runnin' (0.4.0)");
harmony.PatchAll(typeof(AimPatch));
harmony.PatchAll(typeof(EnergyUIPatch));
harmony.PatchAll(typeof(GoalUIPatch));
harmony.PatchAll(typeof(HaulUIPatch));
harmony.PatchAll(typeof(HealthUIPatch));
harmony.PatchAll(typeof(HurtVignettePatch));
harmony.PatchAll(typeof(PlayerControllerPatch));
harmony.PatchAll(typeof(PlayerTumblePatch));
harmony.PatchAll(typeof(TumbleUIPatch));
harmony.PatchAll(typeof(WorldSpaceUIValuePatch));
harmony.PatchAll(typeof(WorldSpaceUIValueLostPatch));
harmony.PatchAll(typeof(PhysGrabObjectImpactDetectorPatch));
harmony.PatchAll(typeof(TumbleWingsUIPatch));
harmony.PatchAll(typeof(PhysGrabberPatch));
harmony.PatchAll(typeof(OverchargeRoundBarUIPatch));
harmony.PatchAll(typeof(ItemInfoUIPatch));
harmony.PatchAll(typeof(MapPatch));
harmony.PatchAll(typeof(DirtFinderPatches));
if (Chainloader.PluginInfos.Keys.Contains("omni.repo.walkietalkie"))
{
harmony.PatchAll(typeof(WalkieTalkieCompatibilityPatch));
}
ConfigHealth();
ConfigStamina();
ConfigTumble();
ConfigTumbleWings();
ConfigHaul();
ConfigGoal();
ConfigControls();
ConfigAim();
ConfigHurtVignette();
ConfigWorldSpaceUIValue();
ConfigWorldSpaceUIValueLost();
ConfigItemInfoUI();
ConfigOverchargeUI();
ConfigMap();
}
private void ConfigHealth()
{
HealthPlusSignColor = ((BaseUnityPlugin)this).Config.Bind<string>("Health UI", "Plus Sign Color", "#56ff6d", "The color of the plus sign");
HealthColor = ((BaseUnityPlugin)this).Config.Bind<string>("Health UI", "Health Color", "#56ff6d", "The color of the current health number");
HealthMaxColor = ((BaseUnityPlugin)this).Config.Bind<string>("Health UI", "Max Health Color", "#008b20", "The color of the max health number");
HealthMaxMatchSlash = ((BaseUnityPlugin)this).Config.Bind<bool>("Health UI", "Use Same Color for Max and Current HP", false, "If the max health number and current health number use the same color (true in vanilla)");
HealthPlusSignAsHealthBar = ((BaseUnityPlugin)this).Config.Bind<bool>("Health UI", "Use Plus Sign as Health Bar", true, "If the plus sign should be used as a health bar");
}
private void ConfigStamina()
{
StaminaZapSignColor = ((BaseUnityPlugin)this).Config.Bind<string>("Stamina UI", "Zap Sign Color", "#fcff00", "The color of the energy sign");
StaminaColor = ((BaseUnityPlugin)this).Config.Bind<string>("Stamina UI", "Stamina Color", "#fcff00", "The color of the current stamina number");
StaminaMaxColor = ((BaseUnityPlugin)this).Config.Bind<string>("Stamina UI", "Max Stamina Color", "#ffa500", "The color of the max stamina number");
StaminaMaxMatchSlash = ((BaseUnityPlugin)this).Config.Bind<bool>("Stamina UI", "Use Same Color for Max and Current Stam", false, "If the max stamina number and current stamina number use the same color (true in vanilla)");
StaminaZapSignAsStaminaBar = ((BaseUnityPlugin)this).Config.Bind<bool>("Stamina UI", "Use Zap Sign as Stamina Bar", true, "If the zap sign should be used as a stamina bar");
}
private void ConfigTumble()
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Expected O, but got Unknown
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Expected O, but got Unknown
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Expected O, but got Unknown
TumbleUIFrameRate = ((BaseUnityPlugin)this).Config.Bind<int>("Tumble UI", "Border Animation Frame Rate", 60, new ConfigDescription("The frame rate of the Tumble UI appearing and disappearing (vanilla default is 12.5)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(10, 120), Array.Empty<object>()));
TumbleUIInSpeed = ((BaseUnityPlugin)this).Config.Bind<int>("Tumble UI", "Border Fade-In Speed", 8, new ConfigDescription("How quickly the Tumble UI appears when beginning a tumble (affected by frame rate, vanilla default is 30)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(5, 100), Array.Empty<object>()));
TumbleUIOutSpeed = ((BaseUnityPlugin)this).Config.Bind<int>("Tumble UI", "Border Fade-Out Speed", 10, new ConfigDescription("How quickly the Tumble UI disappears when getting up from a tumble (affected by frame rate, vanilla default is 80)", (AcceptableValueBase)(object)new AcceptableValueRange<int>(5, 100), Array.Empty<object>()));
TumbleUIColorExitLight = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble UI", "Border Color Light", "#ffb20050", "The lighter color of the border when you're able to exit a tumble.");
TumbleUIColorExitDark = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble UI", "Border Color Dark", "#ffb20032", "The darker color of the border when you're able to exit a tumble.");
TumbleUIColorStunnedLight = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble UI", "Border Color Light (Stunned)", "#ff000050", "The lighter color of the border when you're stunned.");
TumbleUIColorStunnedDark = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble UI", "Border Color Dark (Stunned)", "#ff000032", "The darker color of the border when you're stunned.");
}
private void ConfigTumbleWings()
{
TumbleWingUIWingColor = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble Wings UI", "Wing Color", "#0065ff", "Color of the wings in the UI (does not affect in-world wings)");
TumbleWingUIHolderColor = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble Wings UI", "Bar Holder Color", "#00beff", "Color of the bar holder (edges)");
TumbleWingUIBarColorStart = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble Wings UI", "Bar Color (full)", "#00bbff", "Color of the bar when full");
TumbleWingUIBarColorEnd = ((BaseUnityPlugin)this).Config.Bind<string>("Tumble Wings UI", "Bar Color (empty)", "#00bbff", "Color of the bar when empty");
}
private void ConfigHaul()
{
HaulUIColor = ((BaseUnityPlugin)this).Config.Bind<string>("Haul UI", "Color", "#c9e9e6", "Color for haul UI");
HaulUIDollarSignColor = ((BaseUnityPlugin)this).Config.Bind<string>("Haul UI", "Dollar Sign Color", "#558b2f", "Color of the dollar sign in the haul UI");
HaulUISlashColor = ((BaseUnityPlugin)this).Config.Bind<string>("Haul UI", "Slash Color", "#616161", "Color for the slash in the haul UI");
}
private void ConfigGoal()
{
GoalUIColor = ((BaseUnityPlugin)this).Config.Bind<string>("Goal UI", "Color", "#ff5f00", "Color for goal UI");
GoalUISlashColor = ((BaseUnityPlugin)this).Config.Bind<string>("Goal UI", "Slash Color", "#7d250b", "Color for the slash in the goal UI");
}
private void ConfigControls()
{
WASDCancelsTumbleImmediately = ((BaseUnityPlugin)this).Config.Bind<bool>("Controls", "WASD Cancels Tumble Immediately", false, "If using WASD does NOT wait for you to stop moving before making you get up from a tumble");
SpaceToExitCrouch = ((BaseUnityPlugin)this).Config.Bind<bool>("Controls", "Jumping Exits Crouch", false, "If jumping automatically uncrouches you");
SprintToExitCrouch = ((BaseUnityPlugin)this).Config.Bind<bool>("Controls", "Sprinting Exits Crouch", false, "If trying to sprint while crouched will automatically uncrouch you");
}
private void ConfigAim()
{
AimColorDefault = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Default Color", "#ffffff32", "Color for default crosshair");
AimColorGrabbable = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Object Hover Color", "#fff700ff", "Color for hovering over a grabbable object");
AimColorGrab = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Object Grab Color", "#ffffff1e", "Color for holding an object");
AimColorRotate = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Object Rotate Color", "#ffffff1e", "Color for rotating an object");
AimColorClimbable = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Climb Hover Color", "#005fffff", "Color for hovering over a climbable surface");
AimColorClimb = ((BaseUnityPlugin)this).Config.Bind<string>("Crosshair", "Climb Grab Color", "#005fff49", "Color for climbing");
AimColorDefault.SettingChanged += delegate
{
AimPatch.Update();
};
AimColorGrabbable.SettingChanged += delegate
{
AimPatch.Update();
};
AimColorGrab.SettingChanged += delegate
{
AimPatch.Update();
};
AimColorRotate.SettingChanged += delegate
{
AimPatch.Update();
};
AimColorClimbable.SettingChanged += delegate
{
AimPatch.Update();
};
AimColorClimb.SettingChanged += delegate
{
AimPatch.Update();
};
}
private void ConfigHurtVignette()
{
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Expected O, but got Unknown
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Expected O, but got Unknown
HurtVignetteColor = ((BaseUnityPlugin)this).Config.Bind<string>("Hurt Vignette", "Color", "#b20000af", "Color of vignette");
HurtVignetteHealthBased = ((BaseUnityPlugin)this).Config.Bind<bool>("Hurt Vignette", "Health Based", false, "If the vignette should fade in the more your health goes down");
HurtVignetteHealthBasedScaleMax = ((BaseUnityPlugin)this).Config.Bind<float>("Hurt Vignette", "Max Scale", 2f, new ConfigDescription("(IF Health Based IS ENABLED ONLY) The scale of the vignette image when at max health.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 2.5f), Array.Empty<object>()));
HurtVignetteHealthBasedScaleMin = ((BaseUnityPlugin)this).Config.Bind<float>("Hurt Vignette", "Min Scale", 1f, new ConfigDescription("(IF Health Based IS ENABLED ONLY) The scale of the vignette image when at 0 health. Lowering this too far might make the vignette cover the screen a lot!", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
HurtVignetteWhileDead = ((BaseUnityPlugin)this).Config.Bind<bool>("Hurt Vignette", "Display While Dead", false, "(IF Health Based IS ENABLED ONLY) If the vignette should remain on screen while you're dead");
HurtVignetteAtMaxHealth = ((BaseUnityPlugin)this).Config.Bind<bool>("Hurt Vignette", "Display at Max Health", false, "(IF Health Based IS ENABLED ONLY) If the vignette should remain on screen even if you're at max health");
HurtVignetteColor.SettingChanged += delegate
{
HurtVignettePatch.SpoofLerp();
};
}
private void ConfigWorldSpaceUIValue()
{
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Expected O, but got Unknown
//IL_011b: Unknown result type (might be due to invalid IL or missing references)
//IL_0125: Expected O, but got Unknown
WorldSpaceValueUIEnablePatch = ((BaseUnityPlugin)this).Config.Bind<bool>("Value UI", "Enable Patch", true, "Enables the patches for value UI. Disable for any compatibility purposes, disabling this will also disable all options below.");
WorldSpaceValueUIColorMax = ((BaseUnityPlugin)this).Config.Bind<string>("Value UI", "Color (Max Value)", "#00a825", "Color of the value UI when holding a valuable at max value");
WorldSpaceValueUIColorMed = ((BaseUnityPlugin)this).Config.Bind<string>("Value UI", "Color (Med Value)", "#00a825", "Color of the value UI when holding a valuable at about half its original value");
WorldSpaceValueUIColorMin = ((BaseUnityPlugin)this).Config.Bind<string>("Value UI", "Color (Min Value)", "#00a825", "Color of the value UI when holding a valuable at min value (color will interpolate with max value as valuable's value goes down)");
WorldSpaceValueUIColorCost = ((BaseUnityPlugin)this).Config.Bind<string>("Value UI", "Color (Shop Cost)", "#f13337", "Color of the value UI when hovering over/holding a shop item");
WorldSpaceValueUICountUpTime = ((BaseUnityPlugin)this).Config.Bind<float>("Value UI", "Count-Up Speed", 15f, new ConfigDescription("How quickly to interpolate the value counting up. (Set to 0 to instantly change instead of animating.)", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 20f), Array.Empty<object>()));
WorldSpaceValueUICountDownTime = ((BaseUnityPlugin)this).Config.Bind<float>("Value UI", "Count-Down Speed", 6f, new ConfigDescription("How quickly to interpolate the value counting down. (Set to 0 to instantly change instead of animating.)", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 20f), Array.Empty<object>()));
}
private void ConfigWorldSpaceUIValueLost()
{
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Expected O, but got Unknown
//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
//IL_00d9: Expected O, but got Unknown
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_013a: Expected O, but got Unknown
//IL_016d: Unknown result type (might be due to invalid IL or missing references)
//IL_0177: Expected O, but got Unknown
//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
//IL_01d8: Expected O, but got Unknown
//IL_020b: Unknown result type (might be due to invalid IL or missing references)
//IL_0215: Expected O, but got Unknown
//IL_026c: Unknown result type (might be due to invalid IL or missing references)
//IL_0276: Expected O, but got Unknown
//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
//IL_02b3: Expected O, but got Unknown
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_0314: Expected O, but got Unknown
//IL_0347: Unknown result type (might be due to invalid IL or missing references)
//IL_0351: Expected O, but got Unknown
WSUIVL_EnablePatch = ((BaseUnityPlugin)this).Config.Bind<bool>("Value Lost UI", "Enable Patch", true, "Enables the patches for value lost UI. Disable for any compatibility purposes, disabling this will also disable all options below.");
WSUIVL_AlwaysDisplayWhenPossible = ((BaseUnityPlugin)this).Config.Bind<bool>("Value Lost UI", "Always Display When Possible", false, "Attempts to always show the value lost UI at times when it wouldn't normally show (such as if an item falls into a pit, or is crushed by an extraction point)");
WSUIVL_Color0 = ((BaseUnityPlugin)this).Config.Bind<string>("Value Lost UI", "Color at $0", "#f13337", "Color of the value lost UI at this dollar amount");
WSUIVL_Scale0 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Text scale at $0", 0.54f, new ConfigDescription("Size multiplier of the value lost UI at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
WSUIVL_Timer0 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Display time at $0", 3f, new ConfigDescription("Time in seconds to display the value lost UI on-screen at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>()));
WSUIVL_Color1000 = ((BaseUnityPlugin)this).Config.Bind<string>("Value Lost UI", "Color at $1.000", "#f13337", "Color of the value lost UI at this dollar amount");
WSUIVL_Scale1000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Text scale at $1.000", 0.72f, new ConfigDescription("Size multiplier of the value lost UI at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
WSUIVL_Timer1000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Display time at $1.000", 3f, new ConfigDescription("Time in seconds to display the value lost UI on-screen at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>()));
WSUIVL_Color5000 = ((BaseUnityPlugin)this).Config.Bind<string>("Value Lost UI", "Color at $5.000", "#f13337", "Color of the value lost UI at this dollar amount");
WSUIVL_Scale5000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Text scale at $5.000", 0.72f, new ConfigDescription("Size multiplier of the value lost UI at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
WSUIVL_Timer5000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Display time at $5.000", 3f, new ConfigDescription("Time in seconds to display the value lost UI on-screen at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>()));
WSUIVL_Color10000 = ((BaseUnityPlugin)this).Config.Bind<string>("Value Lost UI", "Color at $10.000", "#f13337", "Color of the value lost UI at this dollar amount");
WSUIVL_Scale10000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Text scale at $10.000", 0.72f, new ConfigDescription("Size multiplier of the value lost UI at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
WSUIVL_Timer10000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Display time at $10.000", 3f, new ConfigDescription("Time in seconds to display the value lost UI on-screen at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>()));
WSUIVL_Color50000 = ((BaseUnityPlugin)this).Config.Bind<string>("Value Lost UI", "Color at $50.000", "#f13337", "Color of the value lost UI at this dollar amount");
WSUIVL_Scale50000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Text scale at $50.000", 0.72f, new ConfigDescription("Size multiplier of the value lost UI at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 2f), Array.Empty<object>()));
WSUIVL_Timer50000 = ((BaseUnityPlugin)this).Config.Bind<float>("Value Lost UI", "Display time at $50.000", 3f, new ConfigDescription("Time in seconds to display the value lost UI on-screen at this dollar amount", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, 10f), Array.Empty<object>()));
WSUIVL_InterpolateColor = ((BaseUnityPlugin)this).Config.Bind<bool>("Value Lost UI", "Interpolate Color", false, "Whether to interpolate text color between value breakpoints");
WSUIVL_InterpolateScale = ((BaseUnityPlugin)this).Config.Bind<bool>("Value Lost UI", "Interpolate Scale", false, "Whether to interpolate text size multiplier between value breakpoints");
WSUIVL_InterpolateTimer = ((BaseUnityPlugin)this).Config.Bind<bool>("Value Lost UI", "Interpolate Timer", false, "Whether to interpolate display time between value breakpoints");
}
private void ConfigItemInfoUI()
{
ItemInfoUIShowValuableNames = ((BaseUnityPlugin)this).Config.Bind<bool>("Item Info UI", "Show Names of Valuables", false, "Shows the names of valuables you grab at the bottom of your screen, similar to shop items");
ItemInfoUIGradStart = ((BaseUnityPlugin)this).Config.Bind<string>("Item Info UI", "Color Gradient (Top)", "#ffff00", "Color 1 for the Item Info UI gradient (applies to the top part of the vertical gradient");
ItemInfoUIGradEnd = ((BaseUnityPlugin)this).Config.Bind<string>("Item Info UI", "Color Gradient (Bottom)", "#ff6300", "Color 2 for the Item Info UI gradient (applies to the bottom part of the vertical gradient");
ItemInfoUIGradEnemyStart = ((BaseUnityPlugin)this).Config.Bind<string>("Item Info UI", "Enemy Color Gradient (Top)", "#ff0000", "Color 1 for the Item Info UI gradient when grabbing an enemy (applies to the top part of the vertical gradient");
ItemInfoUIGradEnemyEnd = ((BaseUnityPlugin)this).Config.Bind<string>("Item Info UI", "Enemy Color Gradient (Bottom)", "#ff1a00", "Color 2 for the Item Info UI gradient when grabbing an enemy (applies to the bottom part of the vertical gradient");
}
private void ConfigOverchargeUI()
{
OverchargeUIShowLegacy = ((BaseUnityPlugin)this).Config.Bind<bool>("Overcharge UI", "Show Legacy Number", false, "Whether to show the old overcharge UI, represented as a number at the top left of your screen");
OverchargeUILegacySignColor = ((BaseUnityPlugin)this).Config.Bind<string>("Overcharge UI", "Legacy Sign Color", "#ff0000", "Color of the overcharge symbol for the legacy UI");
OverchargeUILegacyColor = ((BaseUnityPlugin)this).Config.Bind<string>("Overcharge UI", "Legacy Color", "#ff0700", "Color of the overcharge number for the legacy UI");
OverchargeUILegacyMaxColor = ((BaseUnityPlugin)this).Config.Bind<string>("Overcharge UI", "Legacy Max Color", "#fc0000", "Color of the overcharge max number for the legacy UI");
OverchargeUILegacyMatchSlash = ((BaseUnityPlugin)this).Config.Bind<bool>("Overcharge UI", "Legacy Use Same Color for Current and Max", true, "If the max number and current number use the same color (true in vanilla)");
OverchargeUILegacySignAsBar = ((BaseUnityPlugin)this).Config.Bind<bool>("Overcharge UI", "Use Legacy Sign as Overcharge Meter", true, "If the overcharge symbol should be used as a meter");
OverchargeUIRoundBarColor = ((BaseUnityPlugin)this).Config.Bind<string>("Overcharge UI", "Round Bar Color", "#ff00004b", "Color of the standard ring UI");
}
private void ConfigMap()
{
MapObjectValuableColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Valuable Object Color", "#ffd300", "Color of the valuable dots on the map.");
MapObjectItemColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Item Object Color", "#00ffeb", "Color of the shop item dots on the map.");
MapObjectDeathHeadColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Death Head Color", "#ff000e", "Color of the death head dots on the map.");
MapObjectPlayerColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Player Color", "#72ff79", "Color of the main player arrow on the map.");
MapObjectDoorColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Door Color", "#45ff50", "Color of the doors on the map.");
MapObjectBacktrackColorStart = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Backtrack Color", "#ffffff", "Color of the dots on the map that make a path to the current objective.");
MapObjectBacktrackColorEnd = ((BaseUnityPlugin)this).Config.Bind<string>("Map Objects", "Backtrack Fade Color", "#ffffff", "If set to a different color than Backtrack Color, the path dots on the map will fade to THIS color as the dots get further away from the player.");
MapWallColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Wall Color", "#077600", "Color of walls on the map. (APPLIES ON LEVEL LOAD)");
MapFloorColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Floor Color", "#004803", "Color of floors on the map. (APPLIES ON LEVEL LOAD)");
MapStairsColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Stairs Color", "#2aff37", "Color of stairs on the map. (APPLIES ON LEVEL LOAD)");
MapInactiveWallColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Inactive Wall Color", "#8e4000", "Color of walls for inactive extraction points on the map. (APPLIES ON LEVEL LOAD)");
MapInactiveFloorColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Inactive Floor Color", "#542400", "Color of floors for inactive extraction points on the map. (APPLIES ON LEVEL LOAD)");
MapTruckWallColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Truck Wall Color", "#00797d", "Color of truck walls (ALSO USED FOR ACTIVE EXTRACTION POINTS) on the map. (APPLIES ON LEVEL LOAD)");
MapTruckFloorColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Truck Floor Color", "#005154", "Color of truck floors (ALSO USED FOR ACTIVE EXTRACTION POINTS) on the map. (APPLIES ON LEVEL LOAD)");
MapUsedWallColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Used Wall Color", "#950001", "Color of walls for completed extraction points on the map. (APPLIES ON LEVEL LOAD)");
MapUsedFloorColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Used Floor Color", "#4d0005", "Color of floors for completed extraction points on the map. (APPLIES ON LEVEL LOAD)");
MapUnexploredOutlineColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Unexplored Outline Color", "#008908", "Color of the outlines of unexplored rooms on the map. (APPLIES ON LEVEL LOAD)");
MapUnexploredColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Unexplored Color", "#000000", "Color of the shaded area for unexplored rooms on the map. (APPLIES ON LEVEL LOAD)");
MapUnexploredGraphicColor = ((BaseUnityPlugin)this).Config.Bind<string>("Map Geometry", "Unexplored Graphic Color", "#00bc09", "Color of the question mark symbol (?) for unexplored rooms on the map. (APPLIES ON LEVEL LOAD)");
MapObjectValuableColor.SettingChanged += delegate
{
MapPatch.UpdateAllValuables();
};
MapObjectItemColor.SettingChanged += delegate
{
MapPatch.UpdateAllItems();
};
MapObjectDeathHeadColor.SettingChanged += delegate
{
MapPatch.UpdateAllItems();
};
MapObjectPlayerColor.SettingChanged += delegate
{
DirtFinderPatches.UpdatePlayer();
};
MapObjectDoorColor.SettingChanged += delegate
{
DirtFinderPatches.UpdateAllDoorTargets();
};
MapObjectBacktrackColorStart.SettingChanged += delegate
{
DirtFinderPatches.UpdateBacktrack(null);
};
MapObjectBacktrackColorEnd.SettingChanged += delegate
{
DirtFinderPatches.UpdateBacktrack(null);
};
}
}
public class UITweak_Health : MonoBehaviour
{
public static UITweak_Health instance;
public const string hexColorPlusSign = "#56ff6d";
public const string hexColorHealth = "#56ff6d";
public const string hexColorMaxHealth = "#008b20";
private const float VISUAL_PLUSSIGN_MIN = 0.03f;
private const float VISUAL_PLUSSIGN_MAX = 0.98f;
private HealthUI healthUI;
private Image plusSign;
private Image plusSignBackground;
private TextMeshProUGUI healthText;
private TextMeshProUGUI healthTextMax;
private bool initialized;
private void Start()
{
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)instance != (Object)null)
{
Object.Destroy((Object)(object)this);
return;
}
instance = this;
healthUI = ((Component)this).GetComponent<HealthUI>();
healthText = ((Component)this).GetComponent<TextMeshProUGUI>();
healthTextMax = ((Component)((Component)this).transform.Find("HealthMax")).GetComponent<TextMeshProUGUI>();
plusSign = ((Component)((Component)this).transform.Find("Plus")).GetComponent<Image>();
plusSign.fillAmount = 1f;
plusSign.fillMethod = (FillMethod)1;
plusSign.type = (Type)3;
plusSignBackground = Object.Instantiate<GameObject>(((Component)plusSign).gameObject, ((Component)plusSign).gameObject.transform.parent).GetComponent<Image>();
((Object)((Component)plusSignBackground).gameObject).name = "Plus Sign Background";
((Component)plusSignBackground).gameObject.transform.SetSiblingIndex(0);
((Graphic)plusSignBackground).color = Color.clear;
initialized = true;
}
private void Update()
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: 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_0067: 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_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0103: Unknown result type (might be due to invalid IL or missing references)
//IL_0108: Unknown result type (might be due to invalid IL or missing references)
if (initialized)
{
((TMP_Text)healthText).faceColor = Color32.op_Implicit(Color.white);
((Graphic)plusSign).color = Helpers.ToColor(Plugin.HealthPlusSignColor.Value, "#56ff6d");
((Graphic)plusSignBackground).color = ((Graphic)plusSign).color * new Color(1f, 1f, 1f, 0.1f);
((Graphic)healthTextMax).color = (Plugin.HealthMaxMatchSlash.Value ? Helpers.ToColor(Plugin.HealthColor.Value, "#56ff6d") : Helpers.ToColor(Plugin.HealthMaxColor.Value, "#008b20"));
((TMP_Text)healthTextMax).text = ((TMP_Text)healthTextMax).text.Replace("#008b20", Plugin.HealthMaxColor.Value);
if (((SemiUI)healthUI).flashColorTime > 0f)
{
((SemiUI)healthUI).originalTextColor = Helpers.ToColor(Plugin.HealthColor.Value, "#56ff6d");
}
else
{
((Graphic)healthText).color = Helpers.ToColor(Plugin.HealthColor.Value, "#56ff6d");
}
if (!Plugin.HealthPlusSignAsHealthBar.Value || !Object.op_Implicit((Object)(object)PlayerAvatar.instance) || !Object.op_Implicit((Object)(object)PlayerAvatar.instance.playerHealth) || PlayerAvatar.instance.isDisabled)
{
plusSign.fillAmount = 1f;
return;
}
int health = PlayerAvatar.instance.playerHealth.health;
int maxHealth = PlayerAvatar.instance.playerHealth.maxHealth;
plusSign.fillAmount = NormalizeFillAmount((float)health / (float)maxHealth);
}
}
private float NormalizeFillAmount(float amount)
{
if (amount <= 0f)
{
return 0f;
}
if (amount >= 1f)
{
return 1f;
}
return Mathf.Lerp(0.03f, 0.98f, amount);
}
}
public class UITweak_Overcharge : MonoBehaviour
{
public static UITweak_Overcharge instance;
public const string colorSign = "#ff0000";
public const string colorNum = "#ff0700";
public const string colorMax = "#fc0000";
public const string colorRoundBar = "#ff00004b";
private const float VISUAL_SIGN_MIN = 0.03f;
private const float VISUAL_SIGN_MAX = 0.96f;
private OverchargeUI overchargeUI;
private OverchargeRoundBarUI roundBarUI;
private Image sign;
private Image signBackground;
private TextMeshProUGUI numText;
private TextMeshProUGUI numTextMax;
private void Start()
{
//IL_0128: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)instance != (Object)null)
{
Object.Destroy((Object)(object)this);
return;
}
instance = this;
roundBarUI = ((Component)this).GetComponent<OverchargeRoundBarUI>();
if (Object.op_Implicit((Object)(object)roundBarUI))
{
overchargeUI = Object.FindObjectOfType<OverchargeUI>(true);
if (Object.op_Implicit((Object)(object)overchargeUI))
{
numText = ((Component)overchargeUI).GetComponent<TextMeshProUGUI>();
numTextMax = ((Component)((Component)overchargeUI).transform.Find("OverchargeMax")).GetComponent<TextMeshProUGUI>();
sign = ((Component)((Component)overchargeUI).transform.Find("Icon")).GetComponent<Image>();
sign.fillAmount = 1f;
sign.fillMethod = (FillMethod)1;
sign.type = (Type)3;
signBackground = Object.Instantiate<GameObject>(((Component)sign).gameObject, ((Component)sign).gameObject.transform.parent).GetComponent<Image>();
((Object)((Component)signBackground).gameObject).name = "Overcharge Sign Background";
((Component)signBackground).gameObject.transform.SetSiblingIndex(0);
((Graphic)signBackground).color = Color.clear;
}
}
}
private void Update()
{
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: 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_00e2: Unknown result type (might be due to invalid IL or missing references)
//IL_0123: Unknown result type (might be due to invalid IL or missing references)
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)roundBarUI))
{
roundBarUI.originalColor = Helpers.ToColor(Plugin.OverchargeUIRoundBarColor.Value, "#ff00004b");
}
if (!Plugin.OverchargeUIShowLegacy.Value || !Object.op_Implicit((Object)(object)overchargeUI) || !Object.op_Implicit((Object)(object)((Component)overchargeUI).gameObject))
{
((Component)overchargeUI).gameObject.SetActive(false);
return;
}
((Component)overchargeUI).gameObject.SetActive(true);
((Graphic)sign).color = Helpers.ToColor(Plugin.OverchargeUILegacySignColor.Value, "#ff0000");
((Graphic)signBackground).color = ((Graphic)sign).color * new Color(1f, 1f, 1f, 0.1f);
((Graphic)numText).color = Helpers.ToColor(Plugin.OverchargeUILegacyColor.Value, "#ff0700");
((Graphic)numTextMax).color = (Plugin.OverchargeUILegacyMatchSlash.Value ? Helpers.ToColor(Plugin.OverchargeUILegacyMaxColor.Value, "#ff0700") : Helpers.ToColor(Plugin.OverchargeUILegacyColor.Value, "#fc0000"));
((TMP_Text)numTextMax).text = ((TMP_Text)numTextMax).text.Replace("red", Plugin.OverchargeUILegacyColor.Value);
if (PhysGrabber.instance.physGrabBeamOverChargeFloat > 0f && Object.op_Implicit((Object)(object)roundBarUI) && !((Behaviour)roundBarUI.roundBarBG).enabled)
{
((Behaviour)roundBarUI.roundBarBG).enabled = true;
}
if (!Plugin.OverchargeUILegacySignAsBar.Value)
{
sign.fillAmount = 1f;
}
else
{
sign.fillAmount = NormalizeFillAmount(PhysGrabber.instance.physGrabBeamOverChargeFloat);
}
}
private float NormalizeFillAmount(float amount)
{
if (amount <= 0f)
{
return 0f;
}
if (amount >= 1f)
{
return 1f;
}
return Mathf.Lerp(0.03f, 0.96f, amount);
}
}
public class UITweak_Stamina : MonoBehaviour
{
public static UITweak_Stamina instance;
public const string hexColorZapSign = "#fcff00";
public const string hexColorStamina = "#fcff00";
public const string hexColorMaxStamina = "#ffa500";
private const float VISUAL_ZAPSIGN_MIN = 0.04f;
private const float VISUAL_ZAPSIGN_MAX = 0.97f;
private EnergyUI energyUI;
private Image zapSign;
private Image zapSignBackground;
private TextMeshProUGUI staminaText;
private TextMeshProUGUI staminaTextMax;
private bool initialized;
private void Start()
{
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)instance != (Object)null)
{
Object.Destroy((Object)(object)this);
return;
}
instance = this;
energyUI = ((Component)this).GetComponent<EnergyUI>();
staminaText = ((Component)this).GetComponent<TextMeshProUGUI>();
staminaTextMax = ((Component)((Component)this).transform.Find("EnergyMax")).GetComponent<TextMeshProUGUI>();
zapSign = ((Component)((Component)this).transform.Find("Zap")).GetComponent<Image>();
zapSign.fillAmount = 1f;
zapSign.fillMethod = (FillMethod)1;
zapSign.type = (Type)3;
zapSignBackground = Object.Instantiate<GameObject>(((Component)zapSign).gameObject, ((Component)zapSign).gameObject.transform.parent).GetComponent<Image>();
((Object)((Component)zapSignBackground).gameObject).name = "Zap Sign Background";
((Component)zapSignBackground).gameObject.transform.SetSiblingIndex(0);
((Graphic)zapSignBackground).color = Color.clear;
initialized = true;
}
private void Update()
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: 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_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_010d: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
if (initialized)
{
((Graphic)zapSign).color = Helpers.ToColor(Plugin.StaminaZapSignColor.Value, "#fcff00");
((Graphic)zapSignBackground).color = ((Graphic)zapSign).color * new Color(1f, 1f, 1f, 0.1f);
((Graphic)staminaText).color = Helpers.ToColor(Plugin.StaminaZapSignColor.Value, "#fcff00");
((Graphic)staminaTextMax).color = (Plugin.StaminaMaxMatchSlash.Value ? Helpers.ToColor(Plugin.StaminaColor.Value, "#fcff00") : Helpers.ToColor(Plugin.StaminaMaxColor.Value, "#ffa500"));
((TMP_Text)staminaTextMax).text = ((TMP_Text)staminaTextMax).text.Replace("orange", Plugin.StaminaMaxColor.Value);
if (((SemiUI)energyUI).flashColorTime > 0f)
{
((SemiUI)energyUI).originalTextColor = Helpers.ToColor(Plugin.StaminaColor.Value, "#fcff00");
}
else
{
((Graphic)staminaText).color = Helpers.ToColor(Plugin.StaminaColor.Value, "#fcff00");
}
if (!Plugin.StaminaZapSignAsStaminaBar.Value || !Object.op_Implicit((Object)(object)PlayerController.instance) || PlayerAvatar.instance.isDisabled)
{
zapSign.fillAmount = 1f;
}
else
{
zapSign.fillAmount = NormalizeFillAmount(PlayerController.instance.EnergyCurrent / PlayerController.instance.EnergyStart);
}
}
}
private float NormalizeFillAmount(float amount)
{
if (amount <= 0f)
{
return 0f;
}
if (amount >= 1f)
{
return 1f;
}
return Mathf.Lerp(0.04f, 0.97f, amount);
}
}
public class UITweak_Tumble : MonoBehaviour
{
[CompilerGenerated]
private sealed class <Start>d__7 : IEnumerator<object>, IDisposable, IEnumerator
{
private int <>1__state;
private object <>2__current;
public UITweak_Tumble <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <Start>d__7(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<>1__state = -2;
}
private bool MoveNext()
{
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Expected O, but got Unknown
int num = <>1__state;
UITweak_Tumble uITweak_Tumble = <>4__this;
switch (num)
{
default:
return false;
case 0:
<>1__state = -1;
<>2__current = (object)new WaitUntil((Func<bool>)(() => LevelGenerator.Instance.Generated));
<>1__state = 1;
return true;
case 1:
<>1__state = -1;
if ((Object)(object)instance != (Object)null)
{
Object.Destroy((Object)(object)uITweak_Tumble);
return false;
}
instance = uITweak_Tumble;
uITweak_Tumble.tumbleUI = ((Component)uITweak_Tumble).GetComponent<TumbleUI>();
if ((Object)(object)uITweak_Tumble.tumbleUI == (Object)null)
{
Object.Destroy((Object)(object)((Component)uITweak_Tumble).gameObject);
return false;
}
uITweak_Tumble.init = true;
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();
}
}
public const string hexColorExitLight = "#ffb20050";
public const string hexColorExitDark = "#ffb20032";
public const string hexColorStunnedLight = "#ff000050";
public const string hexColorStunnedDark = "#ff000032";
public static UITweak_Tumble instance;
private TumbleUI tumbleUI;
private bool init;
[IteratorStateMachine(typeof(<Start>d__7))]
private IEnumerator Start()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <Start>d__7(0)
{
<>4__this = this
};
}
private void Update()
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
if (init)
{
tumbleUI.canExitColor1 = Helpers.ToColor(Plugin.TumbleUIColorExitLight.Value, "#ffb20050");
tumbleUI.canExitColor2 = Helpers.ToColor(Plugin.TumbleUIColorExitDark.Value, "#ffb20032");
tumbleUI.canNotExitColor1 = Helpers.ToColor(Plugin.TumbleUIColorStunnedLight.Value, "#ff000050");
tumbleUI.canNotExitColor2 = Helpers.ToColor(Plugin.TumbleUIColorStunnedLight.Value, "#ff000032");
tumbleUI.updateTime = 1f / (float)Plugin.TumbleUIFrameRate.Value;
tumbleUI.introSpeed = Plugin.TumbleUIInSpeed.Value;
tumbleUI.outroSpeed = Plugin.TumbleUIOutSpeed.Value;
}
}
}
public class UITweak_TumbleWings : MonoBehaviour
{
[CompilerGenerated]
private sealed class <Change>d__12 : IEnumerator<object>, IDisposable, IEnumerator
{
private int <>1__state;
private object <>2__current;
public UITweak_TumbleWings <>4__this;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <Change>d__12(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
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
int num = <>1__state;
UITweak_TumbleWings uITweak_TumbleWings = <>4__this;
if (num != 0)
{
if (num != 1)
{
return false;
}
<>1__state = -1;
TextMeshProUGUI[] holder = uITweak_TumbleWings.holder;
for (int i = 0; i < holder.Length; i++)
{
((Graphic)holder[i]).color = Helpers.ToColor(Plugin.TumbleWingUIHolderColor.Value, "#00beff");
}
RawImage[] wings = uITweak_TumbleWings.wings;
for (int i = 0; i < wings.Length; i++)
{
((Graphic)wings[i]).color = Helpers.ToColor(Plugin.TumbleWingUIWingColor.Value, "#0065ff");
}
}
else
{
<>1__state = -1;
}
<>2__current = (object)new WaitForSeconds(1f);
<>1__state = 1;
return true;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
public const string hexColorWing = "#0065ff";
public const string hexColorHolder = "#00beff";
public const string hexColorBar = "#00bbff";
public static UITweak_TumbleWings instance;
private TumbleWingsUI tumbleWingsUI;
private TextMeshProUGUI[] holder;
private RawImage[] wings;
private RawImage bar;
private bool setup;
private void Start()
{
if ((Object)(object)instance != (Object)null)
{
Object.Destroy((Object)(object)this);
return;
}
instance = this;
tumbleWingsUI = ((Component)this).GetComponent<TumbleWingsUI>();
}
private void Setup()
{
if (!setup)
{
setup = true;
holder = (TextMeshProUGUI[])(object)new TextMeshProUGUI[2]
{
((Component)((Component)this).transform.Find("Bar/Holder Left")).gameObject.GetComponent<TextMeshProUGUI>(),
((Component)((Component)this).transform.Find("Bar/Holder Right")).gameObject.GetComponent<TextMeshProUGUI>()
};
wings = (RawImage[])(object)new RawImage[2]
{
((Component)((Component)this).transform.Find("Bar/Wing Left")).gameObject.GetComponentInChildren<RawImage>(true),
((Component)((Component)this).transform.Find("Bar/Wing Right")).gameObject.GetComponentInChildren<RawImage>(true)
};
bar = ((Component)((Component)this).transform.Find("Bar/Tumble Wings Bar")).gameObject.GetComponent<RawImage>();
((MonoBehaviour)this).StartCoroutine(Change());
}
}
private void Update()
{
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: 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_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: 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)
if (Object.op_Implicit((Object)(object)tumbleWingsUI.itemUpgradePlayerTumbleWingsLogic))
{
Setup();
if (!(tumbleWingsUI.itemUpgradePlayerTumbleWingsLogic.tumbleWingTimer <= 0f))
{
Color val = Helpers.ToColor(Plugin.TumbleWingUIBarColorStart.Value, "#00bbff");
Color val2 = Helpers.ToColor(Plugin.TumbleWingUIBarColorEnd.Value, "#00bbff");
((Graphic)bar).color = Color.Lerp(val2, val, tumbleWingsUI.itemUpgradePlayerTumbleWingsLogic.tumbleWingTimer);
}
}
}
[IteratorStateMachine(typeof(<Change>d__12))]
private IEnumerator Change()
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <Change>d__12(0)
{
<>4__this = this
};
}
}
}
namespace RepoHUDTweaks.patches
{
[HarmonyPatch(typeof(Aim))]
internal class AimPatch
{
[HarmonyPatch("Awake")]
[HarmonyPostfix]
private static void AwakeP()
{
Update();
}
public static void Update()
{
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Expected I4, but got Unknown
//IL_0075: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: 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_00cf: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: 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_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: 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_0113: Unknown result type (might be due to invalid IL or missing references)
if (!Object.op_Implicit((Object)(object)Aim.instance) || Aim.instance.aimStates.Count == 0)
{
return;
}
foreach (AimState aimState in Aim.instance.aimStates)
{
State state = aimState.State;
switch ((int)state)
{
case 0:
aimState.Color = Helpers.ToColor(Plugin.AimColorDefault.Value, aimState.Color);
break;
case 1:
aimState.Color = Helpers.ToColor(Plugin.AimColorGrabbable.Value, aimState.Color);
break;
case 2:
aimState.Color = Helpers.ToColor(Plugin.AimColorGrab.Value, aimState.Color);
break;
case 3:
aimState.Color = Helpers.ToColor(Plugin.AimColorRotate.Value, aimState.Color);
break;
case 5:
aimState.Color = Helpers.ToColor(Plugin.AimColorClimbable.Value, aimState.Color);
break;
case 6:
aimState.Color = Helpers.ToColor(Plugin.AimColorClimb.Value, aimState.Color);
break;
}
}
}
}
public class DirtFinderPatches
{
[HarmonyPatch(typeof(DirtFinderMapPlayer), "Awake")]
[HarmonyPostfix]
private static void DFMP_AwakeP()
{
UpdatePlayer();
}
public static void UpdatePlayer()
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
if (Object.op_Implicit((Object)(object)DirtFinderMapPlayer.Instance))
{
((Component)((Component)DirtFinderMapPlayer.Instance).transform.Find("Player Graphic")).GetComponent<SpriteRenderer>().color = Helpers.ToColor(Plugin.MapObjectPlayerColor.Value, "#72ff79");
}
}
[HarmonyPatch(typeof(DirtFinderMapDoorTarget), "Start")]
[HarmonyPostfix]
private static void DFMDT_StartP(ref DirtFinderMapDoorTarget __instance)
{
UpdateDoorTarget(__instance);
}
public static void UpdateAllDoorTargets()
{
DirtFinderMapDoorTarget[] array = Object.FindObjectsOfType<DirtFinderMapDoorTarget>();
for (int i = 0; i < array.Length; i++)
{
UpdateDoorTarget(array[i]);
}
}
private static void UpdateDoorTarget(DirtFinderMapDoorTarget target)
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
MeshRenderer[] componentsInChildren = ((Component)target).GetComponentsInChildren<MeshRenderer>(true);
for (int i = 0; i < componentsInChildren.Length; i++)
{
((Renderer)componentsInChildren[i]).material.color = Helpers.ToColor(Plugin.MapObjectDoorColor.Value, "#45ff50");
}
}
[HarmonyPatch(typeof(MapBacktrack), "Start")]
[HarmonyPostfix]
private static void MB_StartP(ref MapBacktrack __instance)
{
UpdateBacktrack(__instance);
}
public static void UpdateBacktrack(MapBacktrack mb)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)mb == (Object)null)
{
mb = Object.FindObjectOfType<MapBacktrack>();
}
if (!((Object)(object)mb == (Object)null))
{
for (int i = 0; i < mb.points.Count; i++)
{
Color color = GetLerp(i, mb.points.Count - 1);
mb.points[i].spriteRenderer.color = color;
}
}
static Color GetLerp(int index, int count)
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
Color val = Helpers.ToColor(Plugin.MapObjectBacktrackColorStart.Value, "#ffffff");
Color val2 = Helpers.ToColor(Plugin.MapObjectBacktrackColorEnd.Value, "#ffffff");
return Color.Lerp(val, val2, (float)index / (float)count);
}
}
}
[HarmonyPatch(typeof(EnergyUI))]
internal class EnergyUIPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref EnergyUI __instance)
{
((Component)__instance).gameObject.AddComponent<UITweak_Stamina>();
}
}
[HarmonyPatch(typeof(GoalUI))]
internal class GoalUIPatch
{
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void UpdateP(ref GoalUI __instance)
{
//IL_006c: 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)
((TMP_Text)__instance.Text).text = ((TMP_Text)__instance.Text).text.Replace("#7D250B", Plugin.GoalUISlashColor.Value);
if (((SemiUI)__instance).flashColorTime > 0f)
{
((SemiUI)__instance).originalTextColor = Helpers.ToColor(Plugin.GoalUIColor.Value, "#ff5f00");
}
else
{
((Graphic)__instance.Text).color = Helpers.ToColor(Plugin.GoalUIColor.Value, "#ff5f00");
}
}
}
[HarmonyPatch(typeof(HaulUI))]
internal class HaulUIPatch
{
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void UpdateP(ref HaulUI __instance)
{
//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: 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)
((TMP_Text)__instance.Text).text = ((TMP_Text)__instance.Text).text.Replace("#558B2F", Plugin.HaulUIDollarSignColor.Value);
((TMP_Text)__instance.Text).text = ((TMP_Text)__instance.Text).text.Replace("#558b2f", Plugin.HaulUIDollarSignColor.Value);
((TMP_Text)__instance.Text).text = ((TMP_Text)__instance.Text).text.Replace("#616161", Plugin.HaulUISlashColor.Value);
if (((SemiUI)__instance).flashColorTime > 0f)
{
((SemiUI)__instance).originalTextColor = Helpers.ToColor(Plugin.HaulUIColor.Value, "#c9e9e6");
}
else
{
((Graphic)__instance.Text).color = Helpers.ToColor(Plugin.HaulUIColor.Value, "#c9e9e6");
}
}
}
[HarmonyPatch(typeof(HealthUI))]
internal class HealthUIPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref HealthUI __instance)
{
((Component)__instance).gameObject.AddComponent<UITweak_Health>();
}
}
[HarmonyPatch(typeof(HurtVignette))]
internal class HurtVignettePatch
{
[HarmonyPatch("Update")]
[HarmonyPrefix]
private static bool UpdateP(ref HurtVignette __instance)
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_0103: Unknown result type (might be due to invalid IL or missing references)
//IL_0108: Unknown result type (might be due to invalid IL or missing references)
//IL_012e: Unknown result type (might be due to invalid IL or missing references)
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
if (!LevelGenerator.Instance.Generated || SemiFunc.MenuLevel())
{
return false;
}
if ((Object)(object)PlayerAvatar.instance == (Object)null)
{
return false;
}
__instance.activeColor = Helpers.ToColor(Plugin.HurtVignetteColor.Value, __instance.activeColor);
if (!Plugin.HurtVignetteHealthBased.Value || !Object.op_Implicit((Object)(object)PlayerAvatar.instance.playerHealth))
{
return true;
}
float num = (float)PlayerAvatar.instance.playerHealth.health / (float)PlayerAvatar.instance.playerHealth.maxHealth;
float num2 = Mathf.Max(Plugin.HurtVignetteHealthBasedScaleMax.Value, Plugin.HurtVignetteHealthBasedScaleMin.Value);
float num3 = Mathf.Min(Plugin.HurtVignetteHealthBasedScaleMax.Value, Plugin.HurtVignetteHealthBasedScaleMin.Value);
if ((num >= 1f && !Plugin.HurtVignetteAtMaxHealth.Value) || (PlayerAvatar.instance.isDisabled && !Plugin.HurtVignetteWhileDead.Value))
{
Image image = __instance.image;
((Graphic)image).color = ((Graphic)image).color * new Color(0f, 0f, 0f, 0f);
}
else
{
((Graphic)__instance.image).color = __instance.activeColor;
}
((Transform)__instance.rectTransform).localScale = Vector3.one * Mathf.Lerp(num3, num2, num);
return false;
}
public static void SpoofLerp()
{
if (Object.op_Implicit((Object)(object)HurtVignette.instance))
{
HurtVignette.instance.lerp = 0.5f;
}
}
}
[HarmonyPatch(typeof(ItemInfoUI))]
internal class ItemInfoUIPatch
{
public const string colorGradStart = "#ffff00";
public const string colorGradEnd = "#ff6300";
public const string colorGradEnemyStart = "#ff0000";
public const string colorGradEnemyEnd = "#ff1a00";
[HarmonyPatch("ItemInfoText")]
[HarmonyPostfix]
private static void ItemInfoText(ref ItemInfoUI __instance, ref bool enemy)
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: 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_0070: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: 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)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: 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)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
if (enemy)
{
Color val = Helpers.ToColor(Plugin.ItemInfoUIGradEnemyStart.Value, "#ff0000");
Color val2 = Helpers.ToColor(Plugin.ItemInfoUIGradEnemyEnd.Value, "#ff1a00");
((TMP_Text)__instance.Text).colorGradient = new VertexGradient(val, val, val2, val2);
}
else
{
Color val3 = Helpers.ToColor(Plugin.ItemInfoUIGradStart.Value, "#ffff00");
Color val4 = Helpers.ToColor(Plugin.ItemInfoUIGradEnd.Value, "#ff6300");
__instance.originalGradient = new VertexGradient(val3, val3, val4, val4);
}
}
}
[HarmonyPatch(typeof(Map))]
public class MapPatch
{
public const string colorWall = "#077600";
public const string colorFloor = "#004803";
public const string colorInactiveWall = "#8e4000";
public const string colorInactiveFloor = "#542400";
public const string colorTruckWall = "#00797d";
public const string colorTruckFloor = "#005154";
public const string colorUsedWall = "#950001";
public const string colorUsedFloor = "#4d0005";
public const string colorUnexploredOutline = "#008908";
public const string colorUnexplored = "#000000";
public const string colorStairs = "#2aff37";
public const string colorUnexploredGraphic = "#00bc09";
public const string colorObjectItem = "#00ffeb";
public const string colorObjectValuable = "#ffd300";
public const string colorObjectDeathHead = "#ff000e";
public const string colorObjectDoor = "#45ff50";
public const string colorObjectPlayer = "#72ff79";
public const string colorObjectBacktrack = "#ffffff";
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref Map __instance)
{
//IL_01af: Unknown result type (might be due to invalid IL or missing references)
//IL_01f1: 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_024a: Unknown result type (might be due to invalid IL or missing references)
//IL_026a: Unknown result type (might be due to invalid IL or missing references)
//IL_028a: Unknown result type (might be due to invalid IL or missing references)
//IL_02aa: Unknown result type (might be due to invalid IL or missing references)
//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_032a: Unknown result type (might be due to invalid IL or missing references)
//IL_034f: Unknown result type (might be due to invalid IL or missing references)
List<GameObject> obj = new List<GameObject>
{
__instance.Wall1x1Object, __instance.Wall1x1DiagonalObject, __instance.Wall1x1CurveObject, __instance.Wall1x05Object, __instance.Wall1x05DiagonalObject, __instance.Wall1x05CurveObject, __instance.Wall1x025Object, __instance.Wall1x025DiagonalObject, __instance.Door1x1Object, __instance.Door1x05Object,
__instance.Door1x1DiagonalObject, __instance.Door1x05DiagonalObject, __instance.Door1x2Object, __instance.Door1x1WizardObject, __instance.Door1x1ArcticObject, __instance.Door1x1MuseumObject, __instance.DoorBlockedObject, __instance.DoorBlockedWizardObject, __instance.DoorBlockedArcticObject, __instance.DoorDiagonalObject
};
List<GameObject> list = new List<GameObject> { __instance.FloorObject1x1, __instance.FloorObject1x1Diagonal, __instance.FloorObject1x1Curve, __instance.FloorObject1x1CurveInverted, __instance.FloorObject1x05, __instance.FloorObject1x05Diagonal, __instance.FloorObject1x05Curve, __instance.FloorObject1x05CurveInverted, __instance.FloorObject1x025, __instance.FloorObject1x025Diagonal };
foreach (GameObject item in obj)
{
ApplyColorToMeshRenderer(item, Helpers.ToColor(Plugin.MapWallColor.Value, "#077600"));
}
foreach (GameObject item2 in list)
{
ApplyColorToMeshRenderer(item2, Helpers.ToColor(Plugin.MapFloorColor.Value, "#004803"));
}
ApplyColorToMeshRenderer(__instance.StairsObject, Helpers.ToColor(Plugin.MapStairsColor.Value, "#2aff37"));
ApplyColorToMeshRenderer(__instance.WallInactive, Helpers.ToColor(Plugin.MapInactiveWallColor.Value, "#8e4000"));
ApplyColorToMeshRenderer(__instance.FloorInactive, Helpers.ToColor(Plugin.MapInactiveFloorColor.Value, "#542400"));
ApplyColorToMeshRenderer(__instance.WallTruck, Helpers.ToColor(Plugin.MapTruckWallColor.Value, "#00797d"));
ApplyColorToMeshRenderer(__instance.FloorTruck, Helpers.ToColor(Plugin.MapTruckFloorColor.Value, "#005154"));
ApplyColorToMeshRenderer(__instance.WallUsed, Helpers.ToColor(Plugin.MapUsedWallColor.Value, "#950001"));
ApplyColorToMeshRenderer(__instance.FloorUsed, Helpers.ToColor(Plugin.MapUsedFloorColor.Value, "#4d0005"));
ApplyColorToMeshRenderer(__instance.RoomVolumeOutline, Helpers.ToColor(Plugin.MapUnexploredOutlineColor.Value, "#008908"));
ApplyColorToMeshRenderer(__instance.RoomVolume, Helpers.ToColor(Plugin.MapUnexploredColor.Value, "#000000"));
__instance.ModulePrefab.GetComponentInChildren<SpriteRenderer>().color = Helpers.ToColor(Plugin.MapUnexploredGraphicColor.Value, "#00bc09");
}
private static void ApplyColorToMeshRenderer(GameObject mapObject, Color color)
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
MeshRenderer[] componentsInChildren = mapObject.GetComponentsInChildren<MeshRenderer>(true);
foreach (MeshRenderer val in componentsInChildren)
{
if (!((Object)(object)val == (Object)null))
{
((Renderer)val).material.color = color;
}
}
}
private static Color ConvertCustomEntityColor(Color color)
{
//IL_0005: 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_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
string text = "#" + ColorUtility.ToHtmlStringRGB(color).ToLower();
if (text == "#00ffeb")
{
return Helpers.ToColor(Plugin.MapObjectItemColor.Value, "#00ffeb");
}
if (text == "#ff000e")
{
return Helpers.ToColor(Plugin.MapObjectDeathHeadColor.Value, "#ff000e");
}
return color;
}
[HarmonyPatch(typeof(MapValuable), "Start")]
[HarmonyPostfix]
private static void MapValuable_StartP(ref MapValuable __instance)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
__instance.spriteRenderer.color = Helpers.ToColor(Plugin.MapObjectValuableColor.Value, "#ffd300");
}
[HarmonyPatch("AddCustom")]
[HarmonyPrefix]
private static void AddCustomP(ref Color color)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
color = ConvertCustomEntityColor(color);
}
public static void UpdateAllValuables()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
MapValuable[] array = Object.FindObjectsOfType<MapValuable>();
for (int i = 0; i < array.Length; i++)
{
array[i].spriteRenderer.color = Helpers.ToColor(Plugin.MapObjectValuableColor.Value, "#ffd300");
}
}
public static void UpdateAllItems()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
MapCustomEntity[] array = Object.FindObjectsOfType<MapCustomEntity>();
foreach (MapCustomEntity val in array)
{
val.spriteRenderer.color = ConvertCustomEntityColor(val.mapCustom.color);
}
}
}
[HarmonyPatch(typeof(OverchargeRoundBarUI))]
internal class OverchargeRoundBarUIPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref OverchargeRoundBarUI __instance)
{
((Component)__instance).gameObject.AddComponent<UITweak_Overcharge>();
}
}
[HarmonyPatch(typeof(PhysGrabber))]
internal class PhysGrabberPatch
{
private static string cachedName = "";
private static string lastName = "";
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void UpdateP(ref PhysGrabber __instance)
{
if (__instance.isLocal && Plugin.ItemInfoUIShowValuableNames.Value && Object.op_Implicit((Object)(object)__instance.grabbedPhysGrabObject) && __instance.grabbedPhysGrabObject.isValuable)
{
ItemInfoUI.instance.ItemInfoText((ItemAttributes)null, GetName(((Object)__instance.grabbedPhysGrabObject).name), false);
}
}
private static string GetName(string gameObjectName)
{
if (gameObjectName == cachedName)
{
return lastName;
}
lastName = gameObjectName.Replace("Valuable Wizard ", "").Replace("Valuable Manor ", "").Replace("Valuable Arctic ", "")
.Replace("Valuable Museum ", "")
.Replace("Valuable ", "")
.Replace("(Clone)", "");
cachedName = gameObjectName;
return lastName;
}
}
[HarmonyPatch(typeof(PhysGrabObjectImpactDetector))]
internal class PhysGrabObjectImpactDetectorPatch
{
[HarmonyPatch("DestroyObjectRPC")]
[HarmonyPrefix]
private static void DestroyObjectRPCP(ref PhysGrabObjectImpactDetector __instance, ref PhotonMessageInfo _info)
{
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
if (Plugin.WSUIVL_AlwaysDisplayWhenPossible.Value && SemiFunc.MasterOnlyRPC(_info) && Object.op_Implicit((Object)(object)__instance.valuableObject) && !(__instance.valuableObject.dollarValueCurrent < __instance.valuableObject.dollarValueOriginal * 0.15f))
{
WorldSpaceUIParent.instance.ValueLostCreate(((Component)__instance).transform.position, (int)__instance.valuableObject.dollarValueCurrent);
}
}
}
[HarmonyPatch(typeof(PlayerController))]
internal class PlayerControllerPatch
{
private static PlayerAvatar Self => PlayerAvatar.instance;
private static PlayerTumble Tumble => PlayerAvatar.instance.tumble;
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void UpdateP(ref PlayerController __instance)
{
if (!LevelGenerator.Instance.Generated || SemiFunc.MenuLevel())
{
return;
}
bool flag = Mathf.Abs(SemiFunc.InputMovementX()) > 0f || Mathf.Abs(SemiFunc.InputMovementY()) > 0f;
if (Self.isTumbling)
{
if (Plugin.WASDCancelsTumbleImmediately.Value)
{
bool flag2 = __instance.tumbleInputDisableTimer <= 0f && !Tumble.tumbleOverride && __instance.InputDisableTimer <= 0f;
if (flag && flag2)
{
Tumble.TumbleRequest(false, true);
}
}
}
else
{
if (Plugin.SpaceToExitCrouch.Value && __instance.toggleCrouch && __instance.JumpImpulse)
{
__instance.toggleCrouch = false;
}
if (Plugin.SprintToExitCrouch.Value && __instance.toggleCrouch && flag && SemiFunc.InputDown((InputKey)15) && __instance.InputDisableTimer <= 0f)
{
__instance.toggleCrouch = false;
}
}
}
}
[HarmonyPatch(typeof(PlayerTumble))]
internal class PlayerTumblePatch
{
}
[HarmonyPatch(typeof(TumbleUI))]
internal class TumbleUIPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref TumbleUI __instance)
{
((Component)__instance).gameObject.AddComponent<UITweak_Tumble>();
}
}
[HarmonyPatch(typeof(TumbleWingsUI))]
internal class TumbleWingsUIPatch
{
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(ref TumbleWingsUI __instance)
{
((Component)__instance).gameObject.AddComponent<UITweak_TumbleWings>();
}
}
[HarmonyPatch(typeof(WorldSpaceUIValueLost))]
internal class WorldSpaceUIValueLostPatch
{
public class ValueBreakpoint
{
public ConfigEntry<string> color;
public ConfigEntry<float> scale;
public ConfigEntry<float> time;
public ValueBreakpoint(ConfigEntry<string> _color, ConfigEntry<float> _scale, ConfigEntry<float> _time)
{
color = _color;
scale = _scale;
time = _time;
}
}
public const string VALUE_LOST_COLOR = "#f13337";
public static Dictionary<float, ValueBreakpoint> valueBreakpoints = new Dictionary<float, ValueBreakpoint>
{
{
50000f,
new ValueBreakpoint(Plugin.WSUIVL_Color50000, Plugin.WSUIVL_Scale50000, Plugin.WSUIVL_Timer50000)
},
{
10000f,
new ValueBreakpoint(Plugin.WSUIVL_Color10000, Plugin.WSUIVL_Scale10000, Plugin.WSUIVL_Timer10000)
},
{
5000f,
new ValueBreakpoint(Plugin.WSUIVL_Color5000, Plugin.WSUIVL_Scale5000, Plugin.WSUIVL_Timer5000)
},
{
1000f,
new ValueBreakpoint(Plugin.WSUIVL_Color1000, Plugin.WSUIVL_Scale1000, Plugin.WSUIVL_Timer1000)
},
{
0f,
new ValueBreakpoint(Plugin.WSUIVL_Color0, Plugin.WSUIVL_Scale0, Plugin.WSUIVL_Timer0)
}
};
private static (ValueBreakpoint, ValueBreakpoint, float) GetBreakpoint(float value)
{
if (value <= 0f)
{
return (valueBreakpoints.Last().Value, valueBreakpoints.Last().Value, 0f);
}
ValueBreakpoint value2 = valueBreakpoints.First().Value;
float num = float.MaxValue;
foreach (KeyValuePair<float, ValueBreakpoint> valueBreakpoint in valueBreakpoints)
{
if (value >= valueBreakpoint.Key)
{
return (valueBreakpoint.Value, value2, Mathf.InverseLerp(valueBreakpoint.Key, num, value));
}
value2 = valueBreakpoint.Value;
num = valueBreakpoint.Key;
}
return (value2, value2, 0f);
}
[HarmonyPatch("Start")]
[HarmonyPostfix]
private static void StartP(WorldSpaceUIValueLost __instance)
{
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: 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_00eb: Unknown result type (might be due to invalid IL or missing references)
if (Plugin.WSUIVL_EnablePatch.Value)
{
(ValueBreakpoint, ValueBreakpoint, float) breakpoint = GetBreakpoint(__instance.value);
Color textColor = (Plugin.WSUIVL_InterpolateColor.Value ? Color.Lerp(Helpers.ToColor(breakpoint.Item1.color.Value, "#f13337"), Helpers.ToColor(breakpoint.Item2.color.Value, "#f13337"), breakpoint.Item3) : Helpers.ToColor(breakpoint.Item1.color.Value, "#f13337"));
__instance.textColor = textColor;
float num = (Plugin.WSUIVL_InterpolateScale.Value ? Mathf.Lerp(breakpoint.Item1.scale.Value, breakpoint.Item2.scale.Value, breakpoint.Item3) : breakpoint.Item1.scale.Value);
__instance.scale = Vector3.one * num;
((Component)__instance).transform.localScale = __instance.scale;
float timer = (Plugin.WSUIVL_InterpolateTimer.Value ? Mathf.Lerp(breakpoint.Item1.time.Value, breakpoint.Item2.time.Value, breakpoint.Item3) : breakpoint.Item1.time.Value);
__instance.timer = timer;
}
}
}
[HarmonyPatch(typeof(WorldSpaceUIValue))]
internal class WorldSpaceUIValuePatch
{
public const string VALUE_COLOR = "#00a825";
public const string COST_COLOR = "#f13337";
private static float currentDisplayValue;
private static float targetDisplayValue;
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void UpdateP(ref WorldSpaceUIValue __instance)
{
if (__instance.showTimer <= 0f)
{
currentDisplayValue = 0f;
targetDisplayValue = 0f;
}
}
[HarmonyPatch("Show")]
[HarmonyPostfix]
private static void ShowP(ref PhysGrabObject _grabObject, ref bool _cost)
{
if (Plugin.WorldSpaceValueUIEnablePatch.Value)
{
if (_cost)
{
HandleCost();
}
else
{
HandleValue(((Component)_grabObject).GetComponent<ValuableObject>());
}
}
}
private static void HandleCost()
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
if (!((Object)(object)WorldSpaceUIValue.instance == (Object)null))
{
((Graphic)WorldSpaceUIValue.instance.text).color = Helpers.ToColor(Plugin.WorldSpaceValueUIColorCost.Value, "#f13337");
}
}
private static void HandleValue(ValuableObject valuable)
{
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
if (!((Object)(object)valuable == (Object)null))
{
float dollarValueCurrent = valuable.dollarValueCurrent;
float dollarValueOriginal = valuable.dollarValueOriginal;
float progress = Mathf.Clamp01(dollarValueCurrent / dollarValueOriginal);
targetDisplayValue = dollarValueCurrent;
float num = ((currentDisplayValue < targetDisplayValue) ? Plugin.WorldSpaceValueUICountUpTime.Value : Plugin.WorldSpaceValueUICountDownTime.Value);
if (num == 0f)
{
currentDisplayValue = targetDisplayValue;
}
else
{
currentDisplayValue = Mathf.Lerp(currentDisplayValue, targetDisplayValue, num * Time.deltaTime);
}
if (Mathf.Abs(currentDisplayValue - targetDisplayValue) < 0.2f || targetDisplayValue <= 0f)
{
currentDisplayValue = targetDisplayValue;
}
((Graphic)WorldSpaceUIValue.instance.text).color = GetColorFromProgress(progress);
((TMP_Text)WorldSpaceUIValue.instance.text).text = "$" + SemiFunc.DollarGetString((int)currentDisplayValue);
}
}
private static Color GetColorFromProgress(float progress)
{
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: 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)
float num = 0.5f * Mathf.InverseLerp(0.67f, 1f, progress);
num += 0.5f * Mathf.InverseLerp(0.2f, 0.67f, progress);
if (num >= 0.5f)
{
return Color.Lerp(Helpers.ToColor(Plugin.WorldSpaceValueUIColorMed.Value, "#00a825"), Helpers.ToColor(Plugin.WorldSpaceValueUIColorMax.Value, "#00a825"), (num - 0.5f) / 0.5f);
}
return Color.Lerp(Helpers.ToColor(Plugin.WorldSpaceValueUIColorMin.Value, "#00a825"), Helpers.ToColor(Plugin.WorldSpaceValueUIColorMed.Value, "#00a825"), num / 0.5f);
}
}
}
namespace RepoHUDTweaks.compatibilityPatches
{
internal class WalkieTalkieCompatibilityPatch
{
[HarmonyPatch(typeof(WalkieController), "TryCreateBatteryUi")]
[HarmonyPostfix]
private static void TryCreateBatteryUiP(ref WalkieBatteryUI ____batteryUi)
{
Image[] componentsInChildren = ((Component)____batteryUi).gameObject.GetComponentsInChildren<Image>(true);
for (int i = 0; i < componentsInChildren.Length; i++)
{
((Behaviour)componentsInChildren[i]).enabled = false;
}
}
}
}