Decompiled source of AntlersDecay v1.1.1

AntlersDecay.dll

Decompiled 3 months ago
using System;
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.Logging;
using Microsoft.CodeAnalysis;
using On.RoR2;
using RoR2;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("AntlersDecay")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("AntlersDecay")]
[assembly: AssemblyTitle("AntlersDecay")]
[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.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace AntlersDecay
{
	[BepInPlugin("HIFU.AntlersDecay", "AntlersDecay", "1.1.0")]
	public class Main : BaseUnityPlugin
	{
		public const string PluginGUID = "HIFU.AntlersDecay";

		public const string PluginAuthor = "HIFU";

		public const string PluginName = "AntlersDecay";

		public const string PluginVersion = "1.1.0";

		public static ManualLogSource adLogger;

		public static GameObject ppHolder;

		public static GameObject ppHolderUI;

		public static Color32 rallypointDeltaColor = new Color32((byte)187, (byte)236, byte.MaxValue, byte.MaxValue);

		public static Color32 titanicPlainsColor = new Color32((byte)238, (byte)238, (byte)238, byte.MaxValue);

		public static Color32 commencementStartColor = new Color32((byte)70, (byte)83, (byte)120, byte.MaxValue);

		public static Color32 commencementMidColor = new Color32((byte)37, (byte)43, (byte)52, (byte)125);

		public static Color32 grayColor = new Color32((byte)174, (byte)174, (byte)174, byte.MaxValue);

		public void Awake()
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			adLogger = ((BaseUnityPlugin)this).Logger;
			if (ppHolder == null)
			{
				ppHolder = InitPP("AntlersDecay");
			}
			Highlight.Awake += new hook_Awake(Highlight_Awake);
			SceneManager.sceneLoaded += SceneManager_sceneLoaded;
		}

		private void SceneManager_sceneLoaded(Scene scene, LoadSceneMode arg1)
		{
			string name = ((Scene)(ref scene)).name;
			SwitchPP(name);
		}

		private void Highlight_Awake(orig_Awake orig, Highlight self)
		{
			orig.Invoke(self);
			self.strength = 0.75f;
		}

		public static void SwitchPP(string sceneName)
		{
			//IL_0772: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_0591: Unknown result type (might be due to invalid IL or missing references)
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0421: Unknown result type (might be due to invalid IL or missing references)
			//IL_0426: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Unknown result type (might be due to invalid IL or missing references)
			//IL_030e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0313: Unknown result type (might be due to invalid IL or missing references)
			//IL_0557: Unknown result type (might be due to invalid IL or missing references)
			//IL_055c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0561: Unknown result type (might be due to invalid IL or missing references)
			//IL_0635: Unknown result type (might be due to invalid IL or missing references)
			//IL_063a: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06de: Unknown result type (might be due to invalid IL or missing references)
			//IL_0740: Unknown result type (might be due to invalid IL or missing references)
			//IL_0745: Unknown result type (might be due to invalid IL or missing references)
			//IL_0378: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_048c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0491: Unknown result type (might be due to invalid IL or missing references)
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04db: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0522: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_0600: Unknown result type (might be due to invalid IL or missing references)
			//IL_0605: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0343: Unknown result type (might be due to invalid IL or missing references)
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_066f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0674: Unknown result type (might be due to invalid IL or missing references)
			//IL_070e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0713: Unknown result type (might be due to invalid IL or missing references)
			PostProcessProfile profile = ppHolder.GetComponent<PostProcessVolume>().profile;
			((Object)profile).name = sceneName + " | Antler's Decay";
			ColorGrading setting = profile.GetSetting<ColorGrading>();
			adLogger.LogDebug((object)("color grading is " + (object)setting));
			switch (sceneName)
			{
			case "dampcavesimple":
				((ParameterOverride<float>)(object)setting.saturation).value = -64f;
				((ParameterOverride<float>)(object)setting.contrast).value = 20f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "wispgraveyard":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 5f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "rootjungle":
				((ParameterOverride<float>)(object)setting.saturation).value = -40f;
				((ParameterOverride<float>)(object)setting.contrast).value = 0f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "frozenwall":
				((ParameterOverride<float>)(object)setting.saturation).value = 0f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(rallypointDeltaColor);
				break;
			case "golemplains":
				((ParameterOverride<float>)(object)setting.contrast).value = 25f;
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(titanicPlainsColor);
				break;
			case "golemplains2":
				((ParameterOverride<float>)(object)setting.contrast).value = 25f;
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(titanicPlainsColor);
				break;
			case "moon2":
			{
				Transform child = GameObject.Find("HOLDER: Gameplay Space").transform.GetChild(0).Find("Quadrant 4: Starting Temple").GetChild(0)
					.GetChild(0)
					.Find("FX")
					.GetChild(0);
				PostProcessVolume component = ((Component)child).GetComponent<PostProcessVolume>();
				RampFog setting2 = component.profile.GetSetting<RampFog>();
				((ParameterOverride<Color>)(object)setting2.fogColorStart).value = Color32.op_Implicit(commencementStartColor);
				((ParameterOverride<Color>)(object)setting2.fogColorMid).value = Color32.op_Implicit(commencementMidColor);
				component.weight = 0.68f;
				HookLightingIntoPostProcessVolume component2 = ((Component)child).GetComponent<HookLightingIntoPostProcessVolume>();
				component2.overrideAmbientColor = Color32.op_Implicit(new Color32((byte)71, (byte)71, (byte)81, byte.MaxValue));
				component2.overrideDirectionalColor = Color32.op_Implicit(new Color32((byte)41, (byte)34, (byte)41, byte.MaxValue));
				((ParameterOverride<float>)(object)setting.saturation).value = -10f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			}
			case "arena":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(grayColor);
				break;
			case "goolake":
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<float>)(object)setting.saturation).value = -20f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(titanicPlainsColor);
				break;
			case "voidraid":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "voidstage":
				((ParameterOverride<float>)(object)setting.saturation).value = -20f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "skymeadow":
				((ParameterOverride<float>)(object)setting.saturation).value = -20f;
				((ParameterOverride<float>)(object)setting.contrast).value = 5f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "foggyswamp":
				((ParameterOverride<float>)(object)setting.contrast).value = 5f;
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color32.op_Implicit(titanicPlainsColor);
				break;
			case "blackbeach":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 10f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "blackbeach2":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 10f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "sulfurpools":
				((ParameterOverride<float>)(object)setting.saturation).value = -30f;
				((ParameterOverride<float>)(object)setting.contrast).value = 5f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			case "shipgraveyard":
				((ParameterOverride<float>)(object)setting.saturation).value = -20f;
				((ParameterOverride<float>)(object)setting.contrast).value = 10f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			default:
				((ParameterOverride<float>)(object)setting.saturation).value = -15f;
				((ParameterOverride<float>)(object)setting.contrast).value = 15f;
				((ParameterOverride<Color>)(object)setting.colorFilter).value = Color.white;
				break;
			}
		}

		public static GameObject InitPP(string name)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: 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)
			GameObject val = new GameObject(name);
			Object.DontDestroyOnLoad((Object)(object)val);
			val.layer = LayerIndex.postProcess.intVal;
			val.AddComponent<AntlersDecayController>();
			PostProcessVolume val2 = val.AddComponent<PostProcessVolume>();
			Object.DontDestroyOnLoad((Object)(object)val2);
			val2.isGlobal = true;
			val2.weight = 1f;
			val2.priority = float.MaxValue;
			PostProcessProfile val3 = ScriptableObject.CreateInstance<PostProcessProfile>();
			Object.DontDestroyOnLoad((Object)(object)val3);
			((Object)val3).name = "pp" + name;
			ColorGrading val4 = val3.AddSettings<ColorGrading>();
			((PostProcessEffectSettings)val4).SetAllOverridesTo(true, true);
			val2.sharedProfile = val3;
			((ParameterOverride<bool>)(object)((PostProcessEffectSettings)val4).enabled).value = true;
			((ParameterOverride<float>)(object)val4.saturation).value = -20f;
			((ParameterOverride<float>)(object)val4.contrast).value = 30f;
			((ParameterOverride<Tonemapper>)(object)val4.tonemapper).value = (Tonemapper)3;
			((ParameterOverride<float>)(object)val4.toneCurveToeStrength).value = 1f;
			((ParameterOverride<float>)(object)val4.toneCurveToeLength).value = 0.15f;
			((ParameterOverride<Vector4>)(object)val4.lift).value = new Vector4(1f, 1f, 1.03f, 0f);
			((ParameterOverride<Vector4>)(object)val4.gamma).value = new Vector4(1.15f, 1f, 1f, 0f);
			Grain val5 = val3.AddSettings<Grain>();
			((PostProcessEffectSettings)val5).SetAllOverridesTo(true, true);
			((ParameterOverride<float>)(object)val5.intensity).value = 0.13f;
			Bloom val6 = val3.AddSettings<Bloom>();
			((PostProcessEffectSettings)val6).SetAllOverridesTo(true, true);
			AmbientOcclusion val7 = val3.AddSettings<AmbientOcclusion>();
			((PostProcessEffectSettings)val7).SetAllOverridesTo(true, true);
			Vignette val8 = val3.AddSettings<Vignette>();
			((PostProcessEffectSettings)val8).SetAllOverridesTo(true, true);
			((ParameterOverride<float>)(object)val7.intensity).value = 0.3f;
			((ParameterOverride<float>)(object)val7.radius).value = 0.25f;
			((ParameterOverride<float>)(object)val7.thicknessModifier).value = 100f;
			((ParameterOverride<float>)(object)val7.upsampleTolerance).value = 0f;
			((ParameterOverride<float>)(object)val8.intensity).value = 0.2f;
			return val;
		}
	}
	public class AntlersDecayController : MonoBehaviour
	{
		public PostProcessVolume volume;

		public void Start()
		{
			volume = ((Component)this).GetComponent<PostProcessVolume>();
		}
	}
}