Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Seraphic Ascent v1.6.0
plugins/SeraphicAscent/SeraphicAscent.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; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using BepInEx; using BepInEx.Logging; using EntityStates; using HG; using Newtonsoft.Json; using R2API; using RoR2; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Skills; using RoR2.WwiseUtils; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets.ResourceLocators; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.ResourceManagement.ResourceLocations; using UnityEngine.SceneManagement; [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: AssemblyVersion("0.0.0.0")] namespace SeraphicAscent; public sealed class StageWorld : MonoBehaviour { private SeraphRadiancePulse celestialRadiance; internal bool Ready; internal Layout layout; private Material[] materials; private readonly List<Object> owned = new List<Object>(); private readonly Dictionary<Camera, float> previousFarPlanes = new Dictionary<Camera, float>(); private bool qualityConfigured; private float previousShadowDistance; private int previousCascades; private ShadowResolution previousShadowResolution; private readonly Dictionary<Camera, DepthTextureMode> previousDepthModes = new Dictionary<Camera, DepthTextureMode>(); private readonly Dictionary<PostProcessLayer, Antialiasing> previousAntialiasing = new Dictionary<PostProcessLayer, Antialiasing>(); private readonly Dictionary<PostProcessLayer, Quality> previousSmaaQuality = new Dictionary<PostProcessLayer, Quality>(); private MeshCollider authoredFloor; private NodeGraph ground; private NodeGraph air; internal List<Vector3> groundPositions; internal int links; internal int components; private readonly HashSet<int> preparedCameras = new HashSet<int>(); private SeraphStormFront stormFront; private void Atmosphere() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Expected O, but got Unknown //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06f0: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_073c: 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_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) previousShadowDistance = QualitySettings.shadowDistance; previousCascades = QualitySettings.shadowCascades; previousShadowResolution = QualitySettings.shadowResolution; qualityConfigured = true; QualitySettings.shadowDistance = 300f; QualitySettings.shadowCascades = 4; QualitySettings.shadowResolution = (ShadowResolution)2; Material val = new Material(StageArt.ArtShader("Assets/SeraphSky.shader")); val.SetTexture("_Panorama", (Texture)(object)StageArt.CloudPanorama()); owned.Add((Object)(object)val); RenderSettings.skybox = val; RenderSettings.ambientMode = (AmbientMode)1; RenderSettings.ambientSkyColor = new Color(0.5f, 0.53f, 0.65f); RenderSettings.ambientEquatorColor = new Color(0.4f, 0.41f, 0.47f); RenderSettings.ambientGroundColor = new Color(0.3f, 0.28f, 0.34f); RenderSettings.ambientIntensity = 1f; SphericalHarmonicsL2 ambientProbe = default(SphericalHarmonicsL2); ((SphericalHarmonicsL2)(ref ambientProbe)).AddAmbientLight(new Color(0.4f, 0.41f, 0.48f)); ((SphericalHarmonicsL2)(ref ambientProbe)).AddDirectionalLight(Vector3.up, new Color(0.47f, 0.49f, 0.63f), 0.4f); RenderSettings.ambientProbe = ambientProbe; RenderSettings.fog = true; RenderSettings.fogMode = (FogMode)1; RenderSettings.fogStartDistance = 135f; RenderSettings.fogEndDistance = 500f; RenderSettings.fogColor = new Color(0.2f, 0.24f, 0.34f); Light val2 = Child("Heaven breached | warm sculpting key").AddComponent<Light>(); val2.type = (LightType)1; ((Component)val2).transform.rotation = Quaternion.Euler(42f, -36f, 0f); val2.color = new Color(1f, 0.87f, 0.73f); val2.intensity = 1.2f; val2.renderMode = (LightRenderMode)1; val2.shadows = (LightShadows)2; val2.shadowStrength = 0.7f; val2.shadowBias = 0.08f; val2.shadowNormalBias = 0.45f; RenderSettings.sun = val2; Light val3 = Child("Storm | cool upper feather rim").AddComponent<Light>(); val3.type = (LightType)1; ((Component)val3).transform.rotation = Quaternion.Euler(16f, 145f, 0f); val3.color = new Color(0.62f, 0.73f, 1f); val3.intensity = 0.4f; val3.renderMode = (LightRenderMode)1; Light val4 = Child("Choir | soft frontal bounce").AddComponent<Light>(); val4.type = (LightType)1; ((Component)val4).transform.rotation = Quaternion.Euler(22f, 12f, 0f); val4.color = new Color(0.86f, 0.87f, 1f); val4.intensity = 0.32f; val4.renderMode = (LightRenderMode)1; val4.shadows = (LightShadows)0; DistrictLight[] districtLights = layout.districtLights; foreach (DistrictLight districtLight in districtLights) { Light val5 = Child("Choir | local living light").AddComponent<Light>(); val5.type = (LightType)2; ((Component)val5).transform.position = V(districtLight.p); val5.range = ((districtLight.colour == 8) ? districtLight.range : 26f); val5.intensity = ((districtLight.colour == 8) ? districtLight.intensity : 1.8f); val5.color = ((districtLight.colour == 8) ? new Color(0.2f, 0.85f, 0.8f) : new Color(1f, 0.8f, 0.59f)); val5.renderMode = (LightRenderMode)1; } GameObject val6 = Child("Choir | selective luminous photographic response"); val6.SetActive(false); val6.layer = LayerIndex.postProcess.intVal; PostProcessVolume val7 = val6.AddComponent<PostProcessVolume>(); val7.isGlobal = true; val7.priority = 20f; PostProcessProfile val8 = ScriptableObject.CreateInstance<PostProcessProfile>(); owned.Add((Object)(object)val8); val7.sharedProfile = val8; ColorGrading val9 = val8.AddSettings<ColorGrading>(); ((PostProcessEffectSettings)val9).SetAllOverridesTo(true, true); ((ParameterOverride<bool>)(object)((PostProcessEffectSettings)val9).enabled).value = true; ((ParameterOverride<Tonemapper>)(object)val9.tonemapper).value = (Tonemapper)2; ((ParameterOverride<float>)(object)val9.postExposure).value = 0.05f; ((ParameterOverride<float>)(object)val9.contrast).value = 6f; ((ParameterOverride<float>)(object)val9.saturation).value = -3f; owned.Add((Object)(object)val9); Bloom val10 = val8.AddSettings<Bloom>(); ((PostProcessEffectSettings)val10).SetAllOverridesTo(true, true); ((ParameterOverride<bool>)(object)((PostProcessEffectSettings)val10).enabled).value = true; ((ParameterOverride<float>)(object)val10.intensity).value = 0.8f; ((ParameterOverride<float>)(object)val10.threshold).value = 1.15f; ((ParameterOverride<float>)(object)val10.softKnee).value = 0.65f; ((ParameterOverride<float>)(object)val10.diffusion).value = 6.5f; ((ParameterOverride<float>)(object)val10.clamp).value = 10f; owned.Add((Object)(object)val10); AmbientOcclusion val11 = val8.AddSettings<AmbientOcclusion>(); ((PostProcessEffectSettings)val11).SetAllOverridesTo(true, true); ((ParameterOverride<bool>)(object)((PostProcessEffectSettings)val11).enabled).value = true; ((ParameterOverride<AmbientOcclusionMode>)(object)val11.mode).value = (AmbientOcclusionMode)0; ((ParameterOverride<float>)(object)val11.intensity).value = 0.85f; ((ParameterOverride<float>)(object)val11.radius).value = 0.85f; ((ParameterOverride<AmbientOcclusionQuality>)(object)val11.quality).value = (AmbientOcclusionQuality)3; owned.Add((Object)(object)val11); val6.SetActive(true); GameObject val12 = GameObject.CreatePrimitive((PrimitiveType)3); ((Object)val12).name = "Cloud ocean | bounded raymarched volume"; val12.transform.SetParent(((Component)this).transform, false); val12.transform.position = new Vector3(0f, -120f, 0f); val12.transform.localScale = new Vector3(5000f, 440f, 5000f); Object.Destroy((Object)(object)val12.GetComponent<Collider>()); Material val13 = new Material(StageArt.ArtShader("Assets/SeraphClouds.shader")); owned.Add((Object)(object)val13); val13.SetFloat("_Top", 100f); val13.SetFloat("_Bottom", -340f); val13.SetFloat("_Density", 0.065f); val13.SetColor("_MistColor", new Color(0.16f, 0.2f, 0.29f)); MeshRenderer component = val12.GetComponent<MeshRenderer>(); ((Renderer)component).sharedMaterial = val13; ((Renderer)component).shadowCastingMode = (ShadowCastingMode)0; ((Renderer)component).receiveShadows = false; ReflectionProbe val14 = Child("Choir | single local environment reflection").AddComponent<ReflectionProbe>(); ((Component)val14).transform.position = new Vector3(0f, 157f, -5f); val14.size = new Vector3(360f, 330f, 360f); val14.mode = (ReflectionProbeMode)2; val14.resolution = 128; val14.hdr = true; val14.intensity = 0.8f; val14.farClipPlane = 650f; LayerIndex world = LayerIndex.world; val14.cullingMask = 1 | LayerMask.op_Implicit(((LayerIndex)(ref world)).mask); ((MonoBehaviour)this).StartCoroutine(CaptureReflection(val14)); StormWeather(); CelestialRadiance(); } private void CelestialRadiance() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: 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_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Expected O, but got Unknown //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_0556: Unknown result type (might be due to invalid IL or missing references) //IL_055b: 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_057a: 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_0590: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05e3: Unknown result type (might be due to invalid IL or missing references) //IL_05fa: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_061e: Unknown result type (might be due to invalid IL or missing references) //IL_0623: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Expected O, but got Unknown //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_0651: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_066d: Unknown result type (might be due to invalid IL or missing references) //IL_0672: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06cb: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06e7: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) Shader val = StageArt.ArtShader("Assets/SeraphRadiance.shader"); GameObject val2 = GameObject.CreatePrimitive((PrimitiveType)3); ((Object)val2).name = "Heaven breached | pearl-gold light in the storm"; val2.transform.SetParent(((Component)this).transform, false); val2.transform.position = new Vector3(0f, 219f, 30f); val2.transform.localScale = new Vector3(250f, 222f, 230f); Object.Destroy((Object)(object)val2.GetComponent<Collider>()); Material val3 = new Material(val); ((Object)val3).name = "Heaven breached | bounded depth-stopped light"; owned.Add((Object)(object)val3); val3.SetFloat("_Mode", 0f); val3.SetFloat("_Cull", 1f); val3.SetFloat("_RadiancePhase", -1f); val3.SetVector("_VolumeMin", new Vector4(-125f, 108f, -85f, 0f)); val3.SetVector("_VolumeMax", new Vector4(125f, 330f, 145f, 0f)); Vector3 val4 = default(Vector3); ((Vector3)(ref val4))..ctor(0f, 278f, 72f); val3.SetVector("_Source", new Vector4(val4.x, val4.y, val4.z, 1f)); Vector4[] array = (Vector4[])(object)new Vector4[6] { new Vector4(-61f, 119f, -26f, 8f), new Vector4(44f, 146f, -6f, 7f), new Vector4(8f, 167f, 63f, 6f), new Vector4(-17f, 132f, 5f, 7.5f), new Vector4(63f, 149f, 44f, 6f), new Vector4(-41f, 151f, 63f, 6.5f) }; Vector4[] array2 = (Vector4[])(object)new Vector4[array.Length]; for (int i = 0; i < array.Length; i++) { Vector3 val5 = val4 + new Vector3(((float)i - 2.5f) * 1.8f, 0f, Mathf.Sin((float)i * 2.1f) * 3f); Vector3 val6 = new Vector3(array[i].x, array[i].y, array[i].z) - val5; float magnitude = ((Vector3)(ref val6)).magnitude; val6 /= magnitude; ref Vector4 reference = ref array2[i]; reference = new Vector4(val6.x, val6.y, val6.z, 1f / magnitude); } val3.SetVectorArray("_ShaftEnd", array); val3.SetVectorArray("_ShaftAxis", array2); val3.SetColor("_Tint", new Color(1f, 0.83f, 0.54f, 1f)); val3.SetFloat("_Strength", 0.6f); MeshRenderer component = val2.GetComponent<MeshRenderer>(); ((Renderer)component).sharedMaterial = val3; ((Renderer)component).shadowCastingMode = (ShadowCastingMode)0; ((Renderer)component).receiveShadows = false; GameObject val7 = Child("Heaven breached | living pearl light"); val7.transform.position = new Vector3(0f, 225f, 45f); Light val8 = val7.AddComponent<Light>(); val8.type = (LightType)2; val8.range = 96f; val8.color = new Color(1f, 0.82f, 0.62f); val8.intensity = 2.15f; val8.shadows = (LightShadows)0; Material val9 = new Material(val); ((Object)val9).name = "Heaven breached | ascending feather-light"; val9.SetFloat("_Mode", 1f); val9.SetFloat("_Cull", 0f); owned.Add((Object)(object)val9); GameObject val10 = Child("Heaven breached | sparse ascending light fragments"); val10.transform.position = new Vector3(0f, 147f, 18f); ParticleSystem val11 = val10.AddComponent<ParticleSystem>(); val11.Stop(true, (ParticleSystemStopBehavior)0); MainModule main = val11.main; ((MainModule)(ref main)).duration = 14f; ((MainModule)(ref main)).loop = true; ((MainModule)(ref main)).prewarm = true; ((MainModule)(ref main)).playOnAwake = false; ((MainModule)(ref main)).simulationSpace = (ParticleSystemSimulationSpace)1; ((MainModule)(ref main)).cullingMode = (ParticleSystemCullingMode)3; ((MainModule)(ref main)).startLifetime = new MinMaxCurve(10f, 14f); ((MainModule)(ref main)).startSpeed = MinMaxCurve.op_Implicit(0f); ((MainModule)(ref main)).startSize = new MinMaxCurve(0.55f, 1.35f); ((MainModule)(ref main)).startRotation = new MinMaxCurve(-0.45f, 0.45f); ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(1f, 0.86f, 0.58f, 0.32f)); ((MainModule)(ref main)).maxParticles = 160; EmissionModule emission = val11.emission; ((EmissionModule)(ref emission)).rateOverTime = MinMaxCurve.op_Implicit(10f); ShapeModule shape = val11.shape; ((ShapeModule)(ref shape)).shapeType = (ParticleSystemShapeType)5; ((ShapeModule)(ref shape)).scale = new Vector3(190f, 65f, 165f); VelocityOverLifetimeModule velocityOverLifetime = val11.velocityOverLifetime; ((VelocityOverLifetimeModule)(ref velocityOverLifetime)).enabled = true; ((VelocityOverLifetimeModule)(ref velocityOverLifetime)).space = (ParticleSystemSimulationSpace)1; ((VelocityOverLifetimeModule)(ref velocityOverLifetime)).x = new MinMaxCurve(-0.5f, 0.1f); ((VelocityOverLifetimeModule)(ref velocityOverLifetime)).y = new MinMaxCurve(0.7f, 1.6f); ((VelocityOverLifetimeModule)(ref velocityOverLifetime)).z = new MinMaxCurve(-0.2f, 0.3f); ColorOverLifetimeModule colorOverLifetime = val11.colorOverLifetime; ((ColorOverLifetimeModule)(ref colorOverLifetime)).enabled = true; Gradient val12 = new Gradient(); val12.SetKeys((GradientColorKey[])(object)new GradientColorKey[2] { new GradientColorKey(Color.white, 0f), new GradientColorKey(Color.white, 1f) }, (GradientAlphaKey[])(object)new GradientAlphaKey[4] { new GradientAlphaKey(0f, 0f), new GradientAlphaKey(1f, 0.16f), new GradientAlphaKey(0.7f, 0.68f), new GradientAlphaKey(0f, 1f) }); ((ColorOverLifetimeModule)(ref colorOverLifetime)).color = MinMaxGradient.op_Implicit(val12); ParticleSystemRenderer component2 = ((Component)val11).GetComponent<ParticleSystemRenderer>(); ((Renderer)component2).sharedMaterial = val9; ((Renderer)component2).shadowCastingMode = (ShadowCastingMode)0; ((Renderer)component2).receiveShadows = false; component2.maxParticleSize = 0.02f; val11.useAutoRandomSeed = false; val11.randomSeed = 161803u; val11.Play(); val11.Simulate(12f, true, false, true); val11.Play(); celestialRadiance = val2.AddComponent<SeraphRadiancePulse>(); celestialRadiance.Initialize(val3, val8, val11); Plugin.Log.LogInfo((object)"SERAPH RADIANCE ready: six depth-stopped soft shafts, pearl-gold corona, one slow-pulsing physical light and 160 ascending light fragments max"); } internal void SetRadianceCapturePhase(float? seconds) { if (Object.op_Implicit((Object)(object)celestialRadiance)) { celestialRadiance.SetCapturePhase(seconds); } } internal void LightingSnapshot(string phase) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.Testing) { return; } StringBuilder stringBuilder = new StringBuilder(); object[] array = new object[8] { "phase=", phase, " rootScene=", null, null, null, null, null }; object[] array2 = array; Scene val = ((Component)this).gameObject.scene; array2[3] = ((Scene)(ref val)).name; array[4] = " active="; object[] array3 = array; val = SceneManager.GetActiveScene(); array3[5] = ((Scene)(ref val)).name; array[6] = " frame="; array[7] = Time.frameCount; stringBuilder.AppendLine(string.Concat(array)); stringBuilder.AppendLine(string.Concat("ambientMode=", RenderSettings.ambientMode, " intensity=", RenderSettings.ambientIntensity, " sky=", RenderSettings.ambientSkyColor, " equator=", RenderSettings.ambientEquatorColor, " ground=", RenderSettings.ambientGroundColor, " flat=", RenderSettings.ambientLight)); SphericalHarmonicsL2 ambientProbe = RenderSettings.ambientProbe; for (int i = 0; i < 3; i++) { stringBuilder.Append("SH" + i + ":"); for (int j = 0; j < 9; j++) { stringBuilder.Append(" " + ((SphericalHarmonicsL2)(ref ambientProbe))[i, j]); } stringBuilder.AppendLine(); } stringBuilder.AppendLine(string.Concat("skybox=", RenderSettings.skybox, " sun=", RenderSettings.sun, " shadows=", QualitySettings.shadows, " pixelLights=", QualitySettings.pixelLightCount)); Light[] array4 = Object.FindObjectsOfType<Light>(); foreach (Light val2 in array4) { array = new object[20] { "light=", ((Object)val2).name, " scene=", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null }; object[] array5 = array; val = ((Component)val2).gameObject.scene; array5[3] = ((Scene)(ref val)).name; array[4] = " enabled="; array[5] = ((Behaviour)val2).enabled; array[6] = " active="; array[7] = ((Component)val2).gameObject.activeInHierarchy; array[8] = " type="; array[9] = val2.type; array[10] = " color="; array[11] = val2.color; array[12] = " intensity="; array[13] = val2.intensity; array[14] = " mode="; array[15] = val2.renderMode; array[16] = " mask="; array[17] = val2.cullingMask; array[18] = " shadows="; array[19] = val2.shadows; stringBuilder.AppendLine(string.Concat(array)); } Camera[] allCameras = Camera.allCameras; foreach (Camera val3 in allCameras) { stringBuilder.AppendLine(string.Concat("camera=", ((Object)val3).name, " type=", val3.cameraType, " path=", val3.renderingPath, " actual=", val3.actualRenderingPath, " mask=", val3.cullingMask, " depth=", val3.depthTextureMode, " active=", ((Behaviour)val3).isActiveAndEnabled)); } MonoBehaviour[] array6 = Object.FindObjectsOfType<MonoBehaviour>(); foreach (MonoBehaviour val4 in array6) { if (((object)val4).GetType().Name.Contains("RenderSettings")) { array = new object[8] { "renderController=", ((object)val4).GetType(), " scene=", null, null, null, null, null }; object[] array7 = array; val = ((Component)val4).gameObject.scene; array7[3] = ((Scene)(ref val)).name; array[4] = " enabled="; array[5] = ((Behaviour)val4).enabled; array[6] = " data="; array[7] = JsonUtility.ToJson((object)val4); stringBuilder.AppendLine(string.Concat(array)); } } string[] array8 = new string[8] { "_GlobalWarpRamp", "_GlobalEliteRamp", "_LightRamp", "_LightRamps", "_RampTexture", "_GlobalLightRamp", "_DecalAtlas", "_AmbientColor" }; foreach (string text in array8) { stringBuilder.AppendLine(string.Concat("global ", text, " tex=", Shader.GetGlobalTexture(text), " vector=", Shader.GetGlobalVector(text))); } HashSet<int> hashSet = new HashSet<int>(); Renderer[] array9 = Object.FindObjectsOfType<Renderer>(); foreach (Renderer val5 in array9) { if (((Object)val5).name.IndexOf("Commando", StringComparison.OrdinalIgnoreCase) < 0 && ((Object)val5).name.IndexOf("Chest", StringComparison.OrdinalIgnoreCase) < 0) { continue; } stringBuilder.AppendLine("renderer=" + ((Object)val5).name + " layer=" + ((Component)val5).gameObject.layer + " enabled=" + val5.enabled + " probes=" + val5.lightProbeUsage); Material[] sharedMaterials = val5.sharedMaterials; foreach (Material val6 in sharedMaterials) { if (Object.op_Implicit((Object)(object)val6) && hashSet.Add(((Object)val6).GetInstanceID())) { stringBuilder.AppendLine(" material=" + ((Object)val6).name + " shader=" + ((Object)val6.shader).name + " supported=" + val6.shader.isSupported + " passCount=" + val6.passCount); } } } string contents = stringBuilder.ToString(); File.WriteAllText(Path.Combine(Plugin.Folder, "lighting-" + phase + ".txt"), contents); ManualLogSource log = Plugin.Log; array = new object[8] { "SERAPH LIGHTING ", phase, " active=", null, null, null, null, null }; object[] array10 = array; val = SceneManager.GetActiveScene(); array10[3] = ((Scene)(ref val)).name; array[4] = " ambient="; array[5] = RenderSettings.ambientSkyColor; array[6] = " SH0="; array[7] = ((SphericalHarmonicsL2)(ref ambientProbe))[0, 0]; log.LogInfo((object)string.Concat(array)); } internal void CaptureLightingComparison(CharacterBody player) { //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Invalid comparison between Unknown and I4 //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) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Expected O, but got Unknown //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Expected O, but got Unknown //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Expected O, but got Unknown //IL_0541: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.Testing || (int)SystemInfo.graphicsDeviceType == 4) { return; } GameObject val = Child("Validation only | native chest material comparison"); GameObject val2 = Object.Instantiate<GameObject>(Assets.Load<GameObject>("RoR2/Base/Chest1/Chest1.prefab"), new Vector3(0f, 110f, -76f), Quaternion.Euler(0f, 180f, 0f)); val2.transform.SetParent(val.transform, true); RenderingPath[] array = (RenderingPath[])(object)new RenderingPath[2] { (RenderingPath)1, (RenderingPath)3 }; foreach (RenderingPath val3 in array) { GameObject val4 = Child("Validation | native materials " + val3); Camera val5 = val4.AddComponent<Camera>(); val5.renderingPath = val3; val5.allowHDR = true; val5.nearClipPlane = 0.1f; val5.farClipPlane = 1800f; val5.fieldOfView = 60f; val5.depthTextureMode = (DepthTextureMode)1; val4.transform.position = new Vector3(5f, 113f, -84f); val4.transform.LookAt(new Vector3(1.5f, 111f, -75f)); RenderTexture val6 = new RenderTexture(1200, 800, 24, (RenderTextureFormat)0); val6.Create(); val5.targetTexture = val6; val5.Render(); RenderTexture.active = val6; Texture2D val7 = new Texture2D(1200, 800, (TextureFormat)3, false); val7.ReadPixels(new Rect(0f, 0f, 1200f, 800f), 0, 0); val7.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, string.Concat("native-materials-", val3, ".png")), ImageConversion.EncodeToPNG(val7)); RenderTexture.active = null; val5.targetTexture = null; val6.Release(); Object.Destroy((Object)(object)val6); Object.Destroy((Object)(object)val7); Object.Destroy((Object)(object)val4); } if (Object.op_Implicit((Object)(object)player)) { SceneCamera[] array2 = Object.FindObjectsOfType<SceneCamera>(); foreach (SceneCamera val8 in array2) { if (!Object.op_Implicit((Object)(object)val8.cameraRigController) || !Object.op_Implicit((Object)(object)val8.camera)) { continue; } Camera camera = val8.camera; CameraRigController rig = val8.cameraRigController; Vector3 position = ((Component)rig).transform.position; Quaternion rotation = ((Component)rig).transform.rotation; Vector3 footPosition = player.footPosition; GameObject val9 = new GameObject("Validation only | native-rig material witness"); val9.transform.SetParent(((Component)rig).transform, false); Camera cam = val9.AddComponent<Camera>(); ((Behaviour)cam).enabled = false; cam.renderingPath = (RenderingPath)3; cam.allowHDR = true; cam.nearClipPlane = 0.1f; cam.farClipPlane = 1800f; cam.fieldOfView = 60f; cam.cullingMask = camera.cullingMask; cam.depthTextureMode = (DepthTextureMode)1; cam.clearFlags = (CameraClearFlags)1; val9.AddComponent<SceneCamera>(); RenderTexture val6 = new RenderTexture(1500, 950, 24, (RenderTextureFormat)0); val6.Create(); StringBuilder evidence = new StringBuilder(); Action<string> action = delegate(string phase) { //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) ModelLocator modelLocator = player.modelLocator; CharacterModel val10 = ((Object.op_Implicit((Object)(object)modelLocator) && Object.op_Implicit((Object)(object)modelLocator.modelTransform)) ? ((Component)modelLocator.modelTransform).GetComponent<CharacterModel>() : null); evidence.AppendLine(string.Concat(phase, " body=", ((Object)player).name, " foot=", player.footPosition, " core=", player.corePosition, " camera=", ((Component)cam).transform.position, " actualPath=", cam.actualRenderingPath, " firstPersonTarget=", rig.firstPersonTarget)); evidence.AppendLine(string.Concat(" model=", Object.op_Implicit((Object)(object)modelLocator) ? modelLocator.modelTransform : null, " position=", (Object.op_Implicit((Object)(object)modelLocator) && Object.op_Implicit((Object)(object)modelLocator.modelTransform)) ? modelLocator.modelTransform.position : Vector3.zero, " visibility=", Object.op_Implicit((Object)(object)val10) ? ((object)val10.visibility).ToString() : "missing", " invisibilityCount=", Object.op_Implicit((Object)(object)val10) ? val10.invisibilityCount : (-1))); if (Object.op_Implicit((Object)(object)val10)) { string[] array3 = new string[3] { "fade", "distanceFade", "firstPersonFade" }; foreach (string text in array3) { evidence.AppendLine(" " + text + "=" + typeof(CharacterModel).GetField(text, BindingFlags.Instance | BindingFlags.NonPublic).GetValue(val10)); } RendererInfo[] baseRendererInfos = val10.baseRendererInfos; for (int j = 0; j < baseRendererInfos.Length; j++) { RendererInfo val11 = baseRendererInfos[j]; Renderer renderer = val11.renderer; if (Object.op_Implicit((Object)(object)renderer)) { Bounds bounds = renderer.bounds; evidence.AppendLine(string.Concat(" renderer=", ((Object)renderer).name, " enabled=", renderer.enabled, " active=", ((Component)renderer).gameObject.activeInHierarchy, " visible=", renderer.isVisible, " layer=", ((Component)renderer).gameObject.layer, " bounds=", bounds, " viewportCenter=", cam.WorldToViewportPoint(((Bounds)(ref bounds)).center))); Material[] sharedMaterials = renderer.sharedMaterials; foreach (Material val12 in sharedMaterials) { if (Object.op_Implicit((Object)(object)val12)) { evidence.AppendLine(" material=" + ((Object)val12).name + " shader=" + ((Object)val12.shader).name); } } } } } }; try { action("before teleport"); TeleportHelper.TeleportBody(player, new Vector3(3f, 111f, -76f)); if (Object.op_Implicit((Object)(object)player.modelLocator)) { player.modelLocator.LateUpdate(); } Physics.SyncTransforms(); ((Component)rig).transform.position = new Vector3(-6f, 113f, -85f); ((Component)rig).transform.LookAt(new Vector3(1f, 111f, -75f)); val9.transform.localPosition = Vector3.zero; val9.transform.localRotation = Quaternion.identity; cam.targetTexture = val6; action("before warmup"); cam.Render(); action("after warmup"); cam.Render(); action("after saved render"); RenderTexture.active = val6; Texture2D val7 = new Texture2D(1500, 950, (TextureFormat)3, false); val7.ReadPixels(new Rect(0f, 0f, 1500f, 950f), 0, 0); val7.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, "native-character-and-chest.png"), ImageConversion.EncodeToPNG(val7)); Object.Destroy((Object)(object)val7); } finally { File.WriteAllText(Path.Combine(Plugin.Folder, "native-character-and-chest.txt"), evidence.ToString()); RenderTexture.active = null; cam.targetTexture = null; ((Component)rig).transform.position = position; ((Component)rig).transform.rotation = rotation; TeleportHelper.TeleportBody(player, footPosition); if (Object.op_Implicit((Object)(object)player.modelLocator)) { player.modelLocator.LateUpdate(); } Physics.SyncTransforms(); val6.Release(); Object.Destroy((Object)(object)val6); Object.Destroy((Object)(object)val9); SceneCamera._camera = camera; } break; } } Object.Destroy((Object)(object)val); } internal Vector3 ClearStandingPoint(Vector3 target, CharacterBody player) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: 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_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) Vector3 result = target; float num = 64f; bool flag = false; HullDef val = HullDef.Find((HullClassification)0); Vector3 val2 = V(layout.windStart); foreach (Vector3 groundPosition in groundPositions) { Vector3 val3 = groundPosition - target; float sqrMagnitude = ((Vector3)(ref val3)).sqrMagnitude; if (sqrMagnitude >= num) { continue; } Vector3 val4 = groundPosition - val2; if (Mathf.Abs(val4.y) < 3f) { Vector2 val5 = new Vector2(val4.x, val4.z); if (((Vector2)(ref val5)).sqrMagnitude < 25f) { continue; } } bool flag2 = true; Collider[] array = Physics.OverlapCapsule(groundPosition + Vector3.up * (val.radius + 0.1f), groundPosition + Vector3.up * (val.height - val.radius + 0.1f), val.radius, -1, (QueryTriggerInteraction)1); foreach (Collider val6 in array) { if ((Object)(object)val6 != (Object)(object)authoredFloor && (!Object.op_Implicit((Object)(object)player) || !((Component)val6).transform.IsChildOf(((Component)player).transform))) { flag2 = false; break; } } if (flag2) { result = groundPosition - Vector3.up * 0.13f; num = sqrMagnitude; flag = true; } } if (!flag) { throw new Exception("No clear survivor standing point near " + target); } return result; } internal string StandingSurface(CharacterBody player) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) RaycastHit[] array = Physics.RaycastAll(player.footPosition + Vector3.up * 0.3f, Vector3.down, 4f, -1, (QueryTriggerInteraction)1); Array.Sort(array, (RaycastHit a, RaycastHit b) => ((RaycastHit)(ref a)).distance.CompareTo(((RaycastHit)(ref b)).distance)); RaycastHit[] array2 = array; for (int num = 0; num < array2.Length; num++) { RaycastHit val = array2[num]; if (!((Component)((RaycastHit)(ref val)).collider).transform.IsChildOf(((Component)player).transform)) { return ((Object)((RaycastHit)(ref val)).collider).name + " distance=" + ((RaycastHit)(ref val)).distance; } } return "none"; } internal void CaptureMaterialDiagnostics() { //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) if (!Plugin.Testing) { return; } StringBuilder stringBuilder = new StringBuilder(); Renderer[] array = Object.FindObjectsOfType<Renderer>(); foreach (Renderer val in array) { Material[] sharedMaterials = val.sharedMaterials; foreach (Material val2 in sharedMaterials) { if (Object.op_Implicit((Object)(object)val2)) { bool flag = !Object.op_Implicit((Object)(object)val2.shader) || !val2.shader.isSupported || ((Object)val2.shader).name.Contains("InternalError"); Bounds bounds = val.bounds; Vector3 val3 = ((Bounds)(ref bounds)).center - new Vector3(0f, 110f, -76f); bool flag2 = ((Vector3)(ref val3)).sqrMagnitude < 1600f; if (flag || flag2) { stringBuilder.AppendLine(string.Concat("object=", ((Object)val).name, " parent=", Object.op_Implicit((Object)(object)((Component)val).transform.parent) ? ((Object)((Component)val).transform.parent).name : "", " bounds=", val.bounds, " material=", ((Object)val2).name, " shader=", Object.op_Implicit((Object)(object)val2.shader) ? ((Object)val2.shader).name : "NULL", " unsupported=", flag, " color=", val2.HasProperty("_Color") ? ((object)val2.color/*cast due to .constrained prefix*/).ToString() : "none")); } } } } File.WriteAllText(Path.Combine(Plugin.Folder, "capture-material-diagnostics.txt"), stringBuilder.ToString()); } private static Vector3 V(float[] p) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) return new Vector3(p[0], p[1], p[2]); } internal Vector3 DesignPoint(Vector3 p) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) return new Vector3(p.x * layout.horizontalExpansion, layout.baseAltitude + (p.y - layout.baseAltitude) * layout.verticalExpansion, p.z * layout.horizontalExpansion); } public static void Create(Scene scene) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_000d: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Seraphic Ascent | district"); SceneManager.MoveGameObjectToScene(val, scene); StageWorld stageWorld = val.AddComponent<StageWorld>(); stageWorld.Build(); } private GameObject Child(string name) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown GameObject val = new GameObject(name); val.transform.SetParent(((Component)this).transform, false); return val; } private void Build() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Invalid comparison between Unknown and I4 //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Invalid comparison between Unknown and I4 LightingSnapshot("before-build"); layout = JsonConvert.DeserializeObject<Layout>(File.ReadAllText(Path.Combine(Plugin.Folder, "layout.json"))); if ((int)SystemInfo.graphicsDeviceType != 4) { Materials(); } else { materials = (Material[])(object)new Material[layout.palette.Length]; } Geometry(); Collision(); if ((int)SystemInfo.graphicsDeviceType != 4) { Atmosphere(); } Physics.SyncTransforms(); ground = Navigation.BuildGround(layout, out groundPositions, out links, out components); owned.Add((Object)(object)ground); air = Navigation.BuildAir(); owned.Add((Object)(object)air); if (components != 1) { Plugin.Log.LogWarning((object)("Ground route graph has " + components + " connected components; inspect validation report.")); } WindShortcut(); Systems(); Ready = true; Plugin.Log.LogInfo((object)("Built Seraphic Ascent: " + groundPositions.Count + " ground nodes, " + links + " links, " + components + " components.")); LightingSnapshot("after-build"); } internal void BuildDiorama() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) layout = JsonConvert.DeserializeObject<Layout>(File.ReadAllText(Path.Combine(Plugin.Folder, "layout.json"))); Materials(); Geometry(diorama: true); ((Component)this).transform.localScale = Vector3.one * 0.024f; ((Component)this).transform.localPosition = new Vector3(0f, -3.3f, -0.9f); Light[] componentsInChildren = ((Component)this).GetComponentsInChildren<Light>(); foreach (Light val in componentsInChildren) { Object.Destroy((Object)(object)val); } } private void Materials() { materials = StageArt.CreateMaterials(layout.palette, owned); } private void Geometry(bool diorama = false) { //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Expected O, but got Unknown //IL_029e: Unknown result type (might be due to invalid IL or missing references) using BinaryReader binaryReader = new BinaryReader(File.OpenRead(Path.Combine(Plugin.Folder, "seraph.meshbin"))); if (Encoding.ASCII.GetString(binaryReader.ReadBytes(4)) != "WRT1") { throw new Exception("Invalid city geometry"); } int num = binaryReader.ReadInt32(); for (int i = 0; i < num; i++) { int num2 = binaryReader.ReadInt32(); int count = binaryReader.ReadInt32(); int num3 = binaryReader.ReadInt32(); string text = Encoding.UTF8.GetString(binaryReader.ReadBytes(count)); int num4 = binaryReader.ReadInt32(); Vector3[] array = (Vector3[])(object)new Vector3[num3]; Vector3[] array2 = (Vector3[])(object)new Vector3[num3]; Vector2[] array3 = (Vector2[])(object)new Vector2[num3]; for (int j = 0; j < num3; j++) { ref Vector3 reference = ref array[j]; reference = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); ref Vector3 reference2 = ref array2[j]; reference2 = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); ref Vector2 reference3 = ref array3[j]; reference3 = new Vector2(binaryReader.ReadSingle(), binaryReader.ReadSingle()); } int[] array4 = new int[num4]; for (int j = 0; j < num4; j++) { array4[j] = binaryReader.ReadInt32(); } if (!diorama || !text.StartsWith("Skyline |")) { Mesh val = new Mesh(); ((Object)val).name = text; if (num3 > 65535) { val.indexFormat = (IndexFormat)1; } val.vertices = array; val.normals = array2; val.uv = array3; val.triangles = array4; val.RecalculateTangents(); val.RecalculateBounds(); owned.Add((Object)(object)val); GameObject val2 = Child(text); val2.AddComponent<MeshFilter>().sharedMesh = val; MeshRenderer val3 = val2.AddComponent<MeshRenderer>(); ((Renderer)val3).sharedMaterial = materials[num2]; ((Renderer)val3).shadowCastingMode = (ShadowCastingMode)(!text.StartsWith("Skyline |")); if (!diorama && (text.StartsWith("The Unblinking") || (text.StartsWith("Seraph |") && !text.Contains("quills")) || text.StartsWith("Court details | curled") || text.StartsWith("Cloister |") || text.StartsWith("Western ascent |"))) { val2.layer = LayerIndex.world.intVal; val2.AddComponent<MeshCollider>().sharedMesh = val; } } } } private void FloorCollision(Point[] quads, string name) { //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (quads == null || quads.Length == 0) { return; } Vector3[] array = (Vector3[])(object)new Vector3[quads.Length * 4]; int[] array2 = new int[quads.Length * 6]; for (int i = 0; i < quads.Length; i++) { float[] p = quads[i].p; int num = i * 4; int num2 = i * 6; for (int j = 0; j < 4; j++) { ref Vector3 reference = ref array[num + j]; reference = new Vector3(p[j * 3], p[j * 3 + 1], p[j * 3 + 2]); } array2[num2] = num; array2[num2 + 1] = num + 1; array2[num2 + 2] = num + 2; array2[num2 + 3] = num; array2[num2 + 4] = num + 2; array2[num2 + 5] = num + 3; } Mesh val = new Mesh(); ((Object)val).name = name; val.indexFormat = (IndexFormat)1; val.vertices = array; val.triangles = array2; val.RecalculateBounds(); owned.Add((Object)(object)val); GameObject val2 = Child(name); val2.layer = LayerIndex.world.intVal; MeshCollider val3 = val2.AddComponent<MeshCollider>(); val3.sharedMesh = val; if (quads == layout.floorQuads) { authoredFloor = val3; } } private void Collision() { //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) FloorCollision(layout.floorQuads, "Solid | connected feather terraces"); FloorCollision(layout.ceilingQuads, "Solid | constructed gallery roofs"); FloorCollision(layout.bridgeFloorQuads, "Solid | auxiliary deck surfaces"); FloorCollision(layout.isletFloorQuads, "Solid | detached tree islands, excluded from directors"); FloorCollision(layout.steppingFloorQuads, "Solid | optional jumpable rocks, excluded from directors"); Solid[] colliders = layout.colliders; foreach (Solid solid in colliders) { GameObject val = Child("Solid | structural collision"); val.layer = LayerIndex.world.intVal; val.transform.position = V(solid.p); Quaternion val2 = Quaternion.Euler(solid.pitch, solid.yaw, 0f); if (solid.tilt != null && solid.tilt.Length == 4) { val2 = Quaternion.AngleAxis(solid.tilt[3], V(solid.tilt)) * val2; } val.transform.rotation = val2; val.AddComponent<BoxCollider>().size = V(solid.s); } Point[] trees = layout.trees; foreach (Point point in trees) { GameObject val = Child("Load-bearing tree collision"); val.layer = LayerIndex.world.intVal; Quaternion val2 = ((point.p.Length >= 8) ? Quaternion.AngleAxis(point.p[7], new Vector3(point.p[4], point.p[5], point.p[6])) : Quaternion.identity); val.transform.position = V(point.p) + val2 * Vector3.up * 7f; val.transform.rotation = val2; CapsuleCollider val3 = val.AddComponent<CapsuleCollider>(); val3.radius = point.p[3] * 0.85f; val3.height = 100f; } GameObject val4 = Child("Choir fall recovery"); val4.layer = LayerIndex.collideWithCharacterHullOnly.intVal; val4.transform.position = new Vector3(0f, 30f, 10f); BoxCollider val5 = val4.AddComponent<BoxCollider>(); val5.size = new Vector3(850f, 100f, 850f); ((Collider)val5).isTrigger = true; MapZone val6 = val4.AddComponent<MapZone>(); val6.triggerType = (TriggerType)1; val6.zoneType = (ZoneType)0; GameObject val7 = Child("Choir outer bounds"); val7.layer = LayerIndex.collideWithCharacterHullOnly.intVal; val7.transform.position = new Vector3(0f, 170f, 16.5f); val5 = val7.AddComponent<BoxCollider>(); val5.size = new Vector3(693f, 330f, 627f); ((Collider)val5).isTrigger = true; val6 = val7.AddComponent<MapZone>(); val6.triggerType = (TriggerType)0; val6.zoneType = (ZoneType)0; } private void WindShortcut() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) if (layout.windStart == null) { return; } Vector3 val = V(layout.windStart); Vector3 val2 = V(layout.windEnd); GameObject val3 = Child("Choir updraft | optional express route"); val3.layer = LayerIndex.world.intVal; val3.transform.position = val; BoxCollider val4 = val3.AddComponent<BoxCollider>(); ((Collider)val4).isTrigger = true; val4.center = Vector3.up * 0.4f; val4.size = new Vector3(3f, 0.9f, 3f); JumpVolume val5 = val3.AddComponent<JumpVolume>(); val5.acceptTeam = (TeamIndex)1; val5.time = 5.1f; val5.jumpVelocity = (val2 - val) / val5.time - Physics.gravity * (val5.time * 0.5f); val5.AllowAirControl = false; val5.disableFallDamage = true; val5.jumpSoundString = "Play_env_geyser_launch"; val5.onJump = new UnityEvent<CharacterBody>(); if (Object.op_Implicit((Object)(object)materials[5])) { LineRenderer val6 = val3.AddComponent<LineRenderer>(); ((Renderer)val6).sharedMaterial = materials[5]; val6.useWorldSpace = false; val6.loop = true; val6.positionCount = 32; val6.widthMultiplier = 0.09f; for (int i = 0; i < 32; i++) { float num = (float)i * MathF.PI / 16f; val6.SetPosition(i, new Vector3(Mathf.Cos(num) * 1.5f, 0.12f, Mathf.Sin(num) * 1.5f)); } GameObject val7 = Child("Choir updraft | visible rising air"); val7.transform.position = val; ParticleSystem val8 = val7.AddComponent<ParticleSystem>(); MainModule main = val8.main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(2.6f); ((MainModule)(ref main)).startSpeed = MinMaxCurve.op_Implicit(3f); ((MainModule)(ref main)).startSize = new MinMaxCurve(0.24f, 0.6f); ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(0.75f, 0.96f, 0.83f, 0.65f)); ((MainModule)(ref main)).maxParticles = 45; EmissionModule emission = val8.emission; ((EmissionModule)(ref emission)).rateOverTime = MinMaxCurve.op_Implicit(12f); ShapeModule shape = val8.shape; ((ShapeModule)(ref shape)).shapeType = (ParticleSystemShapeType)4; ((ShapeModule)(ref shape)).radius = 1.2f; ((ShapeModule)(ref shape)).angle = 4f; val7.transform.rotation = Quaternion.Euler(-90f, 0f, 0f); ((Renderer)((Component)val8).GetComponent<ParticleSystemRenderer>()).sharedMaterial = StageArt.WindMaterial(owned); } } private IEnumerator CaptureReflection(ReflectionProbe probe) { yield return null; yield return null; if (Object.op_Implicit((Object)(object)probe)) { GameObject go = Child("Validation-independent | one-time environment capture"); Camera camera = go.AddComponent<Camera>(); ((Behaviour)camera).enabled = false; camera.depthTextureMode = (DepthTextureMode)1; ((Component)camera).transform.position = ((Component)probe).transform.position; camera.clearFlags = (CameraClearFlags)1; camera.nearClipPlane = 0.3f; camera.farClipPlane = 650f; camera.allowHDR = true; camera.renderingPath = (RenderingPath)1; LayerIndex world = LayerIndex.world; camera.cullingMask = 1 | LayerMask.op_Implicit(((LayerIndex)(ref world)).mask); RenderTexture cube = new RenderTexture(128, 128, 16, (RenderTextureFormat)2); ((Object)cube).name = "Choir | captured reflection"; ((Texture)cube).dimension = (TextureDimension)4; cube.useMipMap = true; cube.autoGenerateMips = true; cube.Create(); owned.Add((Object)(object)cube); bool complete = camera.RenderToCubemap(cube, 63); if (complete) { probe.customBakedTexture = (Texture)(object)cube; } Object.Destroy((Object)(object)go); Plugin.Log.LogInfo((object)("SERAPH ART reflection ready=" + complete)); } } private void Systems() { //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Expected O, but got Unknown //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) if (Plugin.Testing && !Plugin.GameplayTest) { return; } GameObject val = Child("StageInfo"); val.SetActive(false); SceneInfo target = val.AddComponent<SceneInfo>(); Assets.Set(target, "groundNodesAsset", ground); Assets.Set(target, "airNodesAsset", air); ClassicStageInfo val2 = val.AddComponent<ClassicStageInfo>(); val2.SetMonsterDCCSP(Assets.Load<DccsPool>("RoR2/Base/foggyswamp/dpFoggySwampMonsters.asset")); val2.SetInteractableDCCSP(Assets.Load<DccsPool>("RoR2/Base/foggyswamp/dpFoggySwampInteractables.asset")); val2.sceneDirectorInteractibleCredits = 230; val2.sceneDirectorMonsterCredits = 20; val2.bonusInteractibleCreditObjects = (BonusInteractibleCreditObject[])(object)new BonusInteractibleCreditObject[0]; val.SetActive(true); if (!Plugin.Testing || Plugin.GameplayTest) { if (!Object.op_Implicit((Object)(object)GlobalEventManager.instance)) { Child("Global gameplay events").AddComponent<GlobalEventManager>(); } for (int i = 0; i < 8; i++) { GameObject val3 = Child("Arrival " + i); val3.transform.position = V(layout.spawn) + new Vector3((float)(i % 4) * 2.2f, 0f, (float)(i / 4) * 2.2f); val3.transform.rotation = Quaternion.Euler(0f, 35f, 0f); val3.AddComponent<SpawnPoint>(); } Child("Spawn director core").AddComponent<DirectorCore>(); val = Child("Directors"); val.SetActive(false); SceneDirector val4 = val.AddComponent<SceneDirector>(); val4.usePlacedSpawnPoints = true; val4.teleporterSpawnCard = Assets.Load<SpawnCard>("RoR2/Base/Teleporters/iscTeleporter.asset"); DirectorCard val5 = new DirectorCard(); val5.spawnCard = (SpawnCard)(object)Assets.Load<InteractableSpawnCard>("RoR2/CU8/LemurianEgg/iscLemurianEgg.asset"); val5.selectionWeight = 1; val4.lumerianEgg = val5; val4.expRewardCoefficient = 0.2f; val4.eliteBias = 1f; val4.spawnDistanceMultiplier = 1f; CombatDirector val6 = val.AddComponent<CombatDirector>(); val6.customName = "Choir slow waves"; val6.creditMultiplier = 0.75f; val6.moneyWaveIntervals = (RangeFloat[])(object)new RangeFloat[1] { new RangeFloat { min = 4f, max = 6f } }; val6.minSeriesSpawnInterval = 0.5f; val6.maxSeriesSpawnInterval = 2f; val6.minRerollSpawnInterval = 22f; val6.maxRerollSpawnInterval = 30f; val6.skipSpawnIfTooCheap = true; CombatDirector val7 = val.AddComponent<CombatDirector>(); val7.customName = "Choir fast waves"; val7.creditMultiplier = 0.75f; val7.moneyWaveIntervals = (RangeFloat[])(object)new RangeFloat[1] { new RangeFloat { min = 2f, max = 4f } }; val7.minSeriesSpawnInterval = 0.1f; val7.maxSeriesSpawnInterval = 1f; val7.minRerollSpawnInterval = 2f; val7.maxRerollSpawnInterval = 4f; ((MonoBehaviour)this).StartCoroutine(EnableDirectors(val)); } } private IEnumerator EnableDirectors(GameObject go) { while (!Object.op_Implicit((Object)(object)Stage.instance) || !Object.op_Implicit((Object)(object)Stage.instance.sceneDef)) { yield return null; } yield return null; go.SetActive(true); if (NetworkServer.active) { GameObject val = Object.Instantiate<GameObject>(Assets.Load<GameObject>("RoR2/Base/NewtStatue/NewtStatue.prefab"), V(layout.shrine), Quaternion.Euler(0f, 125f, 0f)); UnlockableGranter component = val.GetComponent<UnlockableGranter>(); component.unlockableDef = Plugin.NewtLog; component.unlockableString = Plugin.NewtLog.cachedName; NetworkServer.Spawn(val); } } private void PrepareAntialiasing(PostProcessLayer layer) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Invalid comparison between Unknown and I4 //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) if (!previousAntialiasing.ContainsKey(layer)) { previousAntialiasing.Add(layer, layer.antialiasingMode); if ((int)layer.antialiasingMode == 0) { previousSmaaQuality.Add(layer, layer.subpixelMorphologicalAntialiasing.quality); layer.antialiasingMode = (Antialiasing)2; layer.subpixelMorphologicalAntialiasing.quality = (Quality)2; } } } private void LateUpdate() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) if (!Ready) { return; } Camera[] allCameras = Camera.allCameras; foreach (Camera val in allCameras) { int cullingMask = val.cullingMask; LayerIndex world = LayerIndex.world; if ((cullingMask & LayerMask.op_Implicit(((LayerIndex)(ref world)).mask)) != 0) { if (!previousFarPlanes.ContainsKey(val)) { previousFarPlanes.Add(val, val.farClipPlane); val.farClipPlane = Mathf.Max(1800f, val.farClipPlane); } if (!previousDepthModes.ContainsKey(val)) { previousDepthModes.Add(val, val.depthTextureMode); val.depthTextureMode = (DepthTextureMode)(val.depthTextureMode | 1); } } if (!preparedCameras.Contains(((Object)val).GetInstanceID())) { PostProcessLayer component = ((Component)val).GetComponent<PostProcessLayer>(); if (Object.op_Implicit((Object)(object)component)) { PrepareAntialiasing(component); component.OnGlobalVolumesDirty(); component.OnVolumeSettingsChanged(); preparedCameras.Add(((Object)val).GetInstanceID()); } } } } internal void WriteValidation() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Invalid comparison between Unknown and I4 //IL_00fb: 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) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) List<object> list = new List<object>(); bool flag = true; Point[] nodes = layout.nodes; RaycastHit val2 = default(RaycastHit); foreach (Point point in nodes) { Vector3 val = V(point.p); bool flag2 = ((Collider)authoredFloor).Raycast(new Ray(val + Vector3.up * 0.6f, Vector3.down), ref val2, 1.6f) && Mathf.Abs(((RaycastHit)(ref val2)).point.y - (val.y - 0.18f)) < 0.05f; flag = flag && flag2; list.Add(new { p = point.p, supported = flag2 }); } Landmark[] landmarks = layout.landmarks; foreach (Landmark landmark in landmarks) { float num = float.PositiveInfinity; foreach (Vector3 groundPosition in groundPositions) { num = Mathf.Min(num, Vector3.Distance(groundPosition, V(landmark.p))); } bool flag3 = num < 7f; flag = flag && flag3; list.Add(new { destination = landmark.name, nearestGroundNode = num, reachable = flag3 }); } nodes = layout.teleporters; foreach (Point point2 in nodes) { int num2 = 0; foreach (Vector3 groundPosition2 in groundPositions) { if (Vector3.Distance(groundPosition2, V(point2.p)) < 4.5f) { num2++; } } flag = flag && num2 > 0; list.Add(new { teleporter = point2.p, nearbyNodes = num2 }); } File.WriteAllText(Path.Combine(Plugin.Folder, "physical-validation.json"), JsonConvert.SerializeObject((object)new { passed = flag, teleporterFlagMask = 2, checks = list }, (Formatting)1)); Plugin.Log.LogInfo((object)("SERAPH TEST physical surfaces and destinations=" + flag)); if ((int)SystemInfo.graphicsDeviceType != 4) { Capture(); CaptureScale(null); } File.WriteAllText(Path.Combine(Plugin.Folder, "runtime-validation.txt"), "Scene loaded in Unity\nGround nodes: " + groundPositions.Count + "\nLinks: " + links + "\nConnected components: " + components + "\nRenderers: " + ((Component)this).GetComponentsInChildren<Renderer>().Length + "\nColliders: " + ((Component)this).GetComponentsInChildren<Collider>().Length + "\n"); } internal void Capture() { //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Expected O, but got Unknown //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Expected O, but got Unknown //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Expected O, but got Unknown //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Expected O, but got Unknown //IL_01a5: Unknown result type (might be due to invalid IL or missing references) CaptureMaterialDiagnostics(); SetStormCaptureFlash(enabled: false); SetRadianceCapturePhase(4f); GameObject val = Child("Validation camera"); Camera val2 = val.AddComponent<Camera>(); val2.depthTextureMode = (DepthTextureMode)1; val2.fieldOfView = 65f; val2.nearClipPlane = 0.15f; val2.farClipPlane = 1800f; val2.allowHDR = true; val2.renderingPath = (RenderingPath)3; val2.clearFlags = (CameraClearFlags)1; PostProcessResources[] array = Resources.FindObjectsOfTypeAll<PostProcessResources>(); if (array.Length > 0) { PostProcessLayer val3 = val.AddComponent<PostProcessLayer>(); LayerIndex postProcess = LayerIndex.postProcess; val3.volumeLayer = ((LayerIndex)(ref postProcess)).mask; val3.volumeTrigger = val.transform; val3.Init(array[0]); val3.OnGlobalVolumesDirty(); val3.OnVolumeSettingsChanged(); } RenderTexture val4 = new RenderTexture(1500, 950, 24, (RenderTextureFormat)0); val4.Create(); val2.targetTexture = val4; for (int i = 0; i < layout.captureViews.Length; i++) { val.transform.position = V(layout.captureViews[i]); val.transform.LookAt(V(layout.captureTargets[i])); PostProcessLayer component = ((Component)val2).GetComponent<PostProcessLayer>(); if (Object.op_Implicit((Object)(object)component)) { PrepareAntialiasing(component); component.OnGlobalVolumesDirty(); component.OnVolumeSettingsChanged(); } val2.Render(); RenderTexture.active = val4; Texture2D val5 = new Texture2D(1500, 950, (TextureFormat)3, false); val5.ReadPixels(new Rect(0f, 0f, 1500f, 950f), 0, 0); val5.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, "unity-view-" + i + ".png"), ImageConversion.EncodeToPNG(val5)); Object.Destroy((Object)(object)val5); } val.transform.position = V(layout.captureViews[0]); val.transform.LookAt(V(layout.captureTargets[0])); SetRadianceCapturePhase(12f); val2.Render(); RenderTexture.active = val4; Texture2D val6 = new Texture2D(1500, 950, (TextureFormat)3, false); val6.ReadPixels(new Rect(0f, 0f, 1500f, 950f), 0, 0); val6.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, "radiance-trough.png"), ImageConversion.EncodeToPNG(val6)); Object.Destroy((Object)(object)val6); SetRadianceCapturePhase(4f); SetStormCaptureFlash(enabled: true); val2.Render(); RenderTexture.active = val4; Texture2D val7 = new Texture2D(1500, 950, (TextureFormat)3, false); val7.ReadPixels(new Rect(0f, 0f, 1500f, 950f), 0, 0); val7.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, "storm-lightning.png"), ImageConversion.EncodeToPNG(val7)); Object.Destroy((Object)(object)val7); SetStormCaptureFlash(enabled: false); SetRadianceCapturePhase(null); RenderTexture.active = null; val2.targetTexture = null; val4.Release(); Object.Destroy((Object)(object)val4); Object.Destroy((Object)(object)val); } internal void CaptureScale(CharacterBody player) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Expected O, but got Unknown //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Expected O, but got Unknown //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) if ((int)SystemInfo.graphicsDeviceType != 4) { GameObject val = Child("Validation camera | actual survivor scale"); Camera val2 = val.AddComponent<Camera>(); val2.depthTextureMode = (DepthTextureMode)1; val2.fieldOfView = 60f; val2.nearClipPlane = 0.1f; val2.farClipPlane = 3500f; val2.allowHDR = true; val2.renderingPath = (RenderingPath)3; val2.clearFlags = (CameraClearFlags)1; PostProcessResources[] array = Resources.FindObjectsOfTypeAll<PostProcessResources>(); if (array.Length > 0) { PostProcessLayer val3 = val.AddComponent<PostProcessLayer>(); LayerIndex postProcess = LayerIndex.postProcess; val3.volumeLayer = ((LayerIndex)(ref postProcess)).mask; val3.volumeTrigger = val.transform; val3.Init(array[0]); val3.OnGlobalVolumesDirty(); val3.OnVolumeSettingsChanged(); } Vector3 val4 = (Object.op_Implicit((Object)(object)player) ? player.footPosition : V(layout.scaleReference)); HullDef val5 = HullDef.Find((HullClassification)0); GameObject val6 = null; if (!Object.op_Implicit((Object)(object)player)) { val6 = GameObject.CreatePrimitive((PrimitiveType)1); ((Object)val6).name = "Validation only | native human hull"; val6.transform.position = val4 + Vector3.up * (val5.height * 0.5f); val6.transform.localScale = new Vector3(val5.radius * 2f, val5.height * 0.5f, val5.radius * 2f); val6.GetComponent<Renderer>().sharedMaterial = materials[13]; val6.GetComponent<Collider>().enabled = false; } Plugin.Log.LogInfo((object)("SERAPH TEST native human reference height=" + val5.height + " radius=" + val5.radius)); val.transform.position = val4 + ((Object.op_Implicit((Object)(object)player) && val4.z > 30f) ? new Vector3(6f, 4f, 9f) : new Vector3(-5f, 3.2f, -8f)); val.transform.LookAt(val4 + Vector3.up * 4f); RenderTexture val7 = new RenderTexture(1500, 950, 24, (RenderTextureFormat)0); val7.Create(); val2.targetTexture = val7; val2.Render(); RenderTexture.active = val7; Texture2D val8 = new Texture2D(1500, 950, (TextureFormat)3, false); val8.ReadPixels(new Rect(0f, 0f, 1500f, 950f), 0, 0); val8.Apply(); File.WriteAllBytes(Path.Combine(Plugin.Folder, "survivor-scale.png"), ImageConversion.EncodeToPNG(val8)); RenderTexture.active = null; val2.targetTexture = null; val7.Release(); Object.Destroy((Object)(object)val7); Object.Destroy((Object)(object)val8); Object.Destroy((Object)(object)val); if (Object.op_Implicit((Object)(object)val6)) { Object.Destroy((Object)(object)val6); } } } private void OnDestroy() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) foreach (KeyValuePair<Camera, float> previousFarPlane in previousFarPlanes) { if (Object.op_Implicit((Object)(object)previousFarPlane.Key)) { previousFarPlane.Key.farClipPlane = previousFarPlane.Value; } } foreach (KeyValuePair<PostProcessLayer, Quality> item in previousSmaaQuality) { if (Object.op_Implicit((Object)(object)item.Key)) { item.Key.subpixelMorphologicalAntialiasing.quality = item.Value; } } foreach (KeyValuePair<PostProcessLayer, Antialiasing> item2 in previousAntialiasing) { if (Object.op_Implicit((Object)(object)item2.Key)) { item2.Key.antialiasingMode = item2.Value; } } foreach (KeyValuePair<Camera, DepthTextureMode> previousDepthMode in previousDepthModes) { if (Object.op_Implicit((Object)(object)previousDepthMode.Key)) { previousDepthMode.Key.depthTextureMode = previousDepthMode.Value; } } if (qualityConfigured) { QualitySettings.shadowDistance = previousShadowDistance; QualitySettings.shadowCascades = previousCascades; QualitySettings.shadowResolution = previousShadowResolution; } foreach (Object item3 in owned) { if (Object.op_Implicit(item3)) { Object.Destroy(item3); } } } private void StormWeather() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Expected O, but got Unknown //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Expected O, but got Unknown //IL_01bc: Unknown result type (might be due to invalid IL or missing references) GameObject val = Child("Realm in distress | original wind, rain and lightning"); stormFront = val.AddComponent<SeraphStormFront>(); Material val2 = new Material(StageArt.ArtShader("Assets/SeraphWeather.shader")); ((Object)val2).name = "Storm | wind-driven rain"; val2.SetFloat("_Mode", 0f); owned.Add((Object)(object)val2); Material val3 = new Material(StageArt.ArtShader("Assets/SeraphWeather.shader")); ((Object)val3).name = "Storm | fractured celestial lightning"; val3.SetFloat("_Mode", 1f); owned.Add((Object)(object)val3); Material val4 = new Material(StageArt.ArtShader("Assets/SeraphWeather.shader")); ((Object)val4).name = "Storm | torn low cloud wisps"; val4.SetFloat("_Mode", 2f); owned.Add((Object)(object)val4); GameObject val5 = GameObject.CreatePrimitive((PrimitiveType)3); ((Object)val5).name = "Storm | low moving cloud canopy"; val5.transform.SetParent(val.transform, false); val5.transform.position = new Vector3(0f, 295f, 0f); val5.transform.localScale = new Vector3(4200f, 150f, 4200f); Object.Destroy((Object)(object)val5.GetComponent<Collider>()); Material val6 = new Material(StageArt.ArtShader("Assets/SeraphClouds.shader")); owned.Add((Object)(object)val6); val6.SetFloat("_Top", 370f); val6.SetFloat("_Bottom", 240f); val6.SetFloat("_Upper", 1f); val6.SetFloat("_Density", 0.0018f); val6.SetColor("_MistColor", new Color(0.115f, 0.155f, 0.235f)); MeshRenderer component = val5.GetComponent<MeshRenderer>(); ((Renderer)component).sharedMaterial = val6; ((Renderer)component).shadowCastingMode = (ShadowCastingMode)0; ((Renderer)component).receiveShadows = false; stormFront.Initialize(val2, val3, val4, val6); Plugin.Log.LogInfo((object)"SERAPH STORM ready: original rain 6500 max, 130 cloud wisps max, six pooled lightning channels; canopy begins at 240m"); } internal void SetStormCaptureFlash(bool enabled) { if (Object.op_Implicit((Object)(object)stormFront)) { stormFront.SetCaptureFlash(enabled); } } } internal sealed class SeraphRadiancePulse : MonoBehaviour { private Material material; private Light livingLight; private ParticleSystem motes; private float? capturePhase; internal void Initialize(Material volumeMaterial, Light localLight, ParticleSystem fragments) { material = volumeMaterial; livingLight = localLight; motes = fragments; Apply(Time.time); } internal void SetCapturePhase(float? seconds) { capturePhase = seconds; material.SetFloat("_RadiancePhase", seconds.HasValue ? seconds.Value : (-1f)); if (seconds.HasValue) { motes.Pause(); motes.Simulate(12f + Mathf.Repeat(seconds.Value, 14f), true, true, true); motes.Pause(); } else { motes.Play(); } Apply(seconds.HasValue ? seconds.Value : Time.time); } private void Update() { Apply(capturePhase.HasValue ? capturePhase.Value : Time.time); } private void Apply(float time) { float num = Mathf.Sin(time * 0.38f); Shader.SetGlobalFloat("_SeraphPulse", 0.5f + 0.5f * num); if (Object.op_Implicit((Object)(object)livingLight)) { livingLight.intensity = 2.15f * (0.96f + 0.08f * num); } } private void OnDestroy() { Shader.SetGlobalFloat("_SeraphPulse", 0.5f); } } public sealed class DioramaView : MonoBehaviour { private bool built; private void OnEnable() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown if (!built) { built = true; GameObject val = new GameObject("The choir in miniature"); val.transform.SetParent(((Component)this).transform, false); val.AddComponent<StageWorld>().BuildDiorama(); } } } internal static class Navigation { private static int World { get { //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_0009: Unknown result type (might be due to invalid IL or missing references) LayerIndex world = LayerIndex.world; return LayerMask.op_Implicit(((LayerIndex)(ref world)).mask); } } private static Vector3 V(float[] p) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) return new Vector3(p[0], p[1], p[2]); } private static bool Clear(Vector3 p, int hull) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) HullDef val = HullDef.Find((HullClassification)hull); return !Physics.CheckCapsule(p + Vector3.up * (val.radius + 0.3f), p + Vector3.up * (val.height - val.radius + 0.3f), val.radius, World, (QueryTriggerInteraction)1); } private static bool Floor(Vector3 p) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: 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_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) return Physics.Raycast(p + Vector3.up * 0.8f, Vector3.down, 1.8f, World, (QueryTriggerInteraction)1); } private static bool Wide(Vector3 p, float radius) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: 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) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) return Floor(p + Vector3.right * radius) && Floor(p - Vector3.right * radius) && Floor(p + Vector3.forward * radius) && Floor(p - Vector3.forward * radius); } internal unsafe static NodeGraph BuildGround(Layout layout, out List<Vector3> positions, out int linkCount, out int components) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown resul