X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fcreature%2Fgoal.cpp;h=9c45a344f22a1fe9b1f55498d8e7caa5d00ec09b;hp=ee51a919ba11a71ff7081262b4ebd3f9076c5d10;hb=6c1097479fd1ea41f0f76b91e67613822acf2e90;hpb=2ab70a92ae39cebc6166ef15545ebcbd31a31c38 diff --git a/src/creature/goal.cpp b/src/creature/goal.cpp index ee51a91..9c45a34 100644 --- a/src/creature/goal.cpp +++ b/src/creature/goal.cpp @@ -130,8 +130,7 @@ void LocateResourceGoal::Action() { } else { double dist = glm::length2(GetSituation().Position() - target_pos); if (dist < 0.0001) { - GetSteering().Halt(); - searching = false; + LocateResource(); } else { GetSteering().GoTo(target_pos); } @@ -212,6 +211,8 @@ void LocateResourceGoal::SearchVicinity() { target_pos = GetSituation().Position(); target_pos[(srf + 0) % 3] += Assets().random.SNorm(); target_pos[(srf + 1) % 3] += Assets().random.SNorm(); + // bias towards current direction + target_pos += glm::normalize(GetSituation().Velocity()) * 0.5; GetSteering().GoTo(target_pos); } }