package etats;

@Exercice(4)
public enum HumeurGradue {
	
	CONTENT
	{
		@Override
		public String toString(){ return "Ça va !!";}

		@Override
		HumeurGradue travail(int pt){
			if(pt<=0) return FATIGUE;
			return CONTENT;
		}

		@Override
		HumeurGradue repos(int pt){
			return CONTENT;
		}
	},
	FATIGUE{
		@Override
		public String toString(){ return "Bof";}

		@Override
		HumeurGradue travail(int pt){
			if(pt<=-5) return EN_COLERE;
			return FATIGUE;
		}

		@Override
		HumeurGradue repos(int pt){
			if(pt>=3) return CONTENT;
			return FATIGUE;
		}
	},
	EN_COLERE{
		@Override
		public String toString(){ return "Grrr";}

		@Override
		HumeurGradue travail(int pt) throws AngryException {
			throw new AngryException("Je ne veux pas travailler");
		}

		@Override
		HumeurGradue repos(int pt){
			if(pt>=5) return CONTENT;
			return EN_COLERE;
		}
	};
	
	abstract HumeurGradue repos(int pt);
	abstract HumeurGradue travail(int pt) throws AngryException;
}
