import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;
public class Monstre extends Creature {
	
	
	long deplacement,dernierDeplacement = 800,cooldown=500;
	
	int degat = 30;
	int k =0;
	BufferedImage imageMonstre;
	
	public Monstre(float x, float y, int largeur, int hauteur) {
		super(x,y,largeur,hauteur);
		vie=2000;
	}
	
	public void tick(){
		xMove=0;
		yMove=0;
		deplacement  = System.currentTimeMillis() - dernierDeplacement;
		 if(deplacement > cooldown){
			dernierDeplacement = System.currentTimeMillis(); 
				
			deplacement();
			move();
			animationTick();
			attaque();
		 }
		
	}
	//Si le monstre meurt, on joue un son, on cree une animation de mort, on cree des items recuperables et on l'ajoute à la gestion de Respawn
	public void meurt(){
		Fenetre.gAnim.removeAll();
		Audio.playSound("meurtE.wav");
		AnimationMort a = new AnimationMort((int)x,(int)y);
		a.t1=System.currentTimeMillis();
		Fenetre.gAnim.addAnim(a);
		Fenetre.gItem.addItem(Liste.iViandeLapin.nouvelItem((int)x+largeur/3,(int) y+hauteur/3));
		Fenetre.gRespawn.addRespawn(new Respawn(this));
		
	}
	
	// Cree une zone d'attaque autour du monstre, si le joueur s'y trouve, il subit des degats qui peuvent être reduient en fonction
	public void attaque(){
		//creation du rectangle d'attaque autour du monstre
		Rectangle ra = new Rectangle((int)x -largeur/2 ,(int)y-hauteur/2,largeur*2,hauteur*2);
		//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);
		if(ra.intersects(rj)){
			
			Fenetre.j1.subisAttaque(degat*(1-(Fenetre.j1.resistance/1000)));
		}
	}
	public void animationTick(){
		k++;
		if(k>1)
			k=0;
		imageMonstre = ImageLoader.ImgLoaderSpe("monstre0.gif", 16*k, 16*direction, 16, 16);
	
	}
		
	//Déplacement aléatoire du monstre
	public void deplacement(){
		int random = (int)(Math.random()*4);
		if(random == 0){
			xMove =0;
			yMove +=vitesse/2;
			direction = 3;
		}else if(random == 1){
			xMove=0;
			yMove-=vitesse/2;
			direction = 2;
		}else if(random == 2){
			xMove-=vitesse/2;
			yMove=0;
			direction = 1;
		}else{
			xMove+=vitesse/2;
			yMove=0;
			direction = 0;
		}
	}
	
	public void dessine(Graphics g, JPanel jf){
		g.drawImage(imageMonstre, (int) (x - Fenetre.camera.getxOffset()) , (int) (y - Fenetre.camera.getyOffset()), largeur, hauteur, jf);
	}
	
	
	
	

}
