using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using Configgy;
using HarmonyLib;
using SkullProject;
using SkullProject.Patches;
using TestOnStuff.Patches;
using UnityEngine;
using UnityEngine.AddressableAssets;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("TestOnStuff")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TestOnStuff")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("9888883e-e4b7-4bd7-88cf-f7b3ee196fd7")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace TestOnStuff.Patches
{
[HarmonyPatch(typeof(Punch))]
internal class TorchPatchFun
{
[HarmonyPatch("PunchStart")]
[HarmonyPrefix]
private static void FullBrightTorchF(Punch __instance)
{
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Invalid comparison between Unknown and I4
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_0278: Invalid comparison between Unknown and I4
//IL_0223: Unknown result type (might be due to invalid IL or missing references)
//IL_0228: Unknown result type (might be due to invalid IL or missing references)
//IL_023b: Unknown result type (might be due to invalid IL or missing references)
//IL_0309: Unknown result type (might be due to invalid IL or missing references)
//IL_030e: Unknown result type (might be due to invalid IL or missing references)
//IL_033d: Unknown result type (might be due to invalid IL or missing references)
//IL_0342: Unknown result type (might be due to invalid IL or missing references)
//IL_035c: Unknown result type (might be due to invalid IL or missing references)
//IL_0363: Expected O, but got Unknown
//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
//IL_03f6: Unknown result type (might be due to invalid IL or missing references)
//IL_03fd: Invalid comparison between Unknown and I4
if (!SkullBase.Enabled || !SkullBase.ToggledT || !Object.FindObjectOfType<Punch>().holding)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 5)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Torch: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (num2 < num && SkullBase.Enabled && SkullBase.ToggledT && SkullBase.RequireNearbyLookingT && !(Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView))
{
continue;
}
if ((int)list[j].enemyType == 21)
{
list[j].idol = ((Component)list[j]).GetComponent<Idol>();
list[j].idol.Death();
}
num = num2;
if (SkullBase.ParryOnBoom)
{
__instance.Parry(false, (EnemyIdentifier)null, "FUNNY LIGHT");
}
if (!SkullBase.Enabled)
{
continue;
}
int num3 = 0;
while (num3 < SkullBase.MaxTargets)
{
if (!list[j].dead)
{
VirtueInsignia component = AddressablesExtensions.ToAsset(Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Virtue.prefab").WaitForCompletion().GetComponent<Drone>()
.projectile).GetComponent<VirtueInsignia>();
VirtueInsignia val2 = Object.Instantiate<VirtueInsignia>(component, ((Component)list[j]).transform.position, Quaternion.identity);
EnemyTarget target = new EnemyTarget(((Component)list[j]).transform);
val2.target = target;
val2.damage = SkullBase.BeamDamage;
val2.charges = SkullBase.BeamAmount;
val2.explosionLength = SkullBase.BeamTimeLength;
((Component)val2).transform.localScale = new Vector3(SkullBase.BeamSize, SkullBase.BeamSize, SkullBase.BeamSize);
val2.predictive = SkullBase.PredictableBeam;
val2.parentDrone = null;
val2.hadParent = false;
val2.otherParent = null;
val2.noTracking = SkullBase.IsBeamStationary;
val2.windUpSpeedMultiplier = SkullBase.BeamSpeed;
if ((int)list[j].enemyType == 9)
{
((Component)list[j]).GetComponent<Drone>().Enrage();
MonoSingleton<StyleHUD>.Instance.AddPoints(30, "UNO REVERSE", ((Component)MonoSingleton<NewMovement>.Instance).gameObject, list[j], -1, "", "");
}
}
j++;
}
}
}
}
[HarmonyPatch(typeof(Punch))]
internal class TorchPatch
{
[HarmonyPatch("PunchStart")]
[HarmonyPostfix]
private static void FullBrightTorch(Punch __instance)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Invalid comparison between Unknown and I4
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Invalid comparison between Unknown and I4
//IL_0092: 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_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Invalid comparison between Unknown and I4
//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Unknown result type (might be due to invalid IL or missing references)
//IL_0232: Unknown result type (might be due to invalid IL or missing references)
//IL_0245: Unknown result type (might be due to invalid IL or missing references)
//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0302: Unknown result type (might be due to invalid IL or missing references)
//IL_031c: Unknown result type (might be due to invalid IL or missing references)
//IL_0323: Expected O, but got Unknown
//IL_0366: Unknown result type (might be due to invalid IL or missing references)
//IL_03b6: Unknown result type (might be due to invalid IL or missing references)
//IL_03bd: Invalid comparison between Unknown and I4
if (!SkullBase.Enabled || !SkullBase.ToggledT)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 5)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && (int)val.enemyType != 21 && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || (int)val.enemyType == 21 || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Torch: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (num2 < num && SkullBase.Enabled && SkullBase.ToggledT && SkullBase.RequireNearbyLookingT && !(Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView))
{
continue;
}
num = num2;
if (SkullBase.ParryOnBoom)
{
__instance.Parry(false, (EnemyIdentifier)null, "FUNNY LIGHT");
}
if (!SkullBase.Enabled)
{
continue;
}
int num3 = 0;
while (num3 < SkullBase.MaxTargets)
{
if (!list[j].dead)
{
VirtueInsignia component = AddressablesExtensions.ToAsset(Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Virtue.prefab").WaitForCompletion().GetComponent<Drone>()
.projectile).GetComponent<VirtueInsignia>();
VirtueInsignia val2 = Object.Instantiate<VirtueInsignia>(component, ((Component)list[j]).transform.position, Quaternion.identity);
EnemyTarget target = new EnemyTarget(((Component)list[j]).transform);
val2.target = target;
val2.damage = SkullBase.BeamDamage;
val2.charges = SkullBase.BeamAmount;
val2.explosionLength = SkullBase.BeamTimeLength;
((Component)val2).transform.localScale = new Vector3(SkullBase.BeamSize, SkullBase.BeamSize, SkullBase.BeamSize);
val2.predictive = SkullBase.PredictableBeam;
val2.parentDrone = null;
val2.hadParent = false;
val2.otherParent = null;
val2.noTracking = SkullBase.IsBeamStationary;
val2.windUpSpeedMultiplier = SkullBase.BeamSpeed;
if ((int)list[j].enemyType == 9)
{
((Component)list[j]).GetComponent<Drone>().Enrage();
MonoSingleton<StyleHUD>.Instance.AddPoints(30, "UNO REVERSE", ((Component)MonoSingleton<NewMovement>.Instance).gameObject, list[j], -1, "", "");
}
}
j++;
}
}
}
}
}
namespace SkullProject
{
public enum ProjStyle
{
Default,
Homing,
Explosive
}
[BepInPlugin("D1g1tal.UltraSkulls", "UltraSkulls", "1.0.0")]
public class SkullBase : BaseUnityPlugin
{
private ConfigBuilder config;
public const string modGUID = "D1g1tal.UltraSkulls";
public const string modName = "UltraSkulls";
public const string modVer = "1.0.0";
private readonly Harmony harmony = new Harmony("D1g1tal.UltraSkulls");
public static SkullBase Instance;
public static ManualLogSource mls;
[Configgable("", null, 0, "Look in BepInEx console for a tutorial on how to use the mod, BepInEx console is opened when you start the game")]
public static bool Enabled = true;
[Configgable("Red Skull Settings", null, 0, "Makes the explosion a 'Super Explosion'")]
public static bool SuperBoom = false;
[Configgable("Red Skull Settings", null, 0, "Both explosions all in one")]
public static bool UltraBoom = false;
[Configgable("Red Skull Settings", null, 0, null)]
public static float ScaleOfBoom = 5f;
[Configgable("Red Skull Settings", null, 0, null)]
public static int BoomDamage = 45;
[Configgable("Red Skull Settings", null, 0, null)]
public static float BoomSpeed = 15f;
[Configgable("Red Skull Settings", null, 0, "Sets the amount of force from the explosion amount equal to an ultraboost")]
public static bool IsBoomUltrabooster = false;
[Configgable("Red Skull Settings", null, 0, null)]
public static bool CanBoomIgniteTargets = false;
[Configgable("Misc", null, 0, "Adds a custom style text and auto parrys on punch")]
public static bool ParryOnBoom = true;
[Configgable("Misc", "Minimum skull target distance", 0, "The minimum distance the skull can detect enemys from.")]
public static float minDistanceOnPunch = 30f;
[Configgable("Misc", null, 0, "Sets the amount of enemys the skull can detect at once.")]
public static int MaxTargets = 7;
[Configgable("Blue Skull Settings", null, 0, "Makes the projectile explode, I recommend using a projectile size of 1 with this on")]
public static bool ProjectileExplode = false;
[Configgable("Blue Skull Settings", null, 0, "Makes the projectile strong?")]
public static bool StrongProjectile = false;
[Configgable("Blue Skull Settings", null, 0, "The turn speed of the projectile")]
public static float ProjectileTurnSpeed = 2.5f;
[Configgable("Blue Skull Settings", null, 0, null)]
public static bool ProjectileIgnoreExplosions = false;
[Configgable("Blue Skull Settings", null, 0, "Changes how the projectile looks like")]
public static ProjStyle ProjectileStyle = ProjStyle.Homing;
[Configgable("Blue Skull Settings", null, 0, "The more higher the value is, the more the projectile will attempt to predict the target")]
public static float ProjectileHomingPredictionMultiplier = 1f;
[Configgable("Blue Skull Settings", null, 0, "Requires 'Proj Explode' to be toggled on")]
public static bool ProjectileBigExplosion = false;
[Configgable("Blue Skull Settings", null, 0, null)]
public static HomingType ProjectileHomingType = (HomingType)1;
[Configgable("Blue Skull Settings", null, 0, null)]
public static float ProjectileDamage = 25f;
[Configgable("Blue Skull Settings", null, 0, null)]
[Range(50f, 1000f)]
public static float ProjectileSpeed = 100f;
[Configgable("Blue Skull Settings", null, 0, "1 = normal size")]
public static float ProjectileSize = 1f;
[Configgable("Torch Settings", null, 0, null)]
public static int BeamDamage = 21;
[Configgable("Torch Settings", null, 0, null)]
public static bool PredictableBeam = false;
[Configgable("Torch Settings", null, 0, "The amount of times the beam can attack at once on an enemy.")]
public static int BeamAmount = 1;
[Configgable("Torch Settings", null, 0, null)]
public static float BeamSize = 1.75f;
[Configgable("Torch Settings", null, 0, null)]
public static bool IsBeamStationary = false;
[Configgable("Torch Settings", null, 0, "The time it takes for the beam to fade away")]
public static float BeamTimeLength = 1f;
[Configgable("Torch Settings", null, 0, "The higher the speed the faster it takes to explode")]
public static float BeamSpeed = 2.75f;
[Configgable("Torch Settings", "Require looking nearby the enemy to target", 0, "Makes it so you have to look near the targets for it to work")]
public static bool RequireNearbyLookingT = false;
[Configgable("Blue Skull Settings", "Require looking nearby the enemy to target", 0, "Makes it so you have to look near the targets for it to work")]
public static bool RequireNearbyLookingB = false;
[Configgable("Red Skull Settings", "Require looking nearby the enemy to target", 0, "Makes it so you have to look near the targets for it to work")]
public static bool RequireNearbyLookingR = false;
[Configgable("Torch Settings", "Toggle changes", 0, "Toggle skull/item change")]
public static bool ToggledT = true;
[Configgable("Blue Skull Settings", "Toggle changes", 0, "Toggle skull/item change")]
public static bool ToggledB = true;
[Configgable("Red Skull Settings", "Toggle changes", 0, "Toggle skull/item change")]
public static bool ToggledR = true;
[Configgable("Misc", "Fun mode :)", 0, "It's pretty fun I must say (Restart to apply change)")]
public static bool FunMode = false;
private void Awake()
{
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Expected O, but got Unknown
if (!Enabled)
{
((Behaviour)this).enabled = false;
return;
}
FunMode = PlayerPrefs.GetInt("Fun") == 1;
config = new ConfigBuilder("D1g1tal.UltraSkulls", "UltraSkulls");
config.BuildAll();
if ((Object)(object)Instance == (Object)null)
{
Instance = this;
}
mls = Logger.CreateLogSource("UltraSkulls");
mls.LogInfo((object)"UltraSkulls plugin has loaded. Patching skulls");
harmony.PatchAll(typeof(SkullBase));
}
public void Start()
{
if (FunMode)
{
harmony.PatchAll(typeof(RedSkullPatchFun));
harmony.PatchAll(typeof(BlueSkullPatchFun));
harmony.PatchAll(typeof(TorchPatchFun));
}
else
{
harmony.PatchAll(typeof(RedSkullPatch));
harmony.PatchAll(typeof(BlueSkullPatch));
harmony.PatchAll(typeof(TorchPatch));
}
}
private void Update()
{
PlayerPrefs.SetInt("Fun", FunMode ? 1 : 0);
}
}
}
namespace SkullProject.Patches
{
[HarmonyPatch(typeof(Punch))]
internal class BlueSkullPatchFun
{
[HarmonyPatch("PunchStart")]
[HarmonyPrefix]
private static void ProjBluePatchF(Punch __instance)
{
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Invalid comparison between Unknown and I4
//IL_0167: Unknown result type (might be due to invalid IL or missing references)
//IL_016c: Unknown result type (might be due to invalid IL or missing references)
//IL_018d: Unknown result type (might be due to invalid IL or missing references)
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: 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_00ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_0264: 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_0302: Unknown result type (might be due to invalid IL or missing references)
//IL_0309: Invalid comparison between Unknown and I4
//IL_034e: Unknown result type (might be due to invalid IL or missing references)
//IL_0361: Unknown result type (might be due to invalid IL or missing references)
//IL_0370: Unknown result type (might be due to invalid IL or missing references)
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_037f: Unknown result type (might be due to invalid IL or missing references)
//IL_0384: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
//IL_03aa: Expected O, but got Unknown
//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
//IL_03f4: Unknown result type (might be due to invalid IL or missing references)
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
if (!SkullBase.Enabled || !SkullBase.ToggledB || !Object.FindObjectOfType<Punch>().holding)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 1)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
Projectile val2 = null;
switch (SkullBase.ProjectileStyle)
{
case ProjStyle.Default:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Projectile Zombie.prefab").WaitForCompletion().GetComponent<ZombieProjectiles>()
.projectile.GetComponent<Projectile>();
break;
case ProjStyle.Homing:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Mindflayer.prefab").WaitForCompletion().GetComponent<Mindflayer>()
.homingProjectile.GetComponent<Projectile>();
break;
case ProjStyle.Explosive:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Mass.prefab").WaitForCompletion().GetComponent<Mass>()
.explosiveProjectile.GetComponent<Projectile>();
break;
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Blue: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (!(num2 < num) || !SkullBase.Enabled || !SkullBase.ToggledB || !SkullBase.RequireNearbyLookingB || Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView)
{
if ((int)list[j].enemyType == 21)
{
list[j].idol = ((Component)list[j]).GetComponent<Idol>();
list[j].idol.Death();
}
num = num2;
Projectile val3 = Object.Instantiate<Projectile>(val2, ((Component)heldItem).transform.position, Quaternion.LookRotation((((Component)list[j]).transform.position - ((Component)MonoSingleton<NewMovement>.Instance).transform.position) * SkullBase.ProjectileSize));
val3.target = new EnemyTarget(((Component)list[j]).transform);
val3.playerBullet = true;
val3.safeEnemyType = (EnemyType)0;
val3.homingType = SkullBase.ProjectileHomingType;
val3.ignoreExplosions = SkullBase.ProjectileIgnoreExplosions;
val3.speed = SkullBase.ProjectileSpeed;
((Component)val3).transform.localScale = new Vector3(SkullBase.ProjectileSize, SkullBase.ProjectileSize, SkullBase.ProjectileSize);
val3.unparryable = true;
val3.sourceWeapon = ((Component)MonoSingleton<NewMovement>.Instance).gameObject;
val3.explosive = SkullBase.ProjectileExplode;
val3.friendly = true;
val3.predictiveHomingMultiplier = SkullBase.ProjectileHomingPredictionMultiplier;
val3.bigExplosion = SkullBase.ProjectileBigExplosion;
if (SkullBase.ProjectileExplode)
{
val3.explosionEffect = ((!SkullBase.ProjectileBigExplosion) ? MonoSingleton<DefaultReferenceManager>.Instance.explosion : ((SkullBase.ProjectileStyle == ProjStyle.Homing) ? AddressablesExtensions.ToAsset(Resources.FindObjectsOfTypeAll<Mindflayer>()[0].deathExplosion).gameObject : MonoSingleton<DefaultReferenceManager>.Instance.superExplosion));
}
Explosion component = val3.explosionEffect.GetComponent<Explosion>();
component.maxSize *= SkullBase.ProjectileSize;
val3.explosionEffect.GetComponent<Explosion>().canHit = (AffectedSubjects)2;
}
}
}
}
[HarmonyPatch(typeof(Punch))]
internal class BlueSkullPatch
{
[HarmonyPatch("PunchStart")]
[HarmonyPostfix]
private static void ProjBluePatch(Punch __instance)
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Invalid comparison between Unknown and I4
//IL_0171: Unknown result type (might be due to invalid IL or missing references)
//IL_0176: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Invalid comparison between Unknown and I4
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Invalid comparison between Unknown and I4
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_0113: Unknown result type (might be due to invalid IL or missing references)
//IL_026e: Unknown result type (might be due to invalid IL or missing references)
//IL_0281: Unknown result type (might be due to invalid IL or missing references)
//IL_030e: Unknown result type (might be due to invalid IL or missing references)
//IL_0321: Unknown result type (might be due to invalid IL or missing references)
//IL_0330: Unknown result type (might be due to invalid IL or missing references)
//IL_0335: Unknown result type (might be due to invalid IL or missing references)
//IL_033f: Unknown result type (might be due to invalid IL or missing references)
//IL_0344: Unknown result type (might be due to invalid IL or missing references)
//IL_0360: Unknown result type (might be due to invalid IL or missing references)
//IL_036a: Expected O, but got Unknown
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_037c: Unknown result type (might be due to invalid IL or missing references)
//IL_0381: Unknown result type (might be due to invalid IL or missing references)
//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
//IL_047f: Unknown result type (might be due to invalid IL or missing references)
//IL_02be: Unknown result type (might be due to invalid IL or missing references)
//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
if (!SkullBase.Enabled || !SkullBase.ToggledB)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 1)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && (int)val.enemyType != 21 && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || (int)val.enemyType == 21 || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
Projectile val2 = null;
switch (SkullBase.ProjectileStyle)
{
case ProjStyle.Default:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Projectile Zombie.prefab").WaitForCompletion().GetComponent<ZombieProjectiles>()
.projectile.GetComponent<Projectile>();
break;
case ProjStyle.Homing:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Mindflayer.prefab").WaitForCompletion().GetComponent<Mindflayer>()
.homingProjectile.GetComponent<Projectile>();
break;
case ProjStyle.Explosive:
val2 = Addressables.LoadAssetAsync<GameObject>((object)"Assets/Prefabs/Enemies/Mass.prefab").WaitForCompletion().GetComponent<Mass>()
.explosiveProjectile.GetComponent<Projectile>();
break;
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Blue: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (!(num2 < num) || !SkullBase.Enabled || !SkullBase.ToggledB || !SkullBase.RequireNearbyLookingB || Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView)
{
num = num2;
Projectile val3 = Object.Instantiate<Projectile>(val2, ((Component)heldItem).transform.position, Quaternion.LookRotation((((Component)list[j]).transform.position - ((Component)MonoSingleton<NewMovement>.Instance).transform.position) * SkullBase.ProjectileSize));
val3.target = new EnemyTarget(((Component)list[j]).transform);
val3.playerBullet = true;
val3.safeEnemyType = (EnemyType)0;
val3.homingType = SkullBase.ProjectileHomingType;
val3.ignoreExplosions = SkullBase.ProjectileIgnoreExplosions;
val3.speed = SkullBase.ProjectileSpeed;
((Component)val3).transform.localScale = new Vector3(SkullBase.ProjectileSize, SkullBase.ProjectileSize, SkullBase.ProjectileSize);
val3.unparryable = true;
val3.sourceWeapon = ((Component)MonoSingleton<NewMovement>.Instance).gameObject;
val3.explosive = SkullBase.ProjectileExplode;
val3.friendly = true;
val3.predictiveHomingMultiplier = SkullBase.ProjectileHomingPredictionMultiplier;
val3.bigExplosion = SkullBase.ProjectileBigExplosion;
if (SkullBase.ProjectileExplode)
{
val3.explosionEffect = ((!SkullBase.ProjectileBigExplosion) ? MonoSingleton<DefaultReferenceManager>.Instance.explosion : ((SkullBase.ProjectileStyle == ProjStyle.Homing) ? AddressablesExtensions.ToAsset(Resources.FindObjectsOfTypeAll<Mindflayer>()[0].deathExplosion).gameObject : MonoSingleton<DefaultReferenceManager>.Instance.superExplosion));
}
Explosion component = val3.explosionEffect.GetComponent<Explosion>();
component.maxSize *= SkullBase.ProjectileSize;
val3.explosionEffect.GetComponent<Explosion>().canHit = (AffectedSubjects)2;
}
}
}
}
[HarmonyPatch(typeof(Punch))]
internal class RedSkullPatchFun
{
[HarmonyPatch("PunchStart")]
[HarmonyPrefix]
private static void ArsonRedPatchF(Punch __instance)
{
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Invalid comparison between Unknown and I4
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
//IL_0102: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0271: Unknown result type (might be due to invalid IL or missing references)
//IL_0278: Invalid comparison between Unknown and I4
//IL_0223: Unknown result type (might be due to invalid IL or missing references)
//IL_0228: Unknown result type (might be due to invalid IL or missing references)
//IL_023b: Unknown result type (might be due to invalid IL or missing references)
//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
//IL_03ba: Unknown result type (might be due to invalid IL or missing references)
//IL_0423: Unknown result type (might be due to invalid IL or missing references)
//IL_0323: Unknown result type (might be due to invalid IL or missing references)
//IL_0328: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Unknown result type (might be due to invalid IL or missing references)
//IL_0450: Unknown result type (might be due to invalid IL or missing references)
//IL_0455: 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_04db: Unknown result type (might be due to invalid IL or missing references)
//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
//IL_0549: Unknown result type (might be due to invalid IL or missing references)
if (!SkullBase.Enabled || !SkullBase.ToggledR || !Object.FindObjectOfType<Punch>().holding)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 2)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Red: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (!(num2 < num) || !SkullBase.Enabled || !SkullBase.ToggledR || !SkullBase.RequireNearbyLookingR || Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView)
{
if ((int)list[j].enemyType == 21)
{
list[j].idol = ((Component)list[j]).GetComponent<Idol>();
list[j].idol.Death();
}
if (SkullBase.MaxTargets >= 10)
{
Object.Destroy((Object)(object)((Component)list[j]).gameObject);
}
num = num2;
if (SkullBase.ParryOnBoom)
{
__instance.Parry(false, (EnemyIdentifier)null, "RED BOOM");
}
if (!SkullBase.SuperBoom)
{
GameObject val2 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.explosion, ((Component)list[j]).transform.position, Quaternion.identity);
val2.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val2.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val2.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val2.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val2.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val2.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
else
{
GameObject val3 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.superExplosion, ((Component)list[j]).transform.position, Quaternion.identity);
val3.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val3.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val3.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val3.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val3.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val3.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
if (SkullBase.UltraBoom)
{
GameObject val4 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.explosion, ((Component)list[j]).transform.position, Quaternion.identity);
val4.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val4.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val4.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val4.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val4.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val4.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
GameObject val5 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.superExplosion, ((Component)list[j]).transform.position, Quaternion.identity);
val5.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val5.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val5.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val5.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val5.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val5.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
}
}
}
}
[HarmonyPatch(typeof(Punch))]
internal class RedSkullPatch
{
[HarmonyPatch("PunchStart")]
[HarmonyPostfix]
private static void ArsonRedPatch(Punch __instance)
{
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Invalid comparison between Unknown and I4
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0086: Invalid comparison between Unknown and I4
//IL_0092: 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_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_00f4: Invalid comparison between Unknown and I4
//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Unknown result type (might be due to invalid IL or missing references)
//IL_0232: Unknown result type (might be due to invalid IL or missing references)
//IL_0245: Unknown result type (might be due to invalid IL or missing references)
//IL_0375: Unknown result type (might be due to invalid IL or missing references)
//IL_037a: Unknown result type (might be due to invalid IL or missing references)
//IL_03e3: Unknown result type (might be due to invalid IL or missing references)
//IL_02e3: Unknown result type (might be due to invalid IL or missing references)
//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
//IL_0351: Unknown result type (might be due to invalid IL or missing references)
//IL_0410: Unknown result type (might be due to invalid IL or missing references)
//IL_0415: Unknown result type (might be due to invalid IL or missing references)
//IL_047e: Unknown result type (might be due to invalid IL or missing references)
//IL_049b: Unknown result type (might be due to invalid IL or missing references)
//IL_04a0: Unknown result type (might be due to invalid IL or missing references)
//IL_0509: Unknown result type (might be due to invalid IL or missing references)
if (!SkullBase.Enabled || !SkullBase.ToggledR)
{
return;
}
ItemIdentifier heldItem = __instance.heldItem;
if ((int)heldItem.itemType != 2)
{
return;
}
float num = SkullBase.minDistanceOnPunch;
EnemyIdentifier[] array = Object.FindObjectsOfType<EnemyIdentifier>();
List<EnemyIdentifier> list = new List<EnemyIdentifier>();
EnemyIdentifier[] array2 = array;
foreach (EnemyIdentifier val in array2)
{
if (!val.dead && !val.Blessed && (Object)(object)val != (Object)null && (int)val.enemyType != 21 && !Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Add(val);
}
if (val.dead || val.Blessed || (Object)(object)val == (Object)null || (int)val.enemyType == 21 || Physics.Linecast(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)val).transform.position, LayerMask.op_Implicit(MonoSingleton<NewMovement>.Instance.lmask)))
{
list.Remove(val);
}
}
for (int j = 0; j < SkullBase.MaxTargets; j++)
{
if (!((Object)(object)list[j] != (Object)null))
{
continue;
}
if (!MonoSingleton<CheatsController>.Instance.cheatsEnabled)
{
MonoSingleton<CheatsController>.Instance.ActivateCheats();
}
SkullBase.mls.LogInfo((object)("Enemys found Red: " + list.Count + ", Enemy target: " + (object)((Component)list[j]).gameObject));
float num2 = Vector3.Distance(((Component)MonoSingleton<NewMovement>.Instance).transform.position, ((Component)list[j]).transform.position);
if (num2 < num && SkullBase.Enabled && SkullBase.ToggledR && SkullBase.RequireNearbyLookingR && !(Vector3.Dot(-((Component)MonoSingleton<NewMovement>.Instance.cc.cam).transform.forward, ((Component)list[j]).transform.position) <= MonoSingleton<NewMovement>.Instance.cc.cam.fieldOfView))
{
continue;
}
num = num2;
if (SkullBase.ParryOnBoom)
{
__instance.Parry(false, (EnemyIdentifier)null, "RED BOOM");
}
if (!SkullBase.SuperBoom)
{
if (SkullBase.MaxTargets >= 10)
{
Object.Destroy((Object)(object)((Component)list[j]).gameObject);
}
GameObject val2 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.explosion, ((Component)list[j]).transform.position, Quaternion.identity);
val2.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val2.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val2.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val2.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val2.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val2.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
else
{
GameObject val3 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.superExplosion, ((Component)list[j]).transform.position, Quaternion.identity);
val3.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val3.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val3.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val3.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val3.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val3.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
if (SkullBase.UltraBoom)
{
GameObject val4 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.explosion, ((Component)list[j]).transform.position, Quaternion.identity);
val4.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val4.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val4.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val4.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val4.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val4.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
GameObject val5 = Object.Instantiate<GameObject>(MonoSingleton<DefaultReferenceManager>.Instance.superExplosion, ((Component)list[j]).transform.position, Quaternion.identity);
val5.GetComponentInChildren<Explosion>().damage = SkullBase.BoomDamage;
val5.GetComponentInChildren<Explosion>().maxSize = SkullBase.ScaleOfBoom;
val5.GetComponentInChildren<Explosion>().speed = SkullBase.BoomSpeed;
val5.GetComponentInChildren<Explosion>().ignite = SkullBase.CanBoomIgniteTargets;
val5.GetComponentInChildren<Explosion>().ultrabooster = SkullBase.IsBoomUltrabooster;
val5.GetComponentInChildren<Explosion>().canHit = (AffectedSubjects)2;
}
}
}
}
}