#ifndef DATATYPES_H__
#define DATATYPES_H__


#define CATCH_DIST 3.0f

enum ACTION
{
	DONOTHING,
	STOPBALL,
	SPRACUJLOPTU,
	TURN,
	DRIBBLE,
	RUNAFTERBALL,
	PASSTOPLAYER,
	PASSTORUN,
	PASSSPRACUJLOPTU,
	INTERCEPTRUN,
	INTERCEPTTURN,
	RUNTOBETTERPOS,
	ACTIONEND
};

enum ASTYPE
{
	NONE,
	PASS,
	DRIBBLET,
	INTERCEPT
};



struct AS
{
	ACTION action;
	int payoff;
	ASTYPE type;
};

struct ASPass : public AS
{
	int passFrom;
	int passTo;
	
	int inDir;
	float pass_distance;
	Point catch_point;

	// s akou pravdepodobnostou prihravka
	float prob;

	float maxballspeed;
	float passlimit;

	bool wolimit;
	float probwolimit;

};

struct ASDribble : public AS
{
	float ballangle;
	bool changedir;
	int turnDir;
	int dribble_distance;

	
	float turnAngle;
	Point nearkickto;
	
	float runafterballwithpower;

	int cycles_distance;	
};

struct ASReceive : public AS
{
	Ball* ball;

	int cyclesToIntercept;
	int cyclesdistance;
	bool our;	

	bool hurry;
	bool forlife;
	float dashPower;

	bool catchwithoutrun;
	bool shallrun;

	Point receivePoint;
	float dashpower;
	
	int enemyCnt;
	Point* enemyPos;

	Point runTo;
	int HeadAngle;
	ViewWidth ViewAngle;
};


#endif