void AIJobCollectResources::Loop()
{
    Entity* target = nullptr;

    if(TargetID == -1)
    {
        FindNearestTarget();
    }

    if(TargetID == -1)
    {
        return;
    }

    target = NPC->MyMap->GetEntityByID(TargetID);

    if(target != nullptr)
    {
        TargetID = target->ID;

        if(NPC->Position.DistanceTo(target->Position) < 0.3 )
        {
            NPC->InteractTarget = TargetID;
            NPC->Interacting = true;
        }
    }
    else
    {
        TargetID = -1;
    }

    NPC->Target = target;
    NPC->AutoMoving = true;
};
예제 #2
0
bool HillHunter::findTarget(const Target::AntVector::value_type& hill, WeightTask& result)
{
    return FindNearestTarget(hill, state->myAnts, state->GetMapResolution(), result, CanMoveFrom<State>(state));
}