package modele;
/**
 * Cette classe cartesChance herite de la classe Case. Elle contient toutes les cartes chance
 * @author Emilie Collasse, Cynthia Fong, Salma Zaghloul
 * @version 1.0
 */
public class cartesChance extends Case{ //attention la carte sortie de prison ne peut être tirée qu'une seule fois si elle n'est pas remise dans la pile
	protected static String[]cartes;
	protected static boolean carteSortiePrisonPlusDispo;
	/**
	 *  remplit un tableau de String contenant toutes les cartes chance
	 */
	public cartesChance(){
		super ("Cartes Chances");
		carteSortiePrisonPlusDispo=false;
		cartes=new String[16];
		cartes[0]="Allez en prison. Avancez tout droit en prison. Ne passez pas par la case départ. Ne recevez pas 200 €./deplacement-10x0"; 
		cartes[1]="Rendez vous à l'avenue Henri-Martin. Si vous passez par la case départ, recevez 200 €./deplacement-0x4"; 
		cartes[2]="Avancez au boulevard de la Villette. Si vous passez par la case départ, recevez 200 €./deplacement-9x0"; 
		cartes[3]="Rendez vous à la rue de la Paix./deplacement-9x10"; 
		cartes[4]="Allez à la gare de Lyon. Si vous passez par la case départ, recevez 200 €./deplacement-5x0"; 
		cartes[5]="Avancez jusqu'à la case départ./deplacement-10x10";
		cartes[6]="Reculez de trois cases./recul-3";  
		cartes[7]="Amende pour excès de vitesse : 15 €./payez-15"; 
		cartes[8]="La banque vous verse un dividende de 50 €./recevez-50"; 
		cartes[9]="Vous avez gagné le prix des mots croisés. Recevez 100 €./recevez-100";
		cartes[10]="Amende pour ivresse : 20 €./payez-20"; 
		cartes[11]="Votre immeuble et votre prêt rapportent. Vous devez toucher 150 €./recevez-150"; 
		cartes[12]="Vous êtes imposé pour les réparations de voirie à raison de : 40 € par maison et 115 € par hôtel./payez-40parMaison115parHotel"; 
		cartes[13]="Payez pour frais de scolarité 150 €./payez-150"; 
		cartes[14]="Vous êtes libéré de prison. Cette carte peut être conservée jusqu'à ce qu'elle soit utilisée ou vendue./cartePrison";
		cartes[15]="Faites des réparations dans toutes vos maisons. Versez pour chaque maison 25 €. Versez pour chaque hôtel 100 €./payez-25parMaison100parHotel";
	}
	/**
	 * cette case est situé au milieu du plateau. Un joueur ne tombe jamais dessus. Elle renvoit donc une action nulle modélisée par "".
	 * Cette méthode ne sert à rien mais était nécessaire pour implémenter la classe Case.
	 */
	public String actionnerCase(joueur Joueur){
		return "";
	}
	/**
	 * même fonction que actionnerCase(joueur Joueur) mais était nécessaire pour l'ihm 
	 */
	public String actionnerCaseIHM(joueur Joueur){
		return "";
	}
	/**
	 * 
	 * @return renvoit une carte chance tirée aléatoirement. Si un joueur détient déjà la carte pour sortir de prison, elle ne peut plus être retirée tant que le joueur ne l'a pas remise dans le tas.
	 */
	public static String carteAleaChance(){
		int alea=(int)(Math.random()*16);
		if (alea==14){
			if (carteSortiePrisonPlusDispo)
				return carteAleaChance();
			else
				carteSortiePrisonPlusDispo=true;
		}
		return cartes[alea];
	}
	/**
	 * cette fonction change un attribut de classe qui permet de se souvenir si la carte pour sortir de prison a déjà été tirée
	 */
	public static void cartePrisonDispo(){
		carteSortiePrisonPlusDispo=false;
	}
	/**
	 * 
	 * @return renvoit le booléen disant si la carte sortie de prison a été tirée
	 */
	public static boolean getCartePrisonPlusDispo(){
		return carteSortiePrisonPlusDispo;
	}
}
