]> git.localhorst.tv Git - blobs.git/blob - src/creature/IngestGoal.hpp
overhaul need system
[blobs.git] / src / creature / IngestGoal.hpp
1 #ifndef BLOBS_CREATURE_INGESTGOAL_HPP_
2 #define BLOBS_CREATURE_INGESTGOAL_HPP_
3
4 #include "Goal.hpp"
5
6 #include "Composition.hpp"
7 #include "Creature.hpp"
8
9
10 namespace blobs {
11 namespace creature {
12
13 class LocateResourceGoal;
14
15 class IngestGoal
16 : public Goal {
17
18 public:
19         explicit IngestGoal(Creature &, Creature::Stat &);
20         ~IngestGoal() override;
21
22 public:
23         void Accept(int resource, double value);
24
25         std::string Describe() const override;
26         void Enable() override;
27         void Tick(double dt) override;
28         void Action() override;
29
30 private:
31         bool OnSuitableTile();
32
33 private:
34         Creature::Stat &stat;
35         Composition accept;
36         LocateResourceGoal *locate_subtask;
37         bool ingesting;
38
39         int resource;
40         double yield;
41
42 };
43
44 }
45 }
46
47 #endif