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;
                        }
                    }
                }
            }
Exemple #2
0
 public static void RpcEndGame(EndGameReason reason)
 {
     ShipStatusClass.PLBGOMIEONF(reason, false);
 }