using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Threading;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using MauriceBaller.Cheats;
using MauriceBridge;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using PluginConfig.API.Functionals;
using TMPro;
using ULTRAKILL.Enemy;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
[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("bitmotte.MauriceBaller")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("2.0.0.0")]
[assembly: AssemblyInformationalVersion("2.0.0+46555565b2b8c1061a034061308747df11d3eb91")]
[assembly: AssemblyProduct("Maurice Baller")]
[assembly: AssemblyTitle("bitmotte.MauriceBaller")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
public class BallerLeg : MonoBehaviour
{
private bool goodToGo = false;
public Transform joint1;
public Transform joint2;
public Transform joint3;
public LineRenderer legRenderer;
private void Awake()
{
joint1 = ((Component)this).transform.GetChild(0);
joint2 = ((Component)this).transform.GetChild(1);
joint3 = ((Component)this).transform.GetChild(2);
((Component)((Component)this).transform.GetChild(3)).gameObject.TryGetComponent<LineRenderer>(ref legRenderer);
if ((Object)(object)legRenderer == (Object)null)
{
legRenderer = ((Component)((Component)this).transform.GetChild(3)).gameObject.AddComponent<LineRenderer>();
}
legRenderer.positionCount = 3;
goodToGo = true;
}
private void Update()
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
if (goodToGo)
{
legRenderer.SetPositions((Vector3[])(object)new Vector3[3] { joint1.position, joint2.position, joint3.position });
}
}
}
namespace MauriceBaller
{
public static class GlobalConfig
{
public static bool bestiaryAlreadyAdded = false;
public static bool sandboxItemAlreadyAdded = false;
public static Dictionary<string, bool> breakers = new Dictionary<string, bool>();
public static bool gravity = true;
public static float gravityScale = 1f;
public static float gravityScaleVariance = 0.5f;
public static float bounciness = 0.5f;
public static float bouncinessVariance = 0.3f;
public static bool legs = true;
public static bool variantJingle = true;
public static float variantChance = 1f;
public static Dictionary<string, float> individualVariantChances = new Dictionary<string, float>();
public static float totalVariantChances;
public static void InitGlobalConfig()
{
InitBreakers();
InitIndividualVariantChances();
}
private static void InitBreakers()
{
breakers.Add("ground slam", value: true);
breakers.Add("heavypunch", value: false);
breakers.Add("punch", value: false);
breakers.Add("explosion", value: false);
breakers.Add("zap", value: true);
breakers.Add("projectile", value: false);
breakers.Add("environment", value: true);
breakers.Add("acid", value: true);
breakers.Add("fire", value: false);
breakers.Add("revolver", value: false);
breakers.Add("shotgun", value: false);
breakers.Add("shotgunzone", value: false);
breakers.Add("chainsawzone", value: false);
breakers.Add("chainsaw", value: false);
breakers.Add("chainsawprojectile", value: false);
breakers.Add("hammer", value: false);
breakers.Add("nail", value: false);
breakers.Add("harpoon", value: true);
breakers.Add("zapper", value: false);
breakers.Add("aftershock", value: false);
breakers.Add("sawblade", value: true);
breakers.Add("railcannon", value: false);
breakers.Add("drill", value: false);
breakers.Add("drillpunch", value: false);
breakers.Add("cannonball", value: false);
breakers.Add("shotgun0", value: false);
breakers.Add("rocket0", value: false);
breakers.Add("enemy", value: false);
}
private static void InitIndividualVariantChances()
{
individualVariantChances.Add("plushie", 1f);
individualVariantChances.Add("gold", 1f);
individualVariantChances.Add("eye", 1f);
individualVariantChances.Add("loss", 1f);
individualVariantChances.Add("evil_mean_green", 1f);
individualVariantChances.Add("big", 1f);
individualVariantChances.Add("virtue", 1f);
individualVariantChances.Add("maurfire", 1f);
individualVariantChances.Add("looker", 1f);
individualVariantChances.Add("false_virtue", 1f);
individualVariantChances.Add("ballrice", 1f);
individualVariantChances.Add("moai", 1f);
individualVariantChances.Add("baller_block_man", 1f);
}
public static void CleanCorpses()
{
GameObject[] allCorpses = SceneUtility.allCorpses;
foreach (GameObject val in allCorpses)
{
if ((Object)(object)val != (Object)null)
{
Object.Destroy((Object)(object)val);
}
}
SceneUtility.allCorpses = Array.Empty<GameObject>();
}
}
public static class MauriceConfigurator
{
[CompilerGenerated]
private static class <>O
{
public static PostConfigChangeEvent <0>__UpdateGlobalConfig;
public static OnClick <1>__OpenDiscord;
public static OnClick <2>__CleanCorpses;
public static OnClick <3>__EnableAllVariants;
public static OnClick <4>__DisableAllVariants;
public static OnClick <5>__ResetAllVariants;
public static OnClick <6>__ResetAllBreakers;
public static OnClick <7>__EnableAllBreakers;
public static OnClick <8>__DisableAllBreakers;
}
public static ButtonField clean;
public static ButtonField resetBreakers;
public static ButtonField enableAllBreakers;
public static ButtonField disableAllBreakers;
public static BoolField groundSlamBreaker;
public static BoolField heavypunchBreaker;
public static BoolField punchBreaker;
public static BoolField explosionBreaker;
public static BoolField zapBreaker;
public static BoolField projectileBreaker;
public static BoolField environmentBreaker;
public static BoolField acidBreaker;
public static BoolField fireBreaker;
public static BoolField revolverBreaker;
public static BoolField shotgunBreaker;
public static BoolField shotgunzoneBreaker;
public static BoolField chainsawzoneBreaker;
public static BoolField chainsawBreaker;
public static BoolField chainsawprojectileBreaker;
public static BoolField hammerBreaker;
public static BoolField nailBreaker;
public static BoolField harpoonBreaker;
public static BoolField zapperBreaker;
public static BoolField aftershockBreaker;
public static BoolField sawbladeBreaker;
public static BoolField railcannonBreaker;
public static BoolField drillBreaker;
public static BoolField drillpunchBreaker;
public static BoolField cannonballBreaker;
public static BoolField shotgun0Breaker;
public static BoolField rocket0Breaker;
public static BoolField enemyBreaker;
public static BoolField gravity;
public static FloatSliderField gravityScale;
public static FloatSliderField gravityScaleVariance;
public static FloatSliderField bounciness;
public static FloatSliderField bouncinessVariance;
public static BoolField legs;
public static BoolField variantJingle;
public static FloatSliderField variantChance;
public static ButtonField resetVariants;
public static ButtonField maxOutAllVariants;
public static ButtonField disableAllVariants;
public static FloatSliderField plushieChance;
public static FloatSliderField goldChance;
public static FloatSliderField eyeChance;
public static FloatSliderField lossChance;
public static FloatSliderField evilMeanGreenChance;
public static FloatSliderField bigChance;
public static FloatSliderField virtueChance;
public static FloatSliderField maurfireChance;
public static FloatSliderField lookerChance;
public static FloatSliderField falseVirtueChance;
public static FloatSliderField ballriceChance;
public static FloatSliderField moaiChance;
public static FloatSliderField ballerBlockManChance;
public static ButtonField joinDC;
public static PluginConfigurator CreateConfigurator()
{
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Expected O, but got Unknown
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Expected O, but got Unknown
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Expected O, but got Unknown
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Expected O, but got Unknown
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Expected O, but got Unknown
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0085: Expected O, but got Unknown
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Expected O, but got Unknown
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Expected O, but got Unknown
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Expected O, but got Unknown
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00d2: Expected O, but got Unknown
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Expected O, but got Unknown
//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
//IL_00fe: Expected O, but got Unknown
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Expected O, but got Unknown
//IL_0117: Unknown result type (might be due to invalid IL or missing references)
//IL_0121: Expected O, but got Unknown
//IL_012d: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Expected O, but got Unknown
//IL_0143: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Expected O, but got Unknown
//IL_0159: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Expected O, but got Unknown
//IL_016f: Unknown result type (might be due to invalid IL or missing references)
//IL_0179: Expected O, but got Unknown
//IL_0185: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Expected O, but got Unknown
//IL_0195: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Expected O, but got Unknown
//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
//IL_01b2: Expected O, but got Unknown
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_01bf: Expected O, but got Unknown
//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Expected O, but got Unknown
//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
//IL_01eb: Expected O, but got Unknown
//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
//IL_0201: Expected O, but got Unknown
//IL_020d: Unknown result type (might be due to invalid IL or missing references)
//IL_0217: Expected O, but got Unknown
//IL_0223: Unknown result type (might be due to invalid IL or missing references)
//IL_022d: Expected O, but got Unknown
//IL_0239: Unknown result type (might be due to invalid IL or missing references)
//IL_0243: Expected O, but got Unknown
//IL_0249: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Expected O, but got Unknown
//IL_025c: Unknown result type (might be due to invalid IL or missing references)
//IL_0266: Expected O, but got Unknown
//IL_0272: Unknown result type (might be due to invalid IL or missing references)
//IL_027c: Expected O, but got Unknown
//IL_0288: Unknown result type (might be due to invalid IL or missing references)
//IL_0292: Expected O, but got Unknown
//IL_029e: Unknown result type (might be due to invalid IL or missing references)
//IL_02a8: Expected O, but got Unknown
//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
//IL_02be: Expected O, but got Unknown
//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
//IL_02cb: Expected O, but got Unknown
//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
//IL_02e1: Expected O, but got Unknown
//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
//IL_02f7: Expected O, but got Unknown
//IL_0303: Unknown result type (might be due to invalid IL or missing references)
//IL_030d: Expected O, but got Unknown
//IL_0313: Unknown result type (might be due to invalid IL or missing references)
//IL_031a: Expected O, but got Unknown
//IL_0326: Unknown result type (might be due to invalid IL or missing references)
//IL_0330: Expected O, but got Unknown
//IL_0336: Unknown result type (might be due to invalid IL or missing references)
//IL_033d: Expected O, but got Unknown
//IL_0349: Unknown result type (might be due to invalid IL or missing references)
//IL_0353: Expected O, but got Unknown
//IL_035f: Unknown result type (might be due to invalid IL or missing references)
//IL_0369: Expected O, but got Unknown
//IL_036f: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Expected O, but got Unknown
//IL_0383: Unknown result type (might be due to invalid IL or missing references)
//IL_038a: Expected O, but got Unknown
//IL_0396: Unknown result type (might be due to invalid IL or missing references)
//IL_03a0: Expected O, but got Unknown
//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
//IL_03b2: Expected O, but got Unknown
//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
//IL_03cb: Expected O, but got Unknown
//IL_03dd: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Expected O, but got Unknown
//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
//IL_03ff: Expected O, but got Unknown
//IL_040a: Unknown result type (might be due to invalid IL or missing references)
//IL_0411: Expected O, but got Unknown
//IL_0435: Unknown result type (might be due to invalid IL or missing references)
//IL_043f: Expected O, but got Unknown
//IL_0463: Unknown result type (might be due to invalid IL or missing references)
//IL_046d: Expected O, but got Unknown
//IL_0478: Unknown result type (might be due to invalid IL or missing references)
//IL_047f: Expected O, but got Unknown
//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
//IL_04ad: Expected O, but got Unknown
//IL_04d1: Unknown result type (might be due to invalid IL or missing references)
//IL_04db: Expected O, but got Unknown
//IL_04e6: Unknown result type (might be due to invalid IL or missing references)
//IL_04ed: Expected O, but got Unknown
//IL_04fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0508: Expected O, but got Unknown
//IL_0513: Unknown result type (might be due to invalid IL or missing references)
//IL_051a: Expected O, but got Unknown
//IL_052c: Unknown result type (might be due to invalid IL or missing references)
//IL_0533: Expected O, but got Unknown
//IL_0545: Unknown result type (might be due to invalid IL or missing references)
//IL_054c: Expected O, but got Unknown
//IL_055d: Unknown result type (might be due to invalid IL or missing references)
//IL_0567: Expected O, but got Unknown
//IL_058b: Unknown result type (might be due to invalid IL or missing references)
//IL_0595: Expected O, but got Unknown
//IL_05a5: Unknown result type (might be due to invalid IL or missing references)
//IL_05ac: Expected O, but got Unknown
//IL_05b3: Unknown result type (might be due to invalid IL or missing references)
//IL_05ba: Expected O, but got Unknown
//IL_05c6: Unknown result type (might be due to invalid IL or missing references)
//IL_05d0: Expected O, but got Unknown
//IL_05dc: Unknown result type (might be due to invalid IL or missing references)
//IL_05e6: Expected O, but got Unknown
//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
//IL_05fc: Expected O, but got Unknown
//IL_0603: Unknown result type (might be due to invalid IL or missing references)
//IL_060a: Expected O, but got Unknown
//IL_062a: Unknown result type (might be due to invalid IL or missing references)
//IL_0634: Expected O, but got Unknown
//IL_0642: Unknown result type (might be due to invalid IL or missing references)
//IL_0649: Expected O, but got Unknown
//IL_0669: Unknown result type (might be due to invalid IL or missing references)
//IL_0673: Expected O, but got Unknown
//IL_0681: Unknown result type (might be due to invalid IL or missing references)
//IL_0688: Expected O, but got Unknown
//IL_06a8: Unknown result type (might be due to invalid IL or missing references)
//IL_06b2: Expected O, but got Unknown
//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
//IL_06c7: Expected O, but got Unknown
//IL_06e7: Unknown result type (might be due to invalid IL or missing references)
//IL_06f1: Expected O, but got Unknown
//IL_06ff: Unknown result type (might be due to invalid IL or missing references)
//IL_0706: Expected O, but got Unknown
//IL_0726: Unknown result type (might be due to invalid IL or missing references)
//IL_0730: Expected O, but got Unknown
//IL_073e: Unknown result type (might be due to invalid IL or missing references)
//IL_0745: Expected O, but got Unknown
//IL_0765: Unknown result type (might be due to invalid IL or missing references)
//IL_076f: Expected O, but got Unknown
//IL_077d: Unknown result type (might be due to invalid IL or missing references)
//IL_0784: Expected O, but got Unknown
//IL_07a4: Unknown result type (might be due to invalid IL or missing references)
//IL_07ae: Expected O, but got Unknown
//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
//IL_07c3: Expected O, but got Unknown
//IL_07e3: Unknown result type (might be due to invalid IL or missing references)
//IL_07ed: Expected O, but got Unknown
//IL_07fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0802: Expected O, but got Unknown
//IL_0822: Unknown result type (might be due to invalid IL or missing references)
//IL_082c: Expected O, but got Unknown
//IL_083a: Unknown result type (might be due to invalid IL or missing references)
//IL_0841: Expected O, but got Unknown
//IL_0861: Unknown result type (might be due to invalid IL or missing references)
//IL_086b: Expected O, but got Unknown
//IL_0879: Unknown result type (might be due to invalid IL or missing references)
//IL_0880: Expected O, but got Unknown
//IL_08a0: Unknown result type (might be due to invalid IL or missing references)
//IL_08aa: Expected O, but got Unknown
//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
//IL_08bf: Expected O, but got Unknown
//IL_08df: Unknown result type (might be due to invalid IL or missing references)
//IL_08e9: Expected O, but got Unknown
//IL_08f7: Unknown result type (might be due to invalid IL or missing references)
//IL_08fe: Expected O, but got Unknown
//IL_091e: Unknown result type (might be due to invalid IL or missing references)
//IL_0928: Expected O, but got Unknown
//IL_0936: Unknown result type (might be due to invalid IL or missing references)
//IL_093d: Expected O, but got Unknown
//IL_0948: Unknown result type (might be due to invalid IL or missing references)
//IL_094f: Expected O, but got Unknown
//IL_0961: Unknown result type (might be due to invalid IL or missing references)
//IL_0968: Expected O, but got Unknown
//IL_0973: Unknown result type (might be due to invalid IL or missing references)
//IL_097a: Expected O, but got Unknown
//IL_098c: Unknown result type (might be due to invalid IL or missing references)
//IL_0993: Expected O, but got Unknown
//IL_09a3: Unknown result type (might be due to invalid IL or missing references)
//IL_09ad: Expected O, but got Unknown
//IL_09b8: Unknown result type (might be due to invalid IL or missing references)
//IL_09bf: Expected O, but got Unknown
//IL_09d0: Unknown result type (might be due to invalid IL or missing references)
//IL_09d5: Unknown result type (might be due to invalid IL or missing references)
//IL_09db: Expected O, but got Unknown
//IL_09fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0a01: Unknown result type (might be due to invalid IL or missing references)
//IL_0a07: Expected O, but got Unknown
//IL_0a22: Unknown result type (might be due to invalid IL or missing references)
//IL_0a27: Unknown result type (might be due to invalid IL or missing references)
//IL_0a2d: Expected O, but got Unknown
//IL_0a48: Unknown result type (might be due to invalid IL or missing references)
//IL_0a4d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a53: Expected O, but got Unknown
//IL_0a6e: Unknown result type (might be due to invalid IL or missing references)
//IL_0a73: Unknown result type (might be due to invalid IL or missing references)
//IL_0a79: Expected O, but got Unknown
//IL_0a94: Unknown result type (might be due to invalid IL or missing references)
//IL_0a99: Unknown result type (might be due to invalid IL or missing references)
//IL_0a9f: Expected O, but got Unknown
//IL_0aba: Unknown result type (might be due to invalid IL or missing references)
//IL_0abf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ac5: Expected O, but got Unknown
//IL_0ae0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ae5: Unknown result type (might be due to invalid IL or missing references)
//IL_0aeb: Expected O, but got Unknown
//IL_0b2f: Unknown result type (might be due to invalid IL or missing references)
//IL_0b36: Expected O, but got Unknown
//IL_0b53: Unknown result type (might be due to invalid IL or missing references)
//IL_0b62: Unknown result type (might be due to invalid IL or missing references)
//IL_0b06: Unknown result type (might be due to invalid IL or missing references)
//IL_0b0b: Unknown result type (might be due to invalid IL or missing references)
//IL_0b11: Expected O, but got Unknown
PluginConfigurator val = PluginConfigurator.Create("Maurice Baller", "bitmotte.MauriceBaller");
ConfigSpace val2 = new ConfigSpace(val.rootPanel, 15f);
clean = new ButtonField(val.rootPanel, "Clean up", "clean");
ConfigSpace val3 = new ConfigSpace(val.rootPanel, 15f);
ConfigPanel val4 = new ConfigPanel(val.rootPanel, "Breakers", "breakers");
ConfigSpace val5 = new ConfigSpace(val4, 15f);
resetBreakers = new ButtonField(val4, "Reset", "reset_breakers");
enableAllBreakers = new ButtonField(val4, "Enable All", "enable_all_breakers");
disableAllBreakers = new ButtonField(val4, "Disable All", "disable_all_breakers");
ConfigSpace val6 = new ConfigSpace(val4, 15f);
groundSlamBreaker = new BoolField(val4, "Ground Slam", "ground slam", true);
heavypunchBreaker = new BoolField(val4, "Knuckleblaster", "heavypunch", false);
punchBreaker = new BoolField(val4, "Feedbacker", "punch", false);
ConfigSpace val7 = new ConfigSpace(val4, 15f);
explosionBreaker = new BoolField(val4, "Explosion", "explosion", false);
zapBreaker = new BoolField(val4, "Zap by conduction spread", "zap", true);
projectileBreaker = new BoolField(val4, "Miscellaneous projectiles", "projectile", false);
environmentBreaker = new BoolField(val4, "Environment", "environment", true);
acidBreaker = new BoolField(val4, "Acid", "acid", true);
fireBreaker = new BoolField(val4, "Fire", "fire", false);
ConfigSpace val8 = new ConfigSpace(val4, 15f);
revolverBreaker = new BoolField(val4, "Revolver beam", "revolver", false);
ConfigSpace val9 = new ConfigSpace(val4, 15f);
shotgunBreaker = new BoolField(val4, "Shotgun pellet", "shotgun", false);
shotgunzoneBreaker = new BoolField(val4, "Close proximity shotgun blast", "shotgunzone", false);
chainsawzoneBreaker = new BoolField(val4, "Melee chainsaw tick", "chainsawzone", false);
chainsawBreaker = new BoolField(val4, "Detached chainsaw", "chainsaw", false);
chainsawprojectileBreaker = new BoolField(val4, "Flying chainsaw", "chainsawprojectile", false);
hammerBreaker = new BoolField(val4, "Impact hammer hit", "hammer", false);
ConfigSpace val10 = new ConfigSpace(val4, 15f);
nailBreaker = new BoolField(val4, "Nail", "nail", false);
harpoonBreaker = new BoolField(val4, "Magnet", "harpoon", true);
zapperBreaker = new BoolField(val4, "Conduction cable finished", "zapper", false);
aftershockBreaker = new BoolField(val4, "Zapped by self conduction", "aftershock", false);
sawbladeBreaker = new BoolField(val4, "Sawblade", "sawblade", true);
ConfigSpace val11 = new ConfigSpace(val4, 15f);
railcannonBreaker = new BoolField(val4, "Railcannon Beam", "railcannon", false);
drillBreaker = new BoolField(val4, "Screwdriver tick", "drill", false);
drillpunchBreaker = new BoolField(val4, "drillpunch (not corkscrew blow))", "drillpunch", false);
ConfigSpace val12 = new ConfigSpace(val4, 15f);
cannonballBreaker = new BoolField(val4, "Cannonball", "cannonball", false);
ConfigSpace val13 = new ConfigSpace(val4, 15f);
shotgun0Breaker = new BoolField(val4, "Shotgun core hitscan", "shotgun0", false);
rocket0Breaker = new BoolField(val4, "Rocket hitscan", "rocket0", false);
ConfigSpace val14 = new ConfigSpace(val4, 15f);
ConfigHeader val15 = new ConfigHeader(val4, "Notice : Initial shockwave counts as enemy . . . It will instantly break .", 13, (TextAlignmentOptions)513);
enemyBreaker = new BoolField(val4, "Enemy", "enemy", false);
ConfigSpace val16 = new ConfigSpace(val.rootPanel, 15f);
ConfigHeader val17 = new ConfigHeader(val.rootPanel, "Ball", 24, (TextAlignmentOptions)513);
ConfigHeader val18 = new ConfigHeader(val.rootPanel, "Notice : Some configs live update .", 14, (TextAlignmentOptions)513);
gravity = new BoolField(val.rootPanel, "Gravity", "gravity", true);
ConfigSpace val19 = new ConfigSpace(val.rootPanel, 7f);
gravityScale = new FloatSliderField(val.rootPanel, "Mass", "mass", new Tuple<float, float>(0.1f, 100f), 1f);
gravityScaleVariance = new FloatSliderField(val.rootPanel, "Variance", "mass_variance", new Tuple<float, float>(0f, 100f), 0.5f);
ConfigSpace val20 = new ConfigSpace(val.rootPanel, 7f);
bounciness = new FloatSliderField(val.rootPanel, "Bounciness", "bounciness", new Tuple<float, float>(0f, 1f), 0.5f);
bouncinessVariance = new FloatSliderField(val.rootPanel, "Variance", "bounciness_variance", new Tuple<float, float>(0f, 1f), 0.3f);
ConfigSpace val21 = new ConfigSpace(val.rootPanel, 7f);
legs = new BoolField(val.rootPanel, "Spider Legs", "legs", true);
ConfigSpace val22 = new ConfigSpace(val.rootPanel, 15f);
ConfigHeader val23 = new ConfigHeader(val.rootPanel, "Secret Variations", 24, (TextAlignmentOptions)513);
ConfigHeader val24 = new ConfigHeader(val.rootPanel, "Notice : There are 13 variations .", 14, (TextAlignmentOptions)513);
variantJingle = new BoolField(val.rootPanel, "Jingle", "variant_jingle", true);
variantChance = new FloatSliderField(val.rootPanel, "Chance ( % )", "variant_chance", new Tuple<float, float>(0f, 100f), 1f);
ConfigPanel val25 = new ConfigPanel(val.rootPanel, "Individual Likelihood", "variant_likelihood");
ConfigSpace val26 = new ConfigSpace(val25, 15f);
resetVariants = new ButtonField(val25, "Reset", "reset_variants");
maxOutAllVariants = new ButtonField(val25, "Max Out All", "max_out_all_variants");
disableAllVariants = new ButtonField(val25, "Disable All", "disable_all_variants");
ConfigSpace val27 = new ConfigSpace(val25, 15f);
plushieChance = new FloatSliderField(val25, "Plushie", "plushie", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val28 = new ConfigHeader(val25, "Credit to Bitmotte ( mod developer ) for the idea", 14, (TextAlignmentOptions)513);
goldChance = new FloatSliderField(val25, "Gold", "gold", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val29 = new ConfigHeader(val25, "Credit to @TProfilePicture on YouTube for the idea", 14, (TextAlignmentOptions)513);
eyeChance = new FloatSliderField(val25, "Eye", "eye", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val30 = new ConfigHeader(val25, "Credit to u/iamayoutuberiswear on Reddit for the idea", 14, (TextAlignmentOptions)513);
lossChance = new FloatSliderField(val25, "Loss", "loss", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val31 = new ConfigHeader(val25, "Credit to u/Fit-Recognition-7016 on Reddit for the idea", 14, (TextAlignmentOptions)513);
evilMeanGreenChance = new FloatSliderField(val25, "Evil Mean Green", "evil_mean_green", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val32 = new ConfigHeader(val25, "Credit to u/finding_my_father on Reddit for the idea", 14, (TextAlignmentOptions)513);
bigChance = new FloatSliderField(val25, "Massive Sky Faller", "big", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val33 = new ConfigHeader(val25, "Credit to u/Longjumping_Age8031 on Reddit for the idea", 14, (TextAlignmentOptions)513);
virtueChance = new FloatSliderField(val25, "Virtue Orb", "virtue", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val34 = new ConfigHeader(val25, "Credit to u/Malicious_Maurice on Reddit for the idea", 14, (TextAlignmentOptions)513);
maurfireChance = new FloatSliderField(val25, "Maurfire", "maurfire", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val35 = new ConfigHeader(val25, "Credit to u/SingerNo5708 on Reddit for the idea", 14, (TextAlignmentOptions)513);
lookerChance = new FloatSliderField(val25, "Looker", "looker", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val36 = new ConfigHeader(val25, "Credit to u/C_Franssens on Reddit for the idea", 14, (TextAlignmentOptions)513);
falseVirtueChance = new FloatSliderField(val25, "False Virtue", "false_virtue", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val37 = new ConfigHeader(val25, "Credit to u/NoProgress7287 on Reddit for the idea", 14, (TextAlignmentOptions)513);
ballriceChance = new FloatSliderField(val25, "Ballrice", "ballrice", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val38 = new ConfigHeader(val25, "Credit to u/FUR_Varsik14_52 on Reddit for the idea", 14, (TextAlignmentOptions)513);
moaiChance = new FloatSliderField(val25, "Moai", "moai", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val39 = new ConfigHeader(val25, "Credit to u/DontKnowLunar on Reddit for the idea", 14, (TextAlignmentOptions)513);
ballerBlockManChance = new FloatSliderField(val25, "Baller", "baller_block_man", new Tuple<float, float>(0f, 5f), 1f);
ConfigHeader val40 = new ConfigHeader(val25, "Credit to u/Traditional_Boot9840 on Reddit for the idea", 14, (TextAlignmentOptions)513);
ConfigSpace val41 = new ConfigSpace(val.rootPanel, 15f);
ConfigHeader val42 = new ConfigHeader(val.rootPanel, "Notice : Cheats can be found in the cheats menu .", 20, (TextAlignmentOptions)513);
ConfigSpace val43 = new ConfigSpace(val.rootPanel, 15f);
ConfigHeader val44 = new ConfigHeader(val.rootPanel, "Join my discord for sneak peeks,devlogs,and the possibility to test my mods early ! !", 20, (TextAlignmentOptions)513);
joinDC = new ButtonField(val.rootPanel, "Join my Discord", "joinDC");
ConfigSpace val45 = new ConfigSpace(val.rootPanel, 15f);
object obj = <>O.<0>__UpdateGlobalConfig;
if (obj == null)
{
PostConfigChangeEvent val46 = UpdateGlobalConfig;
<>O.<0>__UpdateGlobalConfig = val46;
obj = (object)val46;
}
val.postConfigChange += (PostConfigChangeEvent)obj;
UpdateGlobalConfig();
ButtonField obj2 = joinDC;
object obj3 = <>O.<1>__OpenDiscord;
if (obj3 == null)
{
OnClick val47 = OpenDiscord;
<>O.<1>__OpenDiscord = val47;
obj3 = (object)val47;
}
obj2.onClick += (OnClick)obj3;
ButtonField obj4 = clean;
object obj5 = <>O.<2>__CleanCorpses;
if (obj5 == null)
{
OnClick val48 = GlobalConfig.CleanCorpses;
<>O.<2>__CleanCorpses = val48;
obj5 = (object)val48;
}
obj4.onClick += (OnClick)obj5;
ButtonField obj6 = maxOutAllVariants;
object obj7 = <>O.<3>__EnableAllVariants;
if (obj7 == null)
{
OnClick val49 = EnableAllVariants;
<>O.<3>__EnableAllVariants = val49;
obj7 = (object)val49;
}
obj6.onClick += (OnClick)obj7;
ButtonField obj8 = disableAllVariants;
object obj9 = <>O.<4>__DisableAllVariants;
if (obj9 == null)
{
OnClick val50 = DisableAllVariants;
<>O.<4>__DisableAllVariants = val50;
obj9 = (object)val50;
}
obj8.onClick += (OnClick)obj9;
ButtonField obj10 = resetVariants;
object obj11 = <>O.<5>__ResetAllVariants;
if (obj11 == null)
{
OnClick val51 = ResetAllVariants;
<>O.<5>__ResetAllVariants = val51;
obj11 = (object)val51;
}
obj10.onClick += (OnClick)obj11;
ButtonField obj12 = resetBreakers;
object obj13 = <>O.<6>__ResetAllBreakers;
if (obj13 == null)
{
OnClick val52 = ResetAllBreakers;
<>O.<6>__ResetAllBreakers = val52;
obj13 = (object)val52;
}
obj12.onClick += (OnClick)obj13;
ButtonField obj14 = enableAllBreakers;
object obj15 = <>O.<7>__EnableAllBreakers;
if (obj15 == null)
{
OnClick val53 = EnableAllBreakers;
<>O.<7>__EnableAllBreakers = val53;
obj15 = (object)val53;
}
obj14.onClick += (OnClick)obj15;
ButtonField obj16 = disableAllBreakers;
object obj17 = <>O.<8>__DisableAllBreakers;
if (obj17 == null)
{
OnClick val54 = DisableAllBreakers;
<>O.<8>__DisableAllBreakers = val54;
obj17 = (object)val54;
}
obj16.onClick += (OnClick)obj17;
AssetBundle val55 = BundleTool.Load("balls.bundle");
Texture2D val56 = (Texture2D)val55.LoadAsset("Assets/baller.png");
val.icon = Sprite.Create(val56, new Rect(0f, 0f, (float)((Texture)val56).width, (float)((Texture)val56).height), new Vector2(0.5f, 0.5f), 100f);
val55.Unload(false);
return val;
}
private static void UpdateGlobalConfig()
{
GlobalConfig.breakers["ground slam"] = groundSlamBreaker.value;
GlobalConfig.breakers["heavypunch"] = heavypunchBreaker.value;
GlobalConfig.breakers["punch"] = punchBreaker.value;
GlobalConfig.breakers["explosion"] = explosionBreaker.value;
GlobalConfig.breakers["zap"] = zapBreaker.value;
GlobalConfig.breakers["projectile"] = projectileBreaker.value;
GlobalConfig.breakers["environment"] = environmentBreaker.value;
GlobalConfig.breakers["acid"] = acidBreaker.value;
GlobalConfig.breakers["fire"] = fireBreaker.value;
GlobalConfig.breakers["revolver"] = revolverBreaker.value;
GlobalConfig.breakers["shotgun"] = shotgunBreaker.value;
GlobalConfig.breakers["shotgunzone"] = shotgunzoneBreaker.value;
GlobalConfig.breakers["chainsawzone"] = chainsawzoneBreaker.value;
GlobalConfig.breakers["chainsaw"] = chainsawBreaker.value;
GlobalConfig.breakers["chainsawprojectile"] = chainsawprojectileBreaker.value;
GlobalConfig.breakers["hammer"] = hammerBreaker.value;
GlobalConfig.breakers["nail"] = nailBreaker.value;
GlobalConfig.breakers["harpoon"] = harpoonBreaker.value;
GlobalConfig.breakers["zapper"] = zapperBreaker.value;
GlobalConfig.breakers["aftershock"] = aftershockBreaker.value;
GlobalConfig.breakers["sawblade"] = sawbladeBreaker.value;
GlobalConfig.breakers["railcannon"] = railcannonBreaker.value;
GlobalConfig.breakers["drill"] = drillBreaker.value;
GlobalConfig.breakers["drillpunch"] = drillpunchBreaker.value;
GlobalConfig.breakers["cannonball"] = cannonballBreaker.value;
GlobalConfig.breakers["shotgun0"] = shotgun0Breaker.value;
GlobalConfig.breakers["rocket0"] = rocket0Breaker.value;
GlobalConfig.breakers["enemy"] = enemyBreaker.value;
GlobalConfig.gravity = gravity.value;
GlobalConfig.gravityScale = gravityScale.value;
GlobalConfig.gravityScaleVariance = gravityScaleVariance.value;
GlobalConfig.bounciness = bounciness.value;
GlobalConfig.bouncinessVariance = bouncinessVariance.value;
GlobalConfig.legs = legs.value;
GlobalConfig.variantJingle = variantJingle.value;
GlobalConfig.variantChance = variantChance.value;
GlobalConfig.individualVariantChances[((ConfigField)plushieChance).guid] = plushieChance.value;
GlobalConfig.individualVariantChances[((ConfigField)goldChance).guid] = goldChance.value;
GlobalConfig.individualVariantChances[((ConfigField)eyeChance).guid] = eyeChance.value;
GlobalConfig.individualVariantChances[((ConfigField)lossChance).guid] = lossChance.value;
GlobalConfig.individualVariantChances[((ConfigField)evilMeanGreenChance).guid] = evilMeanGreenChance.value;
GlobalConfig.individualVariantChances[((ConfigField)bigChance).guid] = bigChance.value;
GlobalConfig.individualVariantChances[((ConfigField)virtueChance).guid] = virtueChance.value;
GlobalConfig.individualVariantChances[((ConfigField)maurfireChance).guid] = maurfireChance.value;
GlobalConfig.individualVariantChances[((ConfigField)lookerChance).guid] = lookerChance.value;
GlobalConfig.individualVariantChances[((ConfigField)falseVirtueChance).guid] = falseVirtueChance.value;
GlobalConfig.individualVariantChances[((ConfigField)ballriceChance).guid] = ballriceChance.value;
GlobalConfig.individualVariantChances[((ConfigField)moaiChance).guid] = moaiChance.value;
GlobalConfig.individualVariantChances[((ConfigField)ballerBlockManChance).guid] = ballerBlockManChance.value;
GlobalConfig.totalVariantChances = 0f;
GlobalConfig.totalVariantChances += plushieChance.value;
GlobalConfig.totalVariantChances += goldChance.value;
GlobalConfig.totalVariantChances += eyeChance.value;
GlobalConfig.totalVariantChances += lossChance.value;
GlobalConfig.totalVariantChances += evilMeanGreenChance.value;
GlobalConfig.totalVariantChances += bigChance.value;
GlobalConfig.totalVariantChances += virtueChance.value;
GlobalConfig.totalVariantChances += maurfireChance.value;
GlobalConfig.totalVariantChances += lookerChance.value;
GlobalConfig.totalVariantChances += falseVirtueChance.value;
GlobalConfig.totalVariantChances += ballriceChance.value;
GlobalConfig.totalVariantChances += moaiChance.value;
GlobalConfig.totalVariantChances += ballerBlockManChance.value;
}
private static void EnableAllBreakers()
{
groundSlamBreaker.value = true;
groundSlamBreaker.TriggerValueChangeEvent();
heavypunchBreaker.value = true;
heavypunchBreaker.TriggerValueChangeEvent();
punchBreaker.value = true;
punchBreaker.TriggerValueChangeEvent();
explosionBreaker.value = true;
explosionBreaker.TriggerValueChangeEvent();
zapBreaker.value = true;
zapBreaker.TriggerValueChangeEvent();
projectileBreaker.value = true;
projectileBreaker.TriggerValueChangeEvent();
environmentBreaker.value = true;
environmentBreaker.TriggerValueChangeEvent();
acidBreaker.value = true;
acidBreaker.TriggerValueChangeEvent();
fireBreaker.value = true;
fireBreaker.TriggerValueChangeEvent();
revolverBreaker.value = true;
revolverBreaker.TriggerValueChangeEvent();
shotgunBreaker.value = true;
shotgunBreaker.TriggerValueChangeEvent();
shotgunzoneBreaker.value = true;
shotgunzoneBreaker.TriggerValueChangeEvent();
chainsawzoneBreaker.value = true;
chainsawzoneBreaker.TriggerValueChangeEvent();
chainsawBreaker.value = true;
chainsawBreaker.TriggerValueChangeEvent();
chainsawprojectileBreaker.value = true;
chainsawprojectileBreaker.TriggerValueChangeEvent();
hammerBreaker.value = true;
hammerBreaker.TriggerValueChangeEvent();
nailBreaker.value = true;
nailBreaker.TriggerValueChangeEvent();
harpoonBreaker.value = true;
harpoonBreaker.TriggerValueChangeEvent();
zapperBreaker.value = true;
zapperBreaker.TriggerValueChangeEvent();
aftershockBreaker.value = true;
aftershockBreaker.TriggerValueChangeEvent();
sawbladeBreaker.value = true;
sawbladeBreaker.TriggerValueChangeEvent();
railcannonBreaker.value = true;
railcannonBreaker.TriggerValueChangeEvent();
drillBreaker.value = true;
drillBreaker.TriggerValueChangeEvent();
drillpunchBreaker.value = true;
drillpunchBreaker.TriggerValueChangeEvent();
cannonballBreaker.value = true;
cannonballBreaker.TriggerValueChangeEvent();
shotgun0Breaker.value = true;
shotgun0Breaker.TriggerValueChangeEvent();
rocket0Breaker.value = true;
rocket0Breaker.TriggerValueChangeEvent();
enemyBreaker.value = true;
enemyBreaker.TriggerValueChangeEvent();
}
private static void DisableAllBreakers()
{
groundSlamBreaker.value = false;
groundSlamBreaker.TriggerValueChangeEvent();
heavypunchBreaker.value = false;
heavypunchBreaker.TriggerValueChangeEvent();
punchBreaker.value = false;
punchBreaker.TriggerValueChangeEvent();
explosionBreaker.value = false;
explosionBreaker.TriggerValueChangeEvent();
zapBreaker.value = false;
zapBreaker.TriggerValueChangeEvent();
projectileBreaker.value = false;
projectileBreaker.TriggerValueChangeEvent();
environmentBreaker.value = false;
environmentBreaker.TriggerValueChangeEvent();
acidBreaker.value = false;
acidBreaker.TriggerValueChangeEvent();
fireBreaker.value = false;
fireBreaker.TriggerValueChangeEvent();
revolverBreaker.value = false;
revolverBreaker.TriggerValueChangeEvent();
shotgunBreaker.value = false;
shotgunBreaker.TriggerValueChangeEvent();
shotgunzoneBreaker.value = false;
shotgunzoneBreaker.TriggerValueChangeEvent();
chainsawzoneBreaker.value = false;
chainsawzoneBreaker.TriggerValueChangeEvent();
chainsawBreaker.value = false;
chainsawBreaker.TriggerValueChangeEvent();
chainsawprojectileBreaker.value = false;
chainsawprojectileBreaker.TriggerValueChangeEvent();
hammerBreaker.value = false;
hammerBreaker.TriggerValueChangeEvent();
nailBreaker.value = false;
nailBreaker.TriggerValueChangeEvent();
harpoonBreaker.value = false;
harpoonBreaker.TriggerValueChangeEvent();
zapperBreaker.value = false;
zapperBreaker.TriggerValueChangeEvent();
aftershockBreaker.value = false;
aftershockBreaker.TriggerValueChangeEvent();
sawbladeBreaker.value = false;
sawbladeBreaker.TriggerValueChangeEvent();
railcannonBreaker.value = false;
railcannonBreaker.TriggerValueChangeEvent();
drillBreaker.value = false;
drillBreaker.TriggerValueChangeEvent();
drillpunchBreaker.value = false;
drillpunchBreaker.TriggerValueChangeEvent();
cannonballBreaker.value = false;
cannonballBreaker.TriggerValueChangeEvent();
shotgun0Breaker.value = false;
shotgun0Breaker.TriggerValueChangeEvent();
rocket0Breaker.value = false;
rocket0Breaker.TriggerValueChangeEvent();
enemyBreaker.value = false;
enemyBreaker.TriggerValueChangeEvent();
}
private static void ResetAllBreakers()
{
groundSlamBreaker.value = groundSlamBreaker.defaultValue;
groundSlamBreaker.TriggerValueChangeEvent();
heavypunchBreaker.value = heavypunchBreaker.defaultValue;
heavypunchBreaker.TriggerValueChangeEvent();
punchBreaker.value = punchBreaker.defaultValue;
punchBreaker.TriggerValueChangeEvent();
explosionBreaker.value = explosionBreaker.defaultValue;
explosionBreaker.TriggerValueChangeEvent();
zapBreaker.value = zapBreaker.defaultValue;
zapBreaker.TriggerValueChangeEvent();
projectileBreaker.value = projectileBreaker.defaultValue;
projectileBreaker.TriggerValueChangeEvent();
environmentBreaker.value = environmentBreaker.defaultValue;
environmentBreaker.TriggerValueChangeEvent();
acidBreaker.value = acidBreaker.defaultValue;
acidBreaker.TriggerValueChangeEvent();
fireBreaker.value = fireBreaker.defaultValue;
fireBreaker.TriggerValueChangeEvent();
revolverBreaker.value = revolverBreaker.defaultValue;
revolverBreaker.TriggerValueChangeEvent();
shotgunBreaker.value = shotgunBreaker.defaultValue;
shotgunBreaker.TriggerValueChangeEvent();
shotgunzoneBreaker.value = shotgunzoneBreaker.defaultValue;
shotgunzoneBreaker.TriggerValueChangeEvent();
chainsawzoneBreaker.value = chainsawzoneBreaker.defaultValue;
chainsawzoneBreaker.TriggerValueChangeEvent();
chainsawBreaker.value = chainsawBreaker.defaultValue;
chainsawBreaker.TriggerValueChangeEvent();
chainsawprojectileBreaker.value = chainsawBreaker.defaultValue;
chainsawprojectileBreaker.TriggerValueChangeEvent();
hammerBreaker.value = hammerBreaker.defaultValue;
hammerBreaker.TriggerValueChangeEvent();
nailBreaker.value = nailBreaker.defaultValue;
nailBreaker.TriggerValueChangeEvent();
harpoonBreaker.value = harpoonBreaker.defaultValue;
harpoonBreaker.TriggerValueChangeEvent();
zapperBreaker.value = zapperBreaker.defaultValue;
zapperBreaker.TriggerValueChangeEvent();
aftershockBreaker.value = aftershockBreaker.defaultValue;
aftershockBreaker.TriggerValueChangeEvent();
sawbladeBreaker.value = sawbladeBreaker.defaultValue;
sawbladeBreaker.TriggerValueChangeEvent();
railcannonBreaker.value = railcannonBreaker.defaultValue;
railcannonBreaker.TriggerValueChangeEvent();
drillBreaker.value = drillBreaker.defaultValue;
drillBreaker.TriggerValueChangeEvent();
drillpunchBreaker.value = drillpunchBreaker.defaultValue;
drillpunchBreaker.TriggerValueChangeEvent();
cannonballBreaker.value = cannonballBreaker.defaultValue;
cannonballBreaker.TriggerValueChangeEvent();
shotgun0Breaker.value = shotgun0Breaker.defaultValue;
shotgun0Breaker.TriggerValueChangeEvent();
rocket0Breaker.value = rocket0Breaker.defaultValue;
rocket0Breaker.TriggerValueChangeEvent();
enemyBreaker.value = enemyBreaker.defaultValue;
enemyBreaker.TriggerValueChangeEvent();
}
private static void EnableAllVariants()
{
plushieChance.value = 5f;
plushieChance.TriggerValueChangeEvent();
goldChance.value = 5f;
goldChance.TriggerValueChangeEvent();
eyeChance.value = 5f;
eyeChance.TriggerValueChangeEvent();
lossChance.value = 5f;
lossChance.TriggerValueChangeEvent();
evilMeanGreenChance.value = 5f;
evilMeanGreenChance.TriggerValueChangeEvent();
bigChance.value = 5f;
bigChance.TriggerValueChangeEvent();
virtueChance.value = 5f;
virtueChance.TriggerValueChangeEvent();
maurfireChance.value = 5f;
maurfireChance.TriggerValueChangeEvent();
lookerChance.value = 5f;
lookerChance.TriggerValueChangeEvent();
falseVirtueChance.value = 5f;
falseVirtueChance.TriggerValueChangeEvent();
ballriceChance.value = 5f;
ballriceChance.TriggerValueChangeEvent();
moaiChance.value = 5f;
moaiChance.TriggerValueChangeEvent();
ballerBlockManChance.value = 5f;
ballerBlockManChance.TriggerValueChangeEvent();
}
private static void DisableAllVariants()
{
plushieChance.value = 0f;
plushieChance.TriggerValueChangeEvent();
goldChance.value = 0f;
goldChance.TriggerValueChangeEvent();
eyeChance.value = 0f;
eyeChance.TriggerValueChangeEvent();
lossChance.value = 0f;
lossChance.TriggerValueChangeEvent();
evilMeanGreenChance.value = 0f;
evilMeanGreenChance.TriggerValueChangeEvent();
bigChance.value = 0f;
bigChance.TriggerValueChangeEvent();
virtueChance.value = 0f;
virtueChance.TriggerValueChangeEvent();
maurfireChance.value = 0f;
maurfireChance.TriggerValueChangeEvent();
lookerChance.value = 0f;
lookerChance.TriggerValueChangeEvent();
falseVirtueChance.value = 0f;
falseVirtueChance.TriggerValueChangeEvent();
ballriceChance.value = 0f;
ballriceChance.TriggerValueChangeEvent();
moaiChance.value = 0f;
moaiChance.TriggerValueChangeEvent();
ballerBlockManChance.value = 0f;
ballerBlockManChance.TriggerValueChangeEvent();
}
private static void ResetAllVariants()
{
plushieChance.value = plushieChance.defaultValue;
plushieChance.TriggerValueChangeEvent();
goldChance.value = goldChance.defaultValue;
goldChance.TriggerValueChangeEvent();
eyeChance.value = eyeChance.defaultValue;
eyeChance.TriggerValueChangeEvent();
lossChance.value = lossChance.defaultValue;
lossChance.TriggerValueChangeEvent();
evilMeanGreenChance.value = evilMeanGreenChance.defaultValue;
evilMeanGreenChance.TriggerValueChangeEvent();
bigChance.value = bigChance.defaultValue;
bigChance.TriggerValueChangeEvent();
virtueChance.value = virtueChance.defaultValue;
virtueChance.TriggerValueChangeEvent();
maurfireChance.value = maurfireChance.defaultValue;
maurfireChance.TriggerValueChangeEvent();
lookerChance.value = lookerChance.defaultValue;
lookerChance.TriggerValueChangeEvent();
falseVirtueChance.value = falseVirtueChance.defaultValue;
falseVirtueChance.TriggerValueChangeEvent();
ballriceChance.value = ballriceChance.defaultValue;
ballriceChance.TriggerValueChangeEvent();
moaiChance.value = moaiChance.defaultValue;
moaiChance.TriggerValueChangeEvent();
ballerBlockManChance.value = ballerBlockManChance.defaultValue;
ballerBlockManChance.TriggerValueChangeEvent();
}
private static void OpenDiscord()
{
Process.Start("http://discord.gg/pVdr9e6hZ8");
}
}
[HarmonyPatch(typeof(MaliciousFace), "HandleCollision")]
[HarmonyPriority(500)]
public class BallPatch : MonoBehaviour
{
private static bool Prefix(MaliciousFace __instance, Collision other)
{
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: 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_00c1: 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_00e1: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: 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_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_013a: Unknown result type (might be due to invalid IL or missing references)
//IL_014b: 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)
Breakable val = default(Breakable);
if (other.gameObject.TryGetComponent<Breakable>(ref val) && !val.playerOnly && !val.specialCaseOnly)
{
val.Break();
return false;
}
if (!LayerMaskDefaults.IsMatchingLayer(other.gameObject.layer, (LMD)1))
{
return false;
}
if (other.gameObject.CompareTag("Floor"))
{
Object.Instantiate<GameObject>(__instance.impactParticle, ((Component)__instance).transform.position, ((Component)__instance).transform.rotation);
((Quaternion)(ref __instance.spriteRot)).eulerAngles = new Vector3(((ContactPoint)(ref other.contacts[0])).normal.x + 90f, ((ContactPoint)(ref other.contacts[0])).normal.y, ((ContactPoint)(ref other.contacts[0])).normal.z);
__instance.spritePos = new Vector3(((ContactPoint)(ref other.contacts[0])).point.x, ((ContactPoint)(ref other.contacts[0])).point.y + 0.1f, ((ContactPoint)(ref other.contacts[0])).point.z);
Object.Instantiate<GameObject>(AddressablesExtensions.ToAsset(__instance.shockwave), __instance.spritePos, Quaternion.identity);
MonoSingleton<CameraController>.Instance.CameraShake(2f);
}
SecretVariations.MakeBallWithSecretPossibility(((Component)__instance).gameObject);
__instance.BreakCorpse();
return false;
}
}
[HarmonyPatch(typeof(TargetTracker), "RegisterTarget")]
public class DontTargetBallPatch : MonoBehaviour
{
private static bool Prefix(TargetTracker __instance, ITarget target, CancellationToken token)
{
if ((Object)(object)target.EID == (Object)null)
{
return true;
}
if ((Object)(object)((Component)target.EID).GetComponent<MaliciousCorpse>() != (Object)null)
{
return false;
}
return true;
}
}
[HarmonyPatch(typeof(EnemyInfoPage), "Start")]
public class Bestiary : MonoBehaviour
{
private static void Prefix(EnemyInfoPage __instance)
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Expected O, but got Unknown
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Expected O, but got Unknown
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Expected O, but got Unknown
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_008e: Expected O, but got Unknown
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Expected O, but got Unknown
if (GlobalConfig.bestiaryAlreadyAdded)
{
return;
}
AssetBundle val = BundleTool.Load("balls.bundle");
SpawnableObject val2 = (SpawnableObject)ScriptableObject.CreateInstance("SpawnableObject");
if (Store.legger)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse Legger.asset");
}
if (Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse Armer.asset");
}
if (Store.legger && Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse LegArm.asset");
}
if (!Store.legger && !Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse.asset");
}
SetupResource.FixShader(val2.preview);
SetupResource.FixShader(val2.gameObject);
SpawnableObject[] array = Array.Empty<SpawnableObject>();
SpawnableObject[] enemies = __instance.objects.enemies;
foreach (SpawnableObject val3 in enemies)
{
SpawnableObject[] array2 = array;
int num = 0;
SpawnableObject[] array3 = (SpawnableObject[])(object)new SpawnableObject[1 + array2.Length];
ReadOnlySpan<SpawnableObject> readOnlySpan = new ReadOnlySpan<SpawnableObject>(array2);
readOnlySpan.CopyTo(new Span<SpawnableObject>(array3).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
array3[num] = val3;
array = array3;
if (val3.objectName == "Malicious Face")
{
array3 = array;
num = 0;
array2 = (SpawnableObject[])(object)new SpawnableObject[1 + array3.Length];
readOnlySpan = new ReadOnlySpan<SpawnableObject>(array3);
readOnlySpan.CopyTo(new Span<SpawnableObject>(array2).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
array2[num] = val2;
array = array2;
}
}
__instance.objects.enemies = array;
GlobalConfig.bestiaryAlreadyAdded = true;
val.Unload(false);
}
}
[HarmonyPatch(typeof(SpawnMenu), "Awake")]
public class SandboxItem : MonoBehaviour
{
private static void Prefix(SpawnMenu __instance)
{
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Expected O, but got Unknown
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Expected O, but got Unknown
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Expected O, but got Unknown
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
//IL_008c: Expected O, but got Unknown
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Expected O, but got Unknown
//IL_0186: Unknown result type (might be due to invalid IL or missing references)
//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
if (!GlobalConfig.sandboxItemAlreadyAdded)
{
AssetBundle val = BundleTool.Load("balls.bundle");
SpawnableObject val2 = (SpawnableObject)ScriptableObject.CreateInstance("SpawnableObject");
if (Store.legger)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse Legger.asset");
}
if (Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse Armer.asset");
}
if (Store.legger && Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse LegArm.asset");
}
if (!Store.legger && !Store.armer)
{
val2 = (SpawnableObject)val.LoadAsset("Assets/Baller/Bestiary/MaliciousCorpse.asset");
}
SetupResource.FixShader(val2.preview);
SetupResource.FixShader(val2.gameObject);
((Component)val2.gameObject.transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0)).gameObject.AddComponent<CorpseLegController>();
val2.gameObject.AddComponent<MaliciousCorpse>();
if ((Object)(object)Store.storedPhysicalLeg != (Object)null)
{
GameObject val3 = Object.Instantiate<GameObject>(Store.storedPhysicalLeg);
val3.transform.parent = val2.gameObject.transform.GetChild(0);
}
if ((Object)(object)Store.storedPhysicalArm != (Object)null)
{
GameObject val4 = Object.Instantiate<GameObject>(Store.storedPhysicalArm);
val4.transform.parent = val2.gameObject.transform.GetChild(0);
}
val2.spawnableObjectType = (SpawnableObjectDataType)4;
val2.gameObject.AddComponent<DontKinematic>();
val2.backgroundColor = new Color(0.8f, 0.8f, 0.8f);
SpawnableObjectsDatabase objects = __instance.objects;
SpawnableObject[] objects2 = __instance.objects.objects;
int num = 0;
SpawnableObject[] array = (SpawnableObject[])(object)new SpawnableObject[1 + objects2.Length];
ReadOnlySpan<SpawnableObject> readOnlySpan = new ReadOnlySpan<SpawnableObject>(objects2);
readOnlySpan.CopyTo(new Span<SpawnableObject>(array).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
array[num] = val2;
objects.objects = array;
GlobalConfig.sandboxItemAlreadyAdded = true;
val.Unload(false);
}
}
}
public class DontKinematic : MonoBehaviour
{
private void Awake()
{
Rigidbody[] componentsInChildren = ((Component)this).GetComponentsInChildren<Rigidbody>();
foreach (Rigidbody val in componentsInChildren)
{
val.isKinematic = false;
}
}
}
public class EvilMeanGreen : MonoBehaviour
{
public GameObject green;
private GameObject greenFlash;
private void OnCollisionEnter(Collision other)
{
if (((Component)other.transform).CompareTag("Player"))
{
GameObject val = GameObject.Find("Canvas");
greenFlash = Object.Instantiate<GameObject>(green);
greenFlash.transform.parent = val.transform;
((MonoBehaviour)this).Invoke("Destroy", 2.99f);
}
}
private void Destroy()
{
Object.Destroy((Object)(object)greenFlash);
}
}
public class CorpseLegController : MonoBehaviour
{
public BallerLeg[] legs;
public LineRenderer exampleRenderer;
public Material legMat;
private void Awake()
{
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
exampleRenderer = ((Component)((Component)this).transform).GetComponent<LineRenderer>();
for (int i = 0; i < 4; i++)
{
BallerLeg ballerLeg = ((Component)((Component)this).transform.GetChild(i)).gameObject.AddComponent<BallerLeg>();
legMat = Addressables.LoadAssetAsync<Material>((object)"Assets/Materials/Dev/SpiderLeg.mat").WaitForCompletion();
((Renderer)ballerLeg.legRenderer).material = legMat;
ballerLeg.legRenderer.widthCurve = exampleRenderer.widthCurve;
ballerLeg.legRenderer.colorGradient = exampleRenderer.colorGradient;
ballerLeg.legRenderer.alignment = exampleRenderer.alignment;
ballerLeg.legRenderer.numCapVertices = exampleRenderer.numCapVertices;
((Renderer)ballerLeg.legRenderer).lightProbeUsage = ((Renderer)exampleRenderer).lightProbeUsage;
((Renderer)ballerLeg.legRenderer).allowOcclusionWhenDynamic = ((Renderer)exampleRenderer).allowOcclusionWhenDynamic;
legs = legs.Append(ballerLeg).ToArray();
}
}
}
public class MaliciousCorpse : EnemyScript
{
public EnemyIdentifier eid;
public Enemy en;
public Machine mach;
public Rigidbody rb;
public Collider mainCollider;
public CustomGravity gravityScaler;
public Animator controller;
private bool dead = false;
public bool variation = false;
private float gravityVariant;
private float bouncinessVariant;
private Vector3 prevVelocity;
public void Start()
{
//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Expected O, but got Unknown
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_00c4: Expected O, but got Unknown
GameObject[] allCorpses = SceneUtility.allCorpses;
int num = 0;
GameObject[] array = (GameObject[])(object)new GameObject[1 + allCorpses.Length];
ReadOnlySpan<GameObject> readOnlySpan = new ReadOnlySpan<GameObject>(allCorpses);
readOnlySpan.CopyTo(new Span<GameObject>(array).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
array[num] = ((Component)this).gameObject;
SceneUtility.allCorpses = array;
eid = ((Component)this).GetComponent<EnemyIdentifier>();
en = ((Component)this).GetComponent<Enemy>();
mach = ((Component)this).GetComponent<Machine>();
rb = ((Component)this).GetComponent<Rigidbody>();
mainCollider = ((Component)this).GetComponent<Collider>();
gravityScaler = ((Component)this).GetComponent<CustomGravity>();
controller = ((Component)this).GetComponent<Animator>();
UnityEvent val = new UnityEvent();
val.AddListener(new UnityAction(Break));
eid.onDeath = val;
if (variation && GlobalConfig.variantJingle)
{
controller.SetBoolString("Variation", true);
}
gravityVariant = Random.Range((0f - GlobalConfig.gravityScaleVariance) / 1.5f, GlobalConfig.gravityScaleVariance / 1.5f);
bouncinessVariant = Random.Range((0f - GlobalConfig.bouncinessVariance) / 1.5f, GlobalConfig.bouncinessVariance / 1.5f);
CheckConfig();
Transform child = ((Component)this).transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0);
if ((Object)(object)child != (Object)null && (!GlobalConfig.legs || Store.leggerSpiderLegsAreDisabled))
{
Object.Destroy((Object)(object)((Component)child).gameObject);
}
}
public override void OnDamage(ref DamageData data)
{
bool flag = false;
foreach (KeyValuePair<string, bool> breaker in GlobalConfig.breakers)
{
if (breaker.Key != data.hitter || !breaker.Value)
{
continue;
}
flag = true;
break;
}
if (eid.health <= 0f || flag)
{
Break();
}
}
private void OnCollisionEnter(Collision other)
{
//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
controller.SetTriggerString("Hit");
if (!MonoSingleton<CheatsManager>.Instance.GetCheatState("mauriceballer.rollkill"))
{
return;
}
EnemyIdentifier val = other.gameObject.GetComponent<EnemyIdentifier>();
if ((Object)(object)val == (Object)null)
{
EnemyIdentifierIdentifier component = other.gameObject.GetComponent<EnemyIdentifierIdentifier>();
if ((Object)(object)component != (Object)null && (Object)(object)component.eid != (Object)null)
{
val = component.eid;
}
}
IdolMauricer val2 = default(IdolMauricer);
if ((Object)(object)val == (Object)null && other.gameObject.TryGetComponent<IdolMauricer>(ref val2))
{
val = other.gameObject.GetComponentInParent<EnemyIdentifier>();
}
if ((Object)(object)val == (Object)null || Object.op_Implicit((Object)(object)((Component)val).gameObject.GetComponent<MaliciousCorpse>()) || !Object.op_Implicit((Object)(object)val) || !((Object)(object)val != (Object)(object)eid))
{
return;
}
if (Object.op_Implicit((Object)(object)MonoSingleton<StyleHUD>.Instance) && !val.dead)
{
switch (Random.Range(1, 4))
{
case 1:
MonoSingleton<StyleHUD>.Instance.AddPoints(50, "mauriceballer.rollkill1", (GameObject)null, eid, -1, "", "");
break;
case 2:
MonoSingleton<StyleHUD>.Instance.AddPoints(50, "mauriceballer.rollkill2", (GameObject)null, eid, -1, "", "");
break;
case 3:
MonoSingleton<StyleHUD>.Instance.AddPoints(50, "mauriceballer.rollkill3", (GameObject)null, eid, -1, "", "");
break;
default:
MonoSingleton<StyleHUD>.Instance.AddPoints(50, "mauriceballer.rollkill3", (GameObject)null, eid, -1, "", "");
break;
}
}
val.hitter = "maurice";
val.SimpleDamage(999f);
rb.velocity = prevVelocity;
}
private void LateUpdate()
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
if (!((Object)(object)rb == (Object)null))
{
prevVelocity = rb.velocity;
}
}
public void Break()
{
rb.constraints = (RigidbodyConstraints)126;
Object.Destroy((Object)(object)gravityScaler);
eid.health = 0f;
en.health = 0f;
((Enemy)mach).health = 0f;
eid.ForceGetHealth();
((Component)((Component)this).gameObject.transform.GetChild(1).GetChild(0).GetChild(1)).gameObject.SetActive(false);
Collider[] componentsInChildren = ((Component)this).GetComponentsInChildren<Collider>();
foreach (Collider val in componentsInChildren)
{
val.enabled = false;
}
((Component)((Component)this).transform.GetChild(0)).gameObject.SetActive(false);
((MonoBehaviour)this).Invoke("Destroy", 3f);
dead = true;
}
public void CheckConfig()
{
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Unknown result type (might be due to invalid IL or missing references)
((MonoBehaviour)this).Invoke("CheckConfig", 1f);
if (!dead)
{
rb.useGravity = GlobalConfig.gravity;
gravityScaler.useGravity = GlobalConfig.gravity;
gravityScaler.gravity = new Vector3(gravityScaler.gravity.x, 0f - GlobalConfig.gravityScale + gravityVariant, gravityScaler.gravity.z);
if (gravityScaler.gravity.y < -100f)
{
gravityScaler.gravity = new Vector3(gravityScaler.gravity.x, -100f, gravityScaler.gravity.z);
}
if (gravityScaler.gravity.y > -0.1f)
{
gravityScaler.gravity = new Vector3(gravityScaler.gravity.x, -0.1f, gravityScaler.gravity.z);
}
mainCollider.material.bounciness = GlobalConfig.bounciness + bouncinessVariant;
if (mainCollider.material.bounciness > 1f)
{
mainCollider.material.bounciness = 1f;
}
if (mainCollider.material.bounciness < 0f)
{
mainCollider.material.bounciness = 0f;
}
}
}
public void Destroy()
{
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
public static class SecretVariations
{
public static void MakeBallWithSecretPossibility(GameObject gameObject)
{
float num = Random.Range(0f, 100f);
if (num <= GlobalConfig.variantChance)
{
float num2 = Random.Range(0f, GlobalConfig.totalVariantChances);
float num3 = 0f;
foreach (KeyValuePair<string, float> individualVariantChance in GlobalConfig.individualVariantChances)
{
num3 += individualVariantChance.Value;
if (num3 == 0f || num3 <= num2)
{
continue;
}
switch (individualVariantChance.Key)
{
case "plushie":
Simple("Assets/Baller/Variations/Plush/DevPlushie (bitmotte).prefab", gameObject);
Plugin.Logger.LogInfo((object)"Plushie Variant Loaded");
break;
case "gold":
GenericCorpse("Assets/Baller/Variations/Gold/Gold.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Gold Variant Loaded");
break;
case "eye":
CorpseNoLegs("Assets/Baller/Variations/HellEye/HellEye.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Eye Variant Loaded");
break;
case "loss":
GenericCorpse("Assets/Baller/Variations/Loss/Loss.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Loss Variant Loaded");
break;
case "evil_mean_green":
EvilMeanGreen("Assets/Baller/Variations/EvilMeanGreen/Green.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Evil Mean Green Variant Loaded");
break;
case "big":
GenericCorpse("Assets/Baller/Variations/Big/Big.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Big Variant Loaded");
break;
case "virtue":
CorpseNoLegs("Assets/Baller/Variations/Virtue/Virtue.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Virtue Variant Loaded");
break;
case "maurfire":
GenericCorpse("Assets/Baller/Variations/Maurfire/Maurfire.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Maurfire Variant Loaded");
break;
case "looker":
GenericCorpse("Assets/Baller/Variations/Looker/Looker.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Looker Variant Loaded");
break;
case "false_virtue":
GenericCorpse("Assets/Baller/Variations/FalseVirtue/FalseVirtue.prefab", gameObject);
Plugin.Logger.LogInfo((object)"False Virtue Variant Loaded");
break;
case "ballrice":
GenericCorpse("Assets/Baller/Variations/Ballrice/Ballrice.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Ballrice Variant Loaded");
break;
case "moai":
CorpseNoLegs("Assets/Baller/Variations/Moai/Moai.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Moai Variant Loaded");
break;
case "baller_block_man":
CorpseNoLegs("Assets/Baller/Variations/BallerBlockMan/BallerBlockMan.prefab", gameObject);
Plugin.Logger.LogInfo((object)"Baller Variant Loaded");
break;
default:
Plugin.Logger.LogInfo((object)"Failed to pick variation");
break;
}
break;
}
if (num3 != 0f)
{
return;
}
}
GenericCorpseNoJingle("Assets/Baller/Corpse/MaliciousCorpse.prefab", gameObject);
}
public static void GenericCorpseNoJingle(string key, GameObject dead)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Expected O, but got Unknown
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
AssetBundle val = BundleTool.Load("balls.bundle");
GameObject val2 = (GameObject)val.LoadAsset(key);
SetupResource.FixShader(val2);
val2.AddComponent<MaliciousCorpse>();
((Component)val2.transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0)).gameObject.AddComponent<CorpseLegController>();
val2.transform.position = dead.transform.position;
val2.transform.rotation = dead.transform.rotation;
GameObject val3 = Object.Instantiate<GameObject>(val2);
Store.corpse = ((Component)val3.transform.GetChild(0)).gameObject;
val.Unload(false);
}
public static void GenericCorpse(string key, GameObject dead)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Expected O, but got Unknown
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
AssetBundle val = BundleTool.Load("balls.bundle");
GameObject val2 = (GameObject)val.LoadAsset(key);
SetupResource.FixShader(val2);
MaliciousCorpse maliciousCorpse = val2.AddComponent<MaliciousCorpse>();
maliciousCorpse.variation = true;
((Component)val2.transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0)).gameObject.AddComponent<CorpseLegController>();
val2.transform.position = dead.transform.position;
val2.transform.rotation = dead.transform.rotation;
GameObject val3 = Object.Instantiate<GameObject>(val2);
val.Unload(false);
}
public static void CorpseNoLegs(string key, GameObject dead)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Expected O, but got Unknown
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_007a: Unknown result type (might be due to invalid IL or missing references)
AssetBundle val = BundleTool.Load("balls.bundle");
GameObject val2 = (GameObject)val.LoadAsset(key);
SetupResource.FixShader(val2);
MaliciousCorpse maliciousCorpse = val2.AddComponent<MaliciousCorpse>();
maliciousCorpse.variation = true;
Object.Destroy((Object)(object)((Component)val2.transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0)).gameObject);
val2.transform.position = dead.transform.position;
val2.transform.rotation = dead.transform.rotation;
Object.Instantiate<GameObject>(val2);
val.Unload(false);
}
public static void Simple(string key, GameObject dead)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
AssetBundle val = BundleTool.Load("balls.bundle");
GameObject val2 = (GameObject)val.LoadAsset(key);
SetupResource.FixShader(val2);
val2.transform.position = dead.transform.position;
val2.transform.rotation = dead.transform.rotation;
GameObject val3 = Object.Instantiate<GameObject>(val2);
GameObject[] allCorpses = SceneUtility.allCorpses;
int num = 0;
GameObject[] array = (GameObject[])(object)new GameObject[1 + allCorpses.Length];
ReadOnlySpan<GameObject> readOnlySpan = new ReadOnlySpan<GameObject>(allCorpses);
readOnlySpan.CopyTo(new Span<GameObject>(array).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
array[num] = val3;
SceneUtility.allCorpses = array;
if (GlobalConfig.variantJingle)
{
val3.GetComponent<Animator>().SetBoolString("Variant", true);
}
val.Unload(false);
}
public static void EvilMeanGreen(string key, GameObject dead)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Expected O, but got Unknown
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004b: Expected O, but got Unknown
//IL_0080: Unknown result type (might be due to invalid IL or missing references)
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
AssetBundle val = BundleTool.Load("balls.bundle");
GameObject val2 = (GameObject)val.LoadAsset(key);
SetupResource.FixShader(val2);
MaliciousCorpse maliciousCorpse = val2.AddComponent<MaliciousCorpse>();
maliciousCorpse.variation = true;
EvilMeanGreen evilMeanGreen = val2.AddComponent<EvilMeanGreen>();
evilMeanGreen.green = (GameObject)val.LoadAsset("Assets/Baller/Variations/EvilMeanGreen/GreenFlash.prefab");
((Component)val2.transform.GetChild(1).GetChild(0).GetChild(1)
.GetChild(0)).gameObject.AddComponent<CorpseLegController>();
val2.transform.position = dead.transform.position;
val2.transform.rotation = dead.transform.rotation;
Object.Instantiate<GameObject>(val2);
val.Unload(false);
}
}
[BepInPlugin("bitmotte.MauriceBaller", "Maurice Baller", "2.0.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Plugin : BaseUnityPlugin
{
internal static ManualLogSource Logger;
public static PluginConfigurator config;
private void Awake()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Expected O, but got Unknown
Logger = ((BaseUnityPlugin)this).Logger;
Logger.LogInfo((object)"Plugin bitmotte.MauriceBaller is loaded!");
Harmony val = new Harmony("bitmotte.MauriceBaller");
val.PatchAll();
GlobalConfig.InitGlobalConfig();
config = MauriceConfigurator.CreateConfigurator();
RegisterCheats.Register();
SceneManager.sceneLoaded += SceneUtility.OnSceneLoad;
Store.baller = true;
}
}
public static class BundleTool
{
public static AssetBundle Load(string fileName)
{
return AssetBundle.LoadFromMemory(EmbeddedAccess.AccessFile(fileName));
}
}
public static class EmbeddedAccess
{
public static byte[] AccessFile(string fileName)
{
Assembly executingAssembly = Assembly.GetExecutingAssembly();
byte[] array;
using (Stream stream = executingAssembly.GetManifestResourceStream("MauriceBaller.resources." + fileName))
{
if (stream == null)
{
return null;
}
array = new byte[stream.Length];
stream.Read(array, 0, array.Length);
}
return array;
}
}
public static class SceneUtility
{
public static string sceneName;
public static GameObject[] allCorpses = Array.Empty<GameObject>();
public static void OnSceneLoad(Scene scene, LoadSceneMode mode)
{
allCorpses = Array.Empty<GameObject>();
sceneName = ((Scene)(ref scene)).name;
}
}
public static class SetupResource
{
public static GameObject FixShader(GameObject gameObject)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_00fa: 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_01b1: Unknown result type (might be due to invalid IL or missing references)
//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
Shader shader = Addressables.LoadAssetAsync<Material>((object)"Assets/Materials/Environment/Metal/Pattern 1/Metal Pattern 1 8.mat").WaitForCompletion().shader;
SkinnedMeshRenderer[] componentsInChildren = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
foreach (SkinnedMeshRenderer val in componentsInChildren)
{
Material[] materials = ((Renderer)val).materials;
foreach (Material val2 in materials)
{
if (((Object)val2.shader).name == "Hidden/InternalErrorShader")
{
val2.shader = Addressables.LoadAssetAsync<Material>((object)"Assets/Materials/Dev/FadeToWhite.mat").WaitForCompletion().shader;
}
else
{
val2.shader = shader;
}
}
}
MeshRenderer[] componentsInChildren2 = gameObject.GetComponentsInChildren<MeshRenderer>();
foreach (MeshRenderer val3 in componentsInChildren2)
{
Material[] materials2 = ((Renderer)val3).materials;
foreach (Material val4 in materials2)
{
if (((Object)val4.shader).name == "Hidden/InternalErrorShader")
{
val4.shader = Addressables.LoadAssetAsync<Material>((object)"Assets/Materials/Dev/FadeToWhite.mat").WaitForCompletion().shader;
}
else
{
val4.shader = shader;
}
}
}
ParticleSystem[] componentsInChildren3 = gameObject.GetComponentsInChildren<ParticleSystem>();
foreach (ParticleSystem val5 in componentsInChildren3)
{
Renderer[] componentsInChildren4 = ((Component)val5).gameObject.GetComponentsInChildren<Renderer>();
foreach (Renderer val6 in componentsInChildren4)
{
Material[] materials3 = val6.materials;
foreach (Material val7 in materials3)
{
if (((Object)val7.shader).name == "Hidden/InternalErrorShader")
{
val7.shader = Addressables.LoadAssetAsync<Material>((object)"Assets/Materials/Dev/FadeToWhite.mat").WaitForCompletion().shader;
}
else
{
val7.shader = shader;
}
}
}
}
return gameObject;
}
}
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "bitmotte.MauriceBaller";
public const string PLUGIN_NAME = "Maurice Baller";
public const string PLUGIN_VERSION = "2.0.0";
}
}
namespace MauriceBaller.Cheats
{
internal class RegisterCheats
{
public static void Register()
{
Plugin.Logger.LogInfo((object)"Registering Rollkill Cheat");
SceneManager.sceneLoaded += OnSceneLoad;
}
private static void OnSceneLoad(Scene arg0, LoadSceneMode arg1)
{
CheatsManager instance = MonoSingleton<CheatsManager>.Instance;
if ((Object)(object)instance != (Object)null)
{
instance.RegisterCheat((ICheat)(object)new RollkillCheat(), "maurice baller");
}
MonoSingleton<StyleHUD>.Instance.RegisterStyleItem("mauriceballer.rollkill1", "THE ROLLING STONES");
MonoSingleton<StyleHUD>.Instance.RegisterStyleItem("mauriceballer.rollkill2", "BOLICHE");
MonoSingleton<StyleHUD>.Instance.RegisterStyleItem("mauriceballer.rollkill3", "BOWLRICED");
}
}
internal class RollkillCheat : ICheat
{
public string LongName => "Corpses can crush enemies by rolling";
public string Identifier => "mauriceballer.rollkill";
public string ButtonEnabledOverride => "ON";
public string ButtonDisabledOverride => "OFF";
public string Icon => "ghost";
public bool DefaultState => false;
public StatePersistenceMode PersistenceMode => (StatePersistenceMode)1;
public bool IsActive { get; private set; }
public void Disable()
{
IsActive = false;
Plugin.Logger.LogInfo((object)"Rollkill Cheat Disabled");
}
public void Enable(CheatsManager manager)
{
IsActive = true;
Plugin.Logger.LogInfo((object)"Rollkill Cheat Enabled");
}
}
}