package org.royaldev.thehumanity.game.round;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.royaldev.thehumanity.cards.play.Play;
import org.royaldev.thehumanity.cards.types.BlackCard;
import org.royaldev.thehumanity.player.TheHumanityPlayer;
import xyz.cardstock.cardstock.games.rounds.Round;
import java.util.List;
import java.util.Set;
public interface CAHRound extends Round<TheHumanityPlayer> {
@NotNull
BlackCard getBlackCard();
@Nullable
TheHumanityPlayer getCzar();
Play getMostVoted();
int getNumber();
@NotNull
List<Play> getPlays();
@NotNull
Set<TheHumanityPlayer> getSkippedPlayers();
enum RoundState {
/**
* This round has not started.
*/
IDLE,
/**
* The players are submitting their cards for this round.
*/
WAITING_FOR_PLAYERS,
/**
* The czar is choosing a winner for this round.
*/
WAITING_FOR_CZAR,
/**
* This round has ended.
*/
ENDED
}
enum RoundEndCause {
NOT_ENDED,
CZAR_CHOSE_WINNER,
CZAR_LEFT,
CZAR_SKIPPED,
GAME_ENDED
}
}