Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10249 in orxonox.OLD for branches/ai/src/ai/ai_team.cc


Ignore:
Timestamp:
Jan 17, 2007, 12:23:35 PM (17 years ago)
Author:
tfahrni
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ai/src/ai/ai_team.cc

    r10244 r10249  
    1717#include "swarm_gorel.h"
    1818#include "swarm_module.h"
     19#include "swarm_wait.h"
    1920#include "debug.h"
     21#include "player.h"
     22#include "playable.h"
     23#include "state.h"
    2024
    2125void AITeam::process(float dt)
     
    2529       
    2630                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
    2869                        changeSwarmModule(it, new SwarmGoRel);
    2970               
    3071                        if(enemyList->size()>0){
    3172                                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();
    3779                        }
    3880                }
Note: See TracChangeset for help on using the changeset viewer.