1 #ifndef HUMANMANAGER_H
2 #define HUMANMANAGER_H
3 
4 #include "controllable.h"
5 #include "game.h"
6 #include "arrow.h"
7 #include "activecap.h"
8 #include "teammanager.h"
9 #include "cap.h"
10 #include "control.h"
11 
12 
13 //Clase que controla a un equipo a traves del raton
14 //Funciona como una maquina de estados que se modifican
15 //segun los clicks del raton del usuario
16 class HumanManager : public Controllable, public TeamManager
17 {
18 	public:
19 		HumanManager();
20 		~HumanManager();
21 
22 		void init(Game::team_t t);
update()23 		void update(){}
24 		void shutdown();
25 		void stop();
26 
27 		typedef enum
28 		{
29 			CLICK,
30 			UNCLICK,
31 			MOVE_X,
32 			MOVE_Y,
33 			EXIT
34 		}action_t;
35 
36 		void doAction(Controllable::action_t action,int magnitude);
throws()37 		void throws(){s=WAIT;}
isOver()38 		bool isOver(){return s==END;}
39 
40 		void oneMore(Cap *c);
41 
42 	private:
43 		//Tenemos una instancia flecha que se encarga de la direccion
44 		//y la potencia del disparo
45 		Arrow *vel_arrow;
46 		Arrow *accel_arrow;
47 		ActiveCap *ac;
48 
49 		enum states_t
50 		{
51 			WAIT,
52 			SELECTED,
53 			C_ARROW,
54 			END
55 		};
56 
57 		states_t s;
58 
59 		bool onemore;
60 		Control *controller;
61 };
62 
63 #endif
64