+ void StartFleeing(const Entity &, float speed) noexcept;
+ void StopFleeing() noexcept;
+ bool IsFleeing() const noexcept;
+ const Entity &GetFleeTarget() const noexcept;
+
+ void StartSeeking(const Entity &, float speed) noexcept;
+ void StopSeeking() noexcept;
+ bool IsSeeking() const noexcept;
+ const Entity &GetSeekTarget() const noexcept;
+
+ /// start wandering randomly at given speed
+ /// the trajectory is modified by targetting a blip on a sphere
+ /// in front of the entity which moves randomly
+ /// the displacement is given (roughly) in units per second
+ void StartWandering(
+ float speed,
+ float distance = 2.0f,
+ float radius = 1.0f,
+ float displacement = 1.0f
+ ) noexcept;
+ void StopWandering() noexcept;
+