Decompiled source of CoolerStages Continued v2.2.4
CoolerStages.dll
Decompiled 3 days 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 HarmonyLib; 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+53bcf1bd4185aa424e85cac35034c0e7b2a34b89")] [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 List<Material[]> themeMaterials1 = new List<Material[]>(); private List<Material[]> themeMaterials2 = new List<Material[]>(); private Material[] lakes = (Material[])(object)new Material[4] { verdantTerrainMat, verdantDetailMat, verdantDetailMat2, verdantDetailMat3 }; private Material[] skymeadow = (Material[])(object)new Material[4] { smSimTerrainMat, smSimDetailMat, smSimDetailMat2, smSimtDetailMat3 }; private Material[] voidstage = (Material[])(object)new Material[4] { danTerrain, danDetail, danDetail2, danDetail3 }; private Material[] ancientloft = (Material[])(object)new Material[4] { ruinTerrain, ruinDetail, ruinDetail2, ruinDetail3 }; private Material[] dampcave = (Material[])(object)new Material[4] { dcSimTerrainMat, dcSimDetailMat, dcSimDetailMat2, dcSimDetailMat3 }; private Material[] golemplains = (Material[])(object)new Material[4] { gpSimTerrainMat, gpSimDetailMat, gpSimDetailMat2, gpSimDetailMat3 }; private Material[] goolake = (Material[])(object)new Material[4] { gooSimTerrainMat, gooSimDetailMat, gooSimDetailMat2, gooSimDetailMat3 }; private Material[] moon = (Material[])(object)new Material[4] { moonTerrainMat, moonDetailMat, moonDetailMat2, moonDetailMat3 }; private Material[] bazaar = (Material[])(object)new Material[4] { bazaarTerrainMat, bazaarDetailMat, bazaarDetailMat2, bazaarDetailMat3 }; 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; public static ConfigEntry<string> enabledTextures; 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_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0193: 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_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: 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_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Unknown result type (might be due to invalid IL or missing references) //IL_0653: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_0699: Unknown result type (might be due to invalid IL or missing references) //IL_069e: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0745: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0830: 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"); enabledTextures = CSConfig.Bind<string>("Textures", "Enabled Textures", "void, ancientloft, skymeadow, dampcave, golemplains, goolake, moon, bazaar, lakes", "To disable any of the Textures used, just remove them from this list. Need to have at least one of the following: void, ancientloft, dampcave, lakes"); parseTextureConfig(); 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 parseTextureConfig() { string value = enabledTextures.Value; if (string.IsNullOrEmpty(value)) { throw new ArgumentException("You removed to many textures from Cooler Stages. Why are you even using it at this point?"); } CollectionExtensions.Do<string>(from item in value.Split(',') select item.Trim() into item where !string.IsNullOrWhiteSpace(item) select item, (Action<string>)delegate(string item) { matchItem(item); }); Debug.LogWarning((object)$"Number of themeMaterials1 {themeMaterials1.Count}"); Debug.LogWarning((object)$"Number of themeMaterials1 {themeMaterials2.Count}"); if (themeMaterials1.Count == 0 || themeMaterials2.Count == 0) { throw new ArgumentException("You removed to many textures from Cooler Stages. Why are you even using it at this point?"); } void matchItem(string item) { if (item != null) { switch (item.Length) { case 4: switch (item[0]) { case 'v': if (item == "void") { themeMaterials1.Add(voidstage); themeMaterials2.Add(voidstage); } break; case 'm': if (item == "moon") { themeMaterials1.Add(moon); } break; } break; case 11: switch (item[0]) { case 'a': if (item == "ancientloft") { themeMaterials1.Add(ancientloft); themeMaterials2.Add(ancientloft); } break; case 'g': if (item == "golemplains") { themeMaterials1.Add(golemplains); } break; } break; case 9: if (item == "skymeadow") { themeMaterials1.Add(skymeadow); } break; case 8: if (item == "dampcave") { themeMaterials1.Add(dampcave); themeMaterials2.Add(dampcave); } break; case 7: if (item == "goolake") { themeMaterials1.Add(goolake); } break; case 6: if (item == "bazaar") { themeMaterials1.Add(bazaar); } break; case 5: if (item == "lakes") { themeMaterials1.Add(lakes); themeMaterials2.Add(lakes); } break; case 10: break; } } } } 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_0423: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_04f0: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) //IL_0588: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0570: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Unknown result type (might be due to invalid IL or missing references) //IL_0eb5: Unknown result type (might be due to invalid IL or missing references) //IL_0c60: Unknown result type (might be due to invalid IL or missing references) //IL_0c65: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0e9c: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0eca: Unknown result type (might be due to invalid IL or missing references) //IL_0fa2: Unknown result type (might be due to invalid IL or missing references) //IL_0fa7: Unknown result type (might be due to invalid IL or missing references) //IL_0fb9: Unknown result type (might be due to invalid IL or missing references) //IL_0fbe: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0fd5: Unknown result type (might be due to invalid IL or missing references) //IL_1083: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_10a1: Unknown result type (might be due to invalid IL or missing references) //IL_10a6: 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_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_0817: 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") || name == "moon") { 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_0104; } } val2 = GameObject.Find("PP, Global"); goto IL_0104; } goto IL_0292; } goto IL_10e9; IL_0104: 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_0159; } } val2 = GameObject.Find("GlobalPostProcessVolume, Base"); goto IL_0159; IL_023d: 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_0292; IL_10e9: orig.Invoke(self); return; IL_01ae: 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_023d; } } 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_023d; IL_0292: 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 val14 = GameObject.Find("DeepFog"); if (Object.op_Implicit((Object)(object)val14)) { val14.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 val16 = GameObject.Find("SPCavePP"); if (Object.op_Implicit((Object)(object)val16)) { val16.SetActive(false); } GameObject val17 = GameObject.Find("CameraRelative"); if (Object.op_Implicit((Object)(object)val17)) { try { ((Component)val17.transform.GetChild(1)).gameObject.SetActive(false); } catch { Debug.LogError((object)"Please report to the mod maintainer on Thunderstore."); } } 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 val15 = GameObject.Find("Main Camera(Clone)"); if (Object.op_Implicit((Object)(object)val15)) { ((Component)val15.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_10e9; IL_0159: if (Object.op_Implicit((Object)(object)val2)) { bool? obj10; if (val2 == null) { obj10 = null; } else { PostProcessVolume component8 = val2.GetComponent<PostProcessVolume>(); obj10 = ((component8 != null) ? new bool?(!((Behaviour)component8).isActiveAndEnabled) : null); } bool? flag = obj10; if (!flag.GetValueOrDefault(true)) { goto IL_01ae; } } val2 = GameObject.Find("PP+Amb"); goto IL_01ae; } 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