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