You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.0 KiB
93 lines
2.0 KiB
library StubLib;
|
|
|
|
import '../IGameManager.dart';
|
|
import '../GameDetail.dart';
|
|
import '../Player.dart';
|
|
import '../User.dart';
|
|
import 'StubData.dart';
|
|
|
|
class GameManager extends IGameManager {
|
|
final StubData parent;
|
|
|
|
// Constructor
|
|
GameManager(this.parent);
|
|
|
|
// Methods
|
|
GameDetail getGameById(int id) {
|
|
for (var element in parent.gameDetails) {
|
|
if (element.id == id) {
|
|
return element;
|
|
}
|
|
}
|
|
throw Exception("Game not found.");
|
|
}
|
|
|
|
List<GameDetail> getGamesByPlayerId(int id) {
|
|
List<GameDetail> games = [];
|
|
for (var element in parent.gameDetails) {
|
|
for (Player player in element.players) {
|
|
if (player is User && player.id == id) {
|
|
games.add(element);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return games;
|
|
}
|
|
|
|
List<GameDetail> getGamesByPlayer(Player user) {
|
|
List<GameDetail> games = [];
|
|
for (var element in parent.gameDetails) {
|
|
for (Player player in element.players) {
|
|
if (player is User && user is User && player.id == user.id) {
|
|
games.add(element);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return games;
|
|
}
|
|
|
|
List<GameDetail> getGamesByPlayers(List<Player> users) {
|
|
List<GameDetail> games = [];
|
|
for (var element in parent.gameDetails) {
|
|
if (element.players.toSet().containsAll(users.toSet())) {
|
|
games.add(element);
|
|
}
|
|
}
|
|
return games;
|
|
}
|
|
|
|
List<Player> getPlayersByIdGame(int id) {
|
|
List<Player> players = [];
|
|
for (var element in parent.gameDetails) {
|
|
if (element.id == id) {
|
|
for (var player in element.players) {
|
|
players.add(player);
|
|
}
|
|
return players;
|
|
}
|
|
}
|
|
throw Exception("Game not found.");
|
|
}
|
|
|
|
Map<Player, int> getRankByIdGame(int id) {
|
|
for (var game in parent.gameDetails) {
|
|
if (game.id == id) {
|
|
return game.getRank();
|
|
}
|
|
}
|
|
throw Exception("Game not found.");
|
|
}
|
|
|
|
@override
|
|
addGame(GameDetail gd) {
|
|
parent.gameDetails.add(gd);
|
|
}
|
|
|
|
@override
|
|
int getNextId() {
|
|
return parent.gameDetails.length;
|
|
}
|
|
}
|