public static Turn Create(TurnOrder turnOrder, Phase firstPhase) { var activePhase = ActivePhase.Create(firstPhase, turnOrder); return(new Turn(turnOrder.Id, activePhase.Id) { TurnOrder = turnOrder, CurrentPhase = activePhase }); }
public static ActivePhase Create(Phase phase, TurnOrder turnOrder) { var playerTurns = turnOrder.CreatePlayerTurns(phase.SimultaniousTurns); var activePhase = new ActivePhase(phase.Id) { Phase = phase }; activePhase._playerTurns.AddRange(playerTurns); return(activePhase); }
public void Start(TurnOrder turnOrder, Phase firstPhase) { Turn = Turn.Create(turnOrder, firstPhase); }
public ActivePhase Next(TurnOrder turnOrder) { return(Create(Phase.NextPhase, turnOrder)); }
public Turn Next() { return(Create(TurnOrder.Shift(), CurrentPhase.Phase.First())); }