public static void Postfix(EndGameManager __instance) { GameObject bonusText = UnityEngine.Object.Instantiate(__instance.WinText.gameObject); bonusText.transform.position = new Vector3(__instance.WinText.transform.position.x, __instance.WinText.transform.position.y - 0.8f, __instance.WinText.transform.position.z); bonusText.transform.localScale = new Vector3(0.7f, 0.7f, 1f); TextRenderer textRenderer = bonusText.GetComponent <TextRenderer>(); textRenderer.Text = ""; if (AdditionalTempData.winCondition == WinCondition.ChildWin) { textRenderer.Text = "Child Wins"; textRenderer.Color = Child.color; } else if (AdditionalTempData.winCondition == WinCondition.JesterWin) { textRenderer.Text = "Jester Wins"; textRenderer.Color = Jester.color; } else if (AdditionalTempData.winCondition == WinCondition.LoversTeamWin) { if (AdditionalTempData.localIsLover) { __instance.WinText.Text = "Double Victory"; } textRenderer.Text = "Lovers And Crewmates Win"; textRenderer.Color = Lovers.color; __instance.BackgroundBar.material.SetColor("_Color", Lovers.color); } else if (AdditionalTempData.winCondition == WinCondition.LoversSoloWin) { textRenderer.Text = "Lovers Win"; textRenderer.Color = Lovers.color; __instance.BackgroundBar.material.SetColor("_Color", Lovers.color); } AdditionalTempData.clear(); }
public static void Postfix(AmongUsClient __instance, GameOverReason OFLKLGMHBEL, bool JFFPAKGPNJA) { AdditionalTempData.clear(); // Remove shifter from winners if (Shifter.shifter != null) { WinningPlayerData shifterWinner = null; foreach (WinningPlayerData winner in TempData.winners) { if (winner.Name == Shifter.shifter.Data.PlayerName) { shifterWinner = winner; } } if (shifterWinner != null) { TempData.winners.Remove(shifterWinner); } } // 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.winners) { if (winner.Name == Jester.jester.Data.PlayerName) { jesterWinner = winner; } } if (jesterWinner != null) { TempData.winners.Remove(jesterWinner); } } // Child win condition (should be implemented using a proper GameOverReason in the future) if (Child.child != null && Child.child.Data.IsImpostor) { AdditionalTempData.winCondition = WinCondition.ChildWin; TempData.winners = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); WinningPlayerData wpd = new WinningPlayerData(Child.child.Data); wpd.IsImpostor = false; TempData.winners.Add(wpd); } // Jester win condition (should be implemented using a proper GameOverReason in the future) else if (Jester.jester != null && Jester.jester.Data.IsImpostor) { AdditionalTempData.winCondition = WinCondition.JesterWin; TempData.winners = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); WinningPlayerData wpd = new WinningPlayerData(Jester.jester.Data); wpd.IsImpostor = false; TempData.winners.Add(wpd); } // Lovers win conditions (should be implemented using a proper GameOverReason in the future) else if (Lovers.existingAndAlive()) { AdditionalTempData.localIsLover = (PlayerControl.LocalPlayer == Lovers.lover1 || PlayerControl.LocalPlayer == Lovers.lover2); // Double win for lovers, crewmates also win if (TempData.DidHumansWin(OFLKLGMHBEL)) { AdditionalTempData.winCondition = WinCondition.LoversTeamWin; } // Lovers solo win else if (Lovers.existingWithImpLover()) { AdditionalTempData.winCondition = WinCondition.LoversSoloWin; TempData.winners = new Il2CppSystem.Collections.Generic.List <WinningPlayerData>(); TempData.winners.Add(new WinningPlayerData(Lovers.lover1.Data)); TempData.winners.Add(new WinningPlayerData(Lovers.lover2.Data)); } } // Reset Bonus Roles Settings clearAndReloadRoles(); clearGameHistory(); }