|
BWAPI
|
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 };
1.7.6.1