private static bool Prefix(Scp914.Scp914Machine __instance) { try { if (!NetworkServer.active) { return(false); } var array = Physics.OverlapBox(__instance.intake.position, __instance.inputSize / 2f); var players = new List <Player>(); var items = new List <SynapseItem>(); foreach (var collider in array) { var player = collider.GetComponent <Player>(); if (player != null) { players.Add(player); } else { var item = collider.GetComponent <Pickup>().GetSynapseItem(); if (item != null) { items.Add(item); } } } Event.Get.Map.Invoke914Activate(ref players, ref items, out var allow, out var move); if (!allow) { return(false); } var vanillaitems = items.Where(x => x.State == Api.Enum.ItemState.Map).Select(x => x.pickup); var vanillaplayers = players.Select(x => x.ClassManager); try { if (move) { __instance.MoveObjects(vanillaitems, vanillaplayers); } } finally { __instance.UpgradeObjects(vanillaitems, vanillaplayers.ToList()); } return(false); } catch (Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: Scp914 Activate Event failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); return(true); } }
public static bool Prefix(Scp914.Scp914Machine __instance) { if (EventPlugin.Scp914UpgradeEventPatchDisable) { return(true); } try { if (!NetworkServer.active) { return(true); } Collider[] colliderArray = Physics.OverlapBox(__instance.intake.position, __instance.inputSize / 2f); __instance.players.Clear(); __instance.items.Clear(); foreach (Collider collider in colliderArray) { CharacterClassManager component1 = collider.GetComponent <CharacterClassManager>(); if (component1 != null) { __instance.players.Add(component1); } else { Pickup component2 = collider.GetComponent <Pickup>(); if (component2 != null) { __instance.items.Add(component2); } } } List <Pickup> pickups = __instance.items; bool allowUpgrade = true; Events.InvokeScp914Upgrade(__instance, __instance.players, ref pickups, __instance.knobState, ref allowUpgrade); __instance.MoveObjects(pickups, __instance.players); if (allowUpgrade) { __instance.UpgradeObjects(pickups, __instance.players); } return(false); } catch (Exception exception) { Log.Error($"SCP914UpgradeEvent error: {exception}"); return(true); } }