Due to update 2.4.3, some mods may no longer function. FixedConfig may be necessary.
Decompiled source of Arrow Rain v1.0.1
ArrowRain.dll
Decompiled a year agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BoplFixedMath; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; 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(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyCompany("ArrowRain")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("My first plugin")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ArrowRain")] [assembly: AssemblyTitle("ArrowRain")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.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; } } } namespace AntiKick { public static class PluginInfo { public const string PLUGIN_GUID = "ArrowRain"; public const string PLUGIN_NAME = "ArrowRain"; public const string PLUGIN_VERSION = "1.0.0"; } } namespace ArrowRain { [BepInPlugin("com.David_Loves_JellyCar_Worlds.ArrowRain", "ArrowRain", "1.0.0")] public class Plugin : BaseUnityPlugin, IUpdatable { public static ConfigEntry<int> TicksPerRain; public static ConfigEntry<int> TicksBeforeStart; public static ConfigEntry<int> MinDist; public static ConfigEntry<int> MaxDist; public static Fix Ticks = (Fix)0L; public static GameObject BowObject; public static BoplBody Arrow; public static GameSessionHandler GameSessionHandler2; public static RingBuffer<BoplBody> Arrows; public static ConfigFile config; private int hierarchyNumber; public bool IsDestroyed { get; set; } public int HierarchyNumber { get { return hierarchyNumber; } set { hierarchyNumber = value; } } private void Awake() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin ArrowRain is loaded!"); Harmony val = new Harmony("com.David_Loves_JellyCar_Worlds.ArrowRain"); ((BaseUnityPlugin)this).Logger.LogInfo((object)"harmany created"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"ArrowRain Patch Compleate!"); config = ((BaseUnityPlugin)this).Config; TicksPerRain = config.Bind<int>("Settings", "TicksPerRain", 240, "the number of ticks bettewen the Rains. 60 ticks is 1 second"); TicksBeforeStart = config.Bind<int>("Settings", "TicksBeforeStart", 300, "the number of ticks before the rain starts. 60 ticks is 1 second"); MinDist = config.Bind<int>("Settings", "MinDist", 5, "the minimum distance between arrows in bopl units"); MaxDist = config.Bind<int>("Settings", "MaxDist", 10, "the maximum distance between arrows in bopl units"); GameObject[] array = Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[]; ((BaseUnityPlugin)this).Logger.LogInfo((object)"getting Bow object"); GameObject[] array2 = array; foreach (GameObject val2 in array2) { if (((Object)val2).name == "Bow") { BowObject = val2; ((BaseUnityPlugin)this).Logger.LogInfo((object)("Found the object: " + ((Object)val2).name)); break; } } SceneManager.sceneLoaded += OnSceneLoaded; Component component = BowObject.GetComponent(typeof(BowTransform)); BowTransform obj = (BowTransform)(object)((component is BowTransform) ? component : null); Arrow = (BoplBody)AccessTools.Field(typeof(BowTransform), "Arrow").GetValue(obj); Arrows = new RingBuffer<BoplBody>(50, true); } public void OnSceneLoaded(Scene scene, LoadSceneMode mode) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) Ticks = Fix.Zero; if (!IsLevelName(((Scene)(ref scene)).name)) { return; } GameObject[] array = Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[]; ((BaseUnityPlugin)this).Logger.LogInfo((object)"getting GameSessionHandler"); GameObject[] array2 = array; foreach (GameObject val in array2) { if (((Object)val).name == "PlayerList") { GameSessionHandler2 = val.GetComponent<GameSessionHandler>(); break; } } Updater.RegisterUpdatable((IUpdatable)(object)this); } public void Init() { } public bool IsEnabled() { return ((Behaviour)this).isActiveAndEnabled; } public void LateUpdateSim(Fix SimDeltaTime) { } public void OnDestroyUpdatable() { } public void UpdateSim(Fix SimDeltaTime) { //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_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) bool flag = (bool)AccessTools.Field(typeof(GameSessionHandler), "gameInProgress").GetValue(GameSessionHandler2); Ticks += Fix.One; if (flag && Fix.SlowMod(Ticks, (Fix)(long)TicksPerRain.Value) == 0L && Ticks > (long)TicksBeforeStart.Value && !GameTime.IsTimeStopped()) { Fix val = Updater.RandomFix((Fix)(-10L), (Fix)0L); Fix val2 = Updater.RandomFix((Fix)(long)MinDist.Value, (Fix)(long)MaxDist.Value); Fix val3 = (Fix)(-97.27) + val; Vec2 pos = default(Vec2); while (val3 <= (Fix)97.6) { val2 = Updater.RandomFix((Fix)(long)MinDist.Value, (Fix)(long)MaxDist.Value); ((Vec2)(ref pos))..ctor(val3, (Fix)60L); SpawnArrow(pos, Fix.Zero, Fix.One, Vec2.down); val3 += val2; } } } public void SpawnArrow(Vec2 pos, Fix angle, Fix scale, Vec2 StartVel) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) BoplBody val = FixTransform.InstantiateFixed<BoplBody>(Arrow, pos, angle); val.Scale = scale; val.StartVelocity = StartVel; val.rotation = angle; Arrows.Add(val); } public static bool IsLevelName(string input) { Regex regex = new Regex("Level[0-9]+", RegexOptions.IgnoreCase); return regex.IsMatch(input); } } }