From 2ee91862cf0707f0980b10969b74495e983455cd Mon Sep 17 00:00:00 2001 From: "alexis.drai" Date: Wed, 28 Sep 2022 12:00:16 +0200 Subject: [PATCH] :construction: WIP --- Sources/Model/Games/GameRunner.cs | 35 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/Sources/Model/Games/GameRunner.cs b/Sources/Model/Games/GameRunner.cs index b4acd01..1e80c4d 100644 --- a/Sources/Model/Games/GameRunner.cs +++ b/Sources/Model/Games/GameRunner.cs @@ -48,36 +48,53 @@ namespace Model.Games /// public void SaveGame(Game game) { - throw new NotSupportedException(); + if(game != null) + { + games.Remove(games.FirstOrDefault(g => g.Name == game.Name)); + // will often be an update: if game with that name exists, it is removed, else, nothing happens above + games.Add(game); + } + } /// - /// loads a game by name + /// loads a game by name to start playing again /// /// name of game to be loaded /// loaded game /// - public Game LoadGame(string name) + public void LoadGame(string name) { - throw new NotSupportedException(); + Game game = GetOneGameByName(name); + PlayGame(game); } /// - /// creates a new game + /// creates a new game -- copies are OK /// /// - public void StartNewGame() + public void StartNewGame(string name, PlayerManager playerManager, IEnumerable> dice) { - throw new NotSupportedException(); + Game game = new(name, playerManager, dice); + SaveGame(game); + PlayGame(game); } public void DeleteGame(Game game) { - throw new NotSupportedException(); + games.Remove(game); } + private void PlayGame(Game game) { - throw new NotSupportedException(); + while(true) + { + Player current = game.GetWhoPlaysNow(); + game.PerformTurn(current); + game.PrepareNextPlayer(current); + // TODO + break; + } } } }