/*
autor: Lubos Fazekas
tim: Gridders
ucel: Definicia triedy Experience
trida sluzi na uchovavanie skusenosti hraca
*/

#ifndef EXPERIENCE_H
#define EXPERIENCE_H

#include <string>

using namespace std;

class Experience
{
private:
	// nazov skusenosti
	string m_Name;
	// aktualny limit pre skusenost
	float m_Limit;
	// casova zmena limitu
	float m_TimeChange;
	// simulacny cas, urceny na finalne vyhodnotenie skusenosti
	int m_EndSimTime;
	// ci prave ziskava tuto skusenost
	bool m_Active;
	// odhadova pravdepodobnost uspechu pre tuto skusenost
	float m_EstimatedSuccessProbability;
	// simulacny cas, kedy bol naposledy limit dekrementovany
	int m_LastDecrementSimTime;
public:
	// parametrami konstruktora su nazov skusenosti,pociatocna hodnota limitu a velkost casovej zmeny
	Experience(string p_Name,float p_Limit,float p_TimeChange);
	~Experience();
	// vrati limit pre skusenost
	float getLimit();
	// aktivuje skusenost s odhadovanou pravdepodobnostou uspechu, ktora sa ma vyhodnotit v case p_EndSimTime
	void activate(int p_EndSimTime,float p_EstimatedSuccessProbability);
	// deaktivuje skusenost
	void deactivate(int p_SimTime);
	// realizuje vyhodnocovanie skusenosti a jej casovo zavisle zmeny (pravidelne sa vola pri prijati spravy SENSE_BODY)
	void changeByTimeStep(int p_SimTime);
};


#endif EXPERIENCE_H