private void DrawACard() { firstDuelist.DrawCard(); var duelistState = DuelistState.From(firstDuelist); DomainEvents.Add(new CardDrawed(id, duelistState.Id, duelistState.Hand.Last())); }
public DuelState(string id, DuelistState firstDuelist, DuelistState secondDuelist, TurnState turn) { Id = id; FirstDuelist = firstDuelist; SecondDuelist = secondDuelist; Turn = turn; }
private void DrawInitialHand() { firstDuelist.DrawCard(); firstDuelist.DrawCard(); firstDuelist.DrawCard(); var initialHand = DuelistState.From(firstDuelist).Hand; DomainEvents.Add(new InitialHandDrawed(id, firstDuelist.Id, initialHand)); }
public static Duel Start(string id, string firstDuelistId, string secondDuelistId) { var firstDuelist = Duelist.Create(firstDuelistId, Deck.Create()); var secondDuelist = Duelist.Create(secondDuelistId, Deck.Create()); var duel = new Duel(id, firstDuelist, secondDuelist, null); duel.DomainEvents.Add( new DuelStarted(id, DuelistState.From(firstDuelist), DuelistState.From(secondDuelist))); return(duel); }
public DuelBuilder WithSecondDuelist(DuelistBuilder duelist) { this.secondDuelist = duelist.BuildState(); return(this); }
public DuelBuilder WithFirstDuelist(DuelistBuilder duelist) { this.firstDuelist = duelist.BuildState(); return(this); }
public DuelStarted(string duelId, DuelistState firstDuelist, DuelistState secondDuelist) { FirstDuelist = firstDuelist; SecondDuelist = secondDuelist; this.DuelId = duelId; }