void AISystem::basicAI(entityx::Entity &e) { world->currLevel->calculateMaps(); world->currLevel->computeMovesTo(target_x, target_y); if (canSee(e) && canMoveToward(e)) { moveToward(e); } // if (failMoraleCheck() && canMoveAway()) { // moveAway(); // } else if (hasRangedAttack() && canMoveToward(e)) { // if (decideToCharge()) { // moveToward(e); // } else { // rangedAttack(); // } // } else if (canAttack() && hasRangedAttack() && canMoveAway()) { // if (decideToRetreat()) { // moveAway(); // } else { // attack(); // } // } else if (canAttack()) { // attack(); // } else if (canMoveToward(e)) { // moveToward(e); // } else { // wait(); // } }
void ItemContainer::move(State::Way w) { if(moveMessageList.empty()){ moveMessageList.push_back(w); moveToward(w); }else moveMessageList.push_back(w); }
void ItemContainer::processNextMove() { moveMessageList.pop_front(); if(moveMessageList.empty()) return; else{ moveToward(moveMessageList.first()); } }
void Hostile::updateTarget( std::vector< Actor* > p_actorlist ) { Sint32 _closest = -1; for ( Uint16 i = 0; i < p_actorlist.size(); i++ ) { if ( m_actorID == i ) continue; if ( _closest == -1 || ( p_actorlist[i]->getPosition() - getPosition() ).getLength() < ( p_actorlist[_closest]->getPosition() - getPosition() ).getLength() ) _closest = i; } if ( _closest != -1 && ( p_actorlist[_closest]->getPosition() - getPosition() ).getLength() < 300 && ( p_actorlist[_closest]->getPosition() - getPosition() ).getLength() > 0 ) { moveToward( p_actorlist[_closest]->getPosition() ); } }