using Robust.Shared.Player; namespace Content.Server.Ghost.Roles.Raffles; /// /// Chooses a winner of a ghost role raffle. /// [ImplicitDataDefinitionForInheritors] public partial interface IGhostRoleRaffleDecider { /// /// Chooses a winner of a ghost role raffle draw from the given pool of candidates. /// /// The players in the session at the time of drawing. /// /// Call this with the chosen winner as argument. /// /// /// If is not called, or only returns false, the raffle will end without a winner. /// Do not call with the same player several times. /// void PickWinner(IEnumerable candidates, Func tryTakeover); }