]> git.localhorst.tv Git - blobs.git/blob - src/creature/Goal.hpp
eating and drinking
[blobs.git] / src / creature / Goal.hpp
1 #ifndef BLOBS_CREATURE_GOAL_HPP_
2 #define BLOBS_CREATURE_GOAL_HPP_
3
4 namespace blobs {
5 namespace creature {
6
7 class Creature;
8
9 class Goal {
10
11 public:
12         Goal();
13         virtual ~Goal() noexcept;
14
15 public:
16         double Urgency() const noexcept { return urgency; }
17         void Urgency(double u) noexcept { urgency = u; }
18
19         bool Interruptible() const noexcept { return interruptible; }
20         void Interruptible(bool i) noexcept { interruptible = i; }
21
22         bool Complete() const noexcept { return complete; }
23         void Complete(bool i) noexcept { complete = i; }
24
25 public:
26         virtual void Enable(Creature &) { }
27         virtual void Tick(double dt) { }
28         virtual void Action(Creature &) { }
29
30 private:
31         double urgency;
32         bool interruptible;
33         bool complete;
34
35 };
36
37 }
38 }
39
40 #endif