(C++)  1.0.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Goal.hh
1 #ifndef GRAIL_GOAL_H
2 #define GRAIL_GOAL_H
3 
4 #include "Planner/Planner.hh"
5 #include "ObjectIndexBinding.hh"
6 
7 
8 namespace grail
9 {
10  class AIEntity;
11  namespace planning
12  {
14  class Goal
15  {
16  public:
17  Goal();
18  Goal(const Goal&) = default;
19  Goal(Goal&&) = default;
20 
21  virtual ~Goal() = default;
22 
23  Goal& operator = (const Goal&) = default;
24  Goal& operator = (Goal&&) = default;
25 
28  virtual void OnChosen(const AIEntity& goalPursuer);
29 
32  virtual void OnReached(const AIEntity& goalPursuer) const;
33 
36  virtual void OnReapplied(const AIEntity& goalPursuer);
37 
38  virtual bool IsReached(const AIEntity& entity) const = 0;
39 
42  virtual void SetPlanSpaceConditions(class Planner& planner, const ObjectIndexBinding& objectIndexBinding) const = 0;
43  virtual PlannerHeuristic GetHeuristic() const;
44  };
45  }
46 }
47 #endif //GRAIL_GOAL_H
The AIEntity class - Defines a basic object which can execute behaviors.
Definition: AIEntity.hh:39
Represents a planner goal, used by PlannerReasoner.
Definition: Goal.hh:15
virtual void OnReapplied(const AIEntity &goalPursuer)
Definition: Goal.cpp:23
virtual void OnChosen(const AIEntity &goalPursuer)
Definition: Goal.cpp:15
virtual void SetPlanSpaceConditions(class Planner &planner, const ObjectIndexBinding &objectIndexBinding) const =0
virtual void OnReached(const AIEntity &goalPursuer) const
Definition: Goal.cpp:19
Definition: ObjectIndexBinding.hh:14
The main class responsible for finding paths in plan space.
Definition: Planner.hh:23