Changeset 10249 in orxonox.OLD for branches/ai/src/ai/ai_team.cc
- Timestamp:
- Jan 17, 2007, 12:23:35 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ai/src/ai/ai_team.cc
r10244 r10249 17 17 #include "swarm_gorel.h" 18 18 #include "swarm_module.h" 19 #include "swarm_wait.h" 19 20 #include "debug.h" 21 #include "player.h" 22 #include "playable.h" 23 #include "state.h" 20 24 21 25 void AITeam::process(float dt) … … 25 29 26 30 if(it->second->taskDone()){ 27 std::cout << "Task Done!\n"; 31 std::cout << "Swarm Task Complete!\n"; 32 33 if(enemyList->size()==0){ 34 changeSwarmModule(it, new SwarmWait); 35 it->second->orderMaxTime(2); //sleep 2 seconds.. 36 it->second->process(dt); 37 continue; 38 } 39 40 Vector position=it->second->getPosition(); 41 Vector newPosition; 42 WorldEntity* target=enemyList->at(0); 43 44 //check if enemy is the player.. 45 bool isPlayer=(State::getPlayer()->getPlayable()==target); 46 float speed; 47 48 //find new Position 49 if(isPlayer){ 50 float x=(target->getAbsCoor()).x; 51 float z=(target->getAbsCoor()).z; 52 int zNorm=(position.z>z)?1:-1; 53 54 if(x+100 > position.x && x+20 < position.x){ 55 newPosition=Vector(0,0,zNorm*80); //just go away 56 speed=80; 57 }else if(x+100 < position.x){ 58 newPosition=Vector(80,0,zNorm*30); //attack 59 speed=70; 60 }else{ 61 zNorm=1-2*(rand()%2); //-1 or 1 62 newPosition=Vector(200,0,zNorm*80); //go to attack position 63 speed=100; 64 } 65 }else{ 66 67 } 68 28 69 changeSwarmModule(it, new SwarmGoRel); 29 70 30 71 if(enemyList->size()>0){ 31 72 it->second->setEnemyList(enemyList); 32 it->second->orderRelObject(enemyList->at(0)); 33 it->second->orderRelPos(Vector(60,0,0)); 34 it->second->orderSpeed(50); 35 it->second->orderView(Vector(0,0,1)); 36 it->second->orderMaxTime(5); 73 it->second->orderRelObject(target); 74 it->second->orderRelPos(newPosition); 75 it->second->orderSpeed(speed); 76 //it->second->orderView(Vector(0,0,1)); 77 it->second->orderMaxTime((rand()%6)+5); //5-10 78 //it->second->newOrder(); 37 79 } 38 80 }
Note: See TracChangeset
for help on using the changeset viewer.