]> git.localhorst.tv Git - blobs.git/blobdiff - src/creature/LocateResourceGoal.hpp
moar intelligent search
[blobs.git] / src / creature / LocateResourceGoal.hpp
index 1f31d0f426457781e49f1aec24ba4fdac9043e44..fb4dad58016b920309c3c4f8aabc33ef91c3850f 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
 #define BLOBS_CREATURE_LOCATERESOURCEGOAL_HPP_
 
+#include "Composition.hpp"
 #include "../math/glm.hpp"
 
 
@@ -11,10 +12,13 @@ class LocateResourceGoal
 : public Goal {
 
 public:
-       LocateResourceGoal(Creature &, int resource);
+       LocateResourceGoal(Creature &);
        ~LocateResourceGoal() noexcept override;
 
 public:
+       void SetMinimum(double m) noexcept { minimum = m; }
+       void Accept(int resource, double attractiveness);
+
        std::string Describe() const override;
        void Enable() override;
        void Tick(double dt) override;
@@ -23,15 +27,17 @@ public:
 private:
        void LocateResource();
        void SearchVicinity();
-       bool OnTargetTile() const noexcept;
+       void Remember();
+       void RandomWalk();
+       bool OnTarget() const noexcept;
 
 private:
-       int res;
+       Composition accept;
        bool found;
        glm::dvec3 target_pos;
-       int target_srf;
-       glm::ivec2 target_tile;
        bool searching;
+       double reevaluate;
+       double minimum;
 
 };