-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollector.h
50 lines (46 loc) · 1.42 KB
/
collector.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
44
45
46
47
48
49
50
#pragma once
#include <vector>
#include "item.h"
#include "robot.h"
#include "cmode.h"
#include "data.h"
namespace planet{
typedef struct idStruct{
size_t serverId;
bool isLive;
} idStruct;
class Collector: public Robot{
public:
Collector(std::vector<vectorItems>& ground, data& server, size_t idx);
~Collector();
void cmd(char* context);
void grab();
void scan();
void refresh();
void genCMode(CModeT type);
void dieIfBomb();
private:
CModeT modeStatus = CModeT::SCAN;
CMode* mode = nullptr;
size_t idxInCollectors;
};
class vectorC: public std::vector<Collector>{
public:
vectorC(std::vector<vectorItems>& ground, planet::data& server) :
ground(ground), server(server){}
void man(char* context);
void cmd(char* context);
void refresh();
private:
void add();
bool vectorCheck();
void updateServerId();
size_t firstLive();
void takeIndexFromId(size_t& id);
void doAction(size_t id, toDoType toDo, Direction where);
std::vector<vectorItems>& ground;
std::vector<idStruct> serverId;
planet::data& server;
size_t manId = 0;
};
}