-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAgent.h
43 lines (43 loc) · 1.01 KB
/
Agent.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#include <iostream>
#include <string>
#include "Coordinate.h"
#include <vector>
#include "Castle.h"
#include <memory>
using namespace std;
class Agent
{
public:
enum STATUS
{
Stopped, Unpacking,Dead, Moving_to
};
Agent(vector<string> parmaters);
Agent(string s);
virtual void stop() { this->status = Stopped; /*this->speed = 0;*/ }
virtual void set_zone_at(vector<shared_ptr<Zone>> wh) = 0;
virtual void course(int, float) = 0;
virtual string getName() = 0;
virtual string getType() = 0;
virtual string getStatus() = 0;
virtual float getSpeed() = 0;
virtual Coordinate getLocation() = 0;
virtual void position(Coordinate,float) = 0;
virtual void go() = 0;
virtual bool isUnpacking() = 0;
virtual ~Agent(){}
protected:
Coordinate create_coordinate(string str_x, string str_y);
string name;
Coordinate location;
Coordinate starting_location;
Coordinate move_to;
float speed;
float starting_speed;
float degree;
STATUS status;
bool moving_by_coordinate;
bool moving_by_degree;
int lifePoints;
};