using System; using System.Collections.Generic; using TheGameExtreme.model; using TheGameExtreme.model.@event; using TheGameExtreme.model.manager; using Xamarin.Forms; namespace TheGameExtreme.viewmodel { public class Main { private List players; private GameManager gameManager; private int currentIndexPlayer; public string Stack0 { get; set; } = "1"; public string Stack1 { get; set; } = "1"; public string Stack2 { get; set; } = "100"; public string Stack3 { get; set; } = "100"; public Main() { players = new List { new Player("Clément"), new Player("Baptiste") }; gameManager = new SoloGameManager(2, players); gameManager.TopRangeChanged += OnTopRangeChanged; players.ForEach(player => { player.HandCardChanged += OnHandCardChanged; }); gameManager.CurrentPlayerChanged += OnCurrentPlayerChanged; // Ecoute le changement de vue } public void OnTopRangeChanged(object source, TopRangeChangedEventArgs args) { switch (args.NumStackChanged) { case 0: Stack0 = args.NewTopRangeCard.Value.ToString(); break; case 1: Stack1 = args.NewTopRangeCard.Value.ToString(); break; case 2: Stack2 = args.NewTopRangeCard.Value.ToString(); break; case 3: Stack3 = args.NewTopRangeCard.Value.ToString(); break; } } private void OnHandCardChanged(object source, HandCardChangedEventArgs args) { //if (args.NewHandCard == null) //{ // players[currentIndexPlayer].getCardList().Remove(args.OldHandCard); //} //else //{ // players[currentIndexPlayer].getCardList().Add(args.NewHandCard); //} } private void OnCurrentPlayerChanged(object source, CurrentPlayerChangedEventArgs args) { currentIndexPlayer = args.NewCurrentPlayer; } public void played(string text) { if (players[currentIndexPlayer].getCardList().Count != 0) { int r = new Random().Next(0, 3); playOneCard(text, r); } else { // Throw Exception } } private void playOneCard(string text, int r) { switch (text) { case "Card 1": gameManager.joue(players[currentIndexPlayer].getCardList()[0], r); break; case "Card 2": gameManager.joue(players[currentIndexPlayer].getCardList()[1], r); break; case "Card 3": gameManager.joue(players[currentIndexPlayer].getCardList()[2], r); break; case "Card 4": gameManager.joue(players[currentIndexPlayer].getCardList()[3], r); break; case "Card 5": gameManager.joue(players[currentIndexPlayer].getCardList()[4], r); break; case "Card 6": gameManager.joue(players[currentIndexPlayer].getCardList()[5], r); break; case "Card 7": gameManager.joue(players[currentIndexPlayer].getCardList()[6], r); break; } } public void endTurn() { gameManager.endTurn(); } } }