
package modeles;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Personnage extends EtreVivant {
	
	private int arme =-1;
	private int armure=-1;
	private Bourse bourse;
	private List<Potion> listepotion= new ArrayList<Potion>();
	
	public Personnage(String nom, int pVieMax,int pAttaque) {
		super(nom, pVieMax, pAttaque);
		this.bourse=new Bourse(0);
	}
	
	public void equiper(Arme arme,Labyrinthe lab) {
		this.arme=lab.listeArme.indexOf(arme);
	}
	public void equiper(Armure armure,Labyrinthe lab) {
		this.armure=lab.listeArmure.indexOf(armure);
	}
	
	public void utiliser(Potion potion) {
		soin();		
	}
	
	public void seDeplacer(Salle salle) {
		this.salle=salle;
	}
	
	public void allerMarche(Salle marche){
		this.salle=marche;
	}
	
	public List<Potion> getPotion() {
		return this.listepotion;
	}
	
	public void gagnerUnePotion() {
		 Potion potion=new Potion(100);
		 listepotion.add(potion);		
	}
	
	public void soin() {
		this.pVie=this.pVieMax;
	}
	
	public int attaquer(Monstre monstre,Labyrinthe lab) {
		if(arme>=0) {
			monstre.pVie=monstre.pVie-(lab.listeArme.get(arme).getpArme()+getpAttaque());
			if (monstre.pVie<=0)monstre.setVivant(false);
			return lab.listeArme.get(arme).getpArme()+getpAttaque();
		}
		else {
			monstre.pVie=monstre.pVie-getpAttaque();
			if (monstre.pVie<=0)monstre.setVivant(false);
			return getpAttaque();
		}
	}
	
	public Bourse getBourse() {
		return this.bourse;
	}

	public int getValeurBourse() {
		return this.getBourse().getValeur();
	}
	/**
	 * @return the arme
	 */
	public int getArme() {
		return arme;
	}
	
	public String remplirBourse() {
	Random rd = new Random();
	int piece = rd.nextInt(20);
	//this.bourse.fusionBourse(new Bourse(rd.nextInt(20)));
	this.bourse.setValeur(this.bourse.getValeur()+piece);
	String str="Vous avez gagnez une bourse. Vous comptez vos pieces... Genial !! Vous avez desormais "+this.getValeurBourse()+" pieces d'argent !";
	return str;
		
	}

	/**
	 * @return the armure
	 */
	public int getArmure() {
		return armure;
	}
	
	public void soin(int heal) {
		if (pVie+heal > pVieMax)pVie=pVieMax;
		else pVie+=heal;
	}
}

