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_10", BindingFlags.NonPublic | BindingFlags.Instance); return typeof(GameWorld).GetMethod(nameof(GameWorld.OnGameStarted)); } [PatchPostfix] public static void PatchPostfix() { var gameWorld = Singleton.Instance; var crashAvailable = LocationScene.GetAll().Any(); var location = gameWorld.RegisteredPlayers[0].Location; if (gameWorld == null || !crashAvailable || !BlessRNG.RngBool(Plugin.HeliCrashChance.Value)) return; var heliCrash = gameWorld.gameObject.AddComponent(); heliCrash.Init(location); } } }