Decompiled source of StageAesthetic v1.0.4

StageAesthetic.dll

Decompiled 10 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using FRCSharp;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using On.RoR2;
using On.RoR2.UI;
using RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
using RoR2;
using RoR2.UI;
using StageAesthetic.Config;
using StageAesthetic.Variants.Special;
using StageAesthetic.Variants.Stage1;
using StageAesthetic.Variants.Stage2;
using StageAesthetic.Variants.Stage3;
using StageAesthetic.Variants.Stage4;
using StageAesthetic.Variants.Stage5;
using TMPro;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")]
[assembly: AssemblyCompany("StageAesthetic")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("StageAesthetic")]
[assembly: AssemblyTitle("StageAesthetic")]
[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 StageAesthetic
{
	[BepInPlugin("HIFU", "StageAesthetic", "1.0.3")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	internal class Main : BaseUnityPlugin
	{
		public const string PluginGUID = "HIFU.StageAesthetic";

		public const string PluginAuthor = "HIFU";

		public const string PluginName = "StageAesthetic";

		public const string PluginVersion = "1.0.3";

		public static AssetBundle stageaesthetic;

		public static Shader cloudRemap = Addressables.LoadAssetAsync<Shader>((object)"RoR2/Base/Shaders/HGCloudRemap.shader").WaitForCompletion();

		public static Shader snowTopped = Addressables.LoadAssetAsync<Shader>((object)"RoR2/Base/Shaders/HGSnowTopped.shader").WaitForCompletion();

		public static List<RampFog> DumbfuckRampFogs = new List<RampFog>();

		public static Material[] materials;

		public static Texture2D abyssalDirt;

		public static Texture2D abyssalGrass;

		public static Texture2D abyssalGravel;

		public static Material abyssalPlatform;

		public static Material distantRoostVoidTerrainMat;

		public static Material distantRoostVoidTerrainMat2;

		public static Material distantRoostVoidDetailMat;

		public static Material distantRoostVoidDetailMat2;

		public static Material distantRoostVoidWaterMat;

		public static Material distantRoostAbyssalTerrainMat;

		public static Material distantRoostAbyssalTerrainMat2;

		public static Material distantRoostAbyssalDetailMat;

		public static Material distantRoostAbyssalDetailMat2;

		public static Material distantRoostAbyssalWaterMat;

		public static bool ForgottenRelicsLoaded = false;

		public void Awake()
		{
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: 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_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: 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_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_0263: Unknown result type (might be due to invalid IL or missing references)
			//IL_0268: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_033e: 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_0372: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_049f: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b9: 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_04ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0504: Unknown result type (might be due to invalid IL or missing references)
			//IL_0524: Unknown result type (might be due to invalid IL or missing references)
			//IL_0529: Unknown result type (might be due to invalid IL or missing references)
			//IL_0599: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_060c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0611: Unknown result type (might be due to invalid IL or missing references)
			SwapVariants.SALogger = ((BaseUnityPlugin)this).Logger;
			stageaesthetic = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("StageAesthetic.dll", "stageaesthetic"));
			materials = stageaesthetic.LoadAllAssets<Material>();
			Material[] array = materials;
			foreach (Material val in array)
			{
				string name = ((Object)val.shader).name;
				if (!(name == "StubbedShader/fx/hgcloudremap"))
				{
					if (name == "StubbedShader/deferred/hgsnowtopped")
					{
						val.shader = snowTopped;
					}
				}
				else
				{
					val.shader = cloudRemap;
				}
			}
			abyssalDirt = stageaesthetic.LoadAsset<Texture2D>("Assets/StageAesthetic/Materials/texDirt.png");
			abyssalGrass = stageaesthetic.LoadAsset<Texture2D>("Assets/StageAesthetic/Materials/texRedGrass.png");
			abyssalGravel = stageaesthetic.LoadAsset<Texture2D>("Assets/StageAesthetic/Materials/texLavenderGravel.png");
			abyssalPlatform = stageaesthetic.LoadAsset<Material>("Assets/StageAesthetic/Materials/matAbyssalPlatform.mat");
			distantRoostVoidTerrainMat = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/arena/matArenaTerrain.mat").WaitForCompletion());
			distantRoostVoidTerrainMat.color = Color32.op_Implicit(new Color32((byte)188, (byte)162, (byte)162, byte.MaxValue));
			distantRoostVoidTerrainMat2 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/arena/matArenaTerrainVerySnowy.mat").WaitForCompletion());
			distantRoostVoidTerrainMat2.color = Color32.op_Implicit(new Color32((byte)188, (byte)162, (byte)162, byte.MaxValue));
			distantRoostVoidDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/arena/matArenaTerrainGem.mat").WaitForCompletion();
			distantRoostVoidDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/arena/matArenaHeatvent1.mat").WaitForCompletion();
			distantRoostVoidWaterMat = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/goldshores/matGSWater.mat").WaitForCompletion());
			distantRoostVoidWaterMat.color = Color32.op_Implicit(new Color32((byte)0, (byte)14, byte.MaxValue, byte.MaxValue));
			distantRoostAbyssalTerrainMat = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCTerrainGiantColumns.mat").WaitForCompletion());
			distantRoostAbyssalTerrainMat.color = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, (byte)204));
			distantRoostAbyssalTerrainMat2 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCTerrainWalls.mat").WaitForCompletion());
			distantRoostAbyssalTerrainMat2.color = Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, (byte)135));
			distantRoostAbyssalDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/TitanGoldDuringTP/matGoldHeart.mat").WaitForCompletion();
			distantRoostAbyssalDetailMat2 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimSheetGoldRuins.mat").WaitForCompletion());
			distantRoostAbyssalDetailMat2.color = Color32.op_Implicit(new Color32((byte)181, (byte)66, (byte)34, byte.MaxValue));
			distantRoostAbyssalWaterMat = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/goldshores/matGSWater.mat").WaitForCompletion());
			distantRoostAbyssalWaterMat.color = Color32.op_Implicit(new Color32((byte)107, (byte)23, (byte)23, byte.MaxValue));
			distantRoostAbyssalWaterMat.shaderKeywords = new string[7] { "_BUMPLARGE_ON", "_DISPLACEMENTMODE_OFF", "_DISPLACEMENT_ON", "_DISTORTIONQUALITY_HIGH", "_EMISSION", "_FOAM_ON", "_NORMALMAP" };
			Texture2D val2 = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/texNormalBumpyRock.jpg").WaitForCompletion();
			Texture2D val3 = stageaesthetic.LoadAsset<Texture2D>("Assets/StageAesthetic/Materials/texRockSide.png");
			Texture2D val4 = stageaesthetic.LoadAsset<Texture2D>("Assets/StageAesthetic/Materials/texRockTop.png");
			Material val5 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/blackbeach/matBbTerrain.mat").WaitForCompletion());
			val5.color = Color32.op_Implicit(new Color32((byte)174, (byte)153, (byte)129, byte.MaxValue));
			val5.SetFloat("_RedChannelSmoothness", 0.5063887f);
			val5.SetFloat("_RedChannelBias", 1.2f);
			val5.SetFloat("_RedChannelSpecularExponent", 20f);
			val5.SetTexture("_RedChannelSideTex", (Texture)(object)val3);
			val5.SetTexture("_RedChannelTopTex", (Texture)(object)val4);
			val5.SetFloat("_GreenChannelBias", 1.87f);
			val5.SetFloat("_GreenChannelSpecularStrength", 0f);
			val5.SetFloat("_GreenChannelSpecularExponent", 20f);
			val5.SetFloat("_GreenChannelSmoothnes", 0.4169469f);
			val5.SetFloat("_BlueChannelBias", 1.3f);
			val5.SetFloat("_BlueChannelSmoothness", 0.3059852f);
			val5.SetFloat("_TextureFactor", 0.06f);
			val5.SetFloat("_NormalStrength", 0.3f);
			val5.SetFloat("_Depth", 0.1f);
			val5.SetInt("_RampInfo", 5);
			val5.SetTexture("_NormalTex", (Texture)(object)val2);
			Material val6 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/blackbeach/matBbBoulder.mat").WaitForCompletion();
			Material val7 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/ancientloft/matAncientLoft_Temple.mat").WaitForCompletion());
			val7.color = Color32.op_Implicit(new Color32((byte)18, (byte)79, (byte)40, byte.MaxValue));
			Material val8 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/moon/matMoonWaterBridge.mat").WaitForCompletion();
			Material val9 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/rootjungle/matRJTree.mat").WaitForCompletion());
			val9.color = Color32.op_Implicit(new Color32((byte)205, (byte)104, (byte)12, byte.MaxValue));
			val9.SetFloat("_Depth", 0.714f);
			val9.SetFloat("_NormalStrength", 0.25f);
			val9.SetFloat("_RedChannelBias", 0.17f);
			val9.SetFloat("_RedChannelSpecularStrength", 0.0338f);
			val9.SetFloat("_GreenChannelBias", 0f);
			val9.SetTextureScale("_NormalTex", new Vector2(0.3f, 0.3f));
			Material val10 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/rootjungle/matRJTree.mat").WaitForCompletion());
			val10.color = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue));
			Material val11 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Captain/matCaptainSupplyDropEquipmentRestock.mat").WaitForCompletion());
			val11.color = Color32.op_Implicit(new Color32((byte)80, (byte)162, (byte)90, byte.MaxValue));
			if (Chainloader.PluginInfos.ContainsKey("PlasmaCore.ForgottenRelics"))
			{
				ForgottenRelicsLoaded = true;
			}
			SwapVariants.Initialize();
		}
	}
	public class SwapVariants
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static UnityAction<Scene, LoadSceneMode> <0>__TitleScreen;

			public static Action<Run> <1>__ApplyConfig;

			public static hook_Start <2>__AssignStageToken_Start;
		}

		public static string currentVariantName;

		public static PostProcessVolume volume;

		public static int distantRoostVariant = -1;

		public static int distantRoostAltVariant = -1;

		public static int siphonedForestVariant = -1;

		public static int titanicPlainsVariant = -1;

		public static int titanicPlainsAltVariant = -1;

		public static int abandonedAqueductVariant = -1;

		public static int aphelianSanctuaryVariant = -1;

		public static int dryBasinVariant = -1;

		public static int wetlandAspectVariant = -1;

		public static int fogboundLagoonVariant = -1;

		public static int rallypointDeltaVariant = -1;

		public static int scorchedAcresVariant = -1;

		public static int sulfurPoolsVariant = -1;

		public static int abyssalDepthsVariant = -1;

		public static int sirensCallVariant = -1;

		public static int sunderedGroveVariant = -1;

		public static int skyMeadowVariant = -1;

		public static int slumberingSatelliteVariant = -1;

		public static int commencementVariant = -1;

		public static int voidLocusVariant = -1;

		public static int currentVariant;

		public static GameObject rain;

		public static GameObject snow;

		public static GameObject sand;

		internal static ManualLogSource SALogger;

		public static List<string> distantRoostList = new List<string>();

		public static List<string> distantRoostAltList = new List<string>();

		public static List<string> siphonedForestList = new List<string>();

		public static List<string> titanicPlainsList = new List<string>();

		public static List<string> abandonedAqueductList = new List<string>();

		public static List<string> aphelianSanctuaryList = new List<string>();

		public static List<string> dryBasinList = new List<string>();

		public static List<string> wetlandAspectList = new List<string>();

		public static List<string> fogboundLagoonList = new List<string>();

		public static List<string> rallypointDeltaList = new List<string>();

		public static List<string> scorchedAcresList = new List<string>();

		public static List<string> sulfurPoolsList = new List<string>();

		public static List<string> abyssalDepthsList = new List<string>();

		public static List<string> sirensCallList = new List<string>();

		public static List<string> sunderedGroveList = new List<string>();

		public static List<string> skyMeadowList = new List<string>();

		public static List<string> slumberingSatelliteList = new List<string>();

		public static List<string> commencementList = new List<string>();

		public static List<string> voidLocusList = new List<string>();

		public static void Initialize()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Expected O, but got Unknown
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Expected O, but got Unknown
			StageAesthetic.Config.Config.SetConfig();
			SceneDirector.Start += new hook_Start(SceneDirector_Start);
			SceneManager.sceneLoaded += TitleScreen;
			Run.onRunStartGlobal += StageAesthetic.Config.Config.ApplyConfig;
			object obj = <>O.<2>__AssignStageToken_Start;
			if (obj == null)
			{
				hook_Start val = AssignStageToken_Start;
				<>O.<2>__AssignStageToken_Start = val;
				obj = (object)val;
			}
			AssignStageToken.Start += (hook_Start)obj;
		}

		private static void AssignStageToken_Start(orig_Start orig, AssignStageToken self)
		{
			orig.Invoke(self);
			if (StageAesthetic.Config.Config.DisplayVariantName.Value)
			{
				TextMeshProUGUI titleText = self.titleText;
				((TMP_Text)titleText).text = ((TMP_Text)titleText).text + " (" + currentVariantName + ")";
			}
		}

		private static void TitleScreen(Scene scene, LoadSceneMode mode)
		{
			//IL_0095: 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_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			if (((Scene)(ref scene)).name == "title")
			{
				Transform transform = GameObject.Find("MainMenu").transform;
				if (StageAesthetic.Config.Config.TitleScene.Value)
				{
					Transform transform2 = GameObject.Find("HOLDER: Title Background").transform;
					((Component)transform2.Find("Terrain")).gameObject.SetActive(true);
					((Component)transform2.Find("CamDust")).gameObject.SetActive(true);
					transform2.Find("Misc Props").Find("DeadCommando").localPosition = new Vector3(16f, -2f, 27f);
					ParticleSystem component = ((Component)transform.Find("MENU: Title").Find("World Position").Find("CameraPositionMarker")
						.Find("Rain")).gameObject.GetComponent<ParticleSystem>();
					EmissionModule emission = component.emission;
					MinMaxCurve rateOverTime = ((EmissionModule)(ref emission)).rateOverTime;
					MinMaxCurve rateOverTime2 = default(MinMaxCurve);
					((MinMaxCurve)(ref rateOverTime2)).constant = 100f;
					((MinMaxCurve)(ref rateOverTime2)).constantMax = 100f;
					((MinMaxCurve)(ref rateOverTime2)).constantMin = 60f;
					((MinMaxCurve)(ref rateOverTime2)).curve = ((MinMaxCurve)(ref rateOverTime)).curve;
					((MinMaxCurve)(ref rateOverTime2)).curveMax = ((MinMaxCurve)(ref rateOverTime)).curveMax;
					((MinMaxCurve)(ref rateOverTime2)).curveMin = ((MinMaxCurve)(ref rateOverTime)).curveMax;
					((MinMaxCurve)(ref rateOverTime2)).curveMultiplier = ((MinMaxCurve)(ref rateOverTime)).curveMultiplier;
					((MinMaxCurve)(ref rateOverTime2)).mode = ((MinMaxCurve)(ref rateOverTime)).mode;
					((EmissionModule)(ref emission)).rateOverTime = rateOverTime2;
					ColorOverLifetimeModule colorOverLifetime = component.colorOverLifetime;
					((ColorOverLifetimeModule)(ref colorOverLifetime)).enabled = false;
					transform.Find("MENU: Title").Find("World Position").Find("CameraPositionMarker")
						.Find("Rain")
						.eulerAngles = new Vector3(80f, 90f, 0f);
					WindZone component2 = ((Component)GameObject.Find("HOLDER: Title Background").transform.Find("FX").Find("WindZone")).gameObject.GetComponent<WindZone>();
					component2.windMain = 0.5f;
					component2.windTurbulence = 1f;
				}
			}
		}

		private static void SceneDirector_Start(orig_Start orig, SceneDirector self)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			Scene activeScene = SceneManager.GetActiveScene();
			ChangeProfile(((Scene)(ref activeScene)).name);
			orig.Invoke(self);
		}

		private static void ChangeProfile(string sceneName)
		{
			//IL_0039: 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_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Expected O, but got Unknown
			if (!Object.op_Implicit((Object)(object)rain))
			{
				rain = Main.stageaesthetic.LoadAsset<GameObject>("Assets/StageAesthetic/Stage Aesthetic Rain.prefab");
				rain.transform.eulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!Object.op_Implicit((Object)(object)snow))
			{
				snow = Main.stageaesthetic.LoadAsset<GameObject>("Assets/StageAesthetic/Stage Aesthetic Snow.prefab");
				snow.transform.eulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!Object.op_Implicit((Object)(object)sand))
			{
				sand = Main.stageaesthetic.LoadAsset<GameObject>("Assets/StageAesthetic/Stage Aesthetic Sand.prefab");
			}
			ulong num = (ulong)(Object.op_Implicit((Object)(object)Run.instance) ? (Run.instance.GetStartTimeUtc().Ticks ^ (Run.instance.stageClearCount << 16)) : 0);
			Xoroshiro128Plus val = new Xoroshiro128Plus(num);
			SceneInfo instance = SceneInfo.instance;
			if (Object.op_Implicit((Object)(object)instance))
			{
				volume = ((Component)instance).GetComponent<PostProcessVolume>();
			}
			GameObject val2;
			if (!Object.op_Implicit((Object)(object)volume) || !((Behaviour)volume).isActiveAndEnabled)
			{
				val2 = GameObject.Find("PP + Amb");
				if (Object.op_Implicit((Object)(object)val2))
				{
					bool? obj;
					if (val2 == null)
					{
						obj = null;
					}
					else
					{
						PostProcessVolume component = val2.GetComponent<PostProcessVolume>();
						obj = ((component != null) ? new bool?(!((Behaviour)component).isActiveAndEnabled) : null);
					}
					if (!(obj ?? true))
					{
						goto IL_017f;
					}
				}
				val2 = GameObject.Find("PP, Global");
				goto IL_017f;
			}
			goto IL_0340;
			IL_02d9:
			if (Object.op_Implicit((Object)(object)val2))
			{
				volume = val2.GetComponent<PostProcessVolume>();
			}
			if (sceneName == "moon2")
			{
				volume = ((Component)instance).gameObject.AddComponent<PostProcessVolume>();
				volume.profile.AddSettings<RampFog>();
				((Behaviour)volume).enabled = true;
				volume.isGlobal = true;
				volume.priority = 9999f;
			}
			goto IL_0340;
			IL_023f:
			if (Object.op_Implicit((Object)(object)val2))
			{
				bool? obj2;
				if (val2 == null)
				{
					obj2 = null;
				}
				else
				{
					PostProcessVolume component2 = val2.GetComponent<PostProcessVolume>();
					obj2 = ((component2 != null) ? new bool?(!((Behaviour)component2).isActiveAndEnabled) : null);
				}
				if (!(obj2 ?? true))
				{
					goto IL_02d9;
				}
			}
			GameObject obj3 = GameObject.Find("MapZones");
			object obj4;
			if (obj3 == null)
			{
				obj4 = null;
			}
			else
			{
				Transform transform = obj3.transform;
				if (transform == null)
				{
					obj4 = null;
				}
				else
				{
					Transform obj5 = transform.Find("PostProcess Zones");
					if (obj5 == null)
					{
						obj4 = null;
					}
					else
					{
						Transform obj6 = obj5.Find("SandOvercast");
						obj4 = ((obj6 != null) ? ((Component)obj6).gameObject : null);
					}
				}
			}
			val2 = (GameObject)obj4;
			goto IL_02d9;
			IL_01df:
			if (Object.op_Implicit((Object)(object)val2))
			{
				bool? obj7;
				if (val2 == null)
				{
					obj7 = null;
				}
				else
				{
					PostProcessVolume component3 = val2.GetComponent<PostProcessVolume>();
					obj7 = ((component3 != null) ? new bool?(!((Behaviour)component3).isActiveAndEnabled) : null);
				}
				if (!(obj7 ?? true))
				{
					goto IL_023f;
				}
			}
			val2 = GameObject.Find("PP+Amb");
			goto IL_023f;
			IL_0340:
			if (!Object.op_Implicit((Object)(object)volume))
			{
				return;
			}
			RampFog setting = volume.profile.GetSetting<RampFog>();
			ColorGrading val3 = volume.profile.GetSetting<ColorGrading>() ?? volume.profile.AddSettings<ColorGrading>();
			switch (sceneName)
			{
			default:
				if (sceneName == null)
				{
					break;
				}
				switch (sceneName)
				{
				default:
					switch (sceneName.Length)
					{
					case 11:
						switch (sceneName[0])
						{
						case 'a':
							if (sceneName == "ancientloft")
							{
								int num15 = val.RangeInt(0, aphelianSanctuaryList.Count);
								if (aphelianSanctuaryList.Count > 1 && num15 == aphelianSanctuaryVariant)
								{
									num15 = (num15 + 1) % aphelianSanctuaryList.Count;
								}
								string[] array14 = aphelianSanctuaryList.ToArray();
								string text14 = array14[num15];
								switch (text14)
								{
								case "Vanilla":
									currentVariantName = "Vanilla";
									break;
								case "Singularity":
									AphelianSanctuary.Singularity(setting, val3);
									break;
								case "Twilight":
									AphelianSanctuary.Twilight(setting, val3);
									break;
								case "Sunset":
									AphelianSanctuary.Sunset(setting, val3);
									break;
								case "Abyssal":
									AphelianSanctuary.Abyssal(setting, val3);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text14;
								aphelianSanctuaryVariant = num15;
							}
							break;
						case 's':
							if (sceneName == "sulfurpools")
							{
								int num14 = val.RangeInt(0, sulfurPoolsList.Count);
								if (sulfurPoolsList.Count > 1 && num14 == sulfurPoolsVariant)
								{
									num14 = (num14 + 1) % sulfurPoolsList.Count;
								}
								string[] array13 = sulfurPoolsList.ToArray();
								string text13 = array13[num14];
								switch (text13)
								{
								case "Vanilla":
									SulfurPools.Vanilla();
									currentVariantName = "Vanilla";
									break;
								case "Coral":
									SulfurPools.Coral(setting);
									break;
								case "Hell":
									SulfurPools.Hell(setting);
									break;
								case "Void":
									SulfurPools.Void(setting, val3);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text13;
								sulfurPoolsVariant = num14;
							}
							break;
						}
						break;
					case 8:
						switch (sceneName[0])
						{
						case 'd':
							if (sceneName == "drybasin")
							{
								ForgottenRelicsJ.DryBasin(val, val3);
							}
							break;
						case 'F':
							if (sceneName == "FBLScene")
							{
								int num13 = val.RangeInt(0, fogboundLagoonList.Count);
								if (fogboundLagoonList.Count > 1 && num13 == fogboundLagoonVariant)
								{
									num13 = (num13 + 1) % fogboundLagoonList.Count;
								}
								string[] array12 = fogboundLagoonList.ToArray();
								string text12 = array12[num13];
								switch (text12)
								{
								case "Vanilla":
									currentVariantName = "Vanilla";
									break;
								case "Clear":
									FogboundLagoon.Clear(setting);
									break;
								case "Twilight":
									FogboundLagoon.Twilight(setting);
									break;
								case "Overcast":
									FogboundLagoon.Overcast(setting, val3);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text12;
								fogboundLagoonVariant = num13;
							}
							break;
						}
						break;
					case 10:
						switch (sceneName[3])
						{
						case 'g':
							if (sceneName == "foggyswamp")
							{
								int num12 = val.RangeInt(0, wetlandAspectList.Count);
								if (wetlandAspectList.Count > 1 && num12 == wetlandAspectVariant)
								{
									num12 = (num12 + 1) % wetlandAspectList.Count;
								}
								string[] array11 = wetlandAspectList.ToArray();
								string text11 = array11[num12];
								switch (text11)
								{
								case "Vanilla":
									currentVariantName = "Vanilla";
									break;
								case "Sunset":
									WetlandAspect.Sunset(setting, val3);
									break;
								case "Morning":
									WetlandAspect.Morning(setting, val3);
									break;
								case "Night":
									WetlandAspect.Night(setting);
									break;
								case "Void":
									WetlandAspect.Void(setting);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text11;
								wetlandAspectVariant = num12;
							}
							break;
						case 'z':
							if (sceneName == "frozenwall")
							{
								int num11 = val.RangeInt(0, rallypointDeltaList.Count);
								if (rallypointDeltaList.Count > 1 && num11 == rallypointDeltaVariant)
								{
									num11 = (num11 + 1) % rallypointDeltaList.Count;
								}
								string[] array10 = rallypointDeltaList.ToArray();
								string text10 = array10[num11];
								switch (text10)
								{
								case "Vanilla":
									RallypointDelta.VanillaChanges();
									currentVariantName = "Vanilla";
									break;
								case "Night":
									RallypointDelta.Night(setting, val3);
									break;
								case "Overcast":
									RallypointDelta.Overcast(setting, volume);
									break;
								case "Sunset":
									RallypointDelta.Sunset(setting, volume);
									break;
								case "Titanic":
									RallypointDelta.Titanic(setting, val3, volume);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text10;
								rallypointDeltaVariant = num11;
							}
							break;
						case 't':
							if (sceneName == "rootjungle")
							{
								int num10 = val.RangeInt(0, sunderedGroveList.Count);
								if (sunderedGroveList.Count > 1 && num10 == sunderedGroveVariant)
								{
									num10 = (num10 + 1) % sunderedGroveList.Count;
								}
								string[] array9 = sunderedGroveList.ToArray();
								string text9 = array9[num10];
								switch (text9)
								{
								case "Vanilla":
									SunderedGrove.Vanilla();
									currentVariantName = "Vanilla";
									break;
								case "Jade":
									SunderedGrove.Jade(setting, val3);
									break;
								case "Sunny":
									SunderedGrove.Sunny(setting, val3);
									break;
								case "Overcast":
									SunderedGrove.Overcast(setting, val3);
									break;
								case "Abandoned":
									SunderedGrove.Abandoned(setting);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text9;
								sunderedGroveVariant = num10;
							}
							break;
						}
						break;
					case 13:
						switch (sceneName[0])
						{
						case 'w':
						{
							if (!(sceneName == "wispgraveyard"))
							{
								break;
							}
							int num9 = val.RangeInt(0, scorchedAcresList.Count);
							if (scorchedAcresList.Count > 1 && num9 == scorchedAcresVariant)
							{
								num9 = (num9 + 1) % scorchedAcresList.Count;
							}
							string[] array8 = scorchedAcresList.ToArray();
							string text8 = array8[num9];
							switch (text8)
							{
							case "Vanilla":
								if (StageAesthetic.Config.Config.ScorchedAcresChanges.Value)
								{
									ScorchedAcres.VanillaChanges();
								}
								currentVariantName = "Vanilla";
								break;
							case "Sunset":
								ScorchedAcres.Sunset(setting, val3);
								break;
							case "Night":
								ScorchedAcres.Night(setting);
								break;
							case "Jade":
								ScorchedAcres.Jade(setting);
								break;
							case "Sunny Beta":
								ScorchedAcres.SunnyBeta(setting);
								break;
							case "Crimson Beta":
								ScorchedAcres.CrimsonBeta(setting);
								break;
							case "Twilight":
								ScorchedAcres.Twilight(setting);
								break;
							default:
								SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
								break;
							}
							currentVariantName = text8;
							scorchedAcresVariant = num9;
							break;
						}
						case 's':
							if (sceneName == "shipgraveyard")
							{
								int num8 = val.RangeInt(0, sirensCallList.Count);
								if (sirensCallList.Count > 1 && num8 == sirensCallVariant)
								{
									num8 = (num8 + 1) % sirensCallList.Count;
								}
								string[] array7 = sirensCallList.ToArray();
								string text7 = array7[num8];
								switch (text7)
								{
								case "Vanilla":
									currentVariantName = "Vanilla";
									break;
								case "Night":
									SirensCall.Night(setting, val3);
									break;
								case "Sunny":
									SirensCall.Sunny(setting);
									break;
								case "Overcast":
									SirensCall.Overcast(setting);
									break;
								case "Aphelian":
									SirensCall.Aphelian(setting, val3);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text7;
								sirensCallVariant = num8;
							}
							break;
						}
						break;
					case 9:
						switch (sceneName[0])
						{
						case 's':
						{
							if (!(sceneName == "skymeadow"))
							{
								break;
							}
							int num7 = val.RangeInt(0, skyMeadowList.Count);
							if (skyMeadowList.Count > 1 && num7 == skyMeadowVariant)
							{
								num7 = (num7 + 1) % skyMeadowList.Count;
							}
							string[] array6 = skyMeadowList.ToArray();
							string text6 = array6[num7];
							switch (text6)
							{
							case "Vanilla":
								if (StageAesthetic.Config.Config.SkyMeadowChanges.Value)
								{
									SkyMeadow.VanillaChanges();
								}
								currentVariantName = "Vanilla";
								break;
							case "Night":
								SkyMeadow.Night(setting);
								break;
							case "Overcast":
								SkyMeadow.Overcast(setting);
								break;
							case "Abyssal":
								SkyMeadow.Abyssal(setting, val3);
								break;
							case "Titanic":
								SkyMeadow.Titanic(setting);
								break;
							case "Abandoned":
								SkyMeadow.Abandoned(setting);
								break;
							default:
								SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
								break;
							}
							currentVariantName = text6;
							skyMeadowVariant = num7;
							break;
						}
						case 'v':
							if (sceneName == "voidstage")
							{
								int num6 = val.RangeInt(0, voidLocusList.Count);
								if (voidLocusList.Count > 1 && num6 == voidLocusVariant)
								{
									num6 = (num6 + 1) % voidLocusList.Count;
								}
								string[] array5 = voidLocusList.ToArray();
								string text5 = array5[num6];
								switch (text5)
								{
								case "Vanilla":
									currentVariantName = "Vanilla";
									break;
								case "Twilight":
									VoidLocus.Twilight(setting, val3);
									break;
								case "Pink":
									VoidLocus.Pink(setting, val3);
									break;
								case "Blue":
									VoidLocus.Blue(setting, val3);
									break;
								default:
									SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
									break;
								}
								currentVariantName = text5;
								voidLocusVariant = num6;
							}
							break;
						}
						break;
					case 7:
					{
						if (!(sceneName == "goolake"))
						{
							break;
						}
						int num16 = val.RangeInt(0, abandonedAqueductList.Count);
						if (abandonedAqueductList.Count > 1 && num16 == abandonedAqueductVariant)
						{
							num16 = (num16 + 1) % abandonedAqueductList.Count;
						}
						string[] array15 = abandonedAqueductList.ToArray();
						string text15 = array15[num16];
						switch (text15)
						{
						case "Vanilla":
							if (StageAesthetic.Config.Config.AbandonedAqueductChanges.Value)
							{
								AbandonedAqueduct.VanillaChanges();
							}
							currentVariantName = "Vanilla";
							break;
						case "Dawn":
							AbandonedAqueduct.Dawn(setting);
							break;
						case "Sunrise":
							AbandonedAqueduct.Sunrise(setting);
							break;
						case "Night":
							AbandonedAqueduct.Night(setting, val3);
							break;
						case "Sundered":
							AbandonedAqueduct.Sundered(setting, val3);
							break;
						default:
							SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
							break;
						}
						currentVariantName = text15;
						abandonedAqueductVariant = num16;
						break;
					}
					case 14:
					{
						if (!(sceneName == "dampcavesimple"))
						{
							break;
						}
						int num17 = val.RangeInt(0, abyssalDepthsList.Count);
						if (abyssalDepthsList.Count > 1 && num17 == abyssalDepthsVariant)
						{
							num17 = (num17 + 1) % abyssalDepthsList.Count;
						}
						string[] array16 = abyssalDepthsList.ToArray();
						string text16 = array16[num17];
						switch (text16)
						{
						case "Vanilla":
							if (StageAesthetic.Config.Config.AbyssalDepthsChanges.Value)
							{
								AbyssalDepths.VanillaChanges();
							}
							currentVariantName = "Vanilla";
							break;
						case "Blue":
							AbyssalDepths.Blue(setting, val3);
							break;
						case "Night":
							AbyssalDepths.Night(setting, val3);
							break;
						case "Orange":
							AbyssalDepths.Orange(setting);
							break;
						case "Coral":
							AbyssalDepths.Coral(setting, val3);
							break;
						default:
							SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
							break;
						}
						currentVariantName = text16;
						abyssalDepthsVariant = num17;
						break;
					}
					case 19:
						if (sceneName == "slumberingsatellite")
						{
							ForgottenRelicsJ.SlumberingSatellite(val, volume);
						}
						break;
					case 5:
						if (sceneName == "moon2")
						{
							int num5 = val.RangeInt(0, commencementList.Count);
							if (commencementList.Count > 1 && num5 == commencementVariant)
							{
								num5 = (num5 + 1) % commencementList.Count;
							}
							string[] array4 = commencementList.ToArray();
							string text4 = array4[num5];
							switch (text4)
							{
							case "Vanilla":
								currentVariantName = "Vanilla";
								break;
							case "Night":
								Commencement.Night(setting);
								break;
							case "Crimson":
								Commencement.Crimson(setting);
								break;
							case "Corruption":
								Commencement.Corruption(setting);
								break;
							case "Gray":
								Commencement.Gray(setting);
								break;
							default:
								SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
								break;
							}
							currentVariantName = text4;
							commencementVariant = num5;
						}
						break;
					}
					break;
				case "golemplains":
				case "golemplains2":
				{
					int num4 = val.RangeInt(0, titanicPlainsList.Count);
					if (titanicPlainsList.Count > 1 && num4 == titanicPlainsVariant)
					{
						num4 = (num4 + 1) % titanicPlainsList.Count;
					}
					string[] array3 = titanicPlainsList.ToArray();
					string text3 = array3[num4];
					switch (text3)
					{
					case "Vanilla":
						currentVariantName = "Vanilla";
						break;
					case "Nostalgic":
						TitanicPlains.Nostalgic(setting);
						break;
					case "Sunset":
						TitanicPlains.Sunset(setting);
						break;
					case "Overcast":
						TitanicPlains.Overcast(setting, sceneName);
						break;
					case "Night":
						TitanicPlains.Night(setting, val3);
						break;
					case "Abandoned":
						TitanicPlains.Abandoned(setting);
						break;
					default:
						SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
						break;
					}
					currentVariantName = text3;
					titanicPlainsVariant = num4;
					break;
				}
				case null:
					break;
				}
				break;
			case "blackbeach":
			{
				int num18 = val.RangeInt(0, distantRoostList.Count);
				if (distantRoostList.Count > 1 && num18 == distantRoostVariant)
				{
					num18 = (num18 + 1) % distantRoostList.Count;
				}
				string[] array17 = distantRoostList.ToArray();
				string text17 = array17[num18];
				switch (text17)
				{
				case "Vanilla":
					if (StageAesthetic.Config.Config.DistantRoostChanges.Value)
					{
						DistantRoost.Vanilla();
					}
					DistantRoost.VanillaFoliage();
					currentVariantName = "Vanilla";
					break;
				case "Sunny":
					DistantRoost.Sunny(setting, sceneName, val3);
					break;
				case "Overcast":
					DistantRoost.Overcast(setting, sceneName);
					break;
				case "Void":
					DistantRoost.Void(setting, val3);
					break;
				default:
					SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
					break;
				}
				currentVariantName = text17;
				distantRoostVariant = num18;
				break;
			}
			case "blackbeach2":
			{
				int num3 = val.RangeInt(0, distantRoostAltList.Count);
				if (distantRoostAltList.Count > 1 && num3 == distantRoostAltVariant)
				{
					num3 = (num3 + 1) % distantRoostAltList.Count;
				}
				string[] array2 = distantRoostAltList.ToArray();
				string text2 = array2[num3];
				switch (text2)
				{
				case "Vanilla":
					if (StageAesthetic.Config.Config.DistantRoostChanges.Value)
					{
						DistantRoost.Vanilla();
					}
					DistantRoost.VanillaFoliage();
					currentVariantName = "Vanilla";
					break;
				case "Sunny":
					DistantRoost.Sunny(setting, sceneName, val3);
					break;
				case "Overcast":
					DistantRoost.Overcast(setting, sceneName);
					break;
				case "Night":
					DistantRoost.Night(setting, sceneName, val3);
					break;
				case "Abyssal":
					DistantRoost.Abyssal(setting, val3);
					break;
				default:
					SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
					break;
				}
				currentVariantName = text2;
				distantRoostAltVariant = num3;
				break;
			}
			case "snowyforest":
			{
				int num2 = val.RangeInt(0, siphonedForestList.Count);
				if (siphonedForestList.Count > 1 && num2 == siphonedForestVariant)
				{
					num2 = (num2 + 1) % siphonedForestList.Count;
				}
				string[] array = siphonedForestList.ToArray();
				string text = array[num2];
				switch (text)
				{
				case "Vanilla":
					SiphonedForest.Vanilla();
					currentVariantName = "Vanilla";
					break;
				case "Night":
					SiphonedForest.Night(setting, val3);
					break;
				case "Morning":
					SiphonedForest.Morning(setting, val3);
					break;
				case "Purple":
					SiphonedForest.Purple(setting, val3);
					break;
				case "Crimson":
					SiphonedForest.Crimson(setting, val3);
					break;
				case "Desolate":
					SiphonedForest.Desolate(setting, val3);
					break;
				default:
					SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
					break;
				}
				currentVariantName = text;
				siphonedForestVariant = num2;
				break;
			}
			}
			((Object)volume.profile).name = "SA Profile (" + currentVariantName + ")";
			return;
			IL_017f:
			if (Object.op_Implicit((Object)(object)val2))
			{
				bool? obj8;
				if (val2 == null)
				{
					obj8 = null;
				}
				else
				{
					PostProcessVolume component4 = val2.GetComponent<PostProcessVolume>();
					obj8 = ((component4 != null) ? new bool?(!((Behaviour)component4).isActiveAndEnabled) : null);
				}
				if (!(obj8 ?? true))
				{
					goto IL_01df;
				}
			}
			val2 = GameObject.Find("GlobalPostProcessVolume, Base");
			goto IL_01df;
		}
	}
	public class ForgottenRelicsJ
	{
		[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
		public static void DryBasin(Xoroshiro128Plus rng, ColorGrading colorGrading)
		{
			if (!Main.ForgottenRelicsLoaded)
			{
				return;
			}
			PostProcessVolume component = ((Component)GameObject.Find("MapZones").transform.GetChild(1).Find("Sandstorm")).GetComponent<PostProcessVolume>();
			int num = rng.RangeInt(0, SwapVariants.dryBasinList.Count);
			TheCoolerRampFog component2 = ((Component)component).GetComponent<TheCoolerRampFog>();
			RampFog setting = component.profile.GetSetting<RampFog>();
			if (SwapVariants.dryBasinList.Count > 1 && num == SwapVariants.dryBasinVariant)
			{
				num = (num + 1) % SwapVariants.dryBasinList.Count;
			}
			string[] array = SwapVariants.dryBasinList.ToArray();
			string text = array[num];
			switch (text)
			{
			case "Vanilla":
				if (StageAesthetic.Config.Config.DryBasinChanges.Value)
				{
					StageAesthetic.Variants.Stage2.DryBasin.VanillaChanges();
				}
				SwapVariants.currentVariantName = "Vanilla";
				break;
			case "Morning":
				StageAesthetic.Variants.Stage2.DryBasin.Morning(component2, setting);
				break;
			case "Blue":
				StageAesthetic.Variants.Stage2.DryBasin.Blue(component2, colorGrading, setting);
				break;
			case "Overcast":
				StageAesthetic.Variants.Stage2.DryBasin.Overcast(component2, colorGrading, setting);
				break;
			default:
				SwapVariants.SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
				break;
			}
			SwapVariants.currentVariantName = text;
			SwapVariants.dryBasinVariant = num;
			((Object)component.profile).name = "SA Profile (" + SwapVariants.currentVariantName + ")";
		}

		[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
		public static void SlumberingSatellite(Xoroshiro128Plus rng, PostProcessVolume volume)
		{
			if (Main.ForgottenRelicsLoaded)
			{
				int num = rng.RangeInt(0, SwapVariants.slumberingSatelliteList.Count);
				TheCoolerRampFog component = ((Component)volume).GetComponent<TheCoolerRampFog>();
				RampFog setting = volume.profile.GetSetting<RampFog>();
				if (SwapVariants.slumberingSatelliteList.Count > 1 && num == SwapVariants.slumberingSatelliteVariant)
				{
					num = (num + 1) % SwapVariants.slumberingSatelliteList.Count;
				}
				string[] array = SwapVariants.slumberingSatelliteList.ToArray();
				string text = array[num];
				switch (text)
				{
				case "Vanilla":
					StageAesthetic.Variants.Stage5.SlumberingSatellite.Vanilla();
					SwapVariants.currentVariantName = "Vanilla";
					break;
				case "Morning":
					StageAesthetic.Variants.Stage5.SlumberingSatellite.Morning(component, setting);
					break;
				case "Overcast":
					StageAesthetic.Variants.Stage5.SlumberingSatellite.Overcast(component, setting);
					break;
				case "Blue":
					StageAesthetic.Variants.Stage5.SlumberingSatellite.Blue(component, setting);
					break;
				default:
					SwapVariants.SALogger.LogDebug((object)"uwu I messed something up forgive me >w<");
					break;
				}
				SwapVariants.currentVariantName = text;
				SwapVariants.slumberingSatelliteVariant = num;
			}
		}
	}
}
namespace StageAesthetic.Variants
{
	public static class Utils
	{
		public enum RainType
		{
			Drizzle,
			Rainstorm,
			Monsoon,
			Typhoon
		}

		public enum SnowType
		{
			Light,
			Moderate,
			Heavy,
			Gigachad
		}

		public enum SandType
		{
			Light,
			Moderate,
			Heavy,
			Gigachad
		}

		public static GameObject rain = SwapVariants.rain;

		public static GameObject snow = SwapVariants.snow;

		public static GameObject sand = SwapVariants.sand;

		public static void AddRain(RainType rainType, bool bloodRain = false)
		{
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_034c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0351: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_038d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Unknown result type (might be due to invalid IL or missing references)
			//IL_0396: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)rain) && StageAesthetic.Config.Config.WeatherEffects.Value && Object.op_Implicit((Object)(object)Run.instance))
			{
				if (!Object.op_Implicit((Object)(object)rain.GetComponent<StageAestheticWeatherController>()))
				{
					rain.AddComponent<StageAestheticWeatherController>();
				}
				Transform transform = rain.transform;
				GameObject gameObject = ((Component)transform.GetChild(0)).gameObject;
				ParticleSystemRenderer component = gameObject.GetComponent<ParticleSystemRenderer>();
				Material material = ((Renderer)component).material;
				material.shader = Main.cloudRemap;
				material.EnableKeyword("DISABLEREMAP");
				material.SetFloat("_DstBlend", 10f);
				material.SetFloat("_SrcBlend", 5f);
				if (bloodRain)
				{
					material.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)56, (byte)12, (byte)12, byte.MaxValue)));
				}
				else
				{
					material.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)166, (byte)166, (byte)166, byte.MaxValue)));
				}
				float scalingValue = DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty).scalingValue;
				float difficultyCoefficient = Run.instance.difficultyCoefficient;
				float num = 0f;
				float num2 = 0f;
				float num3 = 0f;
				float num4 = 0f;
				switch (rainType)
				{
				case RainType.Drizzle:
					num = Run.instance.treasureRng.RangeFloat(270f, 300f);
					num2 = Run.instance.treasureRng.RangeFloat(110f, 120f);
					num3 = Run.instance.treasureRng.RangeFloat(-6f, 6f);
					num4 = Run.instance.treasureRng.RangeFloat(-6f, 6f);
					break;
				case RainType.Rainstorm:
					num = Run.instance.treasureRng.RangeFloat(310f, 340f);
					num2 = Run.instance.treasureRng.RangeFloat(130f, 140f);
					num3 = Run.instance.treasureRng.RangeFloat(-10f, 10f);
					num4 = Run.instance.treasureRng.RangeFloat(-10f, 10f);
					break;
				case RainType.Monsoon:
					num = Run.instance.treasureRng.RangeFloat(350f, 380f);
					num2 = Run.instance.treasureRng.RangeFloat(150f, 160f);
					num3 = Run.instance.treasureRng.RangeFloat(-14f, 14f);
					num4 = Run.instance.treasureRng.RangeFloat(-14f, 14f);
					break;
				case RainType.Typhoon:
					num = Run.instance.treasureRng.RangeFloat(390f, 420f);
					num2 = Run.instance.treasureRng.RangeFloat(170f, 180f);
					num3 = Run.instance.treasureRng.RangeFloat(-19f, 19f);
					num4 = Run.instance.treasureRng.RangeFloat(-19f, 19f);
					break;
				}
				num = num + Mathf.Sqrt(scalingValue * 2500f) + Mathf.Sqrt(difficultyCoefficient * 20f);
				num2 = num2 + Mathf.Sqrt(scalingValue * 2500f) + Mathf.Sqrt(difficultyCoefficient * 20f);
				ParticleSystem component2 = gameObject.GetComponent<ParticleSystem>();
				MainModule main = component2.main;
				((MainModule)(ref main)).startSpeed = MinMaxCurve.op_Implicit(Mathf.Min(1000f, num2));
				((MainModule)(ref main)).maxParticles = Mathf.Min(5000000, 100000 + (int)(num * 30f));
				EmissionModule emission = component2.emission;
				MinMaxCurve rateOverTime = ((EmissionModule)(ref emission)).rateOverTime;
				((MinMaxCurve)(ref rateOverTime)).mode = (ParticleSystemCurveMode)0;
				((MinMaxCurve)(ref rateOverTime)).constant = Mathf.Min(10000f, 800f + num);
				ShapeModule shape = component2.shape;
				((ShapeModule)(ref shape)).rotation = new Vector3(num3, 0f, num4);
				Object.Instantiate<GameObject>(rain, Vector3.zero, Quaternion.identity);
			}
		}

		public static void AddSnow(SnowType snowType, float heightOverride = 150f)
		{
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_036f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0374: Unknown result type (might be due to invalid IL or missing references)
			//IL_0384: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03be: Unknown result type (might be due to invalid IL or missing references)
			//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0403: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)snow) && StageAesthetic.Config.Config.WeatherEffects.Value && Object.op_Implicit((Object)(object)Run.instance))
			{
				if (!Object.op_Implicit((Object)(object)snow.GetComponent<StageAestheticWeatherController>()))
				{
					snow.AddComponent<StageAestheticWeatherController>();
				}
				Transform transform = snow.transform;
				GameObject gameObject = ((Component)transform.GetChild(0)).gameObject;
				gameObject.transform.localPosition = new Vector3(0f, heightOverride, 0f);
				GameObject gameObject2 = ((Component)gameObject.transform.GetChild(0)).gameObject;
				ParticleSystemRenderer component = gameObject.GetComponent<ParticleSystemRenderer>();
				Material material = ((Renderer)component).material;
				material.shader = Main.cloudRemap;
				material.EnableKeyword("DISABLEREMAP");
				material.SetFloat("_DstBlend", 10f);
				material.SetFloat("_SrcBlend", 5f);
				ParticleSystemRenderer component2 = gameObject2.GetComponent<ParticleSystemRenderer>();
				Material material2 = ((Renderer)component2).material;
				material2.shader = Main.cloudRemap;
				material2.EnableKeyword("DISABLEREMAP");
				material2.SetFloat("_DstBlend", 10f);
				material2.SetFloat("_SrcBlend", 5f);
				float scalingValue = DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty).scalingValue;
				float difficultyCoefficient = Run.instance.difficultyCoefficient;
				float num = 0f;
				float num2 = 0f;
				float num3 = 0f;
				float num4 = 0f;
				switch (snowType)
				{
				case SnowType.Light:
					num = Run.instance.treasureRng.RangeFloat(600f, 800f);
					num2 = Run.instance.treasureRng.RangeFloat(12f, 16f);
					num3 = Run.instance.treasureRng.RangeFloat(-7f, 7f);
					num4 = Run.instance.treasureRng.RangeFloat(-7f, 7f);
					break;
				case SnowType.Moderate:
					num = Run.instance.treasureRng.RangeFloat(1400f, 1700f);
					num2 = Run.instance.treasureRng.RangeFloat(17f, 21f);
					num3 = Run.instance.treasureRng.RangeFloat(-12f, 12f);
					num4 = Run.instance.treasureRng.RangeFloat(-12f, 12f);
					break;
				case SnowType.Heavy:
					num = Run.instance.treasureRng.RangeFloat(2300f, 2800f);
					num2 = Run.instance.treasureRng.RangeFloat(22f, 28f);
					num3 = Run.instance.treasureRng.RangeFloat(-17f, 17f);
					num4 = Run.instance.treasureRng.RangeFloat(-17f, 17f);
					break;
				case SnowType.Gigachad:
					num = Run.instance.treasureRng.RangeFloat(3400f, 3800f);
					num2 = Run.instance.treasureRng.RangeFloat(29f, 33f);
					num3 = Run.instance.treasureRng.RangeFloat(-25f, 25f);
					num4 = Run.instance.treasureRng.RangeFloat(-25f, 25f);
					break;
				}
				num = num + Mathf.Sqrt(scalingValue * 2500f) + Mathf.Sqrt(difficultyCoefficient * 20f);
				num2 = num2 + Mathf.Sqrt(scalingValue) + Mathf.Sqrt(difficultyCoefficient);
				ParticleSystem component3 = gameObject.GetComponent<ParticleSystem>();
				MainModule main = component3.main;
				((MainModule)(ref main)).startSpeed = MinMaxCurve.op_Implicit(Mathf.Min(1000f, num2));
				((MainModule)(ref main)).maxParticles = Mathf.Min(5000000, 100000 + (int)(num * 5f));
				EmissionModule emission = component3.emission;
				MinMaxCurve rateOverTime = ((EmissionModule)(ref emission)).rateOverTime;
				((MinMaxCurve)(ref rateOverTime)).mode = (ParticleSystemCurveMode)0;
				((MinMaxCurve)(ref rateOverTime)).constant = Mathf.Min(10000f, num);
				ShapeModule shape = component3.shape;
				((ShapeModule)(ref shape)).rotation = new Vector3(num3, 0f, num4);
				Object.Instantiate<GameObject>(snow, Vector3.zero, Quaternion.identity);
			}
		}

		public static void AddSand(SandType sandType)
		{
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0303: 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_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0344: 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_034d: Unknown result type (might be due to invalid IL or missing references)
			//IL_036c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0371: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_038d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)sand) && StageAesthetic.Config.Config.WeatherEffects.Value && Object.op_Implicit((Object)(object)Run.instance))
			{
				if (!Object.op_Implicit((Object)(object)sand.GetComponent<StageAestheticWeatherController>()))
				{
					sand.AddComponent<StageAestheticWeatherController>();
				}
				Transform transform = sand.transform;
				GameObject gameObject = ((Component)transform.GetChild(0)).gameObject;
				ParticleSystemRenderer component = gameObject.GetComponent<ParticleSystemRenderer>();
				Material material = ((Renderer)component).material;
				material.shader = Main.cloudRemap;
				material.EnableKeyword("DISABLEREMAP");
				material.SetFloat("_DstBlend", 10f);
				material.SetFloat("_SrcBlend", 5f);
				float scalingValue = DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty).scalingValue;
				float difficultyCoefficient = Run.instance.difficultyCoefficient;
				float num = 0f;
				float num2 = 0f;
				float num3 = 0f;
				float num4 = 0f;
				switch (sandType)
				{
				case SandType.Light:
					num = Run.instance.treasureRng.RangeFloat(2500f, 3000f);
					num2 = Run.instance.treasureRng.RangeFloat(20f, 25f);
					num3 = Run.instance.treasureRng.RangeFloat(-7f, 7f);
					num4 = Run.instance.treasureRng.RangeFloat(-7f, 7f);
					break;
				case SandType.Moderate:
					num = Run.instance.treasureRng.RangeFloat(3000f, 3500f);
					num2 = Run.instance.treasureRng.RangeFloat(25f, 30f);
					num3 = Run.instance.treasureRng.RangeFloat(-12f, 12f);
					num4 = Run.instance.treasureRng.RangeFloat(-12f, 12f);
					break;
				case SandType.Heavy:
					num = Run.instance.treasureRng.RangeFloat(3500f, 4000f);
					num2 = Run.instance.treasureRng.RangeFloat(25f, 30f);
					num3 = Run.instance.treasureRng.RangeFloat(-17f, 17f);
					num4 = Run.instance.treasureRng.RangeFloat(-17f, 17f);
					break;
				case SandType.Gigachad:
					num = Run.instance.treasureRng.RangeFloat(4500f, 5000f);
					num2 = Run.instance.treasureRng.RangeFloat(25f, 30f);
					num3 = Run.instance.treasureRng.RangeFloat(-25f, 25f);
					num4 = Run.instance.treasureRng.RangeFloat(-25f, 25f);
					break;
				}
				num = num + Mathf.Sqrt(scalingValue * 2500f) + Mathf.Sqrt(difficultyCoefficient * 20f);
				num2 = num2 + Mathf.Sqrt(scalingValue * 5f) + Mathf.Sqrt(difficultyCoefficient / 2f);
				ParticleSystem component2 = gameObject.GetComponent<ParticleSystem>();
				MainModule main = component2.main;
				((MainModule)(ref main)).startSpeed = MinMaxCurve.op_Implicit(Mathf.Min(1100f, num2));
				((MainModule)(ref main)).maxParticles = Mathf.Min(5000000, 100000 + (int)(num * 5f));
				EmissionModule emission = component2.emission;
				MinMaxCurve rateOverTime = ((EmissionModule)(ref emission)).rateOverTime;
				((MinMaxCurve)(ref rateOverTime)).mode = (ParticleSystemCurveMode)0;
				((MinMaxCurve)(ref rateOverTime)).constant = Mathf.Min(10000f, num);
				ShapeModule shape = component2.shape;
				((ShapeModule)(ref shape)).rotation = new Vector3(num3, 0f, num4);
				Object.Instantiate<GameObject>(sand, Vector3.zero, Quaternion.identity);
			}
		}
	}
	public class StageAestheticWeatherController : MonoBehaviour
	{
		public GameObject particleSystem;

		public bool disable;

		public float timer;

		public float interval = 0.1f;

		public void Start()
		{
			particleSystem = ((Component)((Component)this).transform.GetChild(0)).gameObject;
		}

		public void FixedUpdate()
		{
			timer += Time.fixedDeltaTime;
			if (timer >= interval)
			{
				if (disable)
				{
					particleSystem.SetActive(false);
				}
				else
				{
					particleSystem.SetActive(true);
				}
				timer = 0f;
			}
		}
	}
}
namespace StageAesthetic.Variants.Stage5
{
	internal class SkyMeadow
	{
		public static void VanillaChanges()
		{
			//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)
			Transform transform = GameObject.Find("HOLDER: Weather Set 1").transform;
			Transform val = transform.Find("Directional Light (SUN)");
			Light component = ((Component)val).gameObject.GetComponent<Light>();
			component.color = Color32.op_Implicit(new Color32((byte)239, (byte)231, (byte)211, byte.MaxValue));
			component.intensity = 2f;
			component.shadowStrength = 1f;
			VanillaFoliage();
		}

		public static void Night(RampFog fog)
		{
			//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_0017: 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_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_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: 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)
			((ParameterOverride<Color>)(object)fog.fogColorStart).value = Color32.op_Implicit(new Color32((byte)85, (byte)67, (byte)93, (byte)0));
			((ParameterOverride<Color>)(object)fog.fogColorMid).value = Color32.op_Implicit(new Color32((byte)12, (byte)15, (byte)59, (byte)131));
			((ParameterOverride<Color>)(object)fog.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)18, (byte)3, (byte)45, byte.MaxValue));
			((ParameterOverride<float>)(object)fog.fogZero).value = -0.08f;
			((ParameterOverride<float>)(object)fog.fogIntensity).value = 1f;
			((ParameterOverride<float>)(object)fog.fogPower).value = 0.6f;
			((ParameterOverride<float>)(object)fog.fogOne).value = 0.37f;
			((ParameterOverride<float>)(object)fog.skyboxStrength).value = 0.25f;
			Transform transform = GameObject.Find("HOLDER: Weather Set 1").transform;
			Transform val = transform.Find("Directional Light (SUN)");
			Light component = ((Component)val).gameObject.GetComponent<Light>();
			component.color = Color32.op_Implicit(new Color32((byte)126, (byte)138, (byte)227, byte.MaxValue));
			component.intensity = 3f;
			component.shadowStrength = 0.5f;
			((Component)transform.Find("CameraRelative").Find("SmallStars")).gameObject.SetActive(true);
			((Component)GameObject.Find("SMSkyboxPrefab").transform.Find("MoonHolder").Find("ShatteredMoonMesh")).gameObject.SetActive(false);
			((Component)GameObject.Find("SMSkyboxPrefab").transform.Find("MoonHolder").Find("MoonMesh")).gameObject.SetActive(true);
			VanillaFoliage();
		}

		public static void Overcast(RampFog fog)
		{
			//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_0017: 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_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_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_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			((ParameterOverride<Color>)(object)fog.fogColorStart).value = Color32.op_Implicit(new Color32((byte)98, (byte)94, (byte)76, (byte)0));
			((ParameterOverride<Color>)(object)fog.fogColorMid).value = Color32.op_Implicit(new Color32((byte)66, (byte)65, (byte)93, (byte)139));
			((ParameterOverride<Color>)(object)fog.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)72, (byte)79, (byte)95, byte.MaxValue));
			((ParameterOverride<float>)(object)fog.fogZero).value = -0.02f;
			((ParameterOverride<float>)(object)fog.fogIntensity).value = 1f;
			((ParameterOverride<float>)(object)fog.fogPower).value = 0.5f;
			((ParameterOverride<float>)(object)fog.fogOne).value = 0.1f;
			((ParameterOverride<float>)(object)fog.skyboxStrength).value = 0.1f;
			Transform transform = GameObject.Find("HOLDER: Weather Set 1").transform;
			Transform val = transform.Find("Directional Light (SUN)");
			Light component = ((Component)val).gameObject.GetComponent<Light>();
			component.color = Color32.op_Implicit(new Color32((byte)202, (byte)183, (byte)142, byte.MaxValue));
			component.intensity = 1f;
			component.shadowStrength = 0.6f;
			Utils.AddRain(Utils.RainType.Typhoon);
			GameObject val2 = GameObject.Find("WindZone");
			val2.transform.eulerAngles = new Vector3(30f, 20f, 0f);
			WindZone component2 = val2.GetComponent<WindZone>();
			component2.windMain = 1f;
			component2.windTurbulence = 1f;
			component2.windPulseFrequency = 0.5f;
			component2.windPulseMagnitude = 5f;
			component2.mode = (WindZoneMode)0;
			component2.radius = 100f;
			((Component)GameObject.Find("SMSkyboxPrefab").transform.Find("SmallStars")).gameObject.SetActive(false);
			VanillaFoliage();
		}

		public static void Abyssal(RampFog fog, ColorGrading cgrade)
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: 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_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_020f: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_0255: Unknown result type (might be due to invalid IL or missing references)
			//IL_0265: 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_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_027f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0303: Unknown result type (might be due to invalid IL or missing references)
			//IL_0308: 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_032f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de2: Unknown result type (might be due to invalid IL or missing references)
			((PostProcessEffectSettings)cgrade).SetAllOverridesTo(true, true);
			((ParameterOverride<Color>)(object)cgrade.colorFilter).value = Color32.op_Implicit(new Color32((byte)79, (byte)79, (byte)103, byte.MaxValue));
			((ParameterOverride<float>)(object)cgrade.saturation).value = -8f;
			((ParameterOverride<Color>)(object)fog.fogColorStart).value = Color32.op_Implicit(new Color32((byte)106, (byte)22, (byte)107, (byte)50));
			((ParameterOverride<Color>)(object)fog.fogColorMid).value = Color32.op_Implicit(new Color32((byte)39, (byte)85, (byte)97, (byte)44));
			((ParameterOverride<Color>)(object)fog.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)35, (byte)76, (byte)73, byte.MaxValue));
			((ParameterOverride<float>)(object)fog.fogZero).value = -0.1f;
			((ParameterOverride<float>)(object)fog.fogOne).value = 0.2f;
			((ParameterOverride<float>)(object)fog.fogIntensity).value = 1f;
			((ParameterOverride<float>)(object)fog.fogPower).value = 0.6f;
			((ParameterOverride<float>)(object)fog.skyboxStrength).value = 0f;
			Transform transform = GameObject.Find("HOLDER: Weather Set 1").transform;
			Transform child = transform.GetChild(6);
			((Component)child).gameObject.SetActive(false);
			((Component)GameObject.Find("HOLDER: Terrain").transform.GetChild(1)).gameObject.SetActive(false);
			Light component = ((Component)transform.GetChild(0)).GetComponent<Light>();
			component.color = Color32.op_Implicit(new Color32((byte)118, (byte)222, (byte)225, byte.MaxValue));
			component.intensity = 2f;
			component.shadowStrength = 0.75f;
			((Component)transform.Find("CameraRelative").Find("SmallStars")).gameObject.SetActive(true);
			((Component)GameObject.Find("SMSkyboxPrefab").transform.Find("MoonHolder").Find("ShatteredMoonMesh")).gameObject.SetActive(false);
			((Component)GameObject.Find("SMSkyboxPrefab").transform.Find("MoonHolder").Find("MoonMesh")).gameObject.SetActive(true);
			Material val = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCTerrainGiantColumns.mat").WaitForCompletion());
			val.color = Color32.op_Implicit(new Color32((byte)57, (byte)0, byte.MaxValue, (byte)42));
			Material val2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCTerrainFloor.mat").WaitForCompletion();
			val2.color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue));
			Material val3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcavesimple/matDCBoulder.mat").WaitForCompletion();
			Material val4 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCTerrainWalls.mat").WaitForCompletion();
			Material val5 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimSheetConstructionDestroyed.mat").WaitForCompletion());
			val5.color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)136, (byte)103, byte.MaxValue));
			Material val6 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimSheetMetalMilitaryEmission.mat").WaitForCompletion();
			Material val7 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/dampcave/matDCCoralActive.mat").WaitForCompletion());
			val7.color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)10, (byte)0, byte.MaxValue));
			Material val8 = Object.Instantiate<Material>(Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Cleanse/matWaterPack.mat").WaitForCompletion());
			val8.color = Color32.op_Implicit(new Color32((byte)217, (byte)0, byte.MaxValue, byte.MaxValue));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val2));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val3));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val4));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val5));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val6));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val7));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val8));
			Transform transform2 = GameObject.Find("HOLDER: Randomization").transform;
			Transform child2 = GameObject.Find("PortalDialerEvent").transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val3) && Object.op_Implicit((Object)(object)val4) && Object.op_Implicit((Object)(object)val5) && Object.op_Implicit((Object)(object)val6) && Object.op_Implicit((Object)(object)val7) && Object.op_Implicit((Object)(object)val8))
			{
				MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[];
				MeshRenderer[] array2 = array;
				foreach (MeshRenderer val9 in array2)
				{
					GameObject gameObject = ((Component)val9).gameObject;
					Transform parent = gameObject.transform.parent;
					if (!((Object)(object)gameObject != (Object)null))
					{
						continue;
					}
					if ((Object)(object)parent != (Object)null)
					{
						if (((((Object)gameObject).name.Contains("Plateau") && ((Object)parent).name.Contains("skymeadow_terrain")) || (((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("FORMATION"))) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val;
						}
						if (((((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("HOLDER: Spinning Rocks")) || (((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("P13")) || (((Object)gameObject).name.Contains("SMPebble") && ((Object)parent).name.Contains("Underground")) || (((Object)gameObject).name.Contains("Boulder") && ((Object)parent).name.Contains("PortalDialerEvent")) || ((Object)gameObject).name.Contains("BbRuinPillar") || (((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("GROUP: Rocks"))) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val3;
						}
						if (((Object)gameObject).name.Contains("SMSpikeBridge") && ((Object)parent).name.Contains("Underground") && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val4;
						}
						if (((((Object)gameObject).name.Contains("Terrain") && ((Object)parent).name.Contains("skymeadow_terrain")) || (((Object)gameObject).name.Contains("Plateau Under") && ((Object)parent).name.Contains("Underground"))) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val2;
						}
						if (((((Object)gameObject).name.Contains("Base") && ((Object)parent).name.Contains("PowerCoil")) || (((Object)gameObject).name.Contains("InteractableMesh") && ((Object)parent).name.Contains("PortalDialerButton"))) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val6;
						}
						if (((Object)gameObject).name.Contains("Coil") && ((Object)parent).name.Contains("PowerCoil") && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
						{
							((Renderer)val9).sharedMaterial = val7;
						}
					}
					if ((((Object)gameObject).name.Contains("SMPebble") || ((Object)gameObject).name.Contains("mdlGeyser")) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
					{
						((Renderer)val9).sharedMaterial = val3;
					}
					if (((Object)gameObject).name.Contains("SMSpikeBridge") && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
					{
						((Renderer)val9).sharedMaterial = val4;
					}
					if ((((Object)gameObject).name.Contains("PowerLine") || ((Object)gameObject).name.Contains("MegaTeleporter") || ((Object)gameObject).name.Contains("BbRuinGateDoor") || ((Object)gameObject).name.Contains("BbRuinArch")) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
					{
						((Renderer)val9).sharedMaterial = val5;
					}
					if ((((Object)gameObject).name.Contains("HumanCrate") || ((Object)gameObject).name.Contains("BbRuinPillar")) && Object.op_Implicit((Object)(object)((Renderer)val9).sharedMaterial))
					{
						((Renderer)val9).sharedMaterial = val6;
					}
				}
				((Renderer)((Component)GameObject.Find("HOLDER: Terrain").transform.GetChild(1)).GetComponent<MeshRenderer>()).sharedMaterial = val;
				((Renderer)((Component)child2.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)GameObject.Find("ArtifactFormulaHolderMesh").GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)GameObject.Find("Stairway").GetComponent<MeshRenderer>()).sharedMaterial = val;
				try
				{
					((Renderer)GameObject.Find("Plateau 13 (1)").GetComponent<MeshRenderer>()).sharedMaterial = val;
				}
				catch
				{
				}
				((Renderer)((Component)transform2.GetChild(0).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(0).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(0).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(0).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(1).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(1).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(1).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(1).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(1).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(1).GetChild(1).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(2).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(2).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(2).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(2).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(3).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(4).GetChild(1).GetChild(3)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(5).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(5).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(5).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(5).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform2.GetChild(5).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(5).GetChild(1).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform2.GetChild(5).GetChild(2).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				Transform child3 = transform.GetChild(6);
				child3.localScale = new Vector3(4000f, 4000f, 4000f);
				((Renderer)((Component)child3).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val8;
			}
			GameObject.Find("HOLDER: Mauling Rocks").SetActive(false);
			((Component)child2.GetChild(3)).gameObject.SetActive(false);
			((Component)child2.GetChild(4)).gameObject.SetActive(false);
			((Component)child2.GetChild(5)).gameObject.SetActive(false);
			((Component)child2.GetChild(2).GetChild(1)).gameObject.SetActive(false);
			((Component)child2.GetChild(2).GetChild(2)).gameObject.SetActive(false);
			((Component)child2.GetChild(2).GetChild(3)).gameObject.SetActive(false);
			((Component)child2.GetChild(2).GetChild(4)).gameObject.SetActive(false);
			((Component)child2.GetChild(2).GetChild(5)).gameObject.SetActive(false);
			((Component)child2.GetChild(1).GetChild(9)).gameObject.SetActive(false);
			GameObject.Find("GROUP: Large Flowers").SetActive(false);
			GameObject.Find("FORMATION (5)").transform.localPosition = new Vector3(-140f, -6.08f, 491.99f);
			AbyssalFoliage();
		}

		public static void Titanic(RampFog fog)
		{
			//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_001d: 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_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: 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_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1e: Unknown result type (might be due to invalid IL or missing references)
			((ParameterOverride<Color>)(object)fog.fogColorStart).value = Color32.op_Implicit(new Color32((byte)125, (byte)141, (byte)160, (byte)0));
			((ParameterOverride<Color>)(object)fog.fogColorMid).value = Color32.op_Implicit(new Color32((byte)119, (byte)144, (byte)175, (byte)60));
			((ParameterOverride<Color>)(object)fog.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)94, (byte)137, (byte)195, (byte)110));
			((ParameterOverride<float>)(object)fog.fogZero).value = -0.02f;
			((ParameterOverride<float>)(object)fog.skyboxStrength).value = 0.1f;
			Material val = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/golemplains/matGPTerrain.mat").WaitForCompletion();
			Material val2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/golemplains/matGPTerrainBlender.mat").WaitForCompletion();
			Material val3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/golemplains/matGPBoulderMossyProjected.mat").WaitForCompletion();
			Material val4 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/golemplains/matGPBoulderHeavyMoss.mat").WaitForCompletion();
			Material val5 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimsheetGraveyardProps.mat").WaitForCompletion();
			Material val6 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimSheetMetalMilitaryEmission.mat").WaitForCompletion();
			Material val7 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Junk/AncientWisp/matAncientWillowispSpiral.mat").WaitForCompletion();
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val2));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val3));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val4));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val5));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val6));
			SwapVariants.SALogger.LogInfo((object)("Initializing material, if this is null then guhhh... " + (object)val7));
			Transform transform = GameObject.Find("HOLDER: Randomization").transform;
			Transform child = GameObject.Find("PortalDialerEvent").transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val3) && Object.op_Implicit((Object)(object)val4) && Object.op_Implicit((Object)(object)val5) && Object.op_Implicit((Object)(object)val6) && Object.op_Implicit((Object)(object)val7))
			{
				MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[];
				MeshRenderer[] array2 = array;
				foreach (MeshRenderer val8 in array2)
				{
					GameObject gameObject = ((Component)val8).gameObject;
					Transform parent = gameObject.transform.parent;
					if (!((Object)(object)gameObject != (Object)null))
					{
						continue;
					}
					if ((Object)(object)parent != (Object)null)
					{
						if (((((Object)gameObject).name.Contains("Plateau") && ((Object)parent).name.Contains("skymeadow_terrain")) || (((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("FORMATION"))) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val;
						}
						if (((((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("HOLDER: Spinning Rocks")) || (((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("P13")) || (((Object)gameObject).name.Contains("SMPebble") && ((Object)parent).name.Contains("Underground")) || (((Object)gameObject).name.Contains("Boulder") && ((Object)parent).name.Contains("PortalDialerEvent"))) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val3;
						}
						if (((((Object)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("GROUP: Rocks")) || (((Object)gameObject).name.Contains("SMSpikeBridge") && ((Object)parent).name.Contains("Underground"))) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val4;
						}
						if (((((Object)gameObject).name.Contains("Terrain") && ((Object)parent).name.Contains("skymeadow_terrain")) || (((Object)gameObject).name.Contains("Plateau Under") && ((Object)parent).name.Contains("Underground"))) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val2;
						}
						if (((((Object)gameObject).name.Contains("Base") && ((Object)parent).name.Contains("PowerCoil")) || (((Object)gameObject).name.Contains("InteractableMesh") && ((Object)parent).name.Contains("PortalDialerButton"))) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val6;
						}
						if (((Object)gameObject).name.Contains("Coil") && ((Object)parent).name.Contains("PowerCoil") && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
						{
							((Renderer)val8).sharedMaterial = val7;
						}
					}
					if ((((Object)gameObject).name.Contains("SMPebble") || ((Object)gameObject).name.Contains("mdlGeyser")) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
					{
						((Renderer)val8).sharedMaterial = val3;
					}
					if (((Object)gameObject).name.Contains("SMSpikeBridge") && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
					{
						((Renderer)val8).sharedMaterial = val4;
					}
					if ((((Object)gameObject).name.Contains("PowerLine") || ((Object)gameObject).name.Contains("MegaTeleporter") || ((Object)gameObject).name.Contains("BbRuinGateDoor") || ((Object)gameObject).name.Contains("BbRuinArch")) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
					{
						((Renderer)val8).sharedMaterial = val5;
					}
					if ((((Object)gameObject).name.Contains("HumanCrate") || ((Object)gameObject).name.Contains("BbRuinPillar")) && Object.op_Implicit((Object)(object)((Renderer)val8).sharedMaterial))
					{
						((Renderer)val8).sharedMaterial = val6;
					}
				}
				((Renderer)((Component)GameObject.Find("HOLDER: Terrain").transform.GetChild(1)).GetComponent<MeshRenderer>()).sharedMaterial = val;
				((Renderer)((Component)child.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)GameObject.Find("ArtifactFormulaHolderMesh").GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)GameObject.Find("Stairway").GetComponent<MeshRenderer>()).sharedMaterial = val;
				try
				{
					((Renderer)GameObject.Find("Plateau 13 (1)").GetComponent<MeshRenderer>()).sharedMaterial = val;
				}
				catch
				{
				}
				((Renderer)((Component)transform.GetChild(0).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(0).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(0).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(0).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(1).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(1).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(1).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(1).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(1).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(1).GetChild(1).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(2).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(2).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(2).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(2).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(3).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(4).GetChild(1).GetChild(3)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(5).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(5).GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(5).GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(5).GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val2;
				((Renderer)((Component)transform.GetChild(5).GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(5).GetChild(1).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
				((Renderer)((Component)transform.GetChild(5).GetChild(2).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = val4;
			}
			GameObject.Find("HOLDER: Mauling Rocks").SetActive(false);
			((Component)child.GetChild(3)).gameObject.SetActive(false);
			((Component)child.GetChild(4)).gameObject.SetActive(false);
			((Component)child.GetChild(5)).gameObject.SetActive(false);
			((Component)child.GetChild(2).GetChild(1)).gameObject.SetActive(false);
			((Component)child.GetChild(2).GetChild(2)).gameObject.SetActive(false);
			((Component)child.GetChild(2).GetChild(3)).gameObject.SetActive(false);
			((Component)child.GetChild(2).GetChild(4)).gameObject.SetActive(false);
			((Component)child.GetChild(2).GetChild(5)).gameObject.SetActive(false);
			((Component)child.GetChild(1).GetChild(9)).gameObject.SetActive(false);
			GameObject.Find("GROUP: Large Flowers").SetActive(false);
			GameObject.Find("FORMATION (5)").transform.localPosition = new Vector3(-140f, -6.08f, 491.99f);
			TitanicFoliage();
		}

		public static void Abandoned(RampFog fog)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_0041: 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_005f