public static void Prefix([HarmonyArgument(0)] ref GameEndReasonEnum reason) { if (TheJester.GameMode.NumJesters == 0) { return; } if (TheJester.GameMode.JestersWon) { reason = GameEndReasonEnum.ImpostorByKill; foreach (var player in PlayerController.AllPlayerControls.Where(x => x.PlayerData.IsImpostor)) { player.PlayerData.IsImpostor = false; } foreach (var jester in TheJester.GameMode.AllRolePlayers) { jester.RoleOutro.UseRoleOutro = true; jester.PlayerController.PlayerData.IsImpostor = true; } if (TheJester.GameMode.AllRolePlayers.Where(x => x.AmRolePlayer).Count() == 0) { var DefeatRole = new RolePlayer(PlayerController.LocalPlayer, "Other"); DefeatRole.RoleOutro.WinText = "Defeat"; DefeatRole.RoleOutro.WinTextColor = new Color(175 / 255f, 43 / 255f, 237 / 255f); DefeatRole.RoleOutro.BackgroundColor = new Color(127 / 255f, 0 / 255f, 186 / 255f); DefeatRole.RoleOutro.UseRoleOutro = true; } } else { if (reason == GameEndReasonEnum.HumansByVote || reason == GameEndReasonEnum.HumansByTask) { foreach (var jester in TheJester.GameMode.AllRolePlayers) { jester.PlayerController.PlayerData.IsImpostor = true; } } } }
public static void RpcEndGame(EndGameReason reason) { ShipStatusClass.PLBGOMIEONF(reason, false); }