public GameMoveResultModel(DomainModel.Player player, DomainModel.Game result) { var defender = result.GameStatus.OtherPlayer; var human = player.IsComputerControlled ? defender : player; this.GameID = result.ID; this.Result = result.GameStatus.CurrentMoveResult; this.AttackerTokenType = result.GameStatus.AttackerToken.TokenType; this.DefenderTokenType = result.GameStatus.DefenderToken == null ? DomainModel.TokenType.Empty : result.GameStatus.DefenderToken.TokenType; this.AttackerTokenID = result.GameStatus.CurrentMove.Token.ID; this.MoveToX = result.GameStatus.CurrentMove.MoveTo.X; this.MoveToY = result.GameStatus.CurrentMove.MoveTo.Y; this.Rows = result.GameBoard.NumRows; this.Cols = result.GameBoard.NumCols; this.Tokens = result.GameBoard.GetTokens().Select(token => new GameTokenModel(token, human.ID)).ToArray(); switch (result.GameStatus.CurrentMoveResult) { case DomainModel.GameMoveResultType.AttackerWins: this.Message = string.Format("{0} attacks {1} - {0} Wins!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.DefenderWins: this.Message = string.Format("{0} attacks {1} - {1} Wins!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.BothLose: this.Message = string.Format("{0} attacks {1} - Everyone Loses!", AttackerTokenType, DefenderTokenType); break; case DomainModel.GameMoveResultType.FlagCapturedByAttacker: this.Message = string.Format("Player {0} Wins! Game Over.", player.Name); break; case DomainModel.GameMoveResultType.AttackerOutOfPieces: this.Message = string.Format("Player {0} ran out of pieces. Player {1} Wins! Game Over.", player.Name, defender.Name); break; case DomainModel.GameMoveResultType.DefenderOutOfPieces: this.Message = string.Format("Player {0} ran out of pieces. Player {1} Wins! Game Over.", defender.Name, player.Name); break; case DomainModel.GameMoveResultType.BothOutOfPieces: this.Message = "Its a tie! Game Over."; break; } }
public void Add(DomainModel.Player player, DomainModel.Game result) { this.Results.Add(new GameMoveResultModel(player, result)); }