|
|
@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
|
|
|
using System.Threading.Tasks.Dataflow;
|
|
|
|
using System.Threading.Tasks.Dataflow;
|
|
|
|
using Models.Events;
|
|
|
|
using Models.Events;
|
|
|
|
using Models.Exceptions;
|
|
|
|
using Models.Exceptions;
|
|
|
|
|
|
|
|
using Models.Interfaces;
|
|
|
|
using Models.Rules;
|
|
|
|
using Models.Rules;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Models.Game
|
|
|
|
namespace Models.Game
|
|
|
@ -16,6 +17,15 @@ namespace Models.Game
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
public class Game
|
|
|
|
public class Game
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
/* Persistence */
|
|
|
|
|
|
|
|
public IPersistence PersistenceManager { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* List for the game and persistence */
|
|
|
|
|
|
|
|
public List<Player> Players { get; set; }
|
|
|
|
|
|
|
|
public List<Game> Games { get; set; }
|
|
|
|
|
|
|
|
public List<Map> Maps { get; set; }
|
|
|
|
|
|
|
|
public List<BestScore> BestScores { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
private bool _isRunning;
|
|
|
|
private bool _isRunning;
|
|
|
|
public Player CurrentPlayer { get; private set; }
|
|
|
|
public Player CurrentPlayer { get; private set; }
|
|
|
|
|
|
|
|
|
|
|
@ -36,6 +46,61 @@ namespace Models.Game
|
|
|
|
public event EventHandler<DiceRolledEventArgs> DiceRolled;
|
|
|
|
public event EventHandler<DiceRolledEventArgs> DiceRolled;
|
|
|
|
public event EventHandler<OperationChosenEventArgs> OperationChosen;
|
|
|
|
public event EventHandler<OperationChosenEventArgs> OperationChosen;
|
|
|
|
public event EventHandler<CellChosenEventArgs> CellChosen;
|
|
|
|
public event EventHandler<CellChosenEventArgs> CellChosen;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void AddPlayer(Player player)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Players.Add(player);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void AddGame(Game game)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Games.Add(game);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void AddMap(Map map)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Maps.Add(map);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void AddBestScore(BestScore bestScore)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
BestScores.Add(bestScore);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void LoadData()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var data = PersistenceManager.LoadData();
|
|
|
|
|
|
|
|
foreach (var player in data.Item1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Players.Add(player);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach (var game in data.Item2)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Games.Add(game);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach (var map in data.Item3)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Maps.Add(map);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach (var bestScore in data.Item4)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
BestScores.Add(bestScore);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void SaveData() => PersistenceManager.SaveData(Players, Games, Maps, BestScores);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Game(IPersistence persistenceManager)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
PersistenceManager = persistenceManager;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Players = new List<Player>();
|
|
|
|
|
|
|
|
Games = new List<Game>();
|
|
|
|
|
|
|
|
Maps = new List<Map>();
|
|
|
|
|
|
|
|
BestScores = new List<BestScore>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_isRunning = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|