package modele;
/**
 * @author Emilie Collasse, Cynthia Fong, Salma Zaghloul
 * @version 1.0
 * Cette classe cartesCommunaute hérite de la classe Case, elle donne une carte communauté aléatoirement a un joueur lorsqu'il en tire une
 */
public class cartesCommunaute 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;
	/**
	 * constructeur qui initialise toutes les cartes communauté du jeu
	 *
	 */
	public cartesCommunaute(){
		super ("Cartes de Communauté");
		carteSortiePrisonPlusDispo=false;
		cartes =new String[16];
		cartes[0]="Recevez votre intérêt sur l'emprunt à 7% : 25 €./recevez-25";
		cartes[1]="Vous héritez 100 €./recevez-100";
		cartes[2]="La vente de votre stock vous rapporte 50 €./recevez-50";
		cartes[3]="Vous êtes libéré de prison. Cette carte peut être conservée jusqu'à ce qu'elle soit utilisée ou vendue./cartePrison";
		cartes[4]="Avancez jusqu'à la case départ./deplacement-10x10";
		cartes[5]="Payez votre police d'assurance s'élevant à 50 €./payez-50";
		cartes[6]="Payez l'hôpital 100 €./payez-100";
		cartes[7]="Les contributions vous remboursent la somme de 20 €./recevez-20";
		cartes[8]="C'est votre anniversaire, chaque joueur doit vous donner 10 €./recevezChaqueJoueur-10";
		cartes[9]="Payez la note du médecin 50 €./payez-50";
		cartes[10]="Erreur de la banque en votre faveur. Recevez 200 €./recevez-200";
		cartes[11]="Retournez à Belleville./deplacement-10x9";
		cartes[12]="Allez en prison. Avancez tout droit en prison. Ne passez pas par la case départ. Ne recevez pas 200 €./deplacement-10x0";
		cartes[13]="Payez une amende de 10 € ou bien tirez une carte chance./payezOuCarteChance-10";
		cartes[14]="Recevez votre revenu annuel 100 €./recevez-100";
		cartes[15]="Vous avez gagné le deuxième prix de beauté. Recevez 100 €./recevez-100";
	}
	/**
	 * 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 communauté 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 carteAleaCommunaute(){
		int alea=(int)(Math.random()*16);
		if (alea==3){
			if (carteSortiePrisonPlusDispo)
				return carteAleaCommunaute();
			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;
	}
}
