-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathThug.h
29 lines (29 loc) · 999 Bytes
/
Thug.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
#pragma once
#include <iostream>
#include "Agent.h"
#include "Castle.h"
#include <memory>
class Thug : public Agent
{
private:
shared_ptr<Castle> castle_at; //not used
float atk_range;
public:
Thug(string s) :Agent(s) { castle_at = nullptr;}
Thug(vector<string> parmaters);
float get_atkRange()const { return atk_range; }
void attack_failed();
void attack_succsess();
virtual Coordinate getLocation() { return location; }
virtual void set_zone_at(vector<shared_ptr<Zone>> wh) { /*castle_at = wh[0];*/ } //not needed
virtual ~Thug();
virtual string getType(){ return string("Thug"); }
virtual string getStatus();
virtual void position(Coordinate, float);
virtual void course(int, float);
virtual float getSpeed();
virtual string getName() { return name; }
virtual void stop() { this->status = Stopped; this->speed = 0; moving_by_coordinate = false; moving_by_degree = false; }
virtual void go();
virtual bool isUnpacking() { if (status == Unpacking) return true; return false; }
};