BWAPI
Tasks/AssaultSectorTask.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Task.h"
00004 
00005 class AssaultSectorTask :
00006         public Task
00007 {
00008 protected:
00009         MapSector* _sector;
00010         int _assaultCount;
00011 
00012         bool _isAssaultReady;
00013         unsigned int _unitsNeeded;
00014 
00015         int _readyRange;
00016         Position _groupPosition;
00017 
00018         double _airStrength;
00019         double _groundStrength;
00020         double _minimumAttackAirStrength;
00021         double _minimumAttackGroundStrength;
00022 
00023         double _enemyAirStrength;
00024         double _enemyGroundStrength;
00025         double _minimumDefenseAirStrength;
00026         double _minimumDefenseGroundStrength;
00027 
00028         Unit* _targetEnemy;
00029         Agent* _centerAgent;
00030 
00031         UnitTypeCountMap _unitTypeCounts;
00032 
00033         void evaluateAssaultReadyness();
00034 
00035         bool marineExecute(Agent* agent);
00036         bool medicExecute(Agent* agent);
00037         bool wraithExecute(Agent* agent);
00038         bool tankExecute(Agent* agent);
00039         bool siegeExecute(Agent* agent);
00040 
00041 public:
00042         static void generateNecessaryTasks(Environment* env);
00043 
00044         static SectorList prioritizeSectors(Environment* env);
00045 
00046         static double evaluateAptitudeForTask(MapSector* sector, Agent* agent, Position groupPosition = Positions::None);
00047 
00048         AssaultSectorTask(MapSector* sector, Environment* env);
00049         virtual ~AssaultSectorTask(void);
00050 
00051         virtual void addAgent(Agent* agent);
00052         virtual void removeAgent(Agent* agent);
00053 
00054         MapSector* getSector();
00055         int getReadyRange();
00056         Position getGroupPosition();
00057 
00058         bool isAssaultReady();
00059 
00060         double getAirStrength();
00061         double getGroundStrength();
00062         double getMinimumAttackAirStrength();
00063         double getMinimumAttackGroundStrength();
00064 
00065         double getEnemyAirStrength();
00066         double getEnemyGroundStrength();
00067         double getMinimumDefenseAirStrength();
00068         double getMinimumDefenseGroundStrength();
00069 
00070         Unit* getTargetEnemy();
00071 
00072         virtual void calculatePriority();
00073         virtual double evaluateAptitude(Agent* agent);
00074         virtual void evaluateStatus();
00075         
00076         virtual void evaluateNeededUnits();
00077 
00078         virtual bool execute(Agent* agent);
00079 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines