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.

121 lines
3.8 KiB

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<Player> 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<Player> { 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();
}
}
}