private static bool Prefix(Scp173PlayerScript __instance) { try { if ((Scp173PlayerScript._remainingTime - Time.fixedDeltaTime) >= 0f) { return(true); } if (!SynapseController.Server.Map.Round.RoundIsActive) { return(true); } __instance.DoBlinkingSequence(); if (!__instance.iAm173 || (!__instance.isLocalPlayer && !NetworkServer.active)) { return(false); } HashSet <Player> players = new HashSet <Player>(); //Get all players looking at Scp173 foreach (GameObject gameObject in PlayerManager.players) { Scp173PlayerScript component = gameObject.GetComponent <Scp173PlayerScript>(); if (!component.SameClass && component.LookFor173(__instance.gameObject, true) && __instance.LookFor173(component.gameObject, false)) { players.Add(gameObject.GetPlayer()); } } var scriptHolder = __instance.gameObject.GetPlayer(); scriptHolder.Scp173Controller.ConfrontingPlayers = players; //If someone is confronting Scp173 when blinking if (scriptHolder.Scp173Controller.ConfrontingPlayers.Count != 0) { Server.Get.Events.Scp.Scp173.InvokeScp173BlinkEvent(scriptHolder); } __instance.AllowMove = true; //Original foreach (GameObject gameObject in PlayerManager.players) { Scp173PlayerScript component = gameObject.GetComponent <Scp173PlayerScript>(); if (!component.SameClass && component.LookFor173(__instance.gameObject, true) && __instance.LookFor173(component.gameObject, false)) { __instance.AllowMove = false; break; } } } catch (System.Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: Scp173BlinkEvent(Scp173) failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); } return(false); }
public static bool Prefix(Scp173PlayerScript __instance) { if (EventPlugin.Scp173PatchDisable) { return(true); } try { __instance.DoBlinkingSequence(); if (!__instance.iAm173) { return(false); } __instance._allowMove = true; foreach (GameObject player in PlayerManager.players) { ReferenceHub hub = player.GetPlayer(); if (hub.characterClassManager.CurClass == RoleType.Tutorial) { continue; } Scp173PlayerScript component = player.GetComponent <Scp173PlayerScript>(); if (!component.SameClass && component.LookFor173(__instance.gameObject, true) && __instance.LookFor173(component.gameObject, false)) { __instance._allowMove = false; break; } } return(false); } catch (Exception exception) { Log.Error($"Scp173Patch error: {exception}"); return(true); } }
private static bool Prefix(Scp173PlayerScript __instance) { try { __instance.DoBlinkingSequence(); if (!__instance.iAm173) { return(false); } __instance._allowMove = true; foreach (GameObject gameObject in PlayerManager.players) { Player player = Player.Get(gameObject); if (player.Role == RoleType.Tutorial) { continue; } Scp173PlayerScript component = player.ReferenceHub.GetComponent <Scp173PlayerScript>(); if (!component.SameClass && component.LookFor173(__instance.gameObject, true) && __instance.LookFor173(component.gameObject, false)) { __instance._allowMove = false; break; } } return(false); } catch (Exception exception) { Log.Error($"Scp173BeingLooked error: {exception}"); return(true); } }