public bool IsPlayerCanContinue(IMafiaGame game, IMafiaPlayer player) { //1 killed //2 voted more than half of playersCount var killed = player.State.Effects.ContainsActualEffect(ActionEffectConstants.Killed); var votedCount = player.State.Effects.CountEffects(ActionEffectConstants.Voted); var voted = votedCount > (game.Players.Count - 1) / 2; return(!killed && !voted); }
public PlayerChooseEventArgs(ITeam team, IMafiaPlayer targetPlayer) { Team = team; TargetPlayer = targetPlayer; }
public void RemoveExcluded(IMafiaPlayer participant) { Participants.Remove(participant); }
public void DoChoose(IMafiaPlayer player) { player.State.Apply(Effect); Choice?.Invoke(this, new PlayerChooseEventArgs(this, player)); }
public PlayerEffectNeutralizeEventArgs( ITeam team, IMafiaPlayer targetPlayer) : base(team, targetPlayer) { }
public PlayerVoteEventArgs(IMafiaPlayer sourcePlayer, IMafiaPlayer targetPlayer) { SourcePlayer = sourcePlayer; TargetPlayer = targetPlayer; }
protected void RaiseNeutralized(ITeam fromTeam, IMafiaPlayer toPlayer) { EffectNeutralized?.Invoke(this, new PlayerEffectNeutralizeEventArgs(fromTeam, toPlayer)); }
public void DoVote(IMafiaPlayer other) { other.State.Apply(new VoteEffect()); Vote?.Invoke(this, new PlayerVoteEventArgs(this, other)); }