// PreparedCommands.h: interface for the PreparedCommands class.
//
//////////////////////////////////////////////////////////////////////
#ifndef PLAYER_WORLD_WORLD_H
#define PLAYER_WORLD_WORLD_H


#include "Common/World/Point.h"

class PreparedCommands  
{
public:
	void ResetAll();
	void ResetFindPassableFriend(){haveFindpassableFriend =false;};
	bool HaveFindPassableFriend(){return haveFindpassableFriend;};
	void FindPassableFriend(){haveFindpassableFriend =true;};
	void ResetWaitTime();
	bool HaveWaitTo(int cycle);
	void SetWaitTime(int time);
	bool HaveMoveTo(Point &pos);
	void ResetMoveTo();
	void SetMoveTo(Point pos);
	bool HaveTurnTo(Point &pos);
	void ResetTurnTo();
	void SetTurnTo(Point pos);
	bool HaveKick(Point &pos);
	void resetKickTo();
	void SetKickTo(Point &p);
	bool ReachTarget(Point pos);
	void Debug();
	void ResetTarget();
	void SetTarget(Point pos, float precision=1.0);
	PreparedCommands& operator =(const PreparedCommands &other);
	PreparedCommands(const PreparedCommands& other);
	PreparedCommands();
	virtual ~PreparedCommands();
	
	bool  activeTarget;		///< indikuje ci je target aktivny
	int nSteps;				///< pocet krokov, po ktory je aktivny target
    Point targetPos;		///< ciel kam sa ma dostat
    float targetPrecision;	///> presnost dosiahnutia ciela
	bool bKickTo;			///> mam v plane kopnut do lopty
	Point kickPosTo;		///> kopnut loptu na poziciu
	
	bool bTurnTo;			///> mam v planeo otocit sa
	Point turnToPos;		///> pozicia na ktoru mam byt otoceny

	bool bMoveTo;			/// mam niekde ist
	Point moveToPos;		/// kde mam ist

	int waitTime;			/// kolko simulacnych krokov nerobit nic
	
	/// indikuje ze ma najst spoluhraca ktoremu prihra
	bool haveFindpassableFriend;	

};

#endif // PLAYER_WORLD_WORLD_H
