Decompiled source of CoolerStages Continued v2.2.0
CoolerStages.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
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 BepInEx; using BepInEx.Configuration; using Microsoft.CodeAnalysis; using On.RoR2; using RoR2; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("CoolerStages")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+5e1b914f1b1cdab16cd207c3cf1851623626d95c")] [assembly: AssemblyProduct("CoolerStages")] [assembly: AssemblyTitle("CoolerStages")] [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 CoolerStages { [BepInPlugin("com.Nuxlar.CoolerStages", "CoolerStages", "2.0.0")] public class CoolerStages : BaseUnityPlugin { private static readonly Material nightTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/wispgraveyard/matWPTerrain.mat").WaitForCompletion(); private static readonly Material nightTerrainMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/wispgraveyard/matWPTerrainRocky.mat").WaitForCompletion(); private static readonly Material nightDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/wispgraveyard/matTempleObelisk.mat").WaitForCompletion(); private static readonly Material nightDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimsheetGraveyardTempleWhiteGrassy.mat").WaitForCompletion(); private static readonly Material nightDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/foggyswamp/matFSTreeTrunkLightMoss.mat").WaitForCompletion(); private static readonly Material danTerrain = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/arena/matArenaTerrainVerySnowy.mat").WaitForCompletion(); private static readonly Material danDetail = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/voidstage/matVoidFoam.mat").WaitForCompletion(); private static readonly Material danDetail2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/TrimSheets/matTrimSheetAlien1BossEmission.mat").WaitForCompletion(); private static readonly Material danDetail3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/voidstage/matVoidTrim.mat").WaitForCompletion(); private static readonly Material ruinTerrainTest = new Material(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itancientloft/matAncientLoft_TempleProjectedInfiniteTower.mat").WaitForCompletion()); private static readonly Material ruinTerrain = new Material(Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itancientloft/matAncientLoft_TempleProjectedInfiniteTower.mat").WaitForCompletion()); private static readonly Material ruinDetail = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itancientloft/matAncientLoft_BoulderInfiniteTower.mat").WaitForCompletion(); private static readonly Material ruinDetail2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itancientloft/matAncientLoft_TempleProjectedInfiniteTower.mat").WaitForCompletion(); private static readonly Material ruinDetail3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/rootjungle/matRJTree.mat").WaitForCompletion(); private static readonly Material smSimTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itskymeadow/matSMTerrainInfiniteTower.mat").WaitForCompletion(); private static readonly Material smSimDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itskymeadow/matSMRockInfiniteTower.mat").WaitForCompletion(); private static readonly Material smSimDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itskymeadow/matTrimSheetMeadowRuinsProjectedInfiniteTower.mat").WaitForCompletion(); private static readonly Material smSimtDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itskymeadow/matSMSpikeBridgeInfinitetower.mat").WaitForCompletion(); private static readonly Material dcSimTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itdampcave/matDCTerrainFloorInfiniteTower.mat").WaitForCompletion(); private static readonly Material dcSimDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itdampcave/matDCBoulderInfiniteTower.mat").WaitForCompletion(); private static readonly Material dcSimDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itdampcave/matTrimSheetLemurianRuinsLightInfiniteTower.mat").WaitForCompletion(); private static readonly Material dcSimDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itdampcave/matDCStalagmiteInfiniteTower.mat").WaitForCompletion(); private static readonly Material gpSimTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgolemplains/matGPTerrainInfiniteTower.mat").WaitForCompletion(); private static readonly Material gpSimDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgolemplains/matGPBoulderMossyProjectedInfiniteTower.mat").WaitForCompletion(); private static readonly Material gpSimDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgolemplains/matTrimSheetMossyProjectedHugeInfiniteTower.mat").WaitForCompletion(); private static readonly Material gpSimDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/foggyswamp/matFSTreeTrunkLightMoss.mat").WaitForCompletion(); private static readonly Material gooSimTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgoolake/matGoolakeTerrainInfiniteTower.mat").WaitForCompletion(); private static readonly Material gooSimDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgoolake/matGoolakeRocksInfiniteTower.mat").WaitForCompletion(); private static readonly Material gooSimDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgoolake/matGoolakeStoneTrimLightSandInfiniteTower.mat").WaitForCompletion(); private static readonly Material gooSimDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC1/itgoolake/matEelSkeleton2InfiniteTower.mat").WaitForCompletion(); private static readonly Material moonTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/moon/matMoonTerrain.mat").WaitForCompletion(); private static readonly Material moonDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/moon/matMoonBoulder.mat").WaitForCompletion(); private static readonly Material moonDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/moon/matMoonBridge.mat").WaitForCompletion(); private static readonly Material moonDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/moon/matMoonBaseStandTriplanar.mat").WaitForCompletion(); private static readonly Material bazaarTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/bazaar/matBazaarTerrainTriplanar.mat").WaitForCompletion(); private static readonly Material bazaarDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/bazaar/matBazaarWoodSandy.mat").WaitForCompletion(); private static readonly Material bazaarDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/intro/matColonyShipStandard.mat").WaitForCompletion(); private static readonly Material bazaarDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/mysteryspace/matMSObeliskHeart.mat").WaitForCompletion(); private static readonly Material verdantTerrainMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/lakes/Assets/matTLTerrainStone.mat").WaitForCompletion(); private static readonly Material verdantDetailMat = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/lakes/Assets/matTLRocks.mat").WaitForCompletion(); private static readonly Material verdantDetailMat2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/lakes/Assets/matTLShip.mat").WaitForCompletion(); private static readonly Material verdantDetailMat3 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/lakes/Assets/matTLGVine.mat").WaitForCompletion(); private static readonly List<Material[]> themeMaterials1 = new List<Material[]> { (Material[])(object)new Material[4] { verdantTerrainMat, verdantDetailMat, verdantDetailMat2, verdantDetailMat3 }, (Material[])(object)new Material[4] { smSimTerrainMat, smSimDetailMat, smSimDetailMat2, smSimtDetailMat3 }, (Material[])(object)new Material[4] { danTerrain, danDetail, danDetail2, danDetail3 }, (Material[])(object)new Material[4] { ruinTerrain, ruinDetail, ruinDetail2, ruinDetail3 }, (Material[])(object)new Material[4] { dcSimTerrainMat, dcSimDetailMat, dcSimDetailMat2, dcSimDetailMat3 }, (Material[])(object)new Material[4] { gpSimTerrainMat, gpSimDetailMat, gpSimDetailMat2, gpSimDetailMat3 }, (Material[])(object)new Material[4] { gooSimTerrainMat, gooSimDetailMat, gooSimDetailMat2, gooSimDetailMat3 }, (Material[])(object)new Material[4] { moonTerrainMat, moonDetailMat, moonDetailMat2, moonDetailMat3 }, (Material[])(object)new Material[4] { bazaarTerrainMat, bazaarDetailMat, bazaarDetailMat2, bazaarDetailMat3 } }; private static readonly List<Material[]> themeMaterials2 = new List<Material[]> { (Material[])(object)new Material[4] { verdantTerrainMat, verdantDetailMat, verdantDetailMat2, verdantDetailMat3 }, (Material[])(object)new Material[4] { danTerrain, danDetail, danDetail2, danDetail3 }, (Material[])(object)new Material[4] { ruinTerrain, ruinDetail, ruinDetail2, ruinDetail3 }, (Material[])(object)new Material[4] { dcSimTerrainMat, dcSimDetailMat, dcSimDetailMat2, dcSimDetailMat3 } }; private Random rng; private static readonly string[] whitelistedMaps = new string[21] { "lakes", "lakesnight", "snowyforest", "blackbeach", "blackbeach2", "golemplains", "golemplains2", "goolake", "foggyswamp", "ancientloft", "frozenwall", "wispgraveyard", "sulfurpools", "shipgraveyard", "rootjungle", "dampcavesimple", "skymeadow", "moon2", "village", "villagenight", "helminthroost" }; public static ConfigEntry<bool> enableWinter; public static ConfigEntry<bool> enableFantasy; public static ConfigEntry<bool> enableAuburn; public static ConfigEntry<bool> enableAfternoon; public static ConfigEntry<bool> enableDrowned; public static ConfigEntry<bool> enableDreary; public static ConfigEntry<bool> enableHelminthroost; private Texture2D tlCliffTex = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC2/lakes/Assets/texTLTerrainCliff.tga").WaitForCompletion(); private Texture2D tlDirtTex = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC2/lakes/Assets/texTLTerrainDirt.tga").WaitForCompletion(); private Texture2D rockNormal = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Common/texNormalBumpyRock.jpg").WaitForCompletion(); private PostProcessProfile pp1 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile pp2 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile pp3 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile pp4 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile pp5 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile pp6 = ScriptableObject.CreateInstance<PostProcessProfile>(); private PostProcessProfile ppbb = Addressables.LoadAssetAsync<PostProcessProfile>((object)"RoR2/Base/title/PostProcessing/ppSceneGolemplainsFoggy.asset").WaitForCompletion(); private static ConfigFile CSConfig { get; set; } public void Awake() { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0275: 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_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0457: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_0625: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_0712: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_071c: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_0738: Unknown result type (might be due to invalid IL or missing references) //IL_073d: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_075e: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_0807: Expected O, but got Unknown CSConfig = new ConfigFile(Paths.ConfigPath + "\\com.Nuxlar.CoolerStages.cfg", true); enableWinter = CSConfig.Bind<bool>("Profiles", "Enable Winter Profile", true, "White and Foggy."); enableFantasy = CSConfig.Bind<bool>("Profiles", "Enable Fanstasy Profile", true, "Pink"); enableAuburn = CSConfig.Bind<bool>("Profiles", "Enable Auburn Profile", true, "Red-ish Brown."); enableAfternoon = CSConfig.Bind<bool>("Profiles", "Enable Afternoon Profile", true, "Bright, Sunny Blue Skies."); enableDrowned = CSConfig.Bind<bool>("Profiles", "Enable Drowned Profile", true, "Soft Purple/Blue."); enableDreary = CSConfig.Bind<bool>("Profiles", "Enable Dreary Profile", true, "Dark, Midnight Blue."); enableHelminthroost = CSConfig.Bind<bool>("Stages", "Enable Helminth Roost", true, "Dlc stage 5"); ruinTerrain.color = new Color(0.701f, 0.623f, 0.403f, 1f); ruinTerrain.SetTexture("_SplatmapTex", (Texture)null); ruinTerrain.SetTexture("_NormalTex", (Texture)(object)rockNormal); ruinTerrain.SetTexture("_RedChannelSideTex", (Texture)(object)tlCliffTex); ruinTerrain.SetTexture("_RedChannelTopTex", (Texture)(object)tlDirtTex); ruinTerrainTest.color = Color.white; ((Object)pp1).name = "Winter"; ((Object)pp2).name = "Fantasy"; ((Object)pp3).name = "Auburn"; ((Object)pp4).name = "Afternoon"; ((Object)pp5).name = "Drowned"; ((Object)pp6).name = "Dreary"; RampFog obj = pp1.AddSettings<RampFog>(); RampFog val = pp2.AddSettings<RampFog>(); RampFog val2 = pp3.AddSettings<RampFog>(); RampFog val3 = pp4.AddSettings<RampFog>(); RampFog val4 = pp5.AddSettings<RampFog>(); RampFog val5 = pp6.AddSettings<RampFog>(); ppbb.GetSetting<RampFog>(); ((PostProcessEffectSettings)obj).SetAllOverridesTo(true, true); ((PostProcessEffectSettings)val).SetAllOverridesTo(true, true); ((PostProcessEffectSettings)val2).SetAllOverridesTo(true, true); ((PostProcessEffectSettings)val3).SetAllOverridesTo(true, true); ((PostProcessEffectSettings)val4).SetAllOverridesTo(true, true); ((PostProcessEffectSettings)val5).SetAllOverridesTo(true, true); ((ParameterOverride<Color>)(object)obj.fogColorStart).value = Color32.op_Implicit(new Color32((byte)225, (byte)225, (byte)225, (byte)15)); ((ParameterOverride<Color>)(object)obj.fogColorMid).value = Color32.op_Implicit(new Color32((byte)160, (byte)207, byte.MaxValue, (byte)150)); ((ParameterOverride<Color>)(object)obj.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)135, (byte)150, (byte)200, byte.MaxValue)); ((ParameterOverride<float>)(object)obj.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)obj.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)obj.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)obj.fogIntensity).value = 0.75f; ((ParameterOverride<float>)(object)obj.fogOne).value = 0.15f; ((ParameterOverride<float>)(object)obj.fogPower).value = 1.5f; ((ParameterOverride<float>)(object)obj.fogZero).value = -0.01f; ((ParameterOverride<float>)(object)obj.skyboxStrength).value = 0.1f; ((ParameterOverride<Color>)(object)val.fogColorStart).value = Color32.op_Implicit(new Color32((byte)229, (byte)164, (byte)203, (byte)10)); ((ParameterOverride<Color>)(object)val.fogColorMid).value = Color32.op_Implicit(new Color32((byte)145, (byte)120, (byte)120, (byte)125)); ((ParameterOverride<Color>)(object)val.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)120, (byte)75, (byte)100, (byte)225)); ((ParameterOverride<float>)(object)val.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)val.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)val.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)val.fogIntensity).value = 1f; ((ParameterOverride<float>)(object)val.fogOne).value = 0.15f; ((ParameterOverride<float>)(object)val.fogPower).value = 2f; ((ParameterOverride<float>)(object)val.fogZero).value = -0.01f; ((ParameterOverride<float>)(object)val.skyboxStrength).value = 0.1f; ((ParameterOverride<Color>)(object)val2.fogColorStart).value = Color32.op_Implicit(new Color32((byte)190, (byte)154, (byte)150, (byte)15)); ((ParameterOverride<Color>)(object)val2.fogColorMid).value = Color32.op_Implicit(new Color32((byte)110, (byte)73, (byte)69, (byte)100)); ((ParameterOverride<Color>)(object)val2.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)90, (byte)47, (byte)44, (byte)200)); ((ParameterOverride<float>)(object)val2.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)val2.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)val2.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)val2.fogIntensity).value = 1f; ((ParameterOverride<float>)(object)val2.fogOne).value = 0.15f; ((ParameterOverride<float>)(object)val2.fogPower).value = 2f; ((ParameterOverride<float>)(object)val2.fogZero).value = -0.01f; ((ParameterOverride<float>)(object)val2.skyboxStrength).value = 0f; ((ParameterOverride<Color>)(object)val3.fogColorStart).value = Color32.op_Implicit(new Color32((byte)235, (byte)235, (byte)205, (byte)25)); ((ParameterOverride<Color>)(object)val3.fogColorMid).value = Color32.op_Implicit(new Color32((byte)252, (byte)253, (byte)196, (byte)150)); ((ParameterOverride<Color>)(object)val3.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)14, (byte)212, byte.MaxValue, (byte)225)); ((ParameterOverride<float>)(object)val3.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)val3.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)val3.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)val3.fogIntensity).value = 0.5f; ((ParameterOverride<float>)(object)val3.fogOne).value = 0.4f; ((ParameterOverride<float>)(object)val3.fogPower).value = 2f; ((ParameterOverride<float>)(object)val3.fogZero).value = 0f; ((ParameterOverride<float>)(object)val3.skyboxStrength).value = 0.1f; ((ParameterOverride<Color>)(object)val4.fogColorStart).value = Color32.op_Implicit(new Color32((byte)171, (byte)151, (byte)191, (byte)25)); ((ParameterOverride<Color>)(object)val4.fogColorMid).value = Color32.op_Implicit(new Color32((byte)120, (byte)120, (byte)175, (byte)150)); ((ParameterOverride<Color>)(object)val4.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)100, (byte)75, (byte)150, (byte)225)); ((ParameterOverride<float>)(object)val4.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)val4.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)val4.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)val4.fogIntensity).value = 0.9f; ((ParameterOverride<float>)(object)val4.fogOne).value = 0.15f; ((ParameterOverride<float>)(object)val4.fogPower).value = 1.75f; ((ParameterOverride<float>)(object)val4.fogZero).value = -0.01f; ((ParameterOverride<float>)(object)val4.skyboxStrength).value = 0.1f; ((ParameterOverride<Color>)(object)val5.fogColorStart).value = Color32.op_Implicit(new Color32((byte)129, (byte)148, (byte)168, (byte)25)); ((ParameterOverride<Color>)(object)val5.fogColorMid).value = Color32.op_Implicit(new Color32((byte)68, (byte)104, (byte)116, (byte)150)); ((ParameterOverride<Color>)(object)val5.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)55, (byte)63, (byte)81, byte.MaxValue)); ((ParameterOverride<float>)(object)val5.fogHeightStart).value = 0f; ((ParameterOverride<float>)(object)val5.fogHeightEnd).value = 100f; ((ParameterOverride<float>)(object)val5.fogHeightIntensity).value = 0f; ((ParameterOverride<float>)(object)val5.fogIntensity).value = 1f; ((ParameterOverride<float>)(object)val5.fogOne).value = 0.15f; ((ParameterOverride<float>)(object)val5.fogPower).value = 1.75f; ((ParameterOverride<float>)(object)val5.fogZero).value = 0f; ((ParameterOverride<float>)(object)val5.skyboxStrength).value = 0.1f; rng = new Random(); SceneDirector.Start += new hook_Start(SceneDirector_Start); } private void SceneDirector_Start(orig_Start orig, SceneDirector self) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_0572: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0e7b: Unknown result type (might be due to invalid IL or missing references) //IL_0c4f: Unknown result type (might be due to invalid IL or missing references) //IL_0c54: Unknown result type (might be due to invalid IL or missing references) //IL_0c6d: Unknown result type (might be due to invalid IL or missing references) //IL_0c72: Unknown result type (might be due to invalid IL or missing references) //IL_0e62: Unknown result type (might be due to invalid IL or missing references) //IL_0e8b: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0f68: Unknown result type (might be due to invalid IL or missing references) //IL_0f6d: Unknown result type (might be due to invalid IL or missing references) //IL_0f7f: Unknown result type (might be due to invalid IL or missing references) //IL_0f84: Unknown result type (might be due to invalid IL or missing references) //IL_0f96: Unknown result type (might be due to invalid IL or missing references) //IL_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_1049: Unknown result type (might be due to invalid IL or missing references) //IL_104e: Unknown result type (might be due to invalid IL or missing references) //IL_1067: Unknown result type (might be due to invalid IL or missing references) //IL_106c: Unknown result type (might be due to invalid IL or missing references) //IL_0e28: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_0806: Unknown result type (might be due to invalid IL or missing references) int seed = (int)(Run.instance.GetStartTimeUtc().Ticks ^ (Run.instance.stageClearCount << 16)); rng = new Random(seed); Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; SceneInfo instance = SceneInfo.instance; if (!enableHelminthroost.Value && name == "helminthroost") { return; } PostProcessVolume val; GameObject val2; if (Object.op_Implicit((Object)(object)instance) && whitelistedMaps.Contains(name)) { val = ((Component)instance).GetComponent<PostProcessVolume>(); if (!Object.op_Implicit((Object)(object)val) || !((Behaviour)val).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); } bool? flag = obj; if (!flag.GetValueOrDefault(true)) { goto IL_00f7; } } val2 = GameObject.Find("PP, Global"); goto IL_00f7; } goto IL_0285; } goto IL_10af; IL_10af: orig.Invoke(self); return; IL_00f7: 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); } bool? flag = obj2; if (!flag.GetValueOrDefault(true)) { goto IL_014c; } } val2 = GameObject.Find("GlobalPostProcessVolume, Base"); goto IL_014c; IL_01a1: if (Object.op_Implicit((Object)(object)val2)) { bool? obj3; if (val2 == null) { obj3 = null; } else { PostProcessVolume component3 = val2.GetComponent<PostProcessVolume>(); obj3 = ((component3 != null) ? new bool?(!((Behaviour)component3).isActiveAndEnabled) : null); } bool? flag = obj3; if (!flag.GetValueOrDefault(true)) { goto IL_0230; } } GameObject obj4 = GameObject.Find("MapZones"); object obj5; if (obj4 == null) { obj5 = null; } else { Transform transform = obj4.transform; if (transform == null) { obj5 = null; } else { Transform obj6 = transform.Find("PostProcess Zones"); if (obj6 == null) { obj5 = null; } else { Transform obj7 = obj6.Find("SandOvercast"); obj5 = ((obj7 != null) ? ((Component)obj7).gameObject : null); } } } val2 = (GameObject)obj5; goto IL_0230; IL_0285: if (Object.op_Implicit((Object)(object)val)) { int index = rng.Next(themeMaterials1.Count); Material[] array = themeMaterials1[index]; int index2 = rng.Next(themeMaterials2.Count); Material[] array2 = themeMaterials2[index2]; Material val3 = array[0]; Material val4 = array[1]; Material val5 = array[2]; Material val6 = array[3]; Material val7 = array2[0]; Material val8 = array2[1]; Material val9 = array2[2]; Material val10 = array2[3]; List<PostProcessProfile> list = new List<PostProcessProfile>(); if (enableWinter.Value) { list.Add(pp1); } if (enableFantasy.Value && !(name == "helminthroost")) { list.Add(pp2); } if (enableAuburn.Value) { list.Add(pp3); } if (enableAfternoon.Value && !(name == "helminthroost")) { list.Add(pp4); } if (enableDrowned.Value && !(name == "helminthroost")) { list.Add(pp5); } if (enableDreary.Value) { list.Add(pp6); } int index3 = rng.Next(list.Count); PostProcessProfile val11 = list[index3]; if (name != "moon2") { val.profile = val11; } RampFog setting = val11.GetSetting<RampFog>(); GameObject val12 = GameObject.Find("Directional Light (SUN)"); Color color = Color.gray; if (Object.op_Implicit((Object)(object)val12)) { Light component4 = val12.GetComponent<Light>(); if (Object.op_Implicit((Object)(object)component4)) { if (((Object)val11).name == "Midnight Dreary") { component4.color = new Color(((ParameterOverride<Color>)(object)setting.fogColorStart).value.r + 0.1f, ((ParameterOverride<Color>)(object)setting.fogColorStart).value.g + 0.1f, ((ParameterOverride<Color>)(object)setting.fogColorStart).value.b + 0.1f, 1f); } else { component4.color = new Color(((ParameterOverride<Color>)(object)setting.fogColorStart).value.r, ((ParameterOverride<Color>)(object)setting.fogColorStart).value.g, ((ParameterOverride<Color>)(object)setting.fogColorStart).value.b, 1f); } switch (name) { case "lakes": case "wispgraveyard": case "ancientloft": case "golemplains": case "golemplains2": case "goolake": { SetAmbientLight component5 = ((Component)val).GetComponent<SetAmbientLight>(); if (Object.op_Implicit((Object)(object)component5)) { component5.ambientMode = (AmbientMode)3; component5.ambientIntensity = 0.75f; component5.ambientSkyColor = Color.gray; component5.ApplyLighting(); } color = component4.color; break; } default: { SetAmbientLight val13 = ((Component)component4).gameObject.AddComponent<SetAmbientLight>(); if (Object.op_Implicit((Object)(object)val13)) { val13.ambientMode = (AmbientMode)3; val13.setAmbientLightColor = true; val13.ambientIntensity = 0.75f; val13.ambientSkyColor = Color.gray; val13.ApplyLighting(); } break; } } component4.shadowStrength = 0.75f; bool flag2; bool flag3; switch (name) { case "foggyswamp": case "sulfurpools": case "shipgraveyard": case "dampcavesimple": flag2 = IsBright(val7); flag3 = ((Object)val7).name.Contains("matDC"); break; default: flag2 = IsBright(val3); flag3 = ((Object)val3).name.Contains("matDC"); break; } if (flag2) { if (name == "snowyforest" || name == "skymeadow" || name.Contains("blackbeach") || name == "shipgraveyard") { component4.intensity = 1f; } else if (flag3 && ((Object)val11).name.Contains("void")) { component4.intensity = 1.25f; } else if (name == "dampcavesimple" || flag3) { component4.intensity = (((Object)val7).name.Contains("snowy") ? 0.75f : 1f); component4.shadowStrength = 0.5f; } else { component4.intensity = 0.5f; } } else if (name == "snowyforest" || name == "skymeadow" || name.Contains("blackbeach") || name == "shipgraveyard") { component4.intensity = 1.5f; } else if (name == "dampcavesimple" || flag3) { component4.intensity = 2f; component4.shadowStrength = 0.5f; } else { component4.intensity = 1f; } if (name == "frozenwall") { component4.intensity = 1f; } if (((Object)val11).name == "Midnight Dreary") { component4.intensity *= 1.25f; component4.shadowStrength = 0.5f; } if (name == "goolake" || name == "frozenwall") { Light component6 = Object.Instantiate<GameObject>(GameObject.Find("Directional Light (SUN)")).GetComponent<Light>(); if (Object.op_Implicit((Object)(object)component6)) { component6.color = component4.color; component6.intensity = component4.intensity; val12.SetActive(false); ((Object)val12).name = "Fake Sun"; } } } switch (name) { case "foggyswamp": case "sulfurpools": case "shipgraveyard": case "dampcavesimple": Debug.LogWarning((object)("Terrain Alt Material: " + ((Object)val7).name)); Debug.LogWarning((object)("Detail Alt (Rocks) Material: " + ((Object)val8).name)); Debug.LogWarning((object)("Detail2 Alt (Ruins) Material: " + ((Object)val9).name)); Debug.LogWarning((object)("Detail3 Alt (Trees) Material: " + ((Object)val10).name)); Debug.LogWarning((object)("Post Process Profile : " + ((Object)val11).name)); break; default: Debug.LogWarning((object)("Terrain Material: " + ((Object)val3).name)); Debug.LogWarning((object)("Detail (Rocks) Material: " + ((Object)val4).name)); Debug.LogWarning((object)("Detail2 (Ruins) Material: " + ((Object)val5).name)); Debug.LogWarning((object)("Detail3 (Trees) Material: " + ((Object)val6).name)); Debug.LogWarning((object)("Post Process Profile: " + ((Object)val11).name)); break; } switch (name) { case "lakes": Stage1.Falls(val7, val8, val9, val10, Color32.op_Implicit(component4.color)); break; case "lakesnight": Stage1.NightFalls(val7, val8, val9, val10, Color32.op_Implicit(component4.color)); break; case "village": Stage1.Shattered(val7, val8, val9, val6); break; case "villagenight": Stage1.NightShattered(val7, val8, val9, val6); break; case "blackbeach": Stage1.Roost1(val3, val4, val5); break; case "blackbeach2": Stage1.Roost2(val3, val4, val5); break; case "golemplains": Stage1.Plains(val3, val4, val5); break; case "golemplains2": Stage1.Plains(val3, val4, val5); break; case "snowyforest": Stage1.Forest(val3, val4, val5, val6); break; case "goolake": Stage2.Aqueduct(val3, val4, val5, val6); break; case "ancientloft": { GameObject val15 = GameObject.Find("DeepFog"); if (Object.op_Implicit((Object)(object)val15)) { val15.SetActive(false); } Stage2.Aphelian(val3, val4, val5, val6); break; } case "foggyswamp": Stage2.Wetland(val7, val8, val9, val10); break; case "frozenwall": Stage3.RPD(val3, val4, val5); break; case "wispgraveyard": Stage3.Acres(val3, val4, val5); break; case "sulfurpools": GameObject.Find("SPCavePP").SetActive(false); ((Component)GameObject.Find("CameraRelative").transform.GetChild(1)).gameObject.SetActive(false); Stage3.Pools(val7, val8, val9); break; case "rootjungle": Stage4.Grove(val3, val4, val5, val6); break; case "shipgraveyard": Stage4.Sirens(val7, val8, val9); break; case "dampcavesimple": { GameObject val14 = GameObject.Find("Main Camera(Clone)"); if (Object.op_Implicit((Object)(object)val14)) { ((Component)val14.transform.GetChild(0)).GetComponent<PostProcessLayer>().breakBeforeColorGrading = true; } if (((Object)val7).name.Contains("Snowy")) { Stage4.Abyssal(val7, val10, val8, val9); } else { Stage4.Abyssal(val7, val8, val10, val9); } AbyssalLighting(color); if (Object.op_Implicit((Object)(object)GameObject.Find("DCPPInTunnels"))) { GameObject.Find("DCPPInTunnels").SetActive(false); } break; } case "helminthroost": Stage5.Roost(val3, val4, val6, val5, component4.color); break; case "skymeadow": Stage5.SkyMeadow(val3, val4, val6, val5, component4.color); break; case "moon2": try { activeScene = SceneManager.GetActiveScene(); Transform child = ((Scene)(ref activeScene)).GetRootGameObjects()[0].transform.GetChild(0); ((Component)child.GetChild(0)).GetComponent<PostProcessVolume>().priority = 10001f; ((Component)child.GetChild(6)).GetComponent<PostProcessVolume>().weight = 0.47f; ((Component)child.GetChild(6)).GetComponent<PostProcessVolume>().sharedProfile.settings[0].active = false; RampFog setting2 = val.sharedProfile.GetSetting<RampFog>(); ((ParameterOverride<float>)(object)setting2.fogIntensity).value = ((ParameterOverride<float>)(object)setting.fogIntensity).value; ((ParameterOverride<float>)(object)setting2.fogPower).value = ((ParameterOverride<float>)(object)setting.fogPower).value; ((ParameterOverride<float>)(object)setting2.fogZero).value = ((ParameterOverride<float>)(object)setting.fogZero).value; ((ParameterOverride<float>)(object)setting2.fogOne).value = ((ParameterOverride<float>)(object)setting.fogOne).value; ((ParameterOverride<Color>)(object)setting2.fogColorStart).value = ((ParameterOverride<Color>)(object)setting.fogColorStart).value; ((ParameterOverride<Color>)(object)setting2.fogColorMid).value = ((ParameterOverride<Color>)(object)setting.fogColorMid).value; ((ParameterOverride<Color>)(object)setting2.fogColorEnd).value = ((ParameterOverride<Color>)(object)setting.fogColorEnd).value; ((ParameterOverride<float>)(object)setting2.skyboxStrength).value = ((ParameterOverride<float>)(object)setting.skyboxStrength).value; ((Component)GameObject.Find("HOLDER: Gameplay Space").transform.GetChild(0).Find("Quadrant 4: Starting Temple").GetChild(0) .Find("FX") .GetChild(0)).GetComponent<PostProcessVolume>().weight = 0.28f; HookLightingIntoPostProcessVolume component7 = ((Component)GameObject.Find("HOLDER: Gameplay Space").transform.GetChild(0).Find("Quadrant 4: Starting Temple").GetChild(0) .Find("FX") .GetChild(0)).GetComponent<HookLightingIntoPostProcessVolume>(); component7.overrideAmbientColor = new Color(0.4138f, 0.4086f, 0.45f, 1f); component7.overrideDirectionalColor = new Color(0.4012f, 0.4091f, 0.4226f, 1f); } catch { Debug.LogError((object)"Couldn't set one or more of the Materials for the Terrain. Please report to the mod maintainer on Thunderstore."); } if (((Object)val3).name.Contains("Snowy")) { Stage6.Moon(val3, val6, val5, val4); } else { Stage6.Moon(val3, val4, val5, val6); } break; } } } goto IL_10af; IL_014c: if (Object.op_Implicit((Object)(object)val2)) { bool? obj9; if (val2 == null) { obj9 = null; } else { PostProcessVolume component8 = val2.GetComponent<PostProcessVolume>(); obj9 = ((component8 != null) ? new bool?(!((Behaviour)component8).isActiveAndEnabled) : null); } bool? flag = obj9; if (!flag.GetValueOrDefault(true)) { goto IL_01a1; } } val2 = GameObject.Find("PP+Amb"); goto IL_01a1; IL_0230: if (Object.op_Implicit((Object)(object)val2)) { val = val2.GetComponent<PostProcessVolume>(); } if (name == "moon2") { val = ((Component)instance).gameObject.AddComponent<PostProcessVolume>(); val.profile.AddSettings<RampFog>(); ((Behaviour)val).enabled = true; val.isGlobal = true; val.priority = 9999f; } goto IL_0285; } public static void AbyssalLighting(Color color) { //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) Light[] array = Object.FindObjectsOfType(typeof(Light)) as Light[]; foreach (Light val in array) { GameObject gameObject = ((Component)val).gameObject; if (!((Object)(object)gameObject != (Object)null)) { continue; } if ((Object)(object)gameObject.transform.parent != (Object)null) { if (((Object)((Component)((Component)val).gameObject.transform.parent).gameObject).name.Equals("DCCoralPropMediumActive")) { val.color = color; Vector3 localPosition = ((Component)val).transform.localPosition; localPosition.z = 4f; } else if (((Object)((Component)((Component)val).gameObject.transform.parent).gameObject).name.Contains("DCCrystalCluster Variant")) { val.color = color; val.intensity *= 1.5f; } else if (((Object)((Component)((Component)val).gameObject.transform.parent).gameObject).name.Contains("DCCrystalLarge")) { val.color = color; } } if (((Object)((Component)val).gameObject).name.Equals("CrystalLight")) { val.color = color; } } } public float CalculateLuminance(Color color) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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) return 0.2126f * color.r + 0.7152f * color.g + 0.0722f * color.b; } public Color BrightenColor(Color color, float brightenAmount) { //IL_0001: 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_0042: 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_006a: Unknown result type (might be due to invalid IL or missing references) float num = CalculateLuminance(color); Debug.LogWarning((object)$"Luminance: {num}"); if (num < 0.7f) { if (num < 0.6f) { brightenAmount *= 2f; } Debug.LogWarning((object)"Too dark, brightening light color"); color.r = Mathf.Clamp01(color.r + brightenAmount); color.g = Mathf.Clamp01(color.g + brightenAmount); color.b = Mathf.Clamp01(color.b + brightenAmount); } return color; } private bool IsBright(Material material) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) Color color = material.color; if (0.2126f * color.r + 0.7152f * color.g + 0.0722f * color.b < 0.7f) { return false; } return true; } } public class Stage1 { private static Texture2D terrainSandTex = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC2/lakes/Assets/texTLTerrainSand.tga").WaitForCompletion(); private static Texture2D tlDirtTex = Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/DLC2/lakes/Assets/texTLTerrainDirt.tga").WaitForCompletion(); public static void Falls(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3, Color32 color) { //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if (!((Object)(object)gameObject != (Object)null)) { continue; } if (((Object)gameObject).name.Contains("TLTerrain") && !((Object)gameObject).name.Contains("Vines") && !((Object)gameObject).name.Contains("GiantFlower") && !((Object)gameObject).name.Contains("Ship") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("TLTerrain_GiantFlower") || ((Object)gameObject).name.Contains("TLTerrain_TreePads")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Material[] sharedMaterials = ((Renderer)val).sharedMaterials; for (int j = 0; j < sharedMaterials.Length; j++) { sharedMaterials[j].color = Color32.op_Implicit(color); } } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if (((Object)gameObject).name.Contains("Vines") || (((Object)gameObject).name.Contains("TLRoot") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial))) { ((Renderer)val).sharedMaterial = detailMat3; } if ((((Object)gameObject).name.Contains("TLTerrain_Ship") || ((Object)gameObject).name.Contains("TLArchi") || ((Object)gameObject).name.Contains("TLDoor")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((Object)gameObject).name.Contains("TLRock") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } } } public static void NightFalls(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3, Color32 color) { //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if (!((Object)(object)gameObject != (Object)null)) { continue; } if (((Object)gameObject).name.Contains("TLTerrain") && !((Object)gameObject).name.Contains("Vines") && !((Object)gameObject).name.Contains("GiantFlower") && !((Object)gameObject).name.Contains("Ship") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("TLTerrain_GiantFlower") || ((Object)gameObject).name.Contains("TLTerrain_TreePads")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Material[] sharedMaterials = ((Renderer)val).sharedMaterials; for (int j = 0; j < sharedMaterials.Length; j++) { sharedMaterials[j].color = Color32.op_Implicit(color); } } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if (((Object)gameObject).name.Contains("Vines") || (((Object)gameObject).name.Contains("TLRoot") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial))) { ((Renderer)val).sharedMaterial = detailMat3; } if ((((Object)gameObject).name.Contains("TLTerrain_Ship") || ((Object)gameObject).name.Contains("TLArchi") || ((Object)gameObject).name.Contains("TLDoor")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((Object)gameObject).name.Contains("TLRock") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } } } public static void Shattered(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Dune") || ((Object)gameObject).name.Contains("Coral")) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { terrainMat, terrainMat }; } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Step") || ((Object)gameObject).name.Contains("Tile") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Detail")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Bowl") || ((Object)gameObject).name.Contains("Marker") || ((Object)gameObject).name.Contains("Chime") || ((Object)gameObject).name.Contains("Gate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if ((((Object)gameObject).name.Contains("Pillar") || ((Object)gameObject).name.Contains("Altar")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Arc") || ((Object)gameObject).name.Contains("House")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { detailMat, terrainMat }; } } } ((Renderer)GameObject.Find("LVArc_StormOutlook").gameObject.GetComponent<MeshRenderer>()).sharedMaterials = (Material[])(object)new Material[2] { terrainMat, detailMat }; } public static void NightShattered(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Dune") || ((Object)gameObject).name.Contains("Coral")) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { terrainMat, terrainMat }; } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Step") || ((Object)gameObject).name.Contains("Tile") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Detail")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Bowl") || ((Object)gameObject).name.Contains("Marker") || ((Object)gameObject).name.Contains("Chime") || ((Object)gameObject).name.Contains("Gate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if ((((Object)gameObject).name.Contains("Pillar") || ((Object)gameObject).name.Contains("Altar")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Arc") || ((Object)gameObject).name.Contains("House")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { detailMat, terrainMat }; } } } ((Renderer)GameObject.Find("LVArc_StormOutlook").gameObject.GetComponent<MeshRenderer>()).sharedMaterials = (Material[])(object)new Material[2] { terrainMat, detailMat }; } public static void Roost1(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Step") || ((Object)gameObject).name.Contains("Tile") || ((Object)gameObject).name.Contains("mdlGeyser") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Detail")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Bowl") || ((Object)gameObject).name.Contains("Marker") || ((Object)gameObject).name.Contains("RuinPillar") || ((Object)gameObject).name.Contains("RuinArch") || ((Object)gameObject).name.Contains("RuinGate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("DistantPillar") || ((Object)gameObject).name.Contains("Cliff") || ((Object)gameObject).name.Contains("ClosePillar")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } } } } public static void Roost2(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } try { Transform child = GameObject.Find("HOLDER: Terrain").transform.GetChild(0); ((Renderer)((Component)child.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child.GetChild(1)).GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child.GetChild(2)).GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; } catch { Debug.LogError((object)"Failed to set the Material for some Terrain. Please report this to the Mod's Maintainer."); } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("boulder") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Step") || ((Object)gameObject).name.Contains("Tile") || ((Object)gameObject).name.Contains("mdlGeyser") || ((Object)gameObject).name.Contains("Bowl") || ((Object)gameObject).name.Contains("Marker") || ((Object)gameObject).name.Contains("RuinPillar") || ((Object)gameObject).name.Contains("DistantBridge")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Bowl") || ((Object)gameObject).name.Contains("Marker") || ((Object)gameObject).name.Contains("RuinPillar") || ((Object)gameObject).name.Contains("RuinArch") || ((Object)gameObject).name.Contains("RuinGate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("DistantPillar") || ((Object)gameObject).name.Contains("Cliff") || ((Object)gameObject).name.Contains("ClosePillar")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } } } } public static void Plains(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name == "Wall North") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("mdlGeyser")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if (((Object)gameObject).name.Contains("Ring") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Block") || ((Object)gameObject).name.Contains("MiniBridge") || ((Object)gameObject).name.Contains("Circle")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } } } } public static void Forest(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if (((Object)gameObject).name == "meshSnowyForestGiantTreesTops") { gameObject.gameObject.SetActive(false); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("SnowPile")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("mdlSFCeilingSpikes")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("RuinGate") || ((Object)gameObject).name.Contains("meshSnowyForestAqueduct") || ((Object)gameObject).name == "meshSnowyForestFirepitFloor" || ((Object)gameObject).name.Contains("meshSnowyForestFirepitRing") || ((Object)gameObject).name.Contains("meshSnowyForestFirepitJar") || (((Object)gameObject).name.Contains("meshSnowyForestPot") && ((Object)gameObject).name != "meshSnowyForestPotSap") || ((Object)gameObject).name.Contains("mdlSFHangingLantern") || ((Object)gameObject).name.Contains("mdlSFBrokenLantern") || ((Object)gameObject).name.Contains("meshSnowyForestCrate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("meshSnowyForestTreeLog") || ((Object)gameObject).name.Contains("meshSnowyForestTreeTrunk") || ((Object)gameObject).name.Contains("meshSnowyForestGiantTrees") || ((Object)gameObject).name.Contains("meshSnowyForestSurroundingTrees")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if (((Object)gameObject).name.Contains("mdlSnowyForestTreeStump") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { detailMat3, detailMat3 }; } } } } } public class Stage2 { public static void Wetland(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if (!((Object)(object)gameObject != (Object)null)) { continue; } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Blender") || ((Object)gameObject).name.Contains("Trunk")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; if (Object.op_Implicit((Object)(object)((Component)gameObject.transform).GetComponentInChildren<MeshRenderer>())) { ((Renderer)((Component)gameObject.transform).GetComponentInChildren<MeshRenderer>()).sharedMaterial = detailMat; } } if (((Object)gameObject).name.Contains("Floor") || ((Object)gameObject).name.Contains("Terrain")) { ((Renderer)val).sharedMaterial = terrainMat; } Transform parent = gameObject.transform.parent; if ((Object)(object)parent != (Object)null) { if (((Object)gameObject).name.Contains("Mesh") && ((Object)parent).name.Contains("Wall")) { ((Renderer)val).sharedMaterial = terrainMat; } if (((Object)gameObject).name.Contains("Mesh") && (((Object)parent).name.Contains("FSTree") || ((Object)parent).name.Contains("FSRootBundle"))) { ((Renderer)val).sharedMaterial = detailMat3; } if (((Object)gameObject).name.Contains("Mesh") && ((Object)parent).name.Contains("FSRuinPillar")) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("RootBundleLargeCards") || ((Object)gameObject).name.Contains("RootBundleSmallCards")) && (((Object)parent).name.Contains("FSRootBundleLarge") || ((Object)parent).name.Contains("FSRootBundleSmall"))) { gameObject.gameObject.SetActive(false); } if ((((Object)gameObject).name.Contains("RootBundleLarge_LOD0") || ((Object)gameObject).name.Contains("RootBundleLarge_LOD1") || ((Object)gameObject).name.Contains("RootBundleLarge_LOD2") || ((Object)gameObject).name.Contains("RootBundleSmall_LOD0") || ((Object)gameObject).name.Contains("RootBundleSmall_LOD1") || ((Object)gameObject).name.Contains("RootBundleSmall_LOD2")) && (((Object)parent).name.Contains("FSRootBundleLarge") || ((Object)parent).name.Contains("FSRootBundleSmall"))) { ((Renderer)val).sharedMaterial = detailMat3; } } if ((((Object)gameObject).name.Contains("Door") || ((Object)gameObject).name.Contains("Frame")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((Object)gameObject).name.Contains("Ruin") && ((Object)gameObject).name != "FSGiantRuinDoorCollision" && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } } } public static void Aqueduct(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if (!((Object)(object)gameObject != (Object)null)) { continue; } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if (((Object)gameObject).name.Contains("Terrain") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if (((Object)gameObject).name.Contains("SandDune") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("SandstonePillar") || ((Object)gameObject).name.Contains("Dam") || ((Object)gameObject).name.Contains("AqueductFullLong") || ((Object)gameObject).name.Contains("AqueductPartial") || ((Object)gameObject).name.Contains("RuinGate")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((((Object)gameObject).name.Contains("Bridge") && !((Object)gameObject).name.Contains("Decal")) || ((Object)gameObject).name.Contains("RuinedRing") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Eel")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("FlagPoleMesh") || ((Object)gameObject).name.Contains("RuinTile")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if (!((Object)gameObject).name.Contains("AqueductCap")) { continue; } try { Material[] sharedMaterials = ((Renderer)val).sharedMaterials; for (int j = 0; j < sharedMaterials.Length; j++) { sharedMaterials[j] = detailMat2; } ((Renderer)val).sharedMaterials = sharedMaterials; } catch (Exception ex) { Debug.LogWarning((object)(ex.Message + "\n" + ex.StackTrace)); } } } public static void Aphelian(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; SkinnedMeshRenderer[] array2 = Object.FindObjectsOfType(typeof(SkinnedMeshRenderer)) as SkinnedMeshRenderer[]; if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array3 = array; foreach (MeshRenderer val in array3) { GameObject gameObject = ((Component)val).gameObject; Transform parent = gameObject.transform.parent; if (!((Object)(object)gameObject != (Object)null)) { continue; } if ((Object)(object)parent != (Object)null && ((((Object)parent).name.Contains("TempleTop") && ((Object)gameObject).name.Contains("RuinBlock")) || ((Object)gameObject).name.Contains("GPRuinBlockQuarter")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if (((Object)gameObject).name.Contains("CirclePot")) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[3] { terrainMat, detailMat3, terrainMat }; } if (((Object)gameObject).name.Equals("Terrain") && ((Renderer)val).sharedMaterials.Length != 0) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[3] { terrainMat, terrainMat, terrainMat }; } if (((((Object)gameObject).name.Contains("Terrain") && !((Object)gameObject).name.Equals("Terrain")) || ((Object)gameObject).name.Contains("Dirt") || ((Object)gameObject).name.Contains("TerrainPlatform")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Platform") || ((Object)gameObject).name.Contains("Temple") || ((Object)gameObject).name.Contains("Bridge")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterials = (Material[])(object)new Material[2] { terrainMat, terrainMat }; } if ((((Object)gameObject).name.Contains("BrokenPot") || ((Object)gameObject).name.Contains("Planter") || ((Object)gameObject).name.Contains("AW_Cube") || ((Object)gameObject).name.Contains("Mesh, Cube") || ((Object)gameObject).name.Contains("AncientLoft_WaterFenceType") || ((Object)gameObject).name.Contains("Pillar") || ((Object)gameObject).name.Equals("LightStatue") || ((Object)gameObject).name.Equals("FountainLG") || ((Object)gameObject).name.Equals("Shrine") || ((Object)gameObject).name.Equals("Sculpture") || ((Object)gameObject).name.Contains("AncientLoft_SculptureSM") || ((Object)gameObject).name.Contains("FountainSM")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if ((((Object)gameObject).name.Contains("Tile") || ((Object)gameObject).name.Contains("Step") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Rubble") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Equals("LightStatue_Stone")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if (!((Object)gameObject).name.Contains("CircleArchwayAnimatedMesh")) { continue; } Material[] sharedMaterials = ((Renderer)val).sharedMaterials; for (int j = 0; j < ((Renderer)val).sharedMaterials.Length; j++) { sharedMaterials[j] = detailMat2; if (j == 1) { sharedMaterials[j] = detailMat3; } } ((Renderer)val).sharedMaterials = sharedMaterials; } SkinnedMeshRenderer[] array4 = array2; foreach (SkinnedMeshRenderer val2 in array4) { GameObject gameObject2 = ((Component)val2).gameObject; if ((Object)(object)gameObject2 != (Object)null) { if (((Object)gameObject2).name.Contains("CirclePot") || ((Object)gameObject2).name.Contains("Planter") || ((Object)gameObject2).name.Contains("AW_Cube") || ((Object)gameObject2).name.Contains("Mesh, Cube") || ((Object)gameObject2).name.Contains("AncientLoft_WaterFenceType") || ((Object)gameObject2).name.Contains("Pillar") || ((Object)gameObject2).name.Equals("LightStatue") || ((Object)gameObject2).name.Equals("LightStatue_Stone") || ((Object)gameObject2).name.Equals("FountainLG") || ((Object)gameObject2).name.Equals("Shrine") || ((Object)gameObject2).name.Equals("Sculpture")) { ((Renderer)val2).sharedMaterial = detailMat3; } if ((((Object)gameObject2).name.Contains("Rock") || ((Object)gameObject2).name.Contains("Tile") || ((Object)gameObject2).name.Contains("Boulder") || ((Object)gameObject2).name.Contains("Step") || ((Object)gameObject2).name.Contains("Pebble") || ((Object)gameObject2).name.Contains("Rubble")) && Object.op_Implicit((Object)(object)((Renderer)val2).sharedMaterial)) { ((Renderer)val2).sharedMaterial = detailMat; } } } } } public class Stage3 { public static void RPD(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Snow")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Glacier") || ((Object)gameObject).name.Contains("Stalagmite") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("CavePillar")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("GroundMesh") || ((Object)gameObject).name.Contains("GroundStairs") || ((Object)gameObject).name.Contains("VerticalPillar") || ((Object)gameObject).name.Contains("Barrier") || (((Object)gameObject).name.Contains("Human") && !((Object)gameObject).name.Contains("ChainLink"))) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } } } } public static void Acres(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Dirt")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Crystal")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Ring") || ((Object)gameObject).name.Contains("Bridge") || ((Object)gameObject).name.Contains("Platform") || ((Object)gameObject).name.Contains("Planter")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } } } } public static void Pools(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((((Object)gameObject).name.Contains("Terrain") && !((Object)gameObject).name.Contains("Fog")) || ((Object)gameObject).name.Contains("Mountain")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("meshSPSphere") || ((Object)gameObject).name.Contains("SPHeatVent") || ((Object)gameObject).name.Contains("Crystal") || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("mdlGeyser") || ((Object)gameObject).name.Contains("Pebble") || ((Object)gameObject).name.Contains("Eel")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Dome") || ((Object)gameObject).name.Contains("Spikes") || ((Object)gameObject).name.Contains("Cave")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } } } } } public class Stage4 { public static void Grove(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Rock Holder") || ((Object)gameObject).name.Contains("Vine Tree") || ((Object)gameObject).name.Contains("Gianticus") || ((Object)gameObject).name.Contains("Tree Big Bottom") || ((Object)gameObject).name.Contains("Root Bridge") || ((Object)gameObject).name.Contains("Tree D") || ((Object)gameObject).name.Contains("Wall") || ((Object)gameObject).name.Contains("RJRoot") || ((Object)gameObject).name.Contains("RJShroomShelf")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("RJTriangle") || ((Object)gameObject).name.Contains("BbRuinArch")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((((Object)gameObject).name.Contains("Rock") && !((Object)gameObject).name.Contains("Holder")) || ((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("Pebble")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if ((((Object)gameObject).name.Contains("Moss Cover") || ((Object)gameObject).name.Contains("RJShroomShelf") || ((Object)gameObject).name.Contains("RJShroomBig") || ((Object)gameObject).name.Contains("RJShroomSmall") || ((Object)gameObject).name.Contains("RJMossPatch")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } } } } public static void Sirens(Material terrainMat, Material detailMat, Material detailMat2) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; Transform parent = gameObject.transform.parent; if (!((Object)(object)gameObject != (Object)null)) { continue; } if ((Object)(object)parent != (Object)null) { if ((((Object)parent).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Mesh") || ((Object)gameObject).name.Contains("Spikes")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Stalactite") || ((Object)gameObject).name.Contains("Stalagmite")) && (((Object)parent).name.Contains("Cave") || ((Object)parent).name.Contains("Stalagmite")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("Stalactite") || ((Object)gameObject).name.Contains("Level Wall") || ((Object)gameObject).name.Contains("Cave") || ((Object)gameObject).name.Contains("Floor") || ((Object)gameObject).name.Contains("Spikes")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Ship") || ((Object)gameObject).name.Contains("Stalagmite") || ((Object)gameObject).name.Contains("mdlGeyser")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("Boulder")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } } } public static void Abyssal(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; Transform parent = gameObject.transform.parent; if (!((Object)(object)gameObject != (Object)null)) { continue; } if ((Object)(object)parent != (Object)null) { if (((Object)gameObject).name.Contains("Mesh") && ((Object)parent).name.Contains("Ruin") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if (((Object)gameObject).name.Contains("RuinBowl") && ((Object)parent).name.Contains("RuinMarker") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Hero") || ((Object)gameObject).name.Contains("Ceiling") || ((Object)gameObject).name.Contains("Column")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } if ((((Object)gameObject).name.Contains("Boulder") || ((Object)gameObject).name.Contains("mdlGeyser") || ((Object)gameObject).name.Contains("Pebble") || (((Object)gameObject).name.Contains("GiantRock") && !((Object)gameObject).name.Contains("Slab"))) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if (((Object)gameObject).name.Contains("Ruin") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } if (((Object)gameObject).name.Contains("LightMesh") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial) && gameObject.transform.childCount >= 1 && ((Object)gameObject.transform.GetChild(0)).name.Contains("Crystal")) { ((Renderer)((Component)gameObject.transform.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Spike") || ((Object)gameObject).name.Contains("Stalagmite") || ((Object)gameObject).name.Contains("Coral") || ((Object)gameObject).name.Contains("Crystal") || ((Object)gameObject).name.Contains("Heatvent")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("DCGiantRockSlab") || ((Object)gameObject).name.Contains("GiantStoneSlab") || ((Object)gameObject).name.Contains("TerrainBackwall") || ((Object)gameObject).name.Contains("Chain") || ((Object)gameObject).name.Contains("Wall")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } } } } public class Stage5 { public static void SkyMeadow(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3, Color grassColor) { Transform transform = GameObject.Find("HOLDER: Randomization").transform; Transform child = GameObject.Find("PortalDialerEvent").transform.GetChild(0); if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).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)gameObject).name.Contains("SMRock") && ((Object)parent).name.Contains("FORMATION"))) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } 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)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } 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)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if ((((Object)gameObject).name.Contains("Terrain") || (((Object)gameObject).name.Contains("Plateau Under") && ((Object)parent).name.Contains("Underground"))) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = terrainMat; } } if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("SMPebble") || ((Object)gameObject).name.Contains("Rock") || ((Object)gameObject).name.Contains("mdlGeyser")) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } if (((Object)gameObject).name.Contains("SMSpikeBridge") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat2; } if (((Object)gameObject).name.Contains("Ruin") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } } try { ((Renderer)((Component)GameObject.Find("HOLDER: Terrain").transform.GetChild(1)).GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)GameObject.Find("ArtifactFormulaHolderMesh").GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)GameObject.Find("SM_Stairway").GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; } catch { Debug.LogError((object)"Failed setting specific Material"); } try { ((Renderer)GameObject.Find("Plateau 13 (1)").GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; } catch { } try { Transform child2 = transform.GetChild(0); ((Renderer)((Component)child2.GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child2.GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child2.GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child2.GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; } catch { Debug.LogError((object)"Error setting Materials in Tall Plateu"); } try { Transform child3 = transform.GetChild(1); ((Renderer)((Component)child3.GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child3.GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child3.GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child3.GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child3.GetChild(1).GetChild(11)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child3.GetChild(1).GetChild(13)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; } catch { Debug.LogError((object)"Error setting Materials in Plateu 6"); } try { Transform child4 = transform.GetChild(2); ((Renderer)((Component)child4.GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child4.GetChild(0).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child4.GetChild(0).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child4.GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; } catch { Debug.LogError((object)"Error setting Materials in Plateu 9"); } try { ((Renderer)((Component)transform.GetChild(3).GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; } catch { Debug.LogError((object)"Error setting Materials in Plateu 11"); } try { transform.GetChild(4); ((Renderer)((Component)transform.GetChild(4).GetChild(1).GetChild(3)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; } catch { Debug.LogError((object)"Error setting Materials in Plateu 13"); } try { Transform child5 = transform.GetChild(5); ((Renderer)((Component)child5.GetChild(0).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child5.GetChild(0).GetChild(10)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child5.GetChild(0).GetChild(11)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child5.GetChild(1).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = terrainMat; ((Renderer)((Component)child5.GetChild(1).GetChild(1)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child5.GetChild(1).GetChild(2)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; ((Renderer)((Component)child5.GetChild(2).GetChild(0)).gameObject.GetComponent<MeshRenderer>()).sharedMaterial = detailMat2; } catch { Debug.LogError((object)"Error setting Materials in Plateu 15"); } } public static void Roost(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3, Color color) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("HRTerrain") && !((Object)gameObject).name.Contains("Lava")) { ((Renderer)val).sharedMaterial = terrainMat; } else if (((Object)gameObject).name.Contains("Grass") || ((Object)gameObject).name.Contains("Weed")) { Object.Destroy((Object)(object)gameObject); } else if (((Object)gameObject).name.Contains("HRRock") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } else if (((Object)gameObject).name.Contains("HRGroundCover") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat3; } else if (((Object)gameObject).name.Contains("Worm") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial = detailMat; } } } GameObject gameObject2 = GameObject.Find("Lava Spot Light").gameObject; if ((Object)(object)gameObject2 != (Object)null) { gameObject2.GetComponent<Light>().intensity = 0f; } GameObject val2 = GameObject.Find("CAMERA PARTICLES: AshParticles"); if ((Object)(object)val2 != (Object)null) { val2.SetActive(false); } } } public class Stage6 { public static void Moon(Material terrainMat, Material detailMat, Material detailMat2, Material detailMat3) { if (!Object.op_Implicit((Object)(object)terrainMat) || !Object.op_Implicit((Object)(object)detailMat) || !Object.op_Implicit((Object)(object)detailMat2) || !Object.op_Implicit((Object)(object)detailMat3)) { return; } MeshRenderer[] array = Object.FindObjectsOfType(typeof(MeshRenderer)) as MeshRenderer[]; foreach (MeshRenderer val in array) { GameObject gameObject = ((Component)val).gameObject; if ((Object)(object)gameObject != (Object)null) { if (((Object)gameObject).name.Contains("Grass") && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { Object.Destroy((Object)(object)gameObject); } if ((((Object)gameObject).name.Contains("Terrain") || ((Object)gameObject).name.Contains("