public static void HideSingle( IMeetingGuesser role, byte targetId, bool killedSelf ) { if ( killedSelf || !role.CanKeepGuessing() ) { HideButtons(role); return; } var(cycle, guess, guessText) = role.Buttons[targetId]; if (cycle == null) { return; } cycle.SetActive(false); guess.SetActive(false); guessText.gameObject.SetActive(false); cycle.GetComponent <PassiveButton>().OnClick = new Button.ButtonClickedEvent(); guess.GetComponent <PassiveButton>().OnClick = new Button.ButtonClickedEvent(); role.Buttons[targetId] = (null, null, null); role.Guesses.Remove(targetId); }
public static void Postfix(MeetingHud __instance) { Assassin.AssassinState.Guesses.Clear(); Assassin.AssassinState.Buttons.Clear(); if ( PlayerControl.LocalPlayer.Data.IsDead || !PlayerControl.LocalPlayer.Is(Faction.Impostors) ) { return; } Assassin assassin = Assassin.AssassinState; if (assassin.RemainingKills <= 0) { return; } foreach (var voteArea in __instance.playerStates) { IMeetingGuesser.GenButton( assassin, voteArea, playerControl => !IsExempt(playerControl), (playerControl, role) => { IMeetingGuesser.KillFromMeetingGuess(assassin, playerControl, role); assassin.RemainingKills--; }); } }
public static void HideButtons(IMeetingGuesser role) { foreach (var(_, (cycle, guess, guessText)) in role.Buttons) { if (cycle == null) { continue; } cycle.SetActive(false); guess.SetActive(false); guessText.gameObject.SetActive(false); cycle.GetComponent <PassiveButton>().OnClick = new Button.ButtonClickedEvent(); guess.GetComponent <PassiveButton>().OnClick = new Button.ButtonClickedEvent(); } }