package modele;
/**
 * Cette classe possessionPossible herite de la classe Case. C'est un type de case qu'un joueur peut posséder
 * @author Emilie Collasse, Cynthia Fong, Salma Zaghloul
 * @version 1.0
 */
public abstract class possessionPossible extends Case{

	protected joueur proprietaire;
	protected boolean estHypothequee;
	protected int prixDepart;
	protected int hypothequeePour;
	/**
	 * 
	 * @param nom nom de la case pouvant être achetée
	 * @param prix prix d'achat
	 */
	public possessionPossible(String nom, int prix){
		super(nom);
		proprietaire=null;
		estHypothequee=false;
		prixDepart=prix;
		hypothequeePour=(prix/2);
	}
	/**
	 * change le propriétaire
	 * @param newProprietaire
	 */
	public void setProprietaire(joueur newProprietaire){
		proprietaire=newProprietaire;
	}
	/**
	 * 
	 * @return le prix d'achat de départ
	 */
	public int getPrix(){
		return prixDepart;
	}
	/**
	 * 
	 * @return la valeur de l'hypothèque
	 */
	public int getHypothequeePour() {
		return hypothequeePour;
	}
	/**
	 * 
	 * @return le joueur propriétaire
	 */
	public joueur getProprietaire(){
		return proprietaire;
	}
	/**
	 * 
	 * @return le booléen indiquant si la case est hypothéquée
	 */
	public boolean getEstHypothequee(){
		return estHypothequee;
	}
	/**
	 * on peut lever ou mettre une hypothèque sur l'objet
	 * @param booleen
	 */
	public void setEstHypothequee(boolean booleen){
		estHypothequee=booleen;
	}
	/**
	 * méthode abstraite car le loyer varie en fonction du type de case 
	 * @return la valeur du loyer
	 */
	public abstract int calculLoyer();
	/**
	 * méthode abstraite car l'action dépend de l'état de la case et de quelle type elle est
	 * @return l'action à effectuer
	 */
	public abstract String actionnerCase(joueur Joueur);
	/**
	 * même fonction que actionnerCase(joueur Joueur) mais était nécessaire pour l'ihm pour remplacer tout les System.out.println par des JDialog
	 */ 
	public abstract String actionnerCaseIHM(joueur Joueur);
}
