public static void Prefix(AmongUsClient __instance, ref GameOverReason FCBGPMEMOJB, bool GKFHPFPIHGA) { gameOverReason = FCBGPMEMOJB; if ((int)FCBGPMEMOJB >= 10) { FCBGPMEMOJB = GameOverReason.ImpostorByKill; } }
public static void Postfix(AmongUsClient __instance, GameOverReason FCBGPMEMOJB, bool GKFHPFPIHGA) { AdditionalTempData.clear(); // Remove Jester from winners (on Jester win he will be added again, see below) if (Jester.jester != null) { WinningPlayerData jesterWinner = null; foreach (WinningPlayerData winner in TempData.BDGOKPKHCNB) { if (winner.GEDNCGBDPKC == Jester.jester.IDOFAMCIJKE.HGGCLJHCDBM) { jesterWinner = winner; } } if (jesterWinner != null) { TempData.BDGOKPKHCNB.Remove(jesterWinner); } } // Remove Jackal and Sidekick from winners (on Jackal win he will be added again, see below) if (Jackal.jackal != null || Sidekick.sidekick != null) { List <WinningPlayerData> winnersToRemove = new List <WinningPlayerData>(); foreach (WinningPlayerData winner in TempData.BDGOKPKHCNB) { if (winner.GEDNCGBDPKC == Jackal.jackal?.IDOFAMCIJKE?.HGGCLJHCDBM) { winnersToRemove.Add(winner); } if (winner.GEDNCGBDPKC == Sidekick.sidekick?.IDOFAMCIJKE?.HGGCLJHCDBM) { winnersToRemove.Add(winner); } foreach (var player in Jackal.formerJackals) { if (winner.GEDNCGBDPKC == player.IDOFAMCIJKE.HGGCLJHCDBM) { winnersToRemove.Add(winner); } } } foreach (var winner in winnersToRemove) { TempData.BDGOKPKHCNB.Remove(winner); } } bool childLose = Child.child != null && gameOverReason == (GameOverReason)CustomGameOverReason.ChildLose; bool jesterWin = Jester.jester != null && gameOverReason == (GameOverReason)CustomGameOverReason.JesterWin; // Child lose if (childLose) { TempData.BDGOKPKHCNB = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); WinningPlayerData wpd = new WinningPlayerData(Child.child.IDOFAMCIJKE); wpd.KCEFGIGGLHM = false; // If "no one is the Child", it will display the Child, but also show defeat to everyone TempData.BDGOKPKHCNB.Add(wpd); AdditionalTempData.winCondition = WinCondition.ChildLose; } // Jester win else if (jesterWin) { TempData.BDGOKPKHCNB = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); WinningPlayerData wpd = new WinningPlayerData(Jester.jester.IDOFAMCIJKE); TempData.BDGOKPKHCNB.Add(wpd); AdditionalTempData.winCondition = WinCondition.JesterWin; } // Lovers win conditions else if (Lovers.existingAndAlive() && gameOverReason == (GameOverReason)CustomGameOverReason.LoversWin) { AdditionalTempData.localIsLover = (PlayerControl.LocalPlayer == Lovers.lover1 || PlayerControl.LocalPlayer == Lovers.lover2); // Double win for lovers, crewmates also win if (!Lovers.existingWithImpLover()) { AdditionalTempData.winCondition = WinCondition.LoversTeamWin; TempData.BDGOKPKHCNB = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); foreach (PlayerControl p in PlayerControl.AllPlayerControls) { if (p == null) { continue; } if (p == Lovers.lover1 || p == Lovers.lover2) { TempData.BDGOKPKHCNB.Add(new WinningPlayerData(p.IDOFAMCIJKE)); } else if (p != Jester.jester && p != Jackal.jackal && p != Sidekick.sidekick && !p.IDOFAMCIJKE.CIDDOFDJHJH) { TempData.BDGOKPKHCNB.Add(new WinningPlayerData(p.IDOFAMCIJKE)); } } } // Lovers solo win else { AdditionalTempData.winCondition = WinCondition.LoversSoloWin; TempData.BDGOKPKHCNB = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); TempData.BDGOKPKHCNB.Add(new WinningPlayerData(Lovers.lover1.IDOFAMCIJKE)); TempData.BDGOKPKHCNB.Add(new WinningPlayerData(Lovers.lover2.IDOFAMCIJKE)); } } // Jackal win condition (should be implemented using a proper GameOverReason in the future) else if (gameOverReason == (GameOverReason)CustomGameOverReason.TeamJackalWin && (Jackal.jackal != null && !Jackal.jackal.IDOFAMCIJKE.FGNJJFABIHJ || Sidekick.sidekick != null && !Sidekick.sidekick.IDOFAMCIJKE.FGNJJFABIHJ)) { // Jackal wins if nobody except jackal is alive AdditionalTempData.winCondition = WinCondition.JackalWin; TempData.BDGOKPKHCNB = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); WinningPlayerData wpd = new WinningPlayerData(Jackal.jackal.IDOFAMCIJKE); wpd.CIDDOFDJHJH = false; TempData.BDGOKPKHCNB.Add(wpd); // If there is a sidekick. The sidekick also wins if (Sidekick.sidekick != null) { WinningPlayerData wpdSidekick = new WinningPlayerData(Sidekick.sidekick.IDOFAMCIJKE); wpdSidekick.CIDDOFDJHJH = false; TempData.BDGOKPKHCNB.Add(wpdSidekick); } foreach (var player in Jackal.formerJackals) { WinningPlayerData wpdFormerJackal = new WinningPlayerData(player.IDOFAMCIJKE); wpdFormerJackal.CIDDOFDJHJH = false; TempData.BDGOKPKHCNB.Add(wpdFormerJackal); } } // Reset Settings RPCProcedure.resetVariables(); }