/*
autor: Lubos Fazekas
tim: Gridders
ucel: deklaracia triedy PlayerExperience
Trieda realizuje ulozisko skusnosti hraca a ich spravu
*/

#ifndef PLAYER_EXPERIENCE_H
#define PLAYER_EXPERIENCE_H

#include "Experience.h"

class PlayerExperience
{
private:
	// skusenosti kopu na branku z roznych vzdialenosti (zon)
	Experience m_KickOnGoalZone1;
	Experience m_KickOnGoalZone2;
	Experience m_KickOnGoalZone3;
	Experience m_KickOnGoalZone4;
	Experience m_KickOnGoalZone5;
	Experience m_KickOnGoalZone6;
public:
	PlayerExperience();
	~PlayerExperience();

	//vrati limit pre danu skusenosti
	float getLimitProbabilityFoxExperience(int p_ExperienceType);
	// zisti, na zaklade vzdialenosti, v ktorej zone sa hrac nachadza
	int getKickOnGoalZone(float p_Distance);
	// zaznaci skusenost strelby
	void recordExperience(int p_ExperienceType,float p_EstimatedProbability,int p_EndSimTime);
	// zrusi vsetky skusenosti, v pripade, ze sme dali gol
	void onScore(int p_SimTime);
	// zabezpeci vyhodnotenie vsetkych hracovych skusenosti (vola sa pravidelne ako sucast reakcie na spravu SENSE_BODY)
	void evalExperience(int p_SimTime);


	// symbolicke konstanty pre jednotlive zony
	static const int KICK_ON_GOAL_ZONE_1;
	static const int KICK_ON_GOAL_ZONE_2;
	static const int KICK_ON_GOAL_ZONE_3;
	static const int KICK_ON_GOAL_ZONE_4;
	static const int KICK_ON_GOAL_ZONE_5;
	static const int KICK_ON_GOAL_ZONE_6;
};


#endif PLAYER_EXPERIENCE_H