using Aki.Reflection.Patching; using Aki.Reflection.Utils; using Comfort.Common; using EFT; using EFT.Airdrop; using System.Linq; using System.Reflection; using UnityEngine; namespace SamSWAT.HeliCrash { public class HeliCrashPatch : ModulePatch { protected override MethodBase GetTargetMethod() { return PatchConstants.LocalGameType.BaseType.GetMethod("method_11", BindingFlags.NonPublic | BindingFlags.Instance); } [PatchPostfix] public static void PatchPostfix() { var gameWorld = Singleton.Instance; bool crashAvailable = LocationScene.GetAll().Any(); string location = gameWorld.RegisteredPlayers[0].Location; if (gameWorld != null && crashAvailable && WillHeliCrash()) { var heliCrash = gameWorld.gameObject.AddComponent(); heliCrash.Init(location); } } private static bool WillHeliCrash() { return Random.Range(0, 100) <= Plugin.HeliCrashChance.Value; } } }