import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;

public class Pnj extends Monstre {
	
	
	String texte ;
	BufferedImage image ;
	Fenetre fenetre_JEU ;
	boolean speack = false ;
	int n;
	
	public Pnj( float x, float y, int largeur, int hauteur,Fenetre fj,String texte, int n) {
		super(x,y,largeur,hauteur);	
		this.texte=texte;
		
		this.fenetre_JEU=fj;
		this.cooldown=1000;
		this.vie=1000000;
		this.n = n;
	}
	
	public void tick(){
		xMove = 0;
		yMove = 0;
		vie+=10000;
		//creation du rectangle d'aggression autour du monstre
		Rectangle ra = new Rectangle((int)x - 500+largeur ,(int)y- 500+largeur,750,750);
		//creation du rectangle du joueur en fonction de sa position
		Rectangle rj = new Rectangle ((int)(Fenetre.j1.x), (int)(Fenetre.j1.y ),Fenetre.j1.largeur , Fenetre.j1.hauteur);
		
		deplacement  = System.currentTimeMillis() - dernierDeplacement;
		if(deplacement > cooldown){
			dernierDeplacement = System.currentTimeMillis(); 
			deplacement();
			animationTick();
			move();
							
		}
		
		
		
		// Quand on est dans une zone autour du pnj et qu'on appuie sur Entrer on ouvre son dialogue
		
		if(ra.intersects(rj) && fenetre_JEU.jeu.clavier.keyToutJusteAppuie(KeyEvent.VK_ENTER) && !speack){
			speack=true;
			Audio.playSound("ouvreDialogue.wav");
		}	
		// Si on rappuie sur Entrer on ferme son dialogue	
		else if(!ra.intersects(rj) || (fenetre_JEU.jeu.clavier.keyToutJusteAppuie(KeyEvent.VK_ENTER)&& speack)){
			speack=false;
			
		}	
	}
	public void deplacement(){
		
		 int random = (int)(Math.random()*4);
		 direction = random;
		 if(random == 0){
			 xMove =0;
			 yMove +=vitesse/2;
			 direction = 0;
		 }else if(random == 1){
			 xMove=0;
			 yMove-=vitesse/2;
			 direction = 3;
		}else if(random == 2){
			 xMove-=vitesse/2;
			 yMove=0;
			 direction = 1;
		}else{
			 xMove+=vitesse/2;
			 yMove=0;
			 direction = 2;
		}
	}
	
	public void animationTick(){
	
		
		k++;
		if(k>3)
			k=0;
		if(n==1)
			image = ImageLoader.ImgLoaderSpe("pnj1.png", 64*k, 64*direction, 64, 64);
		else if(n==2)
			image = ImageLoader.ImgLoaderSpe("pnj2.png", 64*k, 64*direction, 64, 64);
		else
			image = ImageLoader.ImgLoaderSpe("pnj3.png", 64*k, 64*direction, 64, 64);
	
	}
	
	public void dessine(Graphics g, JPanel jp){
		
		g.drawImage(image,(int) (x - fenetre_JEU.camera.getxOffset()) , (int) (y - fenetre_JEU.camera.getyOffset()), largeur, hauteur, jp);
		if(speack){
			g.setColor(new Color(200,200,200,150));
			g.fillRoundRect((int) (x - fenetre_JEU.camera.getxOffset()+50),(int) (y - fenetre_JEU.camera.getyOffset()-55),7*texte.length(),40,20,20);
			g.setColor(new Color(20,20,20,150));
			g.drawString(texte,(int) (x - fenetre_JEU.camera.getxOffset()+60),(int) (y - fenetre_JEU.camera.getyOffset()-30));
		}
		
		
	}
	
}
