import java.util.*;


class Entite implements java.io.Serializable{
	
	//******************************
	//int indexImage=0;
	//******************************
	
	boolean dansLeVide=false;
	
	
	boolean interieur=false;
	
	boolean aCrie=false;
	
	private int niveau=0;
	private int xp=0;
	
	private String espece=new String();
	private String modele=new String();
	private String nom=new String();
	private String nomE=new String();
	
	//private String nomEquipement=new String();
	
	private boolean hostiliteBol=false;
	
	private String typeObjet=new String();
	private boolean visible=true;
	private String tileStr=new String();
	private String tileStrCache=new String();
	private String tileStrMort=new String();
	
	private String tileStrFerme=new String();
	private String tileStrOuvert=new String();
	
	private String sonOuverture=new String();
	private String sonFermeture=new String();
	
	private String cri=new String();
	
	private int coordX=0;
	private int coordY=0;
	private boolean aBougeBol=false;
	private int vue=0;
	private int vueInitiale=0; // vue non modifiée
	private int rapidite=0;
	private int assombrissement=1;
	
	private int force=0;
	private int dexterite=0;
	private int intelligence=0;
	private int constitution=0;
	
	/*
	/////SKILLS/////////
	int perception=0;
	int discretion=0;
	int melee=0;
	int distance=0;
	int magie=0;
	int attunement=0;
	int crocheter=0;
	int pieges=0;
	int identification=0;
	int baratin=0;
	////////////////////
	int perceptionLvl=0;
	int discretionLvl=0;
	int meleeLvl=0;
	int distanceLvl=0;
	int magieLvl=0;
	int attunementLvl=0;
	int crocheterLvl=0;
	int piegesLvl=0;
	int identificationLvl=0;
	int baratinLvl=0;
	*/
	
	
	private int baseAtk=0;
	private int atkModifiee=0;
	private int baseDef=0;
	private int defModifiee=0;
	private int maxHitPoints=0;
	private int currentHitPoints=0;
	
	private int missileDmg=0;
	
	private int parade=0;
	
	
	
	private boolean exterieur=false;
	
	
	private int bonusAtk=0;
	private int bonusDef=0;
	
	private int bonusAtkArme=0;
	private int bonusDefArmure=0;
	
	private int magicBonus=0;
	
	private boolean equiped=false;
	
	private int encCapacity=0;
	private int encombrement=0;
	
	private int poids=0;
	
	private boolean useAsWeapon=false;
	private int huile=0;
	private int maxHuile=0;
	private int eclairage=0;
	private boolean alume=false;
	private boolean peutEclairer=false;
	private boolean peutCasser=false;
	private boolean peutCrocheter=false;
	private boolean peutCreuser=false;
	private int bonusCrochetage=0;
	
	private int resistanceMat=0;
	private int structureMat=0;
	
	
	private boolean ouvert=false;
	private boolean casse=false;
	private boolean transparent=false;
	private boolean mort=false;
	
	private boolean verrouillable=false;
	private boolean unlocked=false;
	private int complexiteSerrure=0;
	
	private Vector contenu=new Vector();
	
	private boolean actifPiege=false;
	private int complexitePiege=0;
	
	private boolean actifActivable=false;
	private int complexiteActivable=0;
	
	
	private Vector equipementVect=new Vector();
	

	private Entite arme;
	private Entite armure;
	
	
	private String texte=new String();
	private String texteE=new String();
	
	
	
	
	private int bruitagePas=0;
	
	private String sonActivation=new String();//
	
	private int nutrition=0;
	
	private int puissance=0;
	
	/////////////////////////
	private int dureeEffetSlow=0;
	private int dureeEffetSpeed=0;
	private int dureeEffetInvisibility=0;
	private int dureeEffetPasseMuraille=0;
	private int dureeEffetNightVision=0;
	private int dureeEffetRayonX=0;
	private int dureeEffetVolant=0;
	
	private boolean volant=false;
	private boolean invisible=false;
	private boolean passemuraille=false;
	private boolean nightvision=false;
	private boolean rayonX=false;
	/////////////////////////
	
	
	private boolean onOff=true; //true = on
	
	private boolean flee=false;
	
	
	private Spell sort;
	
	
	
	private int portee=0;
	
	//private Vector memSorts=new Vector(); // a remettre pour les creatures
	
	
	//////////////////////////////////////////
	/*
	public Vector getMemSorts(){	// a remettre pour les creatures
		return memSorts;
	}
	public void setMemSorts(Vector ms){	// a remettre pour les creatures
		memSorts=ms;
	}*/
	
	public boolean getDansLeVide(){
	
		return dansLeVide;	
	}
	
	public int getPortee(){
		return portee;
	}
	public void setPortee(int po){
		portee=po;
	}
	
	
	
	
	
	
	public boolean getRayonX(){
		return rayonX;
	}
	public void setRayonX(boolean nv){
		rayonX=nv;
	}
	
	
	public boolean getNightvision(){
		return nightvision;
	}
	public void setNightvision(boolean nv){
		nightvision=nv;
	}
	
	
	public boolean getInterieur(){
		return interieur;
	}
	
	
	public void setInvisible(boolean inv){
		invisible=inv;
	}
	
	public boolean getInvisible(){
		return invisible;
	}
	
	
	public void effetEcritMagique(Monde monde,Entite ent){
		
	}
	
	
	public void effetSort(Monde monde, Entite caster){
	}
	
	
	
	public Spell getSort(){
		return sort;
	}
	
	
	
	public boolean getFlee(){
		
		return flee;
	}
	
	public void setFlee(boolean fl){
		flee=fl;
	}
	
	
	public void effetActivable(Monde monde){
	}
	
	public boolean getOnOff(){
		return onOff;
	}
	
	public void setOnOff(boolean o){
		onOff=o;
	}
	
	public void crier(Monde monde,int vx,int vy){
	}
	
	public String getCri(){
		return cri;
	}
	
	public boolean getVolant(){
		return volant;
	}
	
	public void setVolant(boolean v){
		volant=v;
	}
	
	
	public boolean getTransparent(){
		return transparent;
	}
	
	public void setTransparent(boolean t){
		transparent=t;
	}
	
	public int getMissileDmg(){
		return missileDmg;
	}
	
	public void setMissileDmg(int md){
		missileDmg=md;
	}
	
	public boolean getPeutCreuser(){
		return peutCreuser;
	}
	
	public void setPeutCreuser(boolean peutcres){
		peutCreuser=peutcres;
	}
	
	
	public int getPuissancePiege(){
		return puissance;
	}
	
	
	public String getTileFerme(){
		return tileStrFerme;
	}
	public String getTileOuvert(){
		return tileStrOuvert;
	}
	public String getSonOuverture(){
		return sonOuverture;
	}
	public String getSonFermeture(){
		return sonFermeture;
	}
	
	public void effetNourriture(Personnage perso){
	}
	
	public int getNutrition(){
		return nutrition;
	}
	
	public void setNutrition(int nut){
		nutrition=nut;
	}
	
	
	public boolean getVerrouillable(){
		return verrouillable;
	}
	
	public String getSonActivation(){
		return sonActivation;
	}
	
	
	public int getBruitagPas(){
		
		return bruitagePas;
	}
	
	
	
	public int getNiveau(){
		return niveau;
	}
	public void setNiveau(int n){
		niveau=n;
	}
	public int getXp(){
		return xp;
	}
	public void setXp(int x){
		xp=x;
	}
	
	
	public void setDureeEffetVolant(int s){
		dureeEffetVolant=s;
	}
	
	public int getDureeEffetVolant(){
		return dureeEffetVolant;
	}
	
	
	public void setDureeEffetNightVision(int s){
		dureeEffetNightVision=s;
	}
	
	public int getDureeEffetNightVision(){
		return dureeEffetNightVision;
	}
	
	public void setDureeEffetRayonX(int s){
		dureeEffetRayonX=s;
	}
	
	public int getDureeEffetRayonX(){
		return dureeEffetRayonX;
	}
	
	
	public void setDureeEffetPasseMuraille(int s){
		dureeEffetPasseMuraille=s;
	}
	
	public int getdureePasseMuraille(){
		return dureeEffetPasseMuraille;
	}
	
	
	public void setDureeEffetInvisibility(int s){
		dureeEffetInvisibility=s;
	}
	
	public int getdureeEffetInvisibility(){
		return dureeEffetInvisibility;
	}
	
	
	
	
	public void setDureeEffetSlow(int s){
		dureeEffetSlow=s;
	}
	
	public int getDureeEffetSlow(){
		return dureeEffetSlow;
	}
	
	public void setDureeEffetSpeed(int s){
		dureeEffetSpeed=s;
	}
	
	public int getDureeEffetSpeed(){
		return dureeEffetSpeed;
	}
	
	
	
	
	public void unequipArme(Entite objet){
		
	}
	
	public void unequipArmure(Entite objet){
		
		
	}
	
	
	
	
	public String getTexte(){
		return texte;
	}
	
	public void setTexte(String tx){
		texte=tx;
	}
	
	public String getTexteE(){
		return texteE;
	}
	
	public void setTexteE(String txe){
		texteE=txe;
	}
	
	
	public void analyseDuSol(int xAct,int yAct){}
	
	
	
	public String getTileCache(){
		return tileStrCache;
	}
	

	
	public void setArmeEquipe(Entite w){
		arme=w;
		//getEquipementVect().add(arme);
		setbonusAtkArme(arme.getBonusAtk());
	}
	
	public void setArmureEquipe(Entite a){
		armure=a;
		//getEquipementVect().add(armure);
		setbonusDefArmure(armure.getBonusDef());
	}
	
	public Entite getArmeEquipe(){
		return arme;
	}
	
	public Entite getArmureEquipe(){
		return armure;
	}
	
	
	
	
	public Vector getEquipementVect(){
		
		return equipementVect;
	}
	
	public void setEquipementVect(Vector equip){
		equipementVect=equip;
	}
	
	
	
	public int getbonusAtkArme(){
		return bonusAtkArme;
	}
	
	public void setbonusAtkArme(int bonWeap){
		bonusAtkArme=bonWeap;
	}
	
	public int getbonusDefArmure(){
		return bonusDefArmure;
	}
	
	public void setbonusDefArmure(int bonDef){
		bonusDefArmure=bonDef;
	}
	
	
	
	public void effetPiege(Entite victime,Monde monde,int coX,int coY){
			
	}

	
	public boolean getActifPiege(){
		return actifPiege;
	}
	
	public void setActifPiege(boolean acttrap){
		actifPiege=acttrap;
	}
	
	public int getComplexitePiege(){
		return complexitePiege;
	}
	public void setComplexitePiege(int complex){
		complexitePiege=complex;
	}
	
	
	public boolean getActifActivable(){
		return actifActivable;
	}
	
	public void setActifActivable(boolean act){
		actifActivable=act;
	}
	
	public int getComplexiteActivable(){
		return complexiteActivable;
	}
	public void setComplexiteActivable(int complex){
		complexiteActivable=complex;
	}
	
	
	
	public Vector getContenu(){
		return contenu;
	}
	
	public void setContenu(Vector content){
		contenu=content;
	}
	
	
	public int getBonusCrochetage(){
		return bonusCrochetage;
	}
	
	public int getComplexiteSerrure(){
		return complexiteSerrure;
	}
	
	public void setComplexiteSerrure(int cs){
		complexiteSerrure=cs;
	}
	
	public boolean getPeutCrocheter(){
		return peutCrocheter;
	}
	
	public void setPeutCrocheter(boolean croch){
		peutCrocheter=croch;
	}
	
	
	public void setUnlocked(boolean dever){
		unlocked=dever;
	}
	
	public boolean getUnlocked(){
		return unlocked;
	}
	
	
	
	public void setOuvert(boolean ouv){
		ouvert=ouv;
	}
	public boolean getOuvert(){
		return ouvert;
	}
	public void setCasse(boolean broken){
		casse=broken;
	}
	public boolean getCasse(){
		return casse;
	}
	public void setMort(Monde monde,boolean ded, int x, int y){
		mort=ded;
	}
	public boolean getMort(){
		return mort;
	}
	
	
	
	
	
	
	
	
	
	
	public void effetBoisson(Personnage perso,Monde monde){
	}
	
	public int getHuile(){
		return huile;
	}
	
	public void setHuile(int oil){
		huile=oil;
	}
	
	public int getMaxHuile(){
		return maxHuile;
	}
	
	public int getResistanceMat(){
		return resistanceMat;
	}
	
	public void setResistanceMat(int res){
		resistanceMat=res;
	}
	
	public int getStructureMat(){
		return structureMat;
	}
	
	public void setStructureMat(int struct){
		structureMat=struct;
	}
	
	
	public int getForce(){
		return force;
	}
	
	public void setForce(int fo){
		force=fo;
	}
	
	public int getDexterite(){
		return dexterite;
	}
	
	public void setDexterite(int dex){
		dexterite=dex;
	}
	
	public void setMeleeLvl(double ml){
		
	}
	
	public int getIntelligence(){
		return intelligence;
	}
	
	public void setIntelligence(int intel){
		intelligence=intel;
	}
	
	public int getConstitution(){
		return constitution;
	}
	
	public void setConstitution(int co){
		constitution=co;
	}
	
	
	
	
	public boolean getAlume(){
		return alume;
	}
	
	public void setAlume(boolean lit){
		alume=lit;
	}
	
	public boolean getPeutCasser(){
		return peutCasser;
	}
	
	public void setPeutCasser(boolean peutcass){
		peutCasser=peutcass;
	}
	
	public boolean getPeutEclairer(){
		return peutEclairer;
	}
	
	public void setPeutEclaire(boolean peutEcl){
		peutEclairer=peutEcl;
	}
	
	
	public void setEclairage(int ecl){
		eclairage=ecl;
	}
	
	public int getEclairage(){
		return eclairage;
	}
	
	
	public boolean getUseAsWeapon(){
		
		return useAsWeapon;
	}
	
	public int getParade(){
		return parade;
	}
	
	public void setParade(int par){
		parade=par;
	}
	
	public int getPoids(){
		return poids;
	}
	
	public void setPoids(int pds){
		poids=pds;
	}
	
	
	public int getEncCapacity(){
		return encCapacity;
	}
	
	public void setEncCapacity(int enccap){
		encCapacity=enccap;
	}
	
	public int getEncombrement(){
		return encombrement;
	}
	
	public void setEncombrement(int enc){
		encombrement=enc;
	}
	
	
	
	/*
	public String getNomDequipement(){//PAS TERRIBLE
		return nomEquipement;
	}
	
	public void setNomDequipement(String nomEquip){//PAS TERRIBLE
		nomEquipement=nomEquip;
	}*/
	
	
	public boolean getEquiped(){
		return equiped;
	}
	
	public void setEquiped(boolean eq){
		equiped=eq;
	}
	
	
	
	public int getBonusAtk(){
		return bonusAtk;
	}
	
	public int getBonusDef(){
		return bonusDef;
	}
	
	public void setBonusAtk(int bonat){
		bonusAtk=bonat;
	}
	
	public void setBonusDef(int bondef){
		bonusDef=bondef;
	}
	
	
	public boolean getExterieur(){ // pas besoin de set (?)
		return exterieur;
	}
	
	public boolean getPasseMuraille(){
		return passemuraille;
	}
	
	public void setPasseMuraille(boolean passW){
		passemuraille=passW;
	}
	
	
	
	public int getBaseAtk(){
		return baseAtk;
	}
	
	public void setBaseAtk(int atkBase){
		baseAtk=atkBase;
		
	}
	
	public int getAtkModifiee(){
		return atkModifiee;
	}
	
	public void setAtkModifiee(int atkModif){
		atkModifiee=atkModif;
		
	}
	
	public int getBaseDef(){
		return baseDef;
	}
	
	public void setBaseDef(int defBase){
		baseDef=defBase;
	}
	
	public int getDefModifiee(){
		return defModifiee;
	}
	
	public void setDefModifiee(int defModif){
		defModifiee=defModif;
		
	}
	
	public int getMaxHitPts(){
		return maxHitPoints;
	}
	
	public void setMaxHitPts(int mxHitPts){
		maxHitPoints=mxHitPts;
	}
	
	public int getCurrentHitPts(){
		return currentHitPoints;
	}
	
	public void setCurrentHitPts(int currentHitPts){
		currentHitPoints=currentHitPts;
	}
	
	
	
	public int getOmbre(){
		return assombrissement;
	}
	
	public void setOmbre(int shadow){
		assombrissement=shadow;
	}
	
	
	public String getModele(){
		return modele;
	}
	
	public String getEspece(){
		return espece;
	}
	
	
	public int getRapidite(){
		return rapidite;	
	}
	
	public void setRapidite(int rapid){
		rapidite=rapid;
	}
	
	public int getVueInitiale(){
		return vueInitiale;
	}
	
	public void setVueInitiale(int viewInit){
		
		vueInitiale=viewInit;
	}
	
	public int getVue(){
		return vue;
	}
	
	public void setVue(int view){
		
		vue=view;
	}
	
	
	public boolean getHostilite(){
		return hostiliteBol;
	}
	
	public void setHostilite(boolean hostil){
		hostiliteBol=hostil;
	}
	
	
	public void setABouge(boolean ilabouge){
		aBougeBol=ilabouge;
	}
	
	public boolean getABouge(){
		return aBougeBol;
	}
	
	
	public void mouvement(Monde monde,int origineX,int origineY){
		
	}
	
	public int getCooX(){
		return coordX;
	}
	
	public int getCooY(){
		return coordY;
	}
	
	public void setCooX(int cooX){
		coordX=cooX;
	}
	
	public void setCooY(int cooY){
		coordY=cooY;
	}
	
	public String getTileStr(){
		return tileStr;
	}
	
	public String getTileStrVivant(){
		return tileStr;
	}
	
	public String getTileStrMort(){
		return tileStrMort;
	}
	
	
	
	public String getNom(){
		return nom;
	}
	
	
	
	
	public String getNomE(){
		return nomE;
	}
	
	
	public void bruit(){}
	
	
	public void bruit(Monde monde, int vx, int vy){}
	
	
	
	
	public String getTypeObjet(){
		return typeObjet;
	}
	
	public boolean getVisible(){
		return visible;
	}
	
	public void setVisible(boolean visibility){
		visible=visibility;
	}
	
	
	public int getMagicBonus(){
		return magicBonus;
	}
	
}