- void EnterHalt() noexcept;
- void ExitHalt() noexcept;
- bool IsHalted() const noexcept;
- void SetHaltSpeed(float) noexcept;
- glm::vec3 GetHaltForce(const EntityState &) const noexcept;
-
- void StartFleeing() noexcept;
- void StopFleeing() noexcept;
- bool IsFleeing() const noexcept;
- void SetFleeTarget(Entity &) noexcept;
- void SetFleeSpeed(float) noexcept;
- Entity &GetFleeTarget() noexcept;
- const Entity &GetFleeTarget() const noexcept;
- glm::vec3 GetFleeForce(const EntityState &) const noexcept;
-
- void StartSeeking() noexcept;
- void StopSeeking() noexcept;
- bool IsSeeking() const noexcept;
- void SetSeekTarget(Entity &) noexcept;
- void SetSeekSpeed(float) noexcept;
- Entity &GetSeekTarget() noexcept;
- const Entity &GetSeekTarget() const noexcept;
- glm::vec3 GetSeekForce(const EntityState &) const noexcept;
-
- void StartEvading() noexcept;
- void StopEvading() noexcept;
- bool IsEvading() const noexcept;
- void SetEvadeTarget(Entity &) noexcept;
- void SetEvadeSpeed(float) noexcept;
- Entity &GetEvadeTarget() noexcept;
- const Entity &GetEvadeTarget() const noexcept;
- glm::vec3 GetEvadeForce(const EntityState &) const noexcept;
-
- void StartPursuing() noexcept;
- void StopPursuing() noexcept;
- bool IsPursuing() const noexcept;
- void SetPursuitTarget(Entity &) noexcept;
- void SetPursuitSpeed(float) noexcept;
- Entity &GetPursuitTarget() noexcept;
- const Entity &GetPursuitTarget() const noexcept;
- glm::vec3 GetPursuitForce(const EntityState &) const noexcept;
-
- /// start wandering randomly
- void StartWandering() noexcept;
- void StopWandering() noexcept;
- bool IsWandering() const noexcept;
- /// change how wandering is performed
- /// 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 SetWanderParams(
- float speed,
- float distance = 2.0f,
- float radius = 1.0f,
- float displacement = 1.0f
- ) noexcept;
- glm::vec3 GetWanderForce(const EntityState &) const noexcept;
-