-
-
Notifications
You must be signed in to change notification settings - Fork 113
/
Copy pathminion_activity.h
63 lines (57 loc) · 1.43 KB
/
minion_activity.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
51
52
53
54
55
56
57
58
59
60
61
62
63
#pragma once
#include "util.h"
#include "game_time.h"
#include "furniture_type.h"
RICH_ENUM(
MinionActivity,
SLEEP,
TRAIN,
ARCHERY,
EAT,
CRAFT,
STUDY,
EXPLORE,
EXPLORE_NOCTURNAL,
EXPLORE_CAVES,
COPULATE,
RITUAL,
CROPS,
SPIDER,
BE_WHIPPED,
BE_TORTURED,
BE_EXECUTED,
CONSTRUCTION,
DIGGING,
WORKING,
HAULING,
IDLE,
POETRY,
DISTILLATION,
MINION_ABUSE,
GUARDING1,
GUARDING2,
GUARDING3,
PHYLACTERY,
PREACHING,
MASS,
PRAYER,
HEARING_CONFESSION,
CONFESSION
);
class Position;
class ContentFactory;
class MinionActivities {
public:
MinionActivities(const ContentFactory*);
static Task* getExisting(Collective*, Creature*, MinionActivity);
PTask generate(Collective*, Creature*, MinionActivity) const;
static PTask generateDropTask(Collective*, Creature*, MinionActivity);
static optional<TimeInterval> getDuration(const Creature*, MinionActivity);
vector<pair<Position, FurnitureLayer>> getAllPositions(const Collective*, const Creature*, MinionActivity) const;
const vector<FurnitureType>& getAllFurniture(MinionActivity) const;
optional<MinionActivity> getActivityFor(const Collective*, const Creature*, FurnitureType) const;
SERIALIZATION_DECL(MinionActivities)
private:
EnumMap<MinionActivity, vector<FurnitureType>> SERIAL(allFurniture);
HashMap<FurnitureType, MinionActivity> SERIAL(activities);
};