Decompiled source of WarStrikes v0.9.2
Mods/WarStrikes.dll
Decompiled a day 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.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Text; using BoneLib; using BoneLib.BoneMenu; using BoneLib.Notifications; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppSLZ.Marrow; using Il2CppSLZ.Marrow.Data; using Il2CppSLZ.Marrow.Warehouse; using LabFusion.Marrow.Pool; using LabFusion.Network; using LabFusion.Network.Serialization; using LabFusion.RPC; using LabFusion.SDK.Modules; using MelonLoader; using MelonLoader.Preferences; using MelonLoader.Utils; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.Rendering; using WarStrikes; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: MelonInfo(typeof(Main), "WarStrikes", "0.9.2", "you", null)] [assembly: MelonGame("Stress Level Zero", "BONELAB")] [assembly: MelonAdditionalDependencies(new string[] { "BoneLib" })] [assembly: MelonOptionalDependencies(new string[] { "LabFusion" })] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("WarStrikes")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("WarStrikes")] [assembly: AssemblyTitle("WarStrikes")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace WarStrikes { public static class Fx { private class Ov { public GameObject Go; public Material Mat; public Texture2D Tex; public float Peak; public float Hold; public float Fade; public float T; public float Scale = 3.1f; public bool On; public bool Pulse; public Color Col; } public class DudState { public bool Done; } private class Dud { public GameObject Go; public Rigidbody Rb; public DudState St; public Action Boom; public int Id; public float Rest; public float Last; public float LastHit; public int Hits; public Vector3 LastPos; } private class Flame { public GameObject Go; public MeshFilter Mf; public Mesh Own; public Vector3[] V; public Vector2[] UV; public float Ph; public Vector3 Pos; public Vector3 Vel; public float T; public float Life; public float Size; public float Off; public float Fps; public float Delay; public float Sign; public bool Field; public Vector3 Center; public float Radius; public float FieldEnd; } private class Timer { public float T; public float Dur; public Action<float> Upd; public Action End; public bool Done; } private struct TrailStyle { public float Life; public float Life2; public float Size; public float Size2; public float Gray; public float Gray2; public float Alpha; public float PerMeter; public float Grow; public float Noise; public bool Glow; public Color GlowColor; public float GlowSize; } public static readonly List<Bomb> PendingBombs = new List<Bomb>(); private static Shader _modelShader; private static ShaderMode _modelShaderFor = (ShaderMode)(-1); private static Material _plainModelMat; private static ShaderMode _plainFor = (ShaderMode)(-1); private static bool _warnedNoShader; private static Dictionary<string, Shader> _loadedShaders; private static Shader _flatShader; private static GameObject _sirenGo; private static int _sirenGen; private static LineRenderer _lr; private static GameObject _marker; private static readonly Color Fire0 = new Color(1f, 1f, 0.95f); private static readonly Color Fire1 = new Color(1f, 0.9f, 0.75f); private static readonly Color FireMid = new Color(1f, 0.72f, 0.5f); private static readonly Color FireEnd = new Color(0.2f, 0.09f, 0.07f); private static readonly Color Dirt0 = new Color(0.2f, 0.15f, 0.1f); private static readonly Color Dirt1 = new Color(0.43f, 0.33f, 0.22f); private static readonly Color Dust0 = new Color(0.56f, 0.49f, 0.39f); private static readonly Color Dust1 = new Color(0.72f, 0.65f, 0.54f); private static float _prevVol = -1f; private static int _hearGen; private static readonly Ov _ovVig = new Ov { Col = new Color(0f, 0f, 0f) }; private static readonly Ov _ovBlood = new Ov { Col = new Color(1f, 1f, 1f), Pulse = true }; private static readonly Ov _ovHaze = new Ov { Col = new Color(1f, 1f, 1f), Pulse = true }; private static Material _depthMat; private static readonly List<GameObject> _craters3d = new List<GameObject>(); private static Texture2D _craterTex; private static Material _craterMat; private static Material _rockMat; private static readonly float[] CraterRho = new float[12] { 0f, 0.18f, 0.36f, 0.52f, 0.66f, 0.78f, 0.88f, 0.96f, 1.04f, 1.12f, 1.2f, 1.3f }; private const int CraterSeg = 40; public const int DudShotsToBlow = 7; private static readonly List<Dud> _duds = new List<Dud>(); private static bool _ambientSaved; private static float _ambientOrig; private static int _ambGen; private static int _shardsAlive; private static readonly Dictionary<int, Material> _shardMats = new Dictionary<int, Material>(); private static readonly Color SoilA = new Color(0.2f, 0.14f, 0.09f); private static readonly Color SoilB = new Color(0.42f, 0.33f, 0.22f); private static readonly Color MetalA = new Color(0.12f, 0.12f, 0.13f); private static readonly Color MetalB = new Color(0.38f, 0.37f, 0.35f); private static bool _flipbookBroken; private const int FireFrames = 32; private const int FireCols = 8; private const int FireRows = 4; private static Texture2D _fireSheet; private static Material _fireMat; private const int GX = 6; private const int GY = 9; private static int[] _gridTris; private static bool _fireTried; private static bool _fireOk; private static readonly List<Flame> _flames = new List<Flame>(); public static readonly Quaternion Up = Quaternion.Euler(-90f, 0f, 0f); public static readonly Quaternion Flat = Quaternion.Euler(90f, 0f, 0f); private static readonly List<Timer> _timers = new List<Timer>(); private static readonly Dictionary<int, Texture2D> _texCache = new Dictionary<int, Texture2D>(); private static readonly Dictionary<int, Material> _matCache = new Dictionary<int, Material>(); private static Shader _addShader; private static bool _addSearched; private static GameObject _flashGo; private static Material _flashMat; private static float _flashStrength; private static float _flashHold; private static float _flashFade; private static float _flashT; private static Color _flashColor = new Color(1f, 1f, 0.95f); public static bool LitModels { get { Shader val = PickModelShader(); if ((Object)(object)val != (Object)null && ((Object)val).name.ToLowerInvariant().Contains("lit")) { return !((Object)val).name.ToLowerInvariant().Contains("unlit"); } return false; } } public static bool IsPlayerPart(Transform t) { try { RigManager rigManager = Player.RigManager; if ((Object)(object)rigManager != (Object)null && t.IsChildOf(((Component)rigManager).transform)) { return true; } PhysicsRig physicsRig = Player.PhysicsRig; return (Object)(object)physicsRig != (Object)null && t.IsChildOf(((Component)physicsRig).transform); } catch { return false; } } public static bool RayNearestNonPlayer(Vector3 origin, Vector3 dir, float maxDist, out Vector3 point) { //IL_0001: 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_0010: 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_0065: 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) point = default(Vector3); bool result = false; float num = float.MaxValue; foreach (RaycastHit item in (Il2CppArrayBase<RaycastHit>)(object)Physics.RaycastAll(origin, dir, maxDist)) { RaycastHit current = item; Collider collider = ((RaycastHit)(ref current)).collider; if (!((Object)(object)collider == (Object)null) && !collider.isTrigger && !IsPlayerPart(((Component)collider).transform) && ((RaycastHit)(ref current)).distance < num) { num = ((RaycastHit)(ref current)).distance; point = ((RaycastHit)(ref current)).point; result = true; } } return result; } public static void ResetCaches() { _loadedShaders = null; _flatShader = null; _modelShader = null; _modelShaderFor = (ShaderMode)(-1); _plainModelMat = null; _plainFor = (ShaderMode)(-1); ResetParticleCaches(); ResetFlames(); } internal static Shader FindLoaded(string name) { Shader value = null; try { value = Shader.Find(name); } catch { } if ((Object)(object)value != (Object)null) { return value; } try { if (_loadedShaders == null) { _loadedShaders = new Dictionary<string, Shader>(); foreach (Shader item in Resources.FindObjectsOfTypeAll<Shader>()) { if ((Object)(object)item != (Object)null) { string key = ((Object)item).name.ToLowerInvariant(); if (!_loadedShaders.ContainsKey(key)) { _loadedShaders[key] = item; } } } } _loadedShaders.TryGetValue(name.ToLowerInvariant(), out value); } catch { } return value; } internal static Shader FindFirst(params string[] names) { for (int i = 0; i < names.Length; i++) { Shader val = FindLoaded(names[i]); if ((Object)(object)val != (Object)null) { return val; } } return null; } internal static Shader PickModelShader() { ShaderMode shader = Settings.Shader; if ((Object)(object)_modelShader != (Object)null && _modelShaderFor == shader) { return _modelShader; } Shader val = null; switch (shader) { case ShaderMode.InternalColored: val = FindFirst("Hidden/Internal-Colored"); break; case ShaderMode.Sprites: val = FindFirst("Sprites/Default"); break; case ShaderMode.UrpUnlit: val = FindFirst("Universal Render Pipeline/Unlit"); break; case ShaderMode.UnlitColor: val = FindFirst("Unlit/Color"); break; case ShaderMode.LitMAS: val = FindFirst("SLZ/LitMAS/LitMAS Opaque"); break; case ShaderMode.Lit: val = FindFirst("Universal Render Pipeline/Lit", "Universal Render Pipeline/Lit (PBR Workflow)", "Universal Render Pipeline/Simple Lit"); break; } if ((Object)(object)val == (Object)null && shader == ShaderMode.Auto) { val = FindFirst("Universal Render Pipeline/Lit", "Universal Render Pipeline/Lit (PBR Workflow)", "Universal Render Pipeline/Simple Lit"); } if ((Object)(object)val == (Object)null) { val = FindFirst("Sprites/Default", "Hidden/Internal-Colored", "Universal Render Pipeline/Unlit", "Unlit/Color", "Universal Render Pipeline/Lit", "Standard"); } if ((Object)(object)val == (Object)null) { if (!_warnedNoShader) { _warnedNoShader = true; MelonLogger.Warning("WarStrikes: no usable shader found, models will be pink."); } val = Shader.Find("Hidden/InternalErrorShader"); } _modelShader = val; _modelShaderFor = shader; if ((Object)(object)val != (Object)null) { MelonLogger.Msg("WarStrikes: model shader = '" + ((Object)val).name + "' (mode " + shader.ToString() + ")"); } return val; } private static Material BuildModelMaterial(Texture2D tex) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_0019: 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) Material val = new Material(PickModelShader()); if (val.HasProperty("_Color")) { val.color = Color.white; } if (val.HasProperty("_BaseColor")) { val.SetColor("_BaseColor", Color.white); } if ((Object)(object)tex != (Object)null) { val.mainTexture = (Texture)(object)tex; if (val.HasProperty("_BaseMap")) { val.SetTexture("_BaseMap", (Texture)(object)tex); } } if (val.HasProperty("_ZWrite")) { val.SetInt("_ZWrite", 1); } if (val.HasProperty("_Cull")) { val.SetInt("_Cull", 0); } if (val.HasProperty("_SrcBlend")) { val.SetInt("_SrcBlend", 1); } if (val.HasProperty("_DstBlend")) { val.SetInt("_DstBlend", 0); } if (val.HasProperty("_Smoothness")) { val.SetFloat("_Smoothness", 0.3f); } if (val.HasProperty("_Metallic")) { val.SetFloat("_Metallic", 0.12f); } ((Object)val).hideFlags = (HideFlags)32; return val; } public static Material ModelMaterial(Texture2D tex, bool customUntextured) { if ((Object)(object)tex != (Object)null) { return BuildModelMaterial(tex); } ShaderMode shader = Settings.Shader; if ((Object)(object)_plainModelMat != (Object)null && _plainFor == shader) { return _plainModelMat; } _plainModelMat = BuildModelMaterial(null); _plainFor = shader; return _plainModelMat; } internal static Material FlatMat(Color c) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_flatShader == (Object)null) { _flatShader = FindFirst("Sprites/Default", "Hidden/Internal-Colored", "Unlit/Color"); } Material val = new Material(((Object)(object)_flatShader != (Object)null) ? _flatShader : PickModelShader()); if (val.HasProperty("_Color")) { val.color = c; } if (val.HasProperty("_BaseColor")) { val.SetColor("_BaseColor", c); } return val; } public static void LogShaders() { string[] array = new string[8] { "Sprites/Default", "Hidden/Internal-Colored", "Universal Render Pipeline/Unlit", "Universal Render Pipeline/Lit", "Universal Render Pipeline/Particles/Unlit", "Unlit/Color", "SLZ/LitMAS/LitMAS Opaque", "Standard" }; foreach (string text in array) { MelonLogger.Msg("WarStrikes shader '" + text + "': " + (((Object)(object)Shader.Find(text) != (Object)null) ? "found" : "missing")); } Shader val = PickModelShader(); MelonLogger.Msg("WarStrikes: models use '" + (((Object)(object)val != (Object)null) ? ((Object)val).name : "none") + "'"); } public static string JetKey(StrikeType t) { return t switch { StrikeType.Precision => "engine_b1", StrikeType.Carpet => "engine_b52", StrikeType.Cluster => "engine_a10", StrikeType.Napalm => "engine_prop", _ => "engine_b2", }; } public static float JetVolume(StrikeType t) { if (t != StrikeType.Napalm) { return 0.85f; } return 1f; } public static int BoomLayers() { return Mathf.Clamp(Mathf.RoundToInt(Settings.BoomBoost.Value), 1, 4); } public static void PlayRadio(string key, float vol = 1f) { //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_0031: 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_0088: Expected O, but got Unknown try { AudioClip val = Sounds.Get(key); if (!((Object)(object)val == (Object)null)) { Transform head = Player.Head; GameObject val2 = new GameObject("WS_Radio"); val2.transform.position = (((Object)(object)head != (Object)null) ? head.position : Vector3.zero); AudioSource obj = val2.AddComponent<AudioSource>(); obj.clip = val; obj.spatialBlend = 0f; obj.volume = Mathf.Clamp01(vol * Settings.Volume.Value); obj.Play(); Object.Destroy((Object)val2, val.length + 0.5f); } } catch { } } public static void StartSiren(float vol = 0.55f) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_004b: 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Expected O, but got Unknown try { StopSirenNow(); AudioClip val = Sounds.Get("siren"); if ((Object)(object)val == (Object)null) { return; } Transform head = Player.Head; GameObject val2 = new GameObject("WS_Siren"); val2.transform.position = (((Object)(object)head != (Object)null) ? head.position : Vector3.zero); AudioSource obj = val2.AddComponent<AudioSource>(); obj.clip = val; obj.loop = true; obj.spatialBlend = 0f; obj.volume = Mathf.Clamp01(vol * Settings.Volume.Value); obj.Play(); _sirenGo = val2; int gen = ++_sirenGen; After(120f, delegate { if (gen == _sirenGen) { StopSirenNow(); } }); } catch { } } private static void StopSirenNow() { _sirenGen++; if ((Object)(object)_sirenGo != (Object)null) { Object.Destroy((Object)(object)_sirenGo); } _sirenGo = null; } public static void StopSiren() { try { GameObject g = _sirenGo; if ((Object)(object)g == (Object)null) { return; } AudioSource a = g.GetComponent<AudioSource>(); float v0 = (((Object)(object)a != (Object)null) ? a.volume : 0f); _sirenGo = null; Anim(1.5f, delegate(float t) { if ((Object)(object)a != (Object)null) { a.volume = v0 * (1f - t); } }, delegate { if ((Object)(object)g != (Object)null) { Object.Destroy((Object)(object)g); } }); } catch { } } public static void PlayAt(Vector3 pos, AudioClip clip, float maxDist, float vol, bool delayed, float minDist = 10f, int layers = 1, float pitch = 1f) { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_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_0122: Expected O, but got Unknown if ((Object)(object)clip == (Object)null) { return; } try { float num = 0f; if (delayed && Settings.SoundDelay.Value) { Transform head = Player.Head; if ((Object)(object)head != (Object)null) { num = Mathf.Clamp(Vector3.Distance(head.position, pos) / 343f, 0f, 6f); } } for (int i = 0; i < layers; i++) { float num2 = pitch * (1f - 0.035f * (float)i); GameObject val = new GameObject("WS_Sfx"); val.transform.position = pos; AudioSource val2 = val.AddComponent<AudioSource>(); val2.clip = clip; val2.spatialBlend = 1f; val2.minDistance = minDist; val2.maxDistance = maxDist; val2.rolloffMode = (AudioRolloffMode)1; val2.dopplerLevel = 0f; val2.priority = 0; val2.pitch = num2; val2.volume = Mathf.Clamp01(vol * Settings.Volume.Value); if (num > 0.05f) { val2.PlayDelayed(num); } else { val2.Play(); } Object.Destroy((Object)val, clip.length / Mathf.Max(0.3f, num2) + num + 1f); } } catch (Exception ex) { MelonLogger.Warning("WarStrikes: PlayAt failed: " + ex.Message); } } public static void Boom(Vector3 pos, string group, float maxDist, float minDist, float vol = 1f, bool thump = true) { //IL_0006: 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) int num = BoomLayers(); PlayAt(pos, Sounds.Get(Sounds.Variant(group)), maxDist, vol, delayed: true, minDist, num); if (thump) { PlayAt(pos, Sounds.Get("blast_thump"), maxDist * 0.8f, vol, delayed: true, minDist, Mathf.Max(1, num - 1)); } } public static GameObject LoopSound(Vector3 pos, string key, float minDist, float maxDist, float vol, float seconds, float fadeIn, float fadeOut) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) AudioClip val = Sounds.Get(key); if ((Object)(object)val == (Object)null) { return null; } GameObject g = new GameObject("WS_Loop"); g.transform.position = pos; AudioSource a = g.AddComponent<AudioSource>(); a.clip = val; a.loop = true; a.spatialBlend = 1f; a.minDistance = minDist; a.maxDistance = maxDist; a.rolloffMode = (AudioRolloffMode)1; a.dopplerLevel = 0f; a.volume = 0f; a.Play(); Anim(seconds, delegate(float t) { if (!((Object)(object)a == (Object)null)) { float num = t * seconds; float num2 = Mathf.Min(Mathf.Clamp01(num / Mathf.Max(0.01f, fadeIn)), Mathf.Clamp01((seconds - num) / Mathf.Max(0.01f, fadeOut))); a.volume = Mathf.Clamp01(vol * num2 * Settings.Volume.Value); } }, delegate { if ((Object)(object)g != (Object)null) { Object.Destroy((Object)(object)g); } }); return g; } public static void LaserShow(Vector3 from, Vector3 to, bool ok) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0116: 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_012d: 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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_015e: 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_008b: 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_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) Color val = (ok ? new Color(1f, 0.1f, 0.1f) : new Color(0.6f, 0.6f, 0.6f)); if ((Object)(object)_lr == (Object)null) { _lr = new GameObject("WS_Laser").AddComponent<LineRenderer>(); _lr.positionCount = 2; _lr.useWorldSpace = true; _lr.startWidth = 0.008f; _lr.endWidth = 0.008f; ((Renderer)_lr).material = FlatMat(Color.white); _marker = GameObject.CreatePrimitive((PrimitiveType)0); Collider component = _marker.GetComponent<Collider>(); if ((Object)(object)component != (Object)null) { Object.Destroy((Object)(object)component); } _marker.transform.localScale = Vector3.one * 0.25f; _marker.GetComponent<Renderer>().material = FlatMat(Color.white); } ((Component)_lr).gameObject.SetActive(true); _marker.SetActive(true); _lr.startColor = val; _lr.endColor = val; _lr.SetPosition(0, from); _lr.SetPosition(1, to); _marker.transform.position = to; _marker.GetComponent<Renderer>().material.color = val; } public static void LaserHide() { if ((Object)(object)_lr != (Object)null) { ((Component)_lr).gameObject.SetActive(false); } if ((Object)(object)_marker != (Object)null) { _marker.SetActive(false); } } private static Color G(float g) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) return new Color(g, g * 0.98f, g * 0.95f, 1f); } private static void Glow(Vector3 p, float size, Color c, float life) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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) Emit(p, new P { Tex = Tex.Glow, Add = true, Count = 1, Life = life, Size = size, Size2 = size, Radius = 0.01f, C0 = c, C1 = c, FadeIn = 0.04f, S0 = 0.55f, S1 = 1.25f, Scale = false, LifeScale = false }); } private static void ShockRing(Vector3 p, float size, float life, Color c, float alpha = 0.8f) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) Emit(p + Vector3.up * 0.3f, new P { Tex = Tex.Ring, Count = 1, Life = life, Size = size, Size2 = size, Radius = 0.01f, C0 = c, C1 = c, Mode = (ParticleSystemRenderMode)2, S0 = 0.06f, S1 = 1f, Alpha = alpha, FadeIn = 0.03f, Scale = false, LifeScale = false }); } private static void Scorch(Vector3 p, float size, float life) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) Emit(p + Vector3.up * 0.05f, new P { Tex = Tex.Puff, Count = 1, Life = life, Size = size, Size2 = size, Radius = 0.01f, C0 = G(0.02f), C1 = G(0.05f), Mode = (ParticleSystemRenderMode)2, S0 = 1f, S1 = 1f, Alpha = 0.6f, FadeIn = 0.02f, Scale = false, LifeScale = false }); } private static void Sparks(Vector3 p, int count, float speed, float speed2, float life, float radius = 0.8f) { //IL_0000: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) Emit(p, new P { Tex = Tex.Spark, Add = true, Count = count, Life = life, Life2 = life * 1.9f, Size = 0.3f, Size2 = 0.8f, Speed = speed, Speed2 = speed2, Radius = radius, C0 = new Color(1f, 0.96f, 0.65f), C1 = new Color(1f, 0.55f, 0.15f), End = new Color(0.7f, 0.2f, 0.06f), S0 = 1f, S1 = 0.35f, Gravity = 0.9f, Drag = 0.15f, Stretch = 2.4f, FadeIn = 0.02f }); } private static void DebrisRain(Vector3 p, float radius, int n, float t0, float t1) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_002b: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < n; i++) { Vector3 q = p + new Vector3(Random.Range(0f - radius, radius), 0.2f, Random.Range(0f - radius, radius)); After(Random.Range(t0, t1), delegate { //IL_0001: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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) PlayAt(q, Sounds.Get(Sounds.Variant("thud")), 220f, 0.6f, delayed: false, 8f); Emit(q, new P { Count = 5, Life = 1.4f, Life2 = 2.4f, Size = 0.8f, Size2 = 1.8f, Speed = 1.5f, Speed2 = 3.5f, C0 = Dust0, C1 = Dust1, Alpha = 0.55f, Gravity = -0.02f, Radius = 0.3f, S0 = 0.5f, S1 = 1.3f }); }); } } private static void Secondaries(Vector3 pos, float radius, int n, float t0, float t1) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_002b: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < n; i++) { Vector3 q = pos + new Vector3(Random.Range(0f - radius, radius), 0.4f, Random.Range(0f - radius, radius)); After(Random.Range(t0, t1), delegate { //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_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0024: 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_0039: 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_0048: 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) //IL_007b: 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_00e7: 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_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: 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_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: 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_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: 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_0238: 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) Glow(q + Vector3.up, 6f, new Color(1f, 0.8f, 0.5f), 0.3f); FlashLight(q + Vector3.up * 2f, new Color(1f, 0.65f, 0.3f), 30f, 6f, 0.05f, 0.6f); Emit(q, new P { Add = true, Count = 12, Life = 0.9f, Life2 = 1.8f, Size = 2f, Size2 = 4f, Speed = 2f, Speed2 = 7f, Radius = 0.5f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.4f, S1 = 1.2f, Gravity = -0.15f, Drag = 0.6f, FadeIn = 0.04f }); Emit(q, new P { Count = 8, Life = 3f, Life2 = 6f, Size = 1.5f, Size2 = 3.5f, Speed = 1f, Speed2 = 4f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 0.4f, Angle = 14f, C0 = G(0.08f), C1 = G(0.22f), Alpha = 0.8f, S0 = 0.5f, S1 = 1.6f, Gravity = -0.04f, Noise = 0.6f }); Sparks(q + Vector3.up * 0.5f, 18, 5f, 14f, 1f, 0.4f); PlayAt(q, Sounds.Get(Sounds.RandomPop()), 500f, 0.85f, delayed: true, 15f, 2); }); } } private static void Push(Vector3 pos, float radius, float force) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) foreach (Collider item in (Il2CppArrayBase<Collider>)(object)Physics.OverlapSphere(pos, radius)) { Rigidbody attachedRigidbody = item.attachedRigidbody; if (!((Object)(object)attachedRigidbody == (Object)null) && !attachedRigidbody.isKinematic && (Settings.ShockwavePushesPlayer.Value || !IsPlayerPart(((Component)attachedRigidbody).transform))) { attachedRigidbody.AddExplosionForce(force, pos, radius, 1.5f, (ForceMode)1); } } } public static void ImpactSmoke(Vector3 pos, float r) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_00a4: 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_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) Vector3 up = Vector3.up; Emit(pos + up * 0.5f, new P { Count = 40, Life = 5f, Life2 = 9f, Size = r * 0.35f, Size2 = r * 0.8f, Speed = r * 0.5f, Speed2 = r * 1.6f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.2f, Angle = 35f, C0 = Dust0, C1 = Dust1, Alpha = 0.75f, S0 = 0.5f, S1 = 1.6f, Gravity = -0.02f, Drag = 0.7f, Noise = 0.4f }); Emit(pos + up, new P { Dur = 3.5f, Count = 30, Life = 6f, Life2 = 10f, Size = r * 0.4f, Size2 = r * 0.9f, Speed = 1f, Speed2 = 4f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.2f, Angle = 12f, C0 = G(0.25f), C1 = G(0.45f), Alpha = 0.7f, FadeIn = 0.15f, S0 = 0.5f, S1 = 1.5f, Gravity = -0.04f, Noise = 0.6f }); } public static void HangSmoke(Vector3 pos, float r) { //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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: 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_00e0: 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) r = Mathf.Clamp(r, 1.5f, 14f); Emit(pos + Vector3.up * (r * 0.4f), new P { Dur = 9f, Count = 70, Life = 10f, Life2 = 15f, Size = r * 0.55f, Size2 = r * 1.15f, Speed = 0.4f, Speed2 = 2.2f, Radius = r * 0.5f, C0 = G(0.1f), C1 = G(0.3f), Alpha = 0.72f, FadeIn = 0.15f, S0 = 0.7f, S1 = 1.6f, Gravity = -0.015f, Noise = 0.5f, Spin = 6f, Drag = 0.6f, LifeScale = false }); After(1.5f, delegate { //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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) Emit(pos + Vector3.up * (r * 1.4f), new P { Dur = 7f, Count = 40, Life = 9f, Life2 = 14f, Size = r * 0.7f, Size2 = r * 1.4f, Speed = 0.3f, Speed2 = 1.4f, Radius = r * 0.7f, C0 = G(0.16f), C1 = G(0.36f), Alpha = 0.6f, FadeIn = 0.2f, S0 = 0.8f, S1 = 1.5f, Gravity = -0.01f, Noise = 0.6f, Spin = 5f, Drag = 0.6f, LifeScale = false }); }); } public static void DudImpact(Vector3 pos) { //IL_0005: 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_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_00a1: 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_00c2: 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_00cd: 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_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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) StopSiren(); PlayAt(pos, Sounds.Get(Sounds.Variant("thud")), 350f, 0.9f, delayed: true, 15f, 1, 0.8f); Emit(pos + Vector3.up * 0.3f, new P { Count = 14, Life = 3.5f, Life2 = 5.5f, Size = 1.2f, Size2 = 2.4f, Speed = 1.5f, Speed2 = 4f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 0.3f, Angle = 40f, C0 = Dust0, C1 = Dust1, Alpha = 0.6f, S0 = 0.5f, S1 = 1.5f, Gravity = -0.01f, Drag = 0.6f, Noise = 0.3f }); Emit(pos + Vector3.up * 0.4f, new P { Dur = 14f, Count = 36, Life = 4f, Life2 = 7f, Size = 0.6f, Size2 = 1.4f, Speed = 0.6f, Speed2 = 1.6f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 0.15f, Angle = 8f, C0 = G(0.55f), C1 = G(0.75f), Alpha = 0.5f, FadeIn = 0.2f, S0 = 0.5f, S1 = 2f, Gravity = -0.03f, Noise = 0.5f }); } public static void TargetSmoke(Vector3 pos, float seconds, Color c) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: 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_009b: 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_00a2: 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_00b1: Unknown result type (might be due to invalid IL or missing references) Emit(pos + Vector3.up * 0.2f, new P { Dur = seconds, Count = (int)(seconds * 14f), Life = 6f, Life2 = 9f, Size = 1.4f, Size2 = 3f, Speed = 2.5f, Speed2 = 5f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 0.2f, Angle = 7f, C0 = c, C1 = Color.Lerp(c, Color.white, 0.25f), Alpha = 0.8f, FadeIn = 0.1f, S0 = 0.4f, S1 = 2.2f, Gravity = -0.02f, Noise = 0.5f, LifeScale = false }); } public static void CrashBlast(StrikeType type, Vector3 pos, float r, Vector3 fwd) { //IL_0012: 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_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: 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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: 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_00c2: 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_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_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_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0179: 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) float num = ((type == StrikeType.Nuclear) ? 1.35f : 2f); Blast(type, pos, r * num, fwd); Secondaries(pos, r * num * 0.9f, 6, 0.3f, 5f); Vector3 up = Vector3.up; Emit(pos + up, new P { Tex = Tex.Flame, Add = true, Upright = true, Dur = 18f, Count = 200, Life = 0.9f, Life2 = 1.8f, Size = 2.5f, Size2 = 5f, Speed = 2f, Speed2 = 6f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = Mathf.Min(r * num * 0.5f, 25f), Angle = 14f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 1f, S1 = 0.25f, Gravity = -0.2f, Noise = 0.5f, FadeIn = 0.1f }); FlameField(pos, Mathf.Min(r * num * 0.35f, 14f), 18f, 8, 5f); Boom(pos, "boom_precision", 1400f, 80f); Push(pos, r * num * 2f, 150f); } public static List<GameObject> PlaneOnFire(GameObject plane) { //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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: 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_0096: 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_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016a: 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_0175: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_0211: Unknown result type (might be due to invalid IL or missing references) List<GameObject> list = new List<GameObject>(); Vector3 position = plane.transform.position; GameObject val = Emit(position, new P { Dur = 30f, Count = 700, Life = 7f, Life2 = 11f, Size = 2f, Size2 = 4.5f, Speed = 0.5f, Speed2 = 2f, Radius = 0.8f, C0 = G(0.03f), C1 = G(0.1f), Alpha = 0.9f, FadeIn = 0.08f, S0 = 0.5f, S1 = 2.2f, Gravity = -0.02f, Noise = 0.5f, Spin = 15f }); GameObject val2 = Emit(position, new P { Add = true, Dur = 30f, Count = 600, Life = 0.5f, Life2 = 1f, Size = 2.5f, Size2 = 4f, Speed = 0.5f, Speed2 = 2f, Radius = 0.7f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.5f, S1 = 1.2f, Gravity = -0.05f, FadeIn = 0.05f }); GameObject[] array = (GameObject[])(object)new GameObject[2] { val, val2 }; foreach (GameObject val3 in array) { val3.transform.SetParent(plane.transform, true); list.Add(val3); } FlashLight(position, new Color(1f, 0.6f, 0.25f), 40f, 6f, 8f, 4f); return list; } public static void Blast(StrikeType type, Vector3 pos, float r, Vector3 fwd) { //IL_001c: 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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: 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_014d: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: 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_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) try { switch (type) { case StrikeType.Precision: BlastPrecision(pos, r); break; case StrikeType.Napalm: BlastNapalm(pos, r, fwd); break; case StrikeType.Nuclear: BlastNuke(pos, r); break; default: BlastCarpet(pos, r); break; } float num = Mathf.Clamp(r * 0.45f, 1.8f, 12f); switch (type) { case StrikeType.Precision: FlameBurst(pos, 8, num, r * 0.35f, 3.2f); FlameField(pos, r * 0.5f, 12f, 6, num * 0.7f); break; case StrikeType.Napalm: FlameBurst(pos, 10, num, r * 0.5f, 3.5f); break; case StrikeType.Nuclear: FlameBurst(pos, 10, Mathf.Clamp(r * 0.12f, 6f, 16f), r * 0.3f, 5f); FlameField(pos, r * 0.3f, 25f, 14, Mathf.Clamp(r * 0.1f, 5f, 12f)); break; default: FlameBurst(pos, 3, num, r * 0.25f, 2.4f); FlameField(pos, r * 0.4f, 7f, 3, num * 0.6f); break; } HangSmoke(pos, (type == StrikeType.Nuclear) ? Mathf.Min(r * 0.3f, 14f) : r); Concussion(pos, type switch { StrikeType.Napalm => Mathf.Max(90f, r * 6f), StrikeType.Precision => Mathf.Max(110f, r * 8f), StrikeType.Nuclear => r * 14f, _ => Mathf.Max(80f, r * 7f), }, type != StrikeType.Nuclear); bool flag = type == StrikeType.Nuclear; Crater(pos, flag ? (r * 3.4f) : (type switch { StrikeType.Napalm => r * 1.5f, StrikeType.Precision => r * 2.4f, _ => r * 1.9f, })); BlastDebris(pos + Vector3.up * 0.5f, flag ? 90 : (type switch { StrikeType.Napalm => 20, StrikeType.Precision => 36, _ => 26, }), Mathf.Clamp(r * 1.2f, 9f, 30f), flag ? 0.28f : 0.14f); if (flag) { WorldFlash(2.6f, 0.9f, 7f); } else { WorldFlash((type == StrikeType.Precision) ? 1f : 0.65f, 0.08f, 1.3f); } } catch (Exception ex) { MelonLogger.Warning("WarStrikes: explosion effect failed: " + ex); } } private static void BlastPrecision(Vector3 pos, float r) { //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_0015: 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_0026: 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_0035: 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) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: 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_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: 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_015c: 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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: 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_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: 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_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0310: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0383: 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) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0413: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04de: Unknown result type (might be due to invalid IL or missing references) //IL_04e3: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_0625: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_063b: Unknown result type (might be due to invalid IL or missing references) //IL_0640: 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_0673: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Unknown result type (might be due to invalid IL or missing references) //IL_0682: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_0700: Unknown result type (might be due to invalid IL or missing references) //IL_0718: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0728: Unknown result type (might be due to invalid IL or missing references) //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_0771: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_081a: Unknown result type (might be due to invalid IL or missing references) //IL_0868: Unknown result type (might be due to invalid IL or missing references) //IL_086e: Unknown result type (might be due to invalid IL or missing references) //IL_0878: Unknown result type (might be due to invalid IL or missing references) //IL_087d: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0963: Unknown result type (might be due to invalid IL or missing references) //IL_0988: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09cd: Unknown result type (might be due to invalid IL or missing references) //IL_09e9: Unknown result type (might be due to invalid IL or missing references) //IL_0a0b: Unknown result type (might be due to invalid IL or missing references) //IL_0a2d: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) Vector3 up = Vector3.up; Glow(pos + up * 2f, r * 4.2f, new Color(1f, 0.92f, 0.72f), 0.55f); FlashLight(pos + up * 4f, new Color(1f, 0.82f, 0.58f), r * 7f, 14f, 0.12f, 1.8f); Emit(pos + up * 1.5f, new P { Add = true, Count = 45, Life = 1.4f, Life2 = 2.7f, Size = r * 0.55f, Size2 = r * 1f, Speed = r * 0.4f, Speed2 = r * 1.3f, Radius = 1.2f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.35f, S1 = 1.15f, Gravity = -0.12f, Drag = 0.75f, Noise = 0.4f, Spin = 40f, FadeIn = 0.04f }); Sparks(pos + up, 70, r * 2.2f, r * 5f, 1.2f); Emit(pos + up * 0.3f, new P { Count = 80, Life = 3f, Life2 = 5.5f, Size = 0.9f, Size2 = 2.6f, Speed = r * 1.2f, Speed2 = r * 3.2f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.25f, Angle = 28f, C0 = Dirt0, C1 = Dirt1, S0 = 1f, S1 = 0.85f, Gravity = 0.85f, Drag = 0.1f, Alpha = 0.95f, Spin = 60f }); Emit(pos + up * 0.3f, new P { Count = 40, Life = 2f, Life2 = 3.6f, Size = 0.25f, Size2 = 0.6f, Speed = r * 1.5f, Speed2 = r * 4f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.15f, Angle = 40f, C0 = G(0.05f), C1 = G(0.14f), S0 = 1f, S1 = 1f, Gravity = 1.4f, Alpha = 1f }); Emit(pos + up * 0.5f, new P { Dur = 6f, Count = 100, Life = 9f, Life2 = 14f, Size = r * 0.6f, Size2 = r * 1.2f, Speed = 3f, Speed2 = 9f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.2f, Angle = 9f, C0 = new Color(0.09f, 0.085f, 0.08f), C1 = new Color(0.3f, 0.28f, 0.26f), Alpha = 0.85f, FadeIn = 0.12f, S0 = 0.35f, S1 = 1.5f, Gravity = -0.045f, Noise = 0.9f, Spin = 12f, Drag = 0.6f }); After(2.2f, delegate { //IL_0001: 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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) Emit(pos + up * r * 2.6f, new P { Count = 40, Life = 7f, Life2 = 11f, Size = r * 0.7f, Size2 = r * 1.3f, Speed = r * 0.25f, Speed2 = r * 0.6f, Radius = r * 0.4f, C0 = G(0.2f), C1 = G(0.38f), Alpha = 0.8f, S0 = 0.5f, S1 = 1.4f, Gravity = -0.03f, Noise = 0.5f, Spin = 8f, Drag = 0.7f }); }); Emit(pos + up, new P { Tex = Tex.Flame, Add = true, Upright = true, Dur = 3f, Count = 30, Life = 1f, Life2 = 1.8f, Size = r * 0.3f, Size2 = r * 0.6f, Speed = 2f, Speed2 = 6f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.3f, Angle = 15f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 1f, S1 = 0.3f, Gravity = -0.2f }); Emit(pos + up * 0.8f, new P { Count = 70, Life = 4f, Life2 = 7f, Size = r * 0.45f, Size2 = r * 0.9f, Speed = r * 1.2f, Speed2 = r * 3f, Shape = (ParticleSystemShapeType)10, Rot = Flat, Radius = r * 0.3f, C0 = Dust0, C1 = Dust1, Alpha = 0.6f, S0 = 0.5f, S1 = 1.6f, Drag = 0.85f, Noise = 0.3f }); Emit(pos + up * 1.5f, new P { Dur = 8f, Count = 60, Life = 8f, Life2 = 13f, Size = r * 0.5f, Size2 = r * 1f, Speed = 0.5f, Speed2 = 2.5f, Radius = r * 0.5f, C0 = G(0.28f), C1 = G(0.45f), Alpha = 0.55f, FadeIn = 0.15f, S0 = 0.6f, S1 = 1.3f, Gravity = -0.01f, Noise = 0.6f }); Emit(pos + up * 2f, new P { Tex = Tex.Spark, Add = true, Dur = 6f, Count = 60, Life = 2f, Life2 = 5f, Size = 0.15f, Size2 = 0.35f, Speed = 2f, Speed2 = 7f, Radius = r * 0.6f, C0 = new Color(1f, 0.8f, 0.4f), C1 = new Color(1f, 0.45f, 0.1f), S0 = 1f, S1 = 0.3f, Gravity = -0.1f, Noise = 1.2f }); ShockRing(pos, r * 5f, 0.7f, new Color(1f, 0.95f, 0.85f), 0.9f); ShockRing(pos, r * 9f, 1.5f, new Color(0.95f, 0.9f, 0.8f)); Scorch(pos, r * 1.8f, 70f); DebrisRain(pos, r * 2.2f, 7, 0.8f, 4.5f); Secondaries(pos, r * 1.4f, 4, 1.2f, 6f); Boom(pos, "boom_precision", 1200f, 70f); Push(pos, r * 2.4f, 130f); } private static void BlastCarpet(Vector3 pos, float r0) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0018: 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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: 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_004e: 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00ff: 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_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_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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: 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_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0242: 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_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0296: 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_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044e: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: 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_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) Vector3 up = Vector3.up; float num = r0 * Random.Range(0.85f, 1.2f); Glow(pos + up * 1.5f, num * 3.2f, new Color(1f, 0.85f, 0.6f), 0.4f); FlashLight(pos + up * 3f, new Color(1f, 0.72f, 0.42f), num * 5f, 8f, 0.08f, 1f); Emit(pos + up, new P { Add = true, Count = 26, Life = 1f, Life2 = 1.9f, Size = num * 0.4f, Size2 = num * 0.8f, Speed = num * 0.3f, Speed2 = num * 1f, Radius = 0.8f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.4f, S1 = 1.1f, Gravity = -0.1f, Drag = 0.7f, Noise = 0.3f, Spin = 30f, FadeIn = 0.04f }); Sparks(pos + up, 30, num * 1.6f, num * 3.6f, 1f); Emit(pos + up * 0.3f, new P { Count = 50, Life = 2.5f, Life2 = 4.2f, Size = 0.7f, Size2 = 2f, Speed = num * 1f, Speed2 = num * 2.4f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = num * 0.2f, Angle = 30f, C0 = Dirt0, C1 = Dirt1, S0 = 1f, S1 = 0.85f, Gravity = 0.9f, Drag = 0.1f, Alpha = 0.95f, Spin = 50f }); Emit(pos + up * 0.5f, new P { Dur = 2.5f, Count = 40, Life = 6f, Life2 = 10f, Size = num * 0.5f, Size2 = num * 1f, Speed = 2f, Speed2 = 7f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = num * 0.2f, Angle = 10f, C0 = new Color(0.16f, 0.14f, 0.12f), C1 = new Color(0.36f, 0.32f, 0.28f), Alpha = 0.8f, FadeIn = 0.12f, S0 = 0.4f, S1 = 1.4f, Gravity = -0.04f, Noise = 0.8f, Spin = 10f, Drag = 0.6f }); Emit(pos + up * 0.6f, new P { Count = 30, Life = 3f, Life2 = 5.5f, Size = num * 0.4f, Size2 = num * 0.8f, Speed = num * 1f, Speed2 = num * 2.4f, Shape = (ParticleSystemShapeType)10, Rot = Flat, Radius = num * 0.25f, C0 = Dust0, C1 = Dust1, Alpha = 0.55f, S0 = 0.5f, S1 = 1.5f, Drag = 0.85f }); ShockRing(pos, num * 6.5f, 1.1f, new Color(0.9f, 0.84f, 0.74f), 0.7f); Scorch(pos, num * 1.4f, 50f); DebrisRain(pos, num * 1.6f, 2, 0.5f, 2.5f); Secondaries(pos, num * 1.1f, 1, 0.8f, 3f); Boom(pos, "boom_carpet", 1000f, 50f); Push(pos, num * 2.2f, 85f); } private static void BlastNapalm(Vector3 pos, float r, Vector3 fwd) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: 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_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: 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_024d: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_0306: 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_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0349: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_03af: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0424: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_0480: Expected O, but got Unknown //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: 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_0500: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) Vector3 up = Vector3.up; fwd.y = 0f; if (((Vector3)(ref fwd)).sqrMagnitude < 0.01f) { fwd = Vector3.forward; } ((Vector3)(ref fwd)).Normalize(); Vector3 val = Vector3.Cross(up, fwd); float num = r * 3.4f; Vector3 val2 = pos - fwd * num * 0.2f; float num2 = Mathf.Clamp(Settings.EffectLife.Value, 0.25f, 4f); Glow(pos + up * 3f, r * 4.5f, new Color(1f, 0.8f, 0.5f), 0.8f); FlashLight(pos + up * 4f, new Color(1f, 0.6f, 0.25f), r * 6f, 12f, 0.4f, 2.4f); for (int i = 0; i < 5; i++) { Vector3 q = val2 + fwd * (num * (float)i / 4f) + val * Random.Range((0f - r) * 0.2f, r * 0.2f) + up * 1.5f; After((float)i * 0.12f, delegate { //IL_0001: 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_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) //IL_00b4: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) Emit(q, new P { Add = true, Count = 22, Life = 1.8f, Life2 = 3.2f, Size = r * 0.45f, Size2 = r * 0.9f, Speed = r * 0.3f, Speed2 = r * 1f, Radius = r * 0.2f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.3f, S1 = 1.3f, Gravity = -0.15f, Drag = 0.6f, Noise = 0.5f, Spin = 25f, FadeIn = 0.05f }); }); } Emit(pos + up * 1.5f, new P { Tex = Tex.Flame, Add = true, Upright = true, Count = 70, Life = 1.6f, Life2 = 3.2f, Size = 0.9f, Size2 = 2.2f, Speed = r * 0.8f, Speed2 = r * 2.2f, Radius = r * 0.4f, C0 = new Color(1f, 0.9f, 0.4f), C1 = new Color(1f, 0.45f, 0.1f), End = new Color(0.4f, 0.05f, 0f), S0 = 1f, S1 = 0.35f, Gravity = 0.6f, Drag = 0.15f }); Sparks(pos + up, 90, r * 1.2f, r * 3.2f, 1.4f, 1.5f); for (int num3 = 0; num3 < 9; num3++) { Vector3 q2 = val2 + fwd * (num * (float)num3 / 8f) + val * Random.Range((0f - r) * 0.35f, r * 0.35f); float dur = Random.Range(14f, 30f); bool smoke = num3 % 2 == 0; After((float)num3 * 0.08f + Random.Range(0f, 0.4f), delegate { //IL_0001: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: 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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0355: 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_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_020e: 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) Emit(q2, new P { Tex = Tex.Flame, Add = true, Upright = true, Dur = dur, Count = (int)(dur * 12f), Life = 0.8f, Life2 = 1.5f, Size = 1.6f, Size2 = 3.8f, Speed = 2f, Speed2 = 5.5f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = r * 0.2f, Angle = 10f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 1f, S1 = 0.2f, Gravity = -0.25f, Noise = 0.5f, FadeIn = 0.1f, LifeScale = true }); FlameField(q2, r * 0.3f, dur, 3, 3.2f); if (smoke) { Emit(q2 + Vector3.up, new P { Dur = dur + 4f, Count = (int)((dur + 4f) * 2.4f), Life = 9f, Life2 = 14f, Size = 2f, Size2 = 5f, Speed = 4f, Speed2 = 8f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 1.5f, Angle = 12f, C0 = G(0.04f), C1 = G(0.12f), Alpha = 0.85f, FadeIn = 0.1f, S0 = 0.5f, S1 = 2f, Gravity = -0.03f, Noise = 0.8f, Spin = 10f, Drag = 0.5f }); } Emit(q2 + Vector3.up * 0.3f, new P { Tex = Tex.Spark, Add = true, Dur = dur, Count = (int)(dur * 4f), Life = 1.5f, Life2 = 4f, Size = 0.12f, Size2 = 0.3f, Speed = 1f, Speed2 = 5f, Radius = r * 0.15f, C0 = new Color(1f, 0.8f, 0.4f), C1 = new Color(1f, 0.4f, 0.08f), S0 = 1f, S1 = 0.3f, Gravity = -0.15f, Noise = 1f }); }); if (num3 % 3 == 0) { Scorch(q2, r * 1.3f, 100f); } } for (int num4 = 0; num4 < 4; num4++) { Vector3 q3 = val2 + fwd * Random.Range(0f, num) + val * Random.Range((0f - r) * 0.3f, r * 0.3f); After(2.5f + (float)num4 * 3.5f * num2, delegate { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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_00a3: 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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: 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_0111: Unknown result type (might be due to invalid IL or missing references) Emit(q3, new P { Tex = Tex.Flame, Add = true, Upright = true, Count = 18, Life = 1.2f, Life2 = 2f, Size = 2f, Size2 = 4.5f, Speed = 4f, Speed2 = 9f, Shape = (ParticleSystemShapeType)4, Rot = Up, Radius = 1.2f, Angle = 14f, C0 = Fire0, C1 = Fire1, Mid = FireMid, End = FireEnd, S0 = 0.8f, S1 = 0.3f, Gravity = -0.2f }); Sparks(q3 + Vector3.up, 14, 4f, 12f, 1.2f); PlayAt(q3, Sounds.Get(Sounds.Variant("pop")), 150f, 0.35f, delayed: false); }); } float D = 26f * num2; GameObject lg = new GameObject("WS_FireLight"); lg.transform.position = pos + fwd * num * 0.3f + up * 2.5f; Light li = lg.AddComponent<Light>(); li.type = (LightType)2; li.range = r * 3.2f; li.color = new Color(1f, 0.55f, 0.18f); Anim(D, delegate(float t) { if (!((Object)(object)li == (Object)null)) { float num5 = ((t < 0.85f) ? 1f : ((1f - t) / 0.15f)); float num6 = t * D; li.intensity = (3.2f + 1.2f * Mathf.Sin(num6 * 9f) + 0.8f * Mathf.Sin(num6 * 23f)) * num5; } }, delegate { if ((Object)(object)lg != (Object)null) { Object.Destroy((Object)(object)lg); } }); LoopSound(pos + fwd * num * 0.3f, "fire_loop", 20f, 220f, 0.95f, D, 1.5f, 5f); Boom(pos, "napalm_ignite", 1000f, 55f); Scorch(pos, r * 1.6f, 100f); DebrisRain(pos, r * 1.5f, 3, 0.8f, 3f); Push(pos, r * 1.5f, 55f); } private static void BlastNuke(Vector3 pos, float r) { //IL_000e: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0146: 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_015b: 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_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: 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_0206: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024c: 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_025b: 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_02fc: 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_0307: 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_0312: Unknown result type (might be due to invalid IL or missing references) //IL_0318: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04eb: 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_04fa: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0586: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05cb: Unknown result type (might be due to invalid IL or missing references) //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: 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_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0614: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references)