protected abstract Card ChooseCardForAdding(DosGame game);
public CenterRowPlayerAddedCardEvent(DosGame game, Player player, Card card) : base(game, player) { Card = card; }
public PlayersSwappedHandsEvent(DosGame game, Player player, Player target) : base(game, player) { Target = target; }
protected abstract (Card[] matchers, Card target)? MakeMatch(DosGame game);
protected GameState(DosGame game) { Game = game; }
public TurnStartState(DosGame game) : base(game) { }
public CardMatchedEvent(DosGame game, Player player, Card target, Card[] matchingCards) : base(game, player) { Target = target; MatchingCards = matchingCards; }
public virtual void Play(DosGame game) => throw new InvalidOperationException();
public void SetUp() { game = new DosGame(new NonShufflingDealer(TwentyGreenSharps), 1, 7); game.Start(); }
public LogEvent(DosGame game, string message) : base(game) { Message = message; }
protected CurrentPlayerOnlyState(DosGame game) : base(game) { }
public CalledOutEvent(DosGame game, Player caller, Player target) : base(game) { Caller = caller; Target = target; }
public CenterRowRefilledEvent(DosGame game, Card[] cards) : base(game) { Cards = cards; }
protected override (Card[] matchers, Card target)? MakeMatch(DosGame game) =>
public BaseCurrentPlayerState(DosGame game) : base(game) { }
protected override Card ChooseCardForAdding(DosGame game) => Hand.RandomElement();
public PlayerReceivedCardsEvent(DosGame game, Player player, Card[] cards) : base(game, player) { Cards = cards; }