Decompiled source of Play as V2 v2.3.5
v2Ultrakill/v2Ultrakill.dll
Decompiled 3 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using Configgy; using HarmonyLib; using Microsoft.CodeAnalysis; using Sandbox.Arm; using TMPro; using ULTRAKILL.Cheats; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("v2Ultrakill")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Play as V2 from ULTRAKILL in the hit game ULTRAKILL.")] [assembly: AssemblyFileVersion("2.3.5.0")] [assembly: AssemblyInformationalVersion("2.3.5")] [assembly: AssemblyProduct("Play as V2")] [assembly: AssemblyTitle("v2Ultrakill")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.3.5.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace v2Ultrakill { [BepInPlugin("v2Ultrakill", "Play as V2", "2.3.5")] public class Plugin : BaseUnityPlugin { [HarmonyPatch(typeof(NewMovement), "Start")] private class SpawnHealth { private static void Postfix(NewMovement __instance) { if (((ConfigValueElement<int>)(object)spawnHealth).Value > 1000) { __instance.hp = 1000; } else if (((ConfigValueElement<int>)(object)spawnHealth).Value < 1) { __instance.hp = 1; } else { __instance.hp = ((ConfigValueElement<int>)(object)spawnHealth).Value; } spawnAllocatedHp = __instance.hp; revolverShotNumber = dualWieldCount * 3 - 1; rocketShotNumber = 0; bloodPouchValue = 0f; bloodPouchActivated = false; } } [HarmonyPatch(typeof(NewMovement), "Respawn")] private class RespawnHealth { private static void Postfix(NewMovement __instance) { if (((ConfigValueElement<int>)(object)respawnHealth).Value > 1000) { __instance.hp = 1000; } else if (((ConfigValueElement<int>)(object)respawnHealth).Value < 1) { __instance.hp = 1; } else { __instance.hp = ((ConfigValueElement<int>)(object)respawnHealth).Value; } respawnAllocatedHp = __instance.hp; revolverShotNumber = dualWieldCount * 3 - 1; rocketShotNumber = 0; bloodPouchValue = 0f; bloodPouchActivated = false; } } [HarmonyPatch(typeof(NewMovement), "GetHealth")] private class NoHealing { private static int healthPreBlood; private static void Prefix(NewMovement __instance) { healthPreBlood = __instance.hp; } private static void Postfix(NewMovement __instance) { if (__instance.hp != healthPreBlood) { __instance.hp = healthPreBlood; } } } [HarmonyPatch(typeof(NewMovement), "SuperCharge")] private class BloodOrbHealth { private static int healthPreOrb; private static void Prefix(NewMovement __instance) { healthPreOrb = __instance.hp; } private static void Postfix(NewMovement __instance) { if (__instance.sameCheckpointRestarts > 0) { if ((float)(healthPreOrb + 200) <= respawnAllocatedHp) { __instance.hp = healthPreOrb + 200; } else if (respawnAllocatedHp > 1000f && healthPreOrb + 200 > 1000) { __instance.hp = 1000; } else { __instance.hp = Mathf.RoundToInt(respawnAllocatedHp); } } else if ((float)(healthPreOrb + 200) <= spawnAllocatedHp) { __instance.hp = healthPreOrb + 200; } else if (spawnAllocatedHp > 1000f && healthPreOrb + 200 > 1000) { __instance.hp = 1000; } else { __instance.hp = Mathf.RoundToInt(spawnAllocatedHp); } } } [HarmonyPatch(typeof(NewMovement), "GetHurt")] private class StyleDamageReduction { private static int healthPreDamage; private static int playerDamage; private static bool shouldaDied; private static void Prefix(NewMovement __instance, int damage) { healthPreDamage = __instance.hp; int rankIndex = MonoSingleton<StyleHUD>.Instance.rankIndex; float num = (((ConfigValueElement<bool>)(object)generalReductionToggle).Value ? (1f - (float)((ConfigValueElement<int>)(object)generalReduction).Value / 100f) : (rankIndex switch { 7 => 1f - (float)((ConfigValueElement<int>)(object)ultrakillReduction).Value / 100f, 6 => 1f - (float)((ConfigValueElement<int>)(object)ssshitstormReduction).Value / 100f, 5 => 1f - (float)((ConfigValueElement<int>)(object)ssadisticReduction).Value / 100f, 4 => 1f - (float)((ConfigValueElement<int>)(object)supremeReduction).Value / 100f, 3 => 1f - (float)((ConfigValueElement<int>)(object)anarchicReduction).Value / 100f, 2 => 1f - (float)((ConfigValueElement<int>)(object)brutalReduction).Value / 100f, 1 => 1f - (float)((ConfigValueElement<int>)(object)chaoticReduction).Value / 100f, _ => 1f - (float)((ConfigValueElement<int>)(object)destructiveReduction).Value / 100f, })); playerDamage = Mathf.RoundToInt((float)damage * num); if (healthPreDamage - damage <= 0 && healthPreDamage - playerDamage > 0) { shouldaDied = true; __instance.hp += damage + 1; } else { shouldaDied = false; } } private static void Postfix(NewMovement __instance) { int num = healthPreDamage - __instance.hp; if ((__instance.hp > 0 || shouldaDied) && num != 0) { __instance.hp = healthPreDamage - playerDamage; } } } [HarmonyPatch(typeof(HealthBar), "Start")] private class CreateStandardGUIHealthBars { private static void Postfix(HealthBar __instance) { if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("Health Slider"))) { Array.Resize(ref __instance.hpSliders, 10); Array.Resize(ref __instance.afterImageSliders, 10); hpBars[0] = ((Component)((Component)__instance).transform.Find("Health Slider")).gameObject; hpBars[1] = ((Component)((Component)__instance).transform.Find("Supercharge Slider")).gameObject; afterHpBars[0] = ((Component)((Component)__instance).transform.Find("AfterHealth Slider")).gameObject; afterHpBars[1] = ((Component)((Component)__instance).transform.Find("SuperAfterHealth Slider")).gameObject; ((Component)hpBars[0].transform.Find("Fill Area").Find("Fill").Find("GreenHPFlash")).gameObject.SetActive(false); for (int i = 2; i <= 9; i++) { hpBars[i] = Object.Instantiate<GameObject>(hpBars[1]); ((Object)hpBars[i]).name = i * 100 + 100 + " Health Slider"; hpBars[i].transform.SetParent(((Component)__instance).transform, false); hpBars[i].GetComponent<Slider>().minValue = i * 100; hpBars[i].GetComponent<Slider>().maxValue = i * 100 + 100; __instance.hpSliders[i] = hpBars[i].GetComponent<Slider>(); afterHpBars[i] = Object.Instantiate<GameObject>(afterHpBars[1]); ((Object)afterHpBars[i]).name = i * 100 + 100 + " AfterHealth Slider"; afterHpBars[i].transform.SetParent(((Component)__instance).transform, false); afterHpBars[i].GetComponent<Slider>().minValue = i * 100; afterHpBars[i].GetComponent<Slider>().maxValue = i * 100 + 100; __instance.afterImageSliders[i] = afterHpBars[i].GetComponent<Slider>(); afterHpBars[i].transform.SetSiblingIndex(2 * i + 1); hpBars[i].transform.SetSiblingIndex(2 * i + 2); } } } } [HarmonyPatch(typeof(HealthBar), "Update")] private class ClassicGUIHealth { private static void Postfix(HealthBar __instance) { //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: 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_01b5: 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_0277: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: 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_00af: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)__instance.hpText)) { return; } TextMeshProUGUI component = ((Component)__instance.hpText).GetComponent<TextMeshProUGUI>(); if (MonoSingleton<NewMovement>.Instance.sameCheckpointRestarts > 0) { if (!__instance.antiHpText) { if (__instance.changeTextColor) { if ((float)MonoSingleton<NewMovement>.Instance.hp <= respawnAllocatedHp / 4f) { ((Graphic)component).color = Color.red; } else if ((float)MonoSingleton<NewMovement>.Instance.hp <= respawnAllocatedHp / 2f && __instance.yellowColor) { ((Graphic)component).color = Color.yellow; } else { ((Graphic)component).color = __instance.normalTextColor; } } else if (__instance.normalTextColor == Color.white) { if ((float)MonoSingleton<NewMovement>.Instance.hp <= respawnAllocatedHp / 4f) { ((Graphic)component).color = Color.red; return; } object value = Traverse.Create((object)__instance).Field("colorBlindSettings").GetValue(); ColorBlindSettings val = (ColorBlindSettings)((value is ColorBlindSettings) ? value : null); ((Graphic)component).color = val.GetHudColor((HudColorType)4); } } else { ((TMP_Text)component).text = "/" + respawnAllocatedHp; } } else if (!__instance.antiHpText) { if (__instance.changeTextColor) { if ((float)MonoSingleton<NewMovement>.Instance.hp <= spawnAllocatedHp / 4f) { ((Graphic)component).color = Color.red; } else if ((float)MonoSingleton<NewMovement>.Instance.hp <= spawnAllocatedHp / 2f && __instance.yellowColor) { ((Graphic)component).color = Color.yellow; } else { ((Graphic)component).color = __instance.normalTextColor; } } else if (__instance.normalTextColor == Color.white) { if ((float)MonoSingleton<NewMovement>.Instance.hp <= spawnAllocatedHp / 4f) { ((Graphic)component).color = Color.red; return; } object value2 = Traverse.Create((object)__instance).Field("colorBlindSettings").GetValue(); ColorBlindSettings val2 = (ColorBlindSettings)((value2 is ColorBlindSettings) ? value2 : null); ((Graphic)component).color = val2.GetHudColor((HudColorType)4); } } else { ((TMP_Text)component).text = "/" + spawnAllocatedHp; } } } [HarmonyPatch(typeof(FistControl), "TutorialCheckForArmThatCanPunch")] private class KBForIntro { [HarmonyPrefix] private static bool SkipThisCodeHaha() { if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { return false; } return true; } private static void Prefix(FistControl __instance) { if (((ConfigValueElement<bool>)(object)kbForIntro).Value && MonoSingleton<PrefsManager>.Instance.GetInt("weapon.arm0", 1) == 0 && MonoSingleton<PrefsManager>.Instance.GetInt("weapon.arm1", 1) == 0) { MonoSingleton<PrefsManager>.Instance.SetInt("weapon.arm1", 1); __instance.ResetFists(); } } } [HarmonyPatch(typeof(Bootstrap), "Start")] private class KBForIntro2 { [HarmonyPrefix] private static bool SkipThisCodeHaha() { if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { return false; } return true; } private static void Prefix() { if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { Debug.Log((object)Addressables.RuntimePath); GameBuildSettings instance = GameBuildSettings.GetInstance(); if (!instance.noTutorial && (!GameProgressSaver.GetTutorial() || !GameProgressSaver.GetIntro())) { GameProgressSaver.AddGear("arm1"); MonoSingleton<PrefsManager>.Instance.SetInt("weapon.arm1", 1); SceneHelper.LoadScene("Tutorial", true); } else if (instance.startScene != null) { SceneHelper.LoadScene(instance.startScene, true); } else { SceneHelper.LoadScene("Intro", true); } } } } [HarmonyPatch(typeof(ProgressChecker), "Awake")] private class KBForIntro3 { private static void Postfix() { if (((ConfigValueElement<bool>)(object)kbForIntro).Value && (!GameProgressSaver.GetTutorial() || !GameProgressSaver.GetIntro())) { GameProgressSaver.AddGear("arm1"); MonoSingleton<PrefsManager>.Instance.SetInt("weapon.arm1", 1); MonoSingleton<PrefsManager>.Instance.SetInt("weapon.arm0", 0); } } } [HarmonyPatch(typeof(WeaponPickUp), "Awake")] private class FBForClairDeLune { private static void Prefix(WeaponPickUp __instance) { if (((ConfigValueElement<bool>)(object)kbForIntro).Value && __instance.pPref == "arm1") { __instance.pPref = "arm0"; __instance.inventorySlot = 0; } } } [HarmonyPatch(typeof(FistControl), "ForceArm")] private class FBForClairDeLune2 { private static void Postfix(FistControl __instance, int varNum, bool animation) { if (((ConfigValueElement<bool>)(object)kbForIntro).Value && varNum == 0 && animation) { List<GameObject> list = Traverse.Create((object)__instance).Field("spawnedArms").GetValue() as List<GameObject>; int value = Traverse.Create((object)__instance).Field("currentOrderNum").GetValue<int>(); Punch punch = default(Punch); if (list[value].TryGetComponent<Punch>(ref punch)) { ((MonoBehaviour)__instance).StartCoroutine((IEnumerator)FeedbackerPunches(punch)); } } } } [HarmonyPatch(typeof(ObjectActivator), "Start")] private class FBForClairDeLune3 { private static void Prefix(ObjectActivator __instance) { //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) if (((ConfigValueElement<bool>)(object)kbForIntro).Value && ((Object)((Component)__instance).transform).name == "V2 Deactivator") { SkinnedMeshRenderer component = ((Component)((Component)__instance).transform.parent.Find("RedArmPickup").Find("redarmlp").Find("arm_lp")).GetComponent<SkinnedMeshRenderer>(); if (Object.op_Implicit((Object)(object)component)) { component.rootBone = null; component.sharedMesh = funnyAssets.LoadAsset<Mesh>("Feedbacker"); ((Renderer)component).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_Feedbacker"); ((Component)component).transform.localScale = new Vector3(4f, 4f, 4f); ((Component)component).transform.localRotation = Quaternion.Euler(55f, 180f, 180f); } } } } [HarmonyPatch(typeof(Machine), "GetHurt")] private class FBEnrageClairDeSoleil { private static void Prefix(Machine __instance) { if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { object value = Traverse.Create((object)__instance).Field("v2").GetValue(); V2 val = (V2)((value is V2) ? value : null); object value2 = Traverse.Create((object)__instance).Field("eid").GetValue(); EnemyIdentifier val2 = (EnemyIdentifier)((value2 is EnemyIdentifier) ? value2 : null); if (Object.op_Implicit((Object)(object)val) && val.secondEncounter && val2.hitter == "heavypunch") { kbPunchCheck = true; } else { kbPunchCheck = false; } if (Object.op_Implicit((Object)(object)val) && val.secondEncounter && val2.hitter == "punch") { kbPunchCheck = false; val.InstaEnrage(); } } } } [HarmonyPatch(typeof(V2), "InstaEnrage")] private class FBEnrageClairDeSoleil2 { [HarmonyPrefix] private static bool SkipThisCodeHaha() { if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { if (kbPunchCheck) { return false; } return true; } return true; } } [HarmonyPatch(typeof(Revolver), "Update")] private class V1ArmRevolver { private static void Postfix(Revolver __instance) { if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("Revolver_Rerigged_Alternate"))) { revolverArmRenderer = ((Component)((Component)__instance).transform.Find("Revolver_Rerigged_Alternate").Find("RightArm")).GetComponent<SkinnedMeshRenderer>(); } else if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("Revolver_Rerigged_Standard"))) { revolverArmRenderer = ((Component)((Component)__instance).transform.Find("Revolver_Rerigged_Standard").Find("RightArm")).GetComponent<SkinnedMeshRenderer>(); } else { revolverArmRenderer = null; } } } [HarmonyPatch(typeof(SandboxArm), "Update")] private class V1ArmSpawner { private static void Postfix(SandboxArm __instance) { if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("MainArm"))) { spawnerArmRenderer = ((Component)((Component)__instance).transform.Find("MainArm")).GetComponent<SkinnedMeshRenderer>(); } else { spawnerArmRenderer = null; } } } [HarmonyPatch(typeof(PlatformerMovement), "Update")] private class V1ClashMode { private static void Postfix(PlatformerMovement __instance) { if (!clashDancer) { clashModeRenderer = ((Component)((Component)__instance).transform.Find("v1_combined").Find("v1_mdl")).GetComponent<SkinnedMeshRenderer>(); } } } [HarmonyPatch(typeof(ClashModePickup), "Activate")] private class V1ClashModeDanceStart { private static void Postfix(ClashModePickup __instance) { clashDancer = true; object value = Traverse.Create((object)__instance).Field("dancer").GetValue(); GameObject val = (GameObject)((value is GameObject) ? value : null); clashModeRenderer = ((Component)val.transform.Find("v1_combined").Find("v1_mdl")).GetComponent<SkinnedMeshRenderer>(); } } [HarmonyPatch(typeof(PlatformerDancer), "DanceEnd")] private class V1ClashModeDanceEnd { private static void Postfix() { clashDancer = false; } } [HarmonyPatch(typeof(V2), "Awake")] private class V2BossFights { private static void Prefix(V2 __instance) { //IL_0154: Unknown result type (might be due to invalid IL or missing references) v2 = __instance; if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("v2_GreenArm"))) { v2Renderer = ((Component)((Component)__instance).transform.Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); enemySimplifier = ((Component)((Component)__instance).transform.Find("v2_GreenArm").Find("v2_mdl")).GetComponent<EnemySimplifier>(); } else if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("v2_combined"))) { v2Renderer = ((Component)((Component)__instance).transform.Find("v2_combined").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); enemySimplifier = ((Component)((Component)__instance).transform.Find("v2_combined").Find("v2_mdl")).GetComponent<EnemySimplifier>(); opportunisticMaterial = ((Renderer)v2Renderer).materials[2]; opportunisticMaterial2 = enemySimplifier.simplifiedMaterial3; if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { GenerateFeedbacker(v2Renderer, enemySimplifier); } else { enemySimplifier.simplifiedMaterial3.mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_armtex"); enemySimplifier.simplifiedMaterial3.color = new Color(1.3f, 0.6f, 0.6f, 1f); } } else { v2Renderer = null; enemySimplifier = null; } if (((ConfigValueElement<bool>)(object)v2Textures).Value && ((Object)((Component)__instance).transform).name != "V3") { __instance.wingTextures[0] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex_new"); __instance.wingTextures[1] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 1_new"); __instance.wingTextures[2] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 2_new"); __instance.wingTextures[3] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 3_new"); } } private static void Postfix(V2 __instance) { if (((ConfigValueElement<bool>)(object)v2Textures).Value && ((Object)((Component)__instance).transform).name != "V3") { ((Renderer)v2Renderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex"); enemySimplifier.enragedMaterial = ((Renderer)v2Renderer).materials[0]; object value = Traverse.Create((object)__instance).Field("bhb").GetValue(); BossHealthBar val = (BossHealthBar)((value is BossHealthBar) ? value : null); if (Object.op_Implicit((Object)(object)val) && val.bossName == "V2") { val.bossName = "V1"; } } } } [HarmonyPatch(typeof(V2), "Enrage")] private class V2Enrage { private static void Postfix() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) if (((ConfigValueElement<bool>)(object)v2Textures).Value) { ((Renderer)v2Renderer).materials[0].color = new Color(2f, 0f, 0f, 1f); ((Renderer)v2Renderer).materials[1].color = new Color(2f, 0f, 0f, 1f); } if (Object.op_Implicit((Object)(object)feedbacker)) { ((Renderer)feedbacker.GetComponent<SkinnedMeshRenderer>()).materials[0].color = new Color(2f, 0f, 0f, 1f); } } } [HarmonyPatch(typeof(V2), "UnEnrage")] private class V2UnEnrage { private static void Postfix() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) if (((ConfigValueElement<bool>)(object)v2Textures).Value) { ((Renderer)v2Renderer).materials[0].color = new Color(1f, 1f, 1f, 1f); ((Renderer)v2Renderer).materials[1].color = new Color(1f, 1f, 1f, 1f); } if (Object.op_Implicit((Object)(object)feedbacker)) { ((Renderer)feedbacker.GetComponent<SkinnedMeshRenderer>()).materials[0].color = new Color(1f, 1f, 1f, 1f); } } } [HarmonyPatch(typeof(V2), "SwitchPattern")] private class V2GetPattern { private static void Postfix(int pattern) { v2Pattern = pattern; } } [HarmonyPatch(typeof(ObjectActivator), "Start")] private class V2Cutscenes { private static void Postfix(ObjectActivator __instance) { if (Object.op_Implicit((Object)(object)((Component)__instance).transform.parent) && ((Object)((Component)__instance).transform.parent).name == "V2 Event") { v2Renderer = ((Component)((Component)__instance).transform.parent.Find("Fake V2").Find("v2_combined").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "7 Stuff(Clone)") { v2Renderer = ((Component)((Component)__instance).transform.Find("BossIntro").Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("v2_GreenArm").Find("v2_mdl"))) { v2Renderer2 = ((Component)((Component)__instance).transform.Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "7 Stuff(Clone)(Clone)") { v2Renderer = ((Component)((Component)__instance).transform.Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "8 - Outro") { if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("8 Stuff(Clone)(Clone)"))) { v2Renderer = ((Component)((Component)__instance).transform.Find("8 Stuff(Clone)(Clone)").Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } else if (Object.op_Implicit((Object)(object)((Component)__instance).transform.Find("8 Stuff"))) { v2Renderer = ((Component)((Component)__instance).transform.Find("8 Stuff").Find("v2_GreenArm").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "The Water Ups") { GameObject gameObject = ((Component)((Component)__instance).transform.Find("v2Martini")).gameObject; ((Object)gameObject).name = "V1Martini"; ((Object)((Component)gameObject.transform.Find("V2_Remains")).gameObject).name = "V1_Remains"; ((Object)((Component)__instance).transform.Find("V2 break")).name = "V1 break"; } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "v2 fucking off") { v2Renderer = ((Component)((Component)__instance).transform.Find("V2 Preview Variant").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } if (Object.op_Implicit((Object)(object)((Component)__instance).transform) && ((Object)((Component)__instance).transform).name == "trigger") { v2Renderer = ((Component)((Component)__instance).transform.parent.parent.Find("V2 Intro").Find("v2_mdl")).GetComponent<SkinnedMeshRenderer>(); } } } [HarmonyPatch(typeof(Revolver), "Update")] private class V2sRevolver { private static void Postfix(Revolver __instance) { if (Time.timeScale == 0f || !((ConfigValueElement<bool>)(object)v2Revolver).Value) { return; } altVersion = __instance.altVersion; if (altVersion) { return; } __instance.shootCharge = shootCharge; if (revolverShotNumber < dualWieldCount * 3 - 1) { if (__instance.shootCharge + 575f * Time.deltaTime >= 100f) { __instance.shootCharge = 100f; Traverse.Create((object)__instance).Field("gunReady").SetValue((object)true); } } else if (__instance.shootCharge + 75f * Time.deltaTime >= 100f) { __instance.shootCharge = 100f; Traverse.Create((object)__instance).Field("gunReady").SetValue((object)true); } } } [HarmonyPatch(typeof(Revolver), "Shoot")] private class V2sRevolver2 { private static void Prefix(Revolver __instance, int shotType) { if (!((ConfigValueElement<bool>)(object)v2Revolver).Value) { return; } if (shotType == 1) { shotTypeCheck = true; } else { shotTypeCheck = false; } revolverTimer = 0f; if (altVersion) { return; } shootCharge = 0f; if (revolverShotNumber < dualWieldCount * 3 - 1) { if (shotTypeCheck) { revolverShotNumber++; } } else if (shotTypeCheck) { revolverShotNumber = 0; } if (revolverShotNumber == dualWieldCount * 3 - 1 && __instance.gunVariation == 0 && __instance.pierceCharge >= 50f) { Traverse.Create((object)__instance).Field("pierceReady").SetValue((object)false); __instance.pierceCharge = 50f; } } } [HarmonyPatch(typeof(RocketLauncher), "Shoot")] private class JohninatorRocket { private static void Prefix(RocketLauncher __instance) { if (((ConfigValueElement<bool>)(object)johninatorRocket).Value) { rocketTimer = 1f; if (rocketShotNumber < 2) { rocketShotNumber++; __instance.rateOfFire = 0.2f; } else { rocketShotNumber = 0; __instance.rateOfFire = 3.5f; rocketOverheated = true; } } } } [HarmonyPatch(typeof(RocketLauncher), "Update")] private class JohninatorRocket2 { private static void Prefix(RocketLauncher __instance) { if (Time.timeScale != 0f) { if (!Object.op_Implicit((Object)(object)overheatGameObject)) { InstantiateSmoke(__instance); } if (((ConfigValueElement<bool>)(object)johninatorRocket).Value) { if (rocketTimer == 0f && rocketShotNumber > 0) { Traverse.Create((object)__instance).Field("cooldown").SetValue((object)0); rocketShotNumber = 0; } if (rocketOverheated && !overheatAud.isPlaying) { overheatAud.Play(); overheatParticle.Play(); } } else { __instance.rateOfFire = 1f; } if (rocketOverheated && Traverse.Create((object)__instance).Field("cooldown").GetValue<float>() == 0f) { rocketOverheated = false; overheatParticle.Stop(); if (overheatAud.isPlaying) { overheatAud.Stop(); } } } else { overheatAud.Pause(); } } } [HarmonyPatch(typeof(RocketLauncher), "OnEnable")] private class JohninatorRocket3 { private static void Postfix(RocketLauncher __instance) { if (!Object.op_Implicit((Object)(object)overheatGameObject)) { InstantiateSmoke(__instance); } if (Traverse.Create((object)__instance).Field("cooldown").GetValue<float>() == 0.25f || !((ConfigValueElement<bool>)(object)johninatorRocket).Value) { rocketOverheated = false; overheatParticle.Stop(); if (overheatAud.isPlaying) { overheatAud.Stop(); } } if (((ConfigValueElement<bool>)(object)johninatorRocket).Value && !rocketOverheated) { __instance.rateOfFire = 0.2f; } else { __instance.rateOfFire = 1f; } } } [HarmonyPatch(typeof(RocketLauncher), "OnDisable")] private class JohninatorRocket4 { private static void Postfix() { if (Object.op_Implicit((Object)(object)overheatGameObject)) { Object.Destroy((Object)(object)overheatGameObject); overheatGameObject = null; overheatAud = null; overheatParticle = null; } } } [HarmonyPatch(typeof(RocketLauncher), "ShootCannonball")] private class JohninatorRocket5 { private static void Prefix(RocketLauncher __instance) { if (((ConfigValueElement<bool>)(object)johninatorRocket).Value && (!rocketOverheated || (rocketOverheated && Traverse.Create((object)__instance).Field("cooldown").GetValue<float>() <= 1f))) { __instance.rateOfFire = 1f; } } } [HarmonyPatch(typeof(NewMovement), "GetHealth")] private class BloodPouch { private static void Prefix(int health) { if (!((ConfigValueElement<bool>)(object)bloodPouch).Value) { return; } switch (health) { default: if (health != 999) { if (bloodPouchValue + (float)health * 0.015f <= 100f) { bloodPouchValue += (float)health * 0.015f; } else { bloodPouchValue = 100f; } return; } break; case 100: break; case 0: return; } if (health == 999) { if (bloodPouchValue + 3f <= 100f) { bloodPouchValue += 3f; } else { bloodPouchValue = 100f; } } } } [HarmonyPatch(typeof(HudController), "Awake")] private class BloodPouch2 { private static void Prefix(HudController __instance) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0270: 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_0207: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0229: 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_01a2: 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_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: 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_0170: 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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0adb: Unknown result type (might be due to invalid IL or missing references) //IL_0ae5: Expected O, but got Unknown //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b5d: Unknown result type (might be due to invalid IL or missing references) //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0ba2: Unknown result type (might be due to invalid IL or missing references) //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bd0: Unknown result type (might be due to invalid IL or missing references) //IL_0c34: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Expected O, but got Unknown //IL_0caa: Unknown result type (might be due to invalid IL or missing references) //IL_0cc6: Unknown result type (might be due to invalid IL or missing references) //IL_0cdd: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0d0b: Unknown result type (might be due to invalid IL or missing references) //IL_0d22: Unknown result type (might be due to invalid IL or missing references) //IL_0d3e: Unknown result type (might be due to invalid IL or missing references) //IL_0e09: Unknown result type (might be due to invalid IL or missing references) //IL_0e13: Expected O, but got Unknown //IL_0e69: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e9c: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eca: Unknown result type (might be due to invalid IL or missing references) //IL_0ee6: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Expected O, but got Unknown //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Expected O, but got Unknown //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04be: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: 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_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0569: Expected O, but got Unknown //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05e7: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Expected O, but got Unknown //IL_0661: 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_0694: Unknown result type (might be due to invalid IL or missing references) //IL_06ab: Unknown result type (might be due to invalid IL or missing references) //IL_06c2: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: 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_0708: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Expected O, but got Unknown //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07be: Expected O, but got Unknown //IL_0803: 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_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_08cd: Unknown result type (might be due to invalid IL or missing references) //IL_08d7: Expected O, but got Unknown //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_0981: 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_09af: Unknown result type (might be due to invalid IL or missing references) //IL_0a6b: Unknown result type (might be due to invalid IL or missing references) //IL_0fbf: Unknown result type (might be due to invalid IL or missing references) //IL_0fc9: Expected O, but got Unknown //IL_1025: Unknown result type (might be due to invalid IL or missing references) //IL_1041: Unknown result type (might be due to invalid IL or missing references) //IL_1058: Unknown result type (might be due to invalid IL or missing references) //IL_106f: Unknown result type (might be due to invalid IL or missing references) //IL_1086: Unknown result type (might be due to invalid IL or missing references) //IL_109d: Unknown result type (might be due to invalid IL or missing references) //IL_10b4: Unknown result type (might be due to invalid IL or missing references) //IL_1118: Unknown result type (might be due to invalid IL or missing references) //IL_1140: Unknown result type (might be due to invalid IL or missing references) //IL_1147: Expected O, but got Unknown //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_11aa: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_11d8: Unknown result type (might be due to invalid IL or missing references) //IL_11ef: Unknown result type (might be due to invalid IL or missing references) //IL_1206: Unknown result type (might be due to invalid IL or missing references) //IL_1222: Unknown result type (might be due to invalid IL or missing references) //IL_12ed: Unknown result type (might be due to invalid IL or missing references) //IL_12f7: Expected O, but got Unknown //IL_134d: Unknown result type (might be due to invalid IL or missing references) //IL_1369: Unknown result type (might be due to invalid IL or missing references) //IL_1380: Unknown result type (might be due to invalid IL or missing references) //IL_1397: Unknown result type (might be due to invalid IL or missing references) //IL_13ae: Unknown result type (might be due to invalid IL or missing references) //IL_13ca: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)__instance)) { return; } if (!Object.op_Implicit((Object)(object)bloodPouchPanel) && ((Object)__instance).name == "HUD") { bloodPouchPanel = new GameObject("BloodPouchPanel"); bloodPouchPanel.transform.SetParent(((Component)__instance).transform.Find("GunCanvas"), false); bloodPouchPanel.transform.localScale = new Vector3(4f, 4f, 4f); bloodPouchPanel.layer = 13; GameObject[] array = Traverse.Create((object)MonoSingleton<PlayerActivatorRelay>.Instance).Field("toActivate").GetValue() as GameObject[]; Array.Resize(ref array, 9); array[8] = bloodPouchPanel; Traverse.Create((object)MonoSingleton<PlayerActivatorRelay>.Instance).Field("toActivate").SetValue((object)array); RectTransform val = bloodPouchPanel.AddComponent<RectTransform>(); bloodPouchPanel.AddComponent<CanvasRenderer>(); Image val2 = bloodPouchPanel.AddComponent<Image>(); HudOpenEffect val3 = bloodPouchPanel.AddComponent<HudOpenEffect>(); bloodPouchPanel.GetComponent<CanvasRenderer>().cullTransparentMesh = false; if (!MonoSingleton<PrefsManager>.Instance.GetBool("weaponIcons", false)) { if (MonoSingleton<PrefsManager>.Instance.GetInt("speedometer", 0) == 0) { val.anchoredPosition = new Vector2(val.anchoredPosition.x - 79f, 187f); val.anchoredPosition3D = new Vector3(val.anchoredPosition.x, 187f, 45f); } else { val.anchoredPosition = new Vector2(val.anchoredPosition.x - 79f, 293f); val.anchoredPosition3D = new Vector3(val.anchoredPosition.x, 293f, 45f); } } else if (MonoSingleton<PrefsManager>.Instance.GetInt("speedometer", 0) == 0) { val.anchoredPosition = new Vector2(val.anchoredPosition.x - 79f, 590f); val.anchoredPosition3D = new Vector3(val.anchoredPosition.x, 590f, 45f); } else { val.anchoredPosition = new Vector2(val.anchoredPosition.x - 79f, 693f); val.anchoredPosition3D = new Vector3(val.anchoredPosition.x, 693f, 45f); } val.anchorMax = new Vector2(0f, 0f); val.anchorMin = new Vector2(0f, 0f); val.pivot = new Vector2(0f, 0f); val.sizeDelta = new Vector2(200f, 30f); Image component = ((Component)((Component)__instance).transform.Find("GunCanvas").Find("StatsPanel")).GetComponent<Image>(); val2.sprite = component.sprite; val2.overrideSprite = component.overrideSprite; val2.pixelsPerUnitMultiplier = 5.4f; val2.type = (Type)1; ((Graphic)val2).color = ((Graphic)component).color; ((Graphic)val2).material = ((Graphic)component).material; ((Graphic)val2).raycastTarget = false; Traverse.Create((object)val3).Field("originalDimensions").SetValue((object)new Vector2(4f, 4f)); GameObject val4 = new GameObject("Filler"); val4.transform.SetParent(bloodPouchPanel.transform, false); val4.layer = 13; RectTransform val5 = val4.AddComponent<RectTransform>(); val5.anchorMax = new Vector2(1f, 1f); val5.anchorMin = new Vector2(0f, 0f); val5.sizeDelta = new Vector2(-10f, -10f); GameObject val6 = new GameObject("Panel"); val6.transform.SetParent(val4.transform, false); val6.layer = 13; RectTransform val7 = val6.AddComponent<RectTransform>(); val6.AddComponent<CanvasRenderer>(); Image val8 = val6.AddComponent<Image>(); val7.anchoredPosition = new Vector2(0f, -1f); val7.anchoredPosition3D = new Vector3(0f, -1f, 0f); val7.anchorMax = new Vector2(1f, 0f); val7.anchorMin = new Vector2(0f, 0f); val7.pivot = new Vector2(0.5f, 0f); val7.sizeDelta = new Vector2(0f, 22f); val8.sprite = funnyAssets.LoadAsset<Sprite>("Round_FillSmall"); val8.overrideSprite = funnyAssets.LoadAsset<Sprite>("Round_FillSmall"); val8.pixelsPerUnitMultiplier = 5.4f; val8.type = (Type)1; ((Graphic)val8).color = new Color(0f, 0f, 0f, 0.502f); ((Graphic)val8).material = ((Graphic)val2).material; ((Graphic)val8).raycastTarget = false; GameObject val9 = new GameObject("Filler"); val9.transform.SetParent(val6.transform, false); val9.layer = 13; RectTransform val10 = val9.AddComponent<RectTransform>(); val10.anchoredPosition = new Vector2(-0.0001f, 0f); val10.anchoredPosition3D = new Vector3(-0.0001f, 0f, 0.0001f); val10.anchorMax = new Vector2(1f, 0.5f); val10.anchorMin = new Vector2(0f, 0.5f); val10.sizeDelta = new Vector2(0f, 100f); bloodPouchSlider = new GameObject("Blood Pouch Slider"); bloodPouchSlider.transform.SetParent(val9.transform, false); bloodPouchSlider.layer = 13; RectTransform val11 = bloodPouchSlider.AddComponent<RectTransform>(); Slider val12 = bloodPouchSlider.AddComponent<Slider>(); val11.anchoredPosition = new Vector2(0f, 0f); val11.anchoredPosition3D = new Vector3(0f, 0f, 0f); val11.anchorMax = new Vector2(1f, 0.5f); val11.anchorMin = new Vector2(0f, 0.5f); val11.sizeDelta = new Vector2(0f, 22f); val12.maxValue = 100f; ((Selectable)val12).interactable = false; ColorBlock colors = ((Selectable)val12).colors; ((ColorBlock)(ref colors)).colorMultiplier = 2f; ((Selectable)val12).colors = colors; GameObject val13 = new GameObject("Fill Area"); val13.transform.SetParent(bloodPouchSlider.transform, false); val13.layer = 13; RectTransform val14 = val13.AddComponent<RectTransform>(); val14.anchoredPosition = new Vector2(0f, 0f); val14.anchoredPosition3D = new Vector3(0f, 0f, 0f); val14.anchorMax = new Vector2(1f, 0.75f); val14.anchorMin = new Vector2(0f, 0.25f); val14.sizeDelta = new Vector2(0f, 10f); GameObject val15 = new GameObject("Fill"); val15.transform.SetParent(val13.transform, false); val15.layer = 13; RectTransform val16 = val15.AddComponent<RectTransform>(); val15.AddComponent<CanvasRenderer>(); Image val17 = val15.AddComponent<Image>(); val16.anchorMax = new Vector2(1f, 1f); val16.anchorMin = new Vector2(0f, 0f); val16.sizeDelta = new Vector2(0f, 0f); val17.sprite = funnyAssets.LoadAsset<Sprite>("Round_FillSmall"); val17.overrideSprite = funnyAssets.LoadAsset<Sprite>("Round_FillSmall"); val17.pixelsPerUnitMultiplier = 5.4f; val17.type = (Type)1; ((Graphic)val17).color = ((ConfigValueElement<Color>)(object)bloodPouchColor).Value; ((Graphic)val17).material = ((Graphic)val2).material; ((Graphic)val17).raycastTarget = false; val12.fillRect = val16; ((Selectable)val12).image = val17; ((Selectable)val12).targetGraphic = (Graphic)(object)val17; sliderText = new GameObject("Slider Text"); sliderText.transform.SetParent(val9.transform, false); sliderText.layer = 13; RectTransform val18 = sliderText.AddComponent<RectTransform>(); sliderText.AddComponent<CanvasRenderer>(); ColorBlindGet val19 = sliderText.AddComponent<ColorBlindGet>(); TextMeshProUGUI val20 = sliderText.AddComponent<TextMeshProUGUI>(); val18.anchoredPosition = new Vector2(15.0002f, 0f); val18.anchoredPosition3D = new Vector3(15.0002f, 0f, 0.0004f); val18.anchorMax = new Vector2(0f, 0.5f); val18.anchorMin = new Vector2(0f, 0.5f); val18.pivot = new Vector2(0f, 0.5f); val18.sizeDelta = new Vector2(154.5f, 15f); TextMeshProUGUI component2 = ((Component)((Component)__instance).transform.Find("GunCanvas").Find("SpeedometerPanel").Find("Text (TMP)")).GetComponent<TextMeshProUGUI>(); ((TMP_Text)val20).alignment = (TextAlignmentOptions)4097; ((TMP_Text)val20).characterSpacing = -10f; ((TMP_Text)val20).enableAutoSizing = true; ((TMP_Text)val20).font = ((TMP_Text)component2).font; ((TMP_Text)val20).fontSizeMax = 200f; ((TMP_Text)val20).fontSizeMin = 5f; ((TMP_Text)val20).fontStyle = (FontStyles)1; ((TMP_Text)val20).text = Mathf.RoundToInt(bloodPouchValue) + "%"; ((Graphic)val20).raycastTarget = false; val19.hct = (HudColorType)4; Array.Resize(ref __instance.hudBackgrounds, 13); __instance.hudBackgrounds[12] = val2; Array.Resize(ref __instance.textElements, 4); __instance.textElements[3] = (TMP_Text)(object)val20; bloodPouchPanel.SetActive(false); } if (!Object.op_Implicit((Object)(object)bloodPouchPanel2) && ((Object)__instance).name == "AltHud") { bloodPouchPanel2 = new GameObject("BloodPouch"); bloodPouchPanel2.transform.SetParent(((Component)__instance).transform.Find("Filler"), false); bloodPouchPanel2.layer = 5; RectTransform val21 = bloodPouchPanel2.AddComponent<RectTransform>(); bloodPouchPanel2.AddComponent<CanvasRenderer>(); Image val22 = bloodPouchPanel2.AddComponent<Image>(); val21.anchoredPosition = new Vector2(-360f, 0f); val21.anchoredPosition3D = new Vector3(-360f, 0f, 0f); val21.anchorMax = new Vector2(0.5f, 0f); val21.anchorMin = new Vector2(0.5f, 0f); val21.pivot = new Vector2(0.5f, 0f); val21.sizeDelta = new Vector2(80f, 80f); ((Transform)val21).localPosition = new Vector3(360f, -360f); Image component3 = ((Component)((Component)__instance).transform.Find("Filler").Find("Speedometer")).GetComponent<Image>(); val22.sprite = component3.sprite; val22.overrideSprite = component3.overrideSprite; val22.pixelsPerUnitMultiplier = 5.4f; val22.type = (Type)1; ((Graphic)val22).color = ((Graphic)component3).color; ((Graphic)val22).material = ((Graphic)component3).material; ((Graphic)val22).raycastTarget = false; GameObject val23 = new GameObject("Title"); val23.transform.SetParent(bloodPouchPanel2.transform, false); val23.layer = 5; RectTransform val24 = val23.AddComponent<RectTransform>(); val23.AddComponent<CanvasRenderer>(); TextMeshProUGUI val25 = val23.AddComponent<TextMeshProUGUI>(); val24.anchoredPosition = new Vector2(0f, -2.8571f); val24.anchoredPosition3D = new Vector3(0f, -2.8571f, 0f); val24.anchorMax = new Vector2(0.5f, 1f); val24.anchorMin = new Vector2(0.5f, 1f); val24.pivot = new Vector2(0.5f, 1f); val24.sizeDelta = new Vector2(70f, 24f); ((Transform)val24).localPosition = new Vector3(0f, 77.1429f, 0f); TextMeshProUGUI component4 = ((Component)((Component)__instance).transform.Find("Filler").Find("Speedometer").Find("Title")).GetComponent<TextMeshProUGUI>(); ((TMP_Text)val25).alignment = (TextAlignmentOptions)258; ((TMP_Text)val25).characterWidthAdjustment = 50f; ((TMP_Text)val25).enableAutoSizing = true; ((TMP_Text)val25).enableKerning = true; ((TMP_Text)val25).enableWordWrapping = true; ((TMP_Text)val25).font = ((TMP_Text)component4).font; ((TMP_Text)val25).fontMaterial = ((TMP_Text)component4).fontMaterial; ((TMP_Text)val25).fontSize = 24f; ((TMP_Text)val25).fontSizeMax = 24f; ((TMP_Text)val25).fontSizeMin = 24f; ((TMP_Text)val25).horizontalAlignment = (HorizontalAlignmentOptions)2; ((TMP_Text)val25).text = "BLOOD"; bloodPouchPanel2Text = new GameObject("Text (TMP)"); bloodPouchPanel2Text.transform.SetParent(bloodPouchPanel2.transform, false); bloodPouchPanel2Text.layer = 5; RectTransform val26 = bloodPouchPanel2Text.AddComponent<RectTransform>(); bloodPouchPanel2Text.AddComponent<CanvasRenderer>(); TextMeshProUGUI val27 = bloodPouchPanel2Text.AddComponent<TextMeshProUGUI>(); val26.anchoredPosition = new Vector2(0f, -17.5002f); val26.anchoredPosition3D = new Vector3(0f, -17.5002f, 0f); val26.anchorMax = new Vector2(1f, 1f); val26.anchorMin = new Vector2(0f, 0f); val26.sizeDelta = new Vector2(0f, -34.9996f); ((Transform)val26).localPosition = new Vector3(0f, 22.4998f, 0f); ((TMP_Text)val27).alignment = (TextAlignmentOptions)258; ((TMP_Text)val27).enableAutoSizing = true; ((TMP_Text)val27).font = ((TMP_Text)component4).font; ((TMP_Text)val27).fontSize = 36f; ((TMP_Text)val27).fontSizeMax = 36f; ((TMP_Text)val27).fontSizeMin = 18f; ((TMP_Text)val27).horizontalAlignment = (HorizontalAlignmentOptions)2; ((TMP_Text)val27).text = Mathf.RoundToInt(bloodPouchValue) + "%"; Array.Resize(ref __instance.hudBackgrounds, 10); __instance.hudBackgrounds[9] = val22; bloodPouchPanel2.SetActive(false); } if (!Object.op_Implicit((Object)(object)bloodPouchPanel3) && ((Object)__instance).name == "AltHud (2)") { bloodPouchPanel3 = new GameObject("BloodPouch"); bloodPouchPanel3.transform.SetParent(((Component)__instance).transform.Find("Filler"), false); bloodPouchPanel3.layer = 5; RectTransform val28 = bloodPouchPanel3.AddComponent<RectTransform>(); bloodPouchPanel3.AddComponent<CanvasRenderer>(); Image val29 = bloodPouchPanel3.AddComponent<Image>(); val28.anchoredPosition = new Vector2(-360f, 0f); val28.anchoredPosition3D = new Vector3(-360f, 0f, 0f); val28.anchorMax = new Vector2(0.5f, 0f); val28.anchorMin = new Vector2(0.5f, 0f); val28.pivot = new Vector2(0.5f, 0f); val28.sizeDelta = new Vector2(80f, 80f); ((Transform)val28).localPosition = new Vector3(360f, -360f); Image component5 = ((Component)((Component)__instance).transform.Find("Filler").Find("Speedometer")).GetComponent<Image>(); val29.sprite = component5.sprite; val29.overrideSprite = component5.overrideSprite; val29.pixelsPerUnitMultiplier = 5.4f; val29.type = (Type)1; ((Graphic)val29).color = ((Graphic)component5).color; ((Graphic)val29).material = ((Graphic)component5).material; ((Graphic)val29).raycastTarget = false; GameObject val30 = new GameObject("Title"); val30.transform.SetParent(bloodPouchPanel3.transform, false); val30.layer = 5; RectTransform val31 = val30.AddComponent<RectTransform>(); val30.AddComponent<CanvasRenderer>(); TextMeshProUGUI val32 = val30.AddComponent<TextMeshProUGUI>(); val31.anchoredPosition = new Vector2(0f, -2.8571f); val31.anchoredPosition3D = new Vector3(0f, -2.8571f, 0f); val31.anchorMax = new Vector2(0.5f, 1f); val31.anchorMin = new Vector2(0.5f, 1f); val31.pivot = new Vector2(0.5f, 1f); val31.sizeDelta = new Vector2(70f, 24f); ((Transform)val31).localPosition = new Vector3(0f, 77.1429f, 0f); TextMeshProUGUI component6 = ((Component)((Component)__instance).transform.Find("Filler").Find("Speedometer").Find("Title")).GetComponent<TextMeshProUGUI>(); ((TMP_Text)val32).alignment = (TextAlignmentOptions)258; ((TMP_Text)val32).characterWidthAdjustment = 50f; ((TMP_Text)val32).enableAutoSizing = true; ((TMP_Text)val32).enableKerning = true; ((TMP_Text)val32).enableWordWrapping = true; ((TMP_Text)val32).font = ((TMP_Text)component6).font; ((TMP_Text)val32).fontMaterial = ((TMP_Text)component6).fontMaterial; ((TMP_Text)val32).fontSize = 24f; ((TMP_Text)val32).fontSizeMax = 24f; ((TMP_Text)val32).fontSizeMin = 24f; ((TMP_Text)val32).horizontalAlignment = (HorizontalAlignmentOptions)2; ((TMP_Text)val32).text = "BLOOD"; bloodPouchPanel3Text = new GameObject("Text (TMP)"); bloodPouchPanel3Text.transform.SetParent(bloodPouchPanel3.transform, false); bloodPouchPanel3Text.layer = 5; RectTransform val33 = bloodPouchPanel3Text.AddComponent<RectTransform>(); bloodPouchPanel3Text.AddComponent<CanvasRenderer>(); TextMeshProUGUI val34 = bloodPouchPanel3Text.AddComponent<TextMeshProUGUI>(); val33.anchoredPosition = new Vector2(0f, -17.5002f); val33.anchoredPosition3D = new Vector3(0f, -17.5002f, 0f); val33.anchorMax = new Vector2(1f, 1f); val33.anchorMin = new Vector2(0f, 0f); val33.sizeDelta = new Vector2(0f, -34.9996f); ((Transform)val33).localPosition = new Vector3(0f, 22.4998f, 0f); ((TMP_Text)val34).alignment = (TextAlignmentOptions)258; ((TMP_Text)val34).enableAutoSizing = true; ((TMP_Text)val34).font = ((TMP_Text)component6).font; ((TMP_Text)val34).fontSize = 36f; ((TMP_Text)val34).fontSizeMax = 36f; ((TMP_Text)val34).fontSizeMin = 18f; ((TMP_Text)val34).horizontalAlignment = (HorizontalAlignmentOptions)2; ((TMP_Text)val34).text = Mathf.RoundToInt(bloodPouchValue) + "%"; Array.Resize(ref __instance.hudBackgrounds, 10); __instance.hudBackgrounds[9] = val29; bloodPouchPanel3.SetActive(false); } } } [HarmonyPatch(typeof(Speedometer), "OnPrefChanged")] private class BloodPouch3 { private static void Postfix() { //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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_00f3: 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_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_00b0: 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_0053: 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_006f: 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) if (!Object.op_Implicit((Object)(object)bloodPouchPanel)) { return; } RectTransform component = bloodPouchPanel.GetComponent<RectTransform>(); if (MonoSingleton<PrefsManager>.Instance.GetInt("speedometer", 0) == 1) { if (!MonoSingleton<PrefsManager>.Instance.GetBool("weaponIcons", false)) { component.anchoredPosition = new Vector2(component.anchoredPosition.x, 293f); component.anchoredPosition3D = new Vector3(component.anchoredPosition.x, 293f, 45f); } else { component.anchoredPosition = new Vector2(component.anchoredPosition.x, 693f); component.anchoredPosition3D = new Vector3(component.anchoredPosition.x, 693f, 45f); } } else if (!MonoSingleton<PrefsManager>.Instance.GetBool("weaponIcons", false)) { component.anchoredPosition = new Vector2(component.anchoredPosition.x, 187f); component.anchoredPosition3D = new Vector3(component.anchoredPosition.x, 187f, 45f); } else { component.anchoredPosition = new Vector2(component.anchoredPosition.x, 590f); component.anchoredPosition3D = new Vector3(component.anchoredPosition.x, 590f, 45f); } } } [HarmonyPatch(typeof(IntroText), "Start")] private class ChangeIntroText { private static void Postfix(IntroText __instance) { if (((Object)__instance).name == "Page 2") { Traverse.Create((object)__instance).Field("fullString").SetValue((object)" STATUS UPDATE:½\r\n\r\n MACHINE ID: V2½½\r\n LOCATION: APPROACHING HELL½½@\r\n CURRENT OBJECTIVE: FIND A WEAPON½½\r\n\r\n*MANKIND IS DEAD._½½\r\n*BLOOD IS FUEL._½½\r\n*HELL IS FULL._½½&"); } } } [HarmonyPatch(typeof(EndlessGrid), "NextWave")] private class CyberGrindBalance { private static void Postfix(EndlessGrid __instance) { if (__instance.currentWave % 5 == 0) { MonoSingleton<NewMovement>.Instance.hp = Mathf.RoundToInt(spawnAllocatedHp); } } } [HarmonyPatch(typeof(LeaderboardController), "SubmitCyberGrindScore")] private class DisableCyberGrindScore { [HarmonyPrefix] private static bool SkipThisCodeHaha() { return false; } } [HarmonyPatch(typeof(LeaderboardController), "SubmitLevelScore")] private class DisableLevelScore { [HarmonyPrefix] private static bool SkipThisCodeHaha() { return false; } } private readonly Harmony harmony = new Harmony("v2Ultrakill"); private ConfigBuilder configgy; private static AssetBundle funnyAssets; internal static ManualLogSource Logger; private static float spawnAllocatedHp; private static float respawnAllocatedHp; private static readonly GameObject[] hpBars = (GameObject[])(object)new GameObject[10]; private static readonly GameObject[] afterHpBars = (GameObject[])(object)new GameObject[10]; private static readonly Color[] hpBarColors = (Color[])(object)new Color[10]; private static GameObject feedbacker; private static Material opportunisticMaterial; private static Material opportunisticMaterial2; private static bool kbPunchCheck; private static SkinnedMeshRenderer revolverArmRenderer; private static SkinnedMeshRenderer spawnerArmRenderer; private static SkinnedMeshRenderer clashModeRenderer; private static bool clashDancer = false; private static V2 v2; private static SkinnedMeshRenderer v2Renderer; private static SkinnedMeshRenderer v2Renderer2; private static EnemySimplifier enemySimplifier; private static int v2Pattern; private static int revolverShotNumber; private static float revolverTimer; private static float shootCharge; private static bool shotTypeCheck; private static bool altVersion; private static int dualWieldCount; private static int rocketShotNumber; private static float rocketTimer; private static bool rocketOverheated; private static GameObject overheatGameObject; private static AudioSource overheatAud; private static ParticleSystem overheatParticle; private static float bloodPouchValue; private static bool bloodPouchActivated; private static float bloodPouchTimer; private static GameObject bloodPouchPanel; private static GameObject bloodPouchSlider; private static GameObject sliderText; private static GameObject bloodPouchPanel2; private static GameObject bloodPouchPanel2Text; private static GameObject bloodPouchPanel3; private static GameObject bloodPouchPanel3Text; [Configgable("", "Spawn Health", 0, "Amount of health the player receives upon spawning.\r\nOnly accepts values between 1 and 1000.")] private static readonly ConfigInputField<int> spawnHealth = new ConfigInputField<int>(400, (Func<int, bool>)null, (Func<string, ValueTuple<bool, int>>)null); [Configgable("", "Respawn Health", 0, "Amount of health the player receives upon respawning.\r\nOnly accepts values between 1 and 1000.")] private static readonly ConfigInputField<int> respawnHealth = new ConfigInputField<int>(400, (Func<int, bool>)null, (Func<string, ValueTuple<bool, int>>)null); [Configgable("", "Start with Knuckleblaster", 0, "Will start the player with the Knuckleblaster upon starting a new save, or when starting the full tutorial with no arms equipped.\r\nThis also changes the Knuckleblaster pickup in 1-4 to be a Feedbacker pickup, even though the Feedbacker is always available at game start.")] private static readonly ConfigToggle kbForIntro = new ConfigToggle(true); [Configgable("", "V1 Texture Swaps", 0, "Changes the textures of the player to V2.\r\nIncludes the right arm when holding weapons and Clash Mode.")] private static readonly ConfigToggle v1Textures = new ConfigToggle(true); [Configgable("", "V2 Texture Swaps", 0, "Changes the textures of V2 encounters throughout the game to V1.\r\nFunctionally and mechanically, the boss itself remains the same.")] private static readonly ConfigToggle v2Textures = new ConfigToggle(true); [Configgable("", "V2's Revolver Mode", 0, "Allows the default Revolver to fire a burst of three shots with a longer cooldown afterwards.")] private static readonly ConfigToggle v2Revolver = new ConfigToggle(true); [Configgable("", "Johninator Rocket Mode", 0, "Allows the Rocket Launcher to fire a burst of three shots with a long cooldown afterwards.")] private static readonly ConfigToggle johninatorRocket = new ConfigToggle(true); [Configgable("Blood Pouch", "Blood Pouch Enabled", 0, "Enables a reservoir of blood that can be used to regenerate health between combat encounters.\r\nBlood is collected during battles, and regeneration also depletes style points.")] private static readonly ConfigToggle bloodPouch = new ConfigToggle(true); [Configgable("Blood Pouch", "Blood Pouch Keybind", 0, "Keybind to start or stop health regeneration from the blood pouch.")] private static readonly ConfigKeybind bloodPouchHotkey = new ConfigKeybind((KeyCode)116); [Configgable("Blood Pouch", "Blood Pouch Meter", 0, "Enables GUI indicating how filled the blood pouch is.\r\nGUI only appears if Blood Pouch is also enabled.")] private static readonly ConfigToggle bloodPouchGUI = new ConfigToggle(true); [Configgable("Blood Pouch", "Blood Pouch Meter Color", 0, "Color of the meter used to indicate how filled the blood pouch is.")] private static readonly ConfigColor bloodPouchColor = new ConfigColor(new Color(0.35f, 0f, 0f, 1f)); [Configgable("Damage Reduction", "DESTRUCTIVE (%)", 0, "Percentage of incoming damage reduced at style rank DESTRUCTIVE.")] private static readonly IntegerSlider destructiveReduction = new IntegerSlider(0, 0, 100); [Configgable("Damage Reduction", "CHAOTIC (%)", 0, "Percentage of incoming damage reduced at style rank CHAOTIC.")] private static readonly IntegerSlider chaoticReduction = new IntegerSlider(0, 0, 100); [Configgable("Damage Reduction", "BRUTAL (%)", 0, "Percentage of incoming damage reduced at style rank BRUTAL.")] private static readonly IntegerSlider brutalReduction = new IntegerSlider(0, 0, 100); [Configgable("Damage Reduction", "ANARCHIC (%)", 0, "Percentage of incoming damage reduced at style rank ANARCHIC.")] private static readonly IntegerSlider anarchicReduction = new IntegerSlider(15, 0, 100); [Configgable("Damage Reduction", "SUPREME (%)", 0, "Percentage of incoming damage reduced at style rank SUPREME.")] private static readonly IntegerSlider supremeReduction = new IntegerSlider(30, 0, 100); [Configgable("Damage Reduction", "SSADISTIC (%)", 0, "Percentage of incoming damage reduced at style rank SSADISTIC.")] private static readonly IntegerSlider ssadisticReduction = new IntegerSlider(45, 0, 100); [Configgable("Damage Reduction", "SSSHITSTORM (%)", 0, "Percentage of incoming damage reduced at style rank SSSHITSTORM.")] private static readonly IntegerSlider ssshitstormReduction = new IntegerSlider(60, 0, 100); [Configgable("Damage Reduction", "ULTRAKILL (%)", 0, "Percentage of incoming damage reduced at style rank ULTRAKILL.")] private static readonly IntegerSlider ultrakillReduction = new IntegerSlider(80, 0, 100); [Configgable("Damage Reduction", "Overall Reduction Toggle", 0, "If enabled, incoming damage is reduced by a flat rate at all times, based on the below slider.\r\nWill not stack with the above style reductions, and in fact overrides them.")] private static readonly ConfigToggle generalReductionToggle = new ConfigToggle(false); [Configgable("Damage Reduction", "Overall Reduction (%)", 0, "Percentage of incoming damage reduced.\r\nOnly functions if the above option is enabled.")] private static readonly IntegerSlider generalReduction = new IntegerSlider(0, 0, 100); [Configgable("Healthbar Colors", "Healthbar 1 (1-100 HP)", 0, null)] private static readonly ConfigColor hp100ColorSlider = new ConfigColor(new Color(1f, 0f, 0f, 1f)); [Configgable("Healthbar Colors", "Healthbar 2 (101-200 HP)", 0, null)] private static readonly ConfigColor hp200ColorSlider = new ConfigColor(new Color(0.7843f, 0.2941f, 0f, 1f)); [Configgable("Healthbar Colors", "Healthbar 3 (201-300 HP)", 0, null)] private static readonly ConfigColor hp300ColorSlider = new ConfigColor(new Color(1f, 1f, 0f, 1f)); [Configgable("Healthbar Colors", "Healthbar 4 (301-400 HP)", 0, null)] private static readonly ConfigColor hp400ColorSlider = new ConfigColor(new Color(0f, 1f, 0f, 1f)); [Configgable("Healthbar Colors", "Healthbar 5 (401-500 HP)", 0, null)] private static readonly ConfigColor hp500ColorSlider = new ConfigColor(new Color(0f, 0.5882f, 0f, 1f)); [Configgable("Healthbar Colors", "Healthbar 6 (501-600 HP)", 0, null)] private static readonly ConfigColor hp600ColorSlider = new ConfigColor(new Color(0f, 0.5882f, 0.3529f, 1f)); [Configgable("Healthbar Colors", "Healthbar 7 (601-700 HP)", 0, null)] private static readonly ConfigColor hp700ColorSlider = new ConfigColor(new Color(0f, 0.3922f, 0.5882f, 1f)); [Configgable("Healthbar Colors", "Healthbar 8 (701-800 HP)", 0, null)] private static readonly ConfigColor hp800ColorSlider = new ConfigColor(new Color(0f, 0f, 0.6863f, 1f)); [Configgable("Healthbar Colors", "Healthbar 9 (801-900 HP)", 0, null)] private static readonly ConfigColor hp900ColorSlider = new ConfigColor(new Color(0.3922f, 0f, 0.3922f, 1f)); [Configgable("Healthbar Colors", "Healthbar 10 (901-1000 HP)", 0, null)] private static readonly ConfigColor hp1000ColorSlider = new ConfigColor(new Color(0.7843f, 0f, 0.5882f, 1f)); private void Awake() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; harmony.PatchAll(); configgy = new ConfigBuilder("v2Ultrakill", "Play as V2"); configgy.BuildAll(); funnyAssets = AssetBundle.LoadFromFile(Path.Combine(ModPath(), "funnyassets")); Logger = ((BaseUnityPlugin)this).Logger; Logger.LogInfo((object)"Plugin v2Ultrakill, version 2.3.5, is loaded. You can now play as V2."); } public static string ModPath() { return Assembly.GetExecutingAssembly().Location.Substring(0, Assembly.GetExecutingAssembly().Location.LastIndexOf(Path.DirectorySeparatorChar)); } private void Update() { //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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0074: 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_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_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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0afe: Unknown result type (might be due to invalid IL or missing references) //IL_0b39: Unknown result type (might be due to invalid IL or missing references) //IL_0b64: Unknown result type (might be due to invalid IL or missing references) //IL_08c8: Unknown result type (might be due to invalid IL or missing references) //IL_0906: Unknown result type (might be due to invalid IL or missing references) //IL_0931: Unknown result type (might be due to invalid IL or missing references) //IL_0e3a: Unknown result type (might be due to invalid IL or missing references) //IL_095a: Unknown result type (might be due to invalid IL or missing references) //IL_0bf4: Unknown result type (might be due to invalid IL or missing references) //IL_09ec: Unknown result type (might be due to invalid IL or missing references) //IL_1240: 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_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa3: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)hpBars[0])) { hpBarColors[0] = ((ConfigValueElement<Color>)(object)hp100ColorSlider).Value; hpBarColors[1] = ((ConfigValueElement<Color>)(object)hp200ColorSlider).Value; hpBarColors[2] = ((ConfigValueElement<Color>)(object)hp300ColorSlider).Value; hpBarColors[3] = ((ConfigValueElement<Color>)(object)hp400ColorSlider).Value; hpBarColors[4] = ((ConfigValueElement<Color>)(object)hp500ColorSlider).Value; hpBarColors[5] = ((ConfigValueElement<Color>)(object)hp600ColorSlider).Value; hpBarColors[6] = ((ConfigValueElement<Color>)(object)hp700ColorSlider).Value; hpBarColors[7] = ((ConfigValueElement<Color>)(object)hp800ColorSlider).Value; hpBarColors[8] = ((ConfigValueElement<Color>)(object)hp900ColorSlider).Value; hpBarColors[9] = ((ConfigValueElement<Color>)(object)hp1000ColorSlider).Value; for (int i = 0; i <= 9; i++) { if (!CheckColor(hpBars[i], hpBarColors[i])) { UpdateColor(hpBars[i], hpBarColors[i]); } } } if (((ConfigValueElement<bool>)(object)kbForIntro).Value) { if (!Object.op_Implicit((Object)(object)feedbacker) && Object.op_Implicit((Object)(object)v2Renderer)) { if (Object.op_Implicit((Object)(object)v2)) { if (((Object)((Component)v2).transform).name == "V2" || ((Object)((Component)v2).transform).name == "V2(Clone)") { GenerateFeedbacker(v2Renderer, enemySimplifier); } } else if (((Object)((Component)v2Renderer).transform.parent.parent).name == "Fake V2") { GenerateFeedbacker(v2Renderer, null); } } } else if (Object.op_Implicit((Object)(object)feedbacker) && Object.op_Implicit((Object)(object)v2Renderer)) { if (Object.op_Implicit((Object)(object)enemySimplifier)) { KillFeedbacker(v2Renderer, enemySimplifier); } else { KillFeedbacker(v2Renderer, null); } } if (Object.op_Implicit((Object)(object)revolverArmRenderer)) { if (((ConfigValueElement<bool>)(object)v1Textures).Value) { if ((Object)(object)((Renderer)revolverArmRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm_V2")) { ((Renderer)revolverArmRenderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm_V2"); } } else if ((Object)(object)((Renderer)revolverArmRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm") && ((Object)((Renderer)revolverArmRenderer).materials[0].mainTexture).name != "V3-hand") { ((Renderer)revolverArmRenderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm"); } } if (Object.op_Implicit((Object)(object)spawnerArmRenderer)) { if (((ConfigValueElement<bool>)(object)v1Textures).Value) { if ((Object)(object)((Renderer)spawnerArmRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm_V2")) { ((Renderer)spawnerArmRenderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm_V2"); } } else if ((Object)(object)((Renderer)spawnerArmRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm") && ((Object)((Renderer)spawnerArmRenderer).materials[0].mainTexture).name != "V3-hand") { ((Renderer)spawnerArmRenderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_MainArm"); } } if (Object.op_Implicit((Object)(object)clashModeRenderer)) { if (((ConfigValueElement<bool>)(object)v1Textures).Value) { if ((Object)(object)((Renderer)clashModeRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1")) { for (int j = 0; j <= 8; j++) { if (j == 0) { ((Renderer)clashModeRenderer).materials[j].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1"); } else { ((Renderer)clashModeRenderer).materials[j].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex_new"); } } } } else if ((Object)(object)((Renderer)clashModeRenderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex")) { for (int k = 0; k <= 8; k++) { if (k == 0) { ((Renderer)clashModeRenderer).materials[k].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex"); } else { ((Renderer)clashModeRenderer).materials[k].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex"); } } } } if (Object.op_Implicit((Object)(object)v2Renderer)) { if (Object.op_Implicit((Object)(object)v2) && ((Object)((Component)v2).transform).name != "V3") { object value = Traverse.Create((object)v2).Field("bhb").GetValue(); BossHealthBar val = (BossHealthBar)((value is BossHealthBar) ? value : null); if (((ConfigValueElement<bool>)(object)v2Textures).Value) { if ((Object)(object)v2.wingTextures[0] != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex_new")) { v2.wingTextures[0] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex_new"); v2.wingTextures[1] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 1_new"); v2.wingTextures[2] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 2_new"); v2.wingTextures[3] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex 3_new"); } if ((Object)(object)((Renderer)v2Renderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex")) { ((Renderer)v2Renderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex"); } if (Object.op_Implicit((Object)(object)val) && val.bossName == "V2") { val.bossName = "V1"; } } else { if ((Object)(object)v2.wingTextures[0] != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex")) { v2.wingTextures[0] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex"); v2.wingTextures[1] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex 1"); v2.wingTextures[2] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex 2"); v2.wingTextures[3] = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex 3"); } if ((Object)(object)((Renderer)v2Renderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1")) { ((Renderer)v2Renderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1"); } if (Object.op_Implicit((Object)(object)val) && val.bossName == "V1") { val.bossName = "V2"; } } if ((Object)(object)((Renderer)v2Renderer).materials[1].mainTexture != (Object)(object)v2.wingTextures[v2Pattern]) { ((Renderer)v2Renderer).materials[1].mainTexture = v2.wingTextures[v2Pattern]; } if (v2.isEnraged) { if (((ConfigValueElement<bool>)(object)v2Textures).Value && ((Renderer)v2Renderer).materials[0].color.r != 2f) { ((Renderer)v2Renderer).materials[0].color = new Color(2f, 0f, 0f, 1f); ((Renderer)v2Renderer).materials[1].color = new Color(2f, 0f, 0f, 1f); } else if (!((ConfigValueElement<bool>)(object)v2Textures).Value && ((Renderer)v2Renderer).materials[0].color.r != 1f) { ((Renderer)v2Renderer).materials[0].color = new Color(1f, 1f, 1f, 1f); ((Renderer)v2Renderer).materials[1].color = new Color(1f, 1f, 1f, 1f); } if (Object.op_Implicit((Object)(object)feedbacker) && ((Renderer)feedbacker.GetComponent<SkinnedMeshRenderer>()).materials[0].color.r != 2f) { ((Renderer)feedbacker.GetComponent<SkinnedMeshRenderer>()).materials[0].color = new Color(2f, 0f, 0f, 1f); if (Object.op_Implicit((Object)(object)((Renderer)v2Renderer).materials[2])) { ((Renderer)v2Renderer).materials[2].color = new Color(1.3f, 0.6f, 0.6f, 0f); } } else if (((Renderer)v2Renderer).materials.Length == 3 && ((Renderer)v2Renderer).materials[2].color.r != 1.3f) { ((Renderer)v2Renderer).materials[2].color = new Color(1.3f, 0.6f, 0.6f, 1f); } } else { if (((Renderer)v2Renderer).materials[0].color.r != 1f) { ((Renderer)v2Renderer).materials[0].color = new Color(1f, 1f, 1f, 1f); ((Renderer)v2Renderer).materials[1].color = new Color(1f, 1f, 1f, 1f); } if (((Renderer)v2Renderer).materials.Length == 3 && !((ConfigValueElement<bool>)(object)kbForIntro).Value && (Object)(object)((Renderer)v2Renderer).materials[2] != (Object)(object)opportunisticMaterial) { Material[] materials = ((Renderer)v2Renderer).materials; materials[2] = opportunisticMaterial; ((Renderer)v2Renderer).materials = materials; ((Renderer)v2Renderer).materials[2].color = new Color(1f, 1f, 1f, 1f); } } } else if (((ConfigValueElement<bool>)(object)v2Textures).Value) { if ((Object)(object)((Renderer)v2Renderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex")) { V2TexturesCutscenes(v2Renderer); } } else if ((Object)(object)((Renderer)v2Renderer).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1")) { UndoV2TexturesCutscenes(v2Renderer); } } if (Object.op_Implicit((Object)(object)v2Renderer2)) { if (((ConfigValueElement<bool>)(object)v2Textures).Value) { if ((Object)(object)((Renderer)v2Renderer2).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex")) { V2TexturesCutscenes(v2Renderer2); } } else if ((Object)(object)((Renderer)v2Renderer2).materials[0].mainTexture != (Object)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1")) { UndoV2TexturesCutscenes(v2Renderer2); } } if (((ConfigValueElement<bool>)(object)bloodPouch).Value && ((ConfigValueElement<bool>)(object)bloodPouchGUI).Value) { int value2 = Traverse.Create((object)MonoSingleton<PlayerActivatorRelay>.Instance).Field("index").GetValue<int>(); if (Object.op_Implicit((Object)(object)bloodPouchPanel) && !bloodPouchPanel.activeSelf && value2 >= 9) { bloodPouchPanel.SetActive(true); } if (Object.op_Implicit((Object)(object)bloodPouchPanel2) && !bloodPouchPanel2.activeSelf) { bloodPouchPanel2.SetActive(true); } if (Object.op_Implicit((Object)(object)bloodPouchPanel3) && !bloodPouchPanel3.activeSelf) { bloodPouchPanel3.SetActive(true); } if (Object.op_Implicit((Object)(object)bloodPouchPanel) && bloodPouchPanel.activeSelf) { Slider component = bloodPouchSlider.GetComponent<Slider>(); ((Graphic)((Selectable)component).image).color = ((ConfigValueElement<Color>)(object)bloodPouchColor).Value; if (Time.timeScale != 0f) { component.value = bloodPouchValue; ((TMP_Text)sliderText.GetComponent<TextMeshProUGUI>()).text = Mathf.RoundToInt(bloodPouchValue) + "%"; } } if (Object.op_Implicit((Object)(object)bloodPouchPanel2) && bloodPouchPanel2.activeSelf && Time.timeScale != 0f) { ((TMP_Text)bloodPouchPanel2Text.GetComponent<TextMeshProUGUI>()).text = Mathf.RoundToInt(bloodPouchValue) + "%"; } if (Object.op_Implicit((Object)(object)bloodPouchPanel3) && bloodPouchPanel3.activeSelf && Time.timeScale != 0f) { ((TMP_Text)bloodPouchPanel3Text.GetComponent<TextMeshProUGUI>()).text = Mathf.RoundToInt(bloodPouchValue) + "%"; } } else if (!((ConfigValueElement<bool>)(object)bloodPouch).Value || !((ConfigValueElement<bool>)(object)bloodPouchGUI).Value) { if (bloodPouchPanel.activeSelf) { bloodPouchPanel.SetActive(false); } if (bloodPouchPanel2.activeSelf) { bloodPouchPanel2.SetActive(false); } if (bloodPouchPanel3.activeSelf) { bloodPouchPanel3.SetActive(false); } } if (Time.timeScale == 0f) { return; } if (NoWeaponCooldown.NoCooldown) { revolverShotNumber = 0; rocketShotNumber = 0; } if (Object.op_Implicit((Object)(object)MonoSingleton<GunControl>.Instance)) { dualWieldCount = MonoSingleton<GunControl>.Instance.dualWieldCount + 1; } if (Object.op_Implicit((Object)(object)MonoSingleton<NewMovement>.Instance) && MonoSingleton<NewMovement>.Instance.antiHp != 0f) { MonoSingleton<NewMovement>.Instance.antiHp = 0f; } if (((ConfigValueElement<bool>)(object)v2Revolver).Value) { revolverTimer += 200f * Time.deltaTime; if (shootCharge != 100f) { if (revolverShotNumber < dualWieldCount * 3 - 1) { if (shootCharge + 575f * Time.deltaTime < 100f) { shootCharge += 575f * Time.deltaTime; } else { shootCharge = 100f; } } else if (shootCharge + 75f * Time.deltaTime < 100f) { shootCharge += 75f * Time.deltaTime; } else { shootCharge = 100f; } } if (revolverTimer >= 100f) { revolverTimer = 0f; if (revolverShotNumber < dualWieldCount * 3 - 1) { revolverShotNumber = dualWieldCount * 3 - 1; } } } if (((ConfigValueElement<bool>)(object)johninatorRocket).Value) { if (rocketTimer > 0f) { rocketTimer = Mathf.MoveTowards(rocketTimer, 0f, Time.deltaTime); } else if (rocketTimer == 0f && rocketShotNumber > 0) { rocketShotNumber = 0; } } if (!Object.op_Implicit((Object)(object)MonoSingleton<NewMovement>.Instance) || !((ConfigValueElement<bool>)(object)bloodPouch).Value) { return; } if (bloodPouchValue > 0f && Input.GetKeyDown(((ConfigValueElement<KeyCode>)(object)bloodPouchHotkey).Value)) { bloodPouchTimer = 0f; if (!bloodPouchActivated && MonoSingleton<MusicManager>.Instance.requestedThemes == 0f) { if ((MonoSingleton<NewMovement>.Instance.sameCheckpointRestarts > 0 && (float)MonoSingleton<NewMovement>.Instance.hp < respawnAllocatedHp) || (float)MonoSingleton<NewMovement>.Instance.hp < spawnAllocatedHp) { bloodPouchActivated = true; } } else { bloodPouchActivated = false; } } if (!bloodPouchActivated) { return; } if (MonoSingleton<MusicManager>.Instance.requestedThemes == 1f) { bloodPouchTimer = 0f; bloodPouchActivated = false; return; } bloodPouchTimer = Mathf.MoveTowards(bloodPouchTimer, 100f, Time.deltaTime * 5f); bloodPouchValue = Mathf.MoveTowards(bloodPouchValue, 0f, Time.deltaTime * 5f); if (MonoSingleton<NewMovement>.Instance.sameCheckpointRestarts > 0) { if (bloodPouchTimer >= 100f / respawnAllocatedHp) { bloodPouchTimer -= 100f / respawnAllocatedHp; NewMovement instance = MonoSingleton<NewMovement>.Instance; instance.hp++; StatsManager instance2 = MonoSingleton<StatsManager>.Instance; instance2.stylePoints -= 10; } } else if (bloodPouchTimer >= 100f / spawnAllocatedHp) { bloodPouchTimer -= 100f / spawnAllocatedHp; NewMovement instance3 = MonoSingleton<NewMovement>.Instance; instance3.hp++; StatsManager instance4 = MonoSingleton<StatsManager>.Instance; instance4.stylePoints -= 10; } if (bloodPouchValue == 0f) { bloodPouchTimer = 0f; bloodPouchActivated = false; } else if ((float)MonoSingleton<NewMovement>.Instance.hp >= respawnAllocatedHp && MonoSingleton<NewMovement>.Instance.sameCheckpointRestarts > 0) { MonoSingleton<NewMovement>.Instance.hp = Mathf.RoundToInt(respawnAllocatedHp); bloodPouchTimer = 0f; bloodPouchActivated = false; if (bloodPouchValue <= 0.5f) { bloodPouchValue = 0f; StatsManager instance5 = MonoSingleton<StatsManager>.Instance; instance5.stylePoints -= 10; } } else if ((float)MonoSingleton<NewMovement>.Instance.hp >= spawnAllocatedHp && MonoSingleton<NewMovement>.Instance.sameCheckpointRestarts == 0) { MonoSingleton<NewMovement>.Instance.hp = Mathf.RoundToInt(spawnAllocatedHp); bloodPouchTimer = 0f; bloodPouchActivated = false; if (bloodPouchValue <= 0.5f) { bloodPouchValue = 0f; StatsManager instance6 = MonoSingleton<StatsManager>.Instance; instance6.stylePoints -= 10; } } } private static bool CheckColor(GameObject y, Color z) { //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) if (((Graphic)((Component)y.transform.Find("Fill Area").Find("Fill")).GetComponent<Image>()).color == z) { return true; } return false; } private static void UpdateColor(GameObject y, Color z) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) ((Graphic)((Component)y.transform.Find("Fill Area").Find("Fill")).GetComponent<Image>()).color = z; } private static IEnumerator<WaitForSecondsRealtime> FeedbackerPunches(Punch punch) { object value = Traverse.Create((object)punch).Field("aud").GetValue(); AudioSource aud = (AudioSource)((value is AudioSource) ? value : null); punch.anim.Play("Jab", 0, 0f); aud.Play(); yield return new WaitForSecondsRealtime(1f); punch.anim.Play("Hook", 0, 0.05f); aud.Play(); } private static void GenerateFeedbacker(SkinnedMeshRenderer renderer, EnemySimplifier enemySimplifier) { //IL_004f: 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_00ba: Expected O, but got Unknown //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0159: 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_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) opportunisticMaterial = ((Renderer)v2Renderer).materials[2]; Material[] materials = ((Renderer)renderer).materials; materials[2] = funnyAssets.LoadAsset<Material>("Smoke"); ((Renderer)renderer).materials = materials; ((Renderer)renderer).materials[2].color = new Color(1f, 1f, 1f, 0f); if (Object.op_Implicit((Object)(object)enemySimplifier)) { opportunisticMaterial2 = enemySimplifier.simplifiedMaterial3; enemySimplifier.simplifiedMaterial3 = funnyAssets.LoadAsset<Material>("Smoke"); enemySimplifier.simplifiedMaterial3.color = new Color(1.3f, 0.6f, 0.6f, 0f); } feedbacker = new GameObject("LeftArm"); feedbacker.transform.SetParent(((Component)renderer).transform.parent.Find("metarig").Find("spine").Find("spine.001") .Find("spine.002") .Find("spine.003") .Find("shoulder.L") .Find("upper_arm.L"), false); feedbacker.transform.localScale = new Vector3(4f, 4f, 4f); feedbacker.transform.localPosition = new Vector3(0.02f, 0f, 0f); feedbacker.transform.localRotation = Quaternion.Euler(90f, 180f, 0f); SkinnedMeshRenderer val = feedbacker.AddComponent<SkinnedMeshRenderer>(); ((Renderer)val).material.mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("T_Feedbacker"); ((Renderer)val).material.color = new Color(1f, 1f, 1f, 1f); ((Renderer)val).material.shader = ((Renderer)renderer).material.shader; val.sharedMesh = funnyAssets.LoadAsset<Mesh>("Feedbacker"); } private static void KillFeedbacker(SkinnedMeshRenderer renderer, EnemySimplifier enemySimplifier) { //IL_003f: 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) Object.Destroy((Object)(object)feedbacker); Material[] materials = ((Renderer)renderer).materials; materials[2] = opportunisticMaterial; ((Renderer)renderer).materials = materials; ((Renderer)renderer).materials[2].color = new Color(1f, 1f, 1f, 1f); if (Object.op_Implicit((Object)(object)enemySimplifier)) { enemySimplifier.simplifiedMaterial3 = opportunisticMaterial2; enemySimplifier.simplifiedMaterial3.mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_armtex"); enemySimplifier.simplifiedMaterial3.color = new Color(1.3f, 0.6f, 0.6f, 1f); } } private static void V2TexturesCutscenes(SkinnedMeshRenderer renderer) { ((Renderer)renderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1colour_tex"); ((Renderer)renderer).materials[1].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v1_wingcolour_tex_new"); } private static void UndoV2TexturesCutscenes(SkinnedMeshRenderer renderer) { ((Renderer)renderer).materials[0].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2colour_tex 1"); ((Renderer)renderer).materials[1].mainTexture = (Texture)(object)funnyAssets.LoadAsset<Texture2D>("v2_wingcolour_tex"); } private static void InstantiateSmoke(RocketLauncher __instance) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0069: 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_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown //IL_0121: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0141: 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_015d: 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_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0186: 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_025b: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) overheatGameObject = new GameObject("JohninatorParticleSystem"); overheatAud = overheatGameObject.AddComponent<AudioSource>(); overheatParticle = overheatGameObject.AddComponent<ParticleSystem>(); ParticleSystemRenderer component = overheatGameObject.GetComponent<ParticleSystemRenderer>(); ((Renderer)component).material = funnyAssets.LoadAsset<Material>("Smoke"); ((Renderer)component).material.color = new Color(1f, 1f, 1f, 0.5f); ((Renderer)component).material.globalIlluminationFlags = (MaterialGlobalIlluminationFlags)4; overheatAud.clip = funnyAssets.LoadAsset<AudioClip>("steamLoop3.wav"); overheatAud.loop = true; overheatAud.panStereo = 0.1f; overheatAud.pitch = 0.75f; overheatAud.playOnAwake = false; overheatAud.volume = 0.75f; overheatAud.outputAudioMixerGroup = ((Component)((Component)__instance).transform).GetComponent<AudioSource>().outputAudioMixerGroup; ColorOverLifetimeModule colorOverLifetime = overheatParticle.colorOverLifetime; ((ColorOverLifetimeModule)(ref colorOverLifetime)).enabled = true; Gradient val = new Gradient(); val.SetKeys((Gr