|
BWAPI
|
00001 #pragma once 00002 00003 #include <BWAPI.h> 00004 #include <set> 00005 #include <map> 00006 #include <string> 00007 #include <list> 00008 #include <math.h> 00009 00010 #define PI 3.141592 00011 00012 using namespace BWAPI; 00013 using namespace std; 00014 00015 class Environment; 00016 class Agent; 00017 class BaseAgent; 00018 class WorkerAgent; 00019 class Task; 00020 class BuildSupplyTask; 00021 class BuildRefineryTask; 00022 class RecollectMinTask; 00023 class RecollectGasTask; 00024 class TrainWorkerTask; 00025 class ExploreSectorTask; 00026 class AssaultSectorTask; 00027 class AttackUnitTask; 00028 class ProtectUnitTask; 00029 class MapSector; 00030 class AiLogger; 00031 00032 struct BuildingSpaceInfo; 00033 struct Quadrant; 00034 struct UnitMemory; 00035 struct TileBox; 00036 00037 #define ANALYSIS_FREQ 1 00038 #define DEFAULT_TASK_VALIDATION_FREQ 100 00039 #define DIST_APTITUDE_FACTOR 100.0 00040 #define NO_APTITUDE -1.0 00041 00042 #define MIN_TASK_HOLD_FRAMES 50 00043 00044 #define MAX_SUPPLY 400 00045 00046 #define MAX_THREAT_RANGE 400 //in Pixels 00047 00048 #define MAX_RESOURCE_RANGE 400 //in Pixels 00049 #define MAX_BUILD_RANGE 800 //in Pixels 00050 #define MAX_POS_DISTANCE 10000000 //in Pixels 00051 00052 #define SECTOR_LENGTH 10 //in Tiles 00053 #define SECTOR_LENGTH_IN_PIXELS 320 //in Pixels 00054 00055 #define SECTOR_FRAMES_PER_REFRESH 10 00056 #define SECTOR_FRAMES_PER_EXPLORE 500 00057 00058 #define SECTOR_STUCK_TIMEOUT 10000 00059 00060 enum AgentDisposition 00061 { 00062 BRAVE = 0, 00063 COWARD 00064 }; 00065 00066 enum TaskStatus 00067 { 00068 NOT_STARTED = 0, 00069 IN_PROGRESS, 00070 FINISHED, 00071 HALTED, 00072 CANCELLED 00073 }; 00074 00075 enum TaskType 00076 { 00077 NULL_TASK = -1, 00078 TASK = 0, 00079 BUILD_TASK, 00080 BUILD_BARRACKS_TASK, 00081 BUILD_ENGINEERING_TASK, 00082 BUILD_FACTORY_TASK, 00083 BUILD_STARPORT_TASK, 00084 BUILD_SCIENCE_FACILITY_TASK, 00085 BUILD_ACADEMY_TASK, 00086 BUILD_SUPPLY_TASK, 00087 BUILD_REFINERY_TASK, 00088 BUILD_COMMAND_TASK, 00089 MOVE_COMMAND_TASK, 00090 ADDON_BUILD_TASK, 00091 ADDON_BUILD_COMSAT_TASK, 00092 ADDON_MACHINE_SHOP_TASK, 00093 ADDON_CONTROL_TOWER_TASK, 00094 TRAIN_TASK, 00095 TRAIN_WORKER_TASK, 00096 TRAIN_MARINE_TASK, 00097 TRAIN_MEDIC_TASK, 00098 TRAIN_SIEGE_TANK_TASK, 00099 TRAIN_WRAITH_TASK, 00100 REPAIR_TASK, 00101 RECOLLECT_TASK, 00102 RECOLLECT_MIN_TASK, 00103 RECOLLECT_GAS_TASK, 00104 EXPLORE_SECTOR_TASK, 00105 ASSAULT_SECTOR_TASK, 00106 ATTACK_UNIT_TASK, 00107 PROTECT_UNIT_TASK, 00108 SCAN_TARGET_TASK, 00109 RESEARCH_TASK 00110 }; 00111 00112 enum AgentType 00113 { 00114 AGENT = 0, 00115 EXPLORER_AGENT, 00116 ATTACKER_AGENT, 00117 WORKER_AGENT, 00118 BUILDING_AGENT, 00119 BASE_AGENT 00120 }; 00121 00122 typedef set<Task*> TaskSet; 00123 typedef set<Unit*> UnitSet; 00124 typedef set<Agent*> AgentSet; 00125 typedef set<BuildingSpaceInfo*> PlannedBuildingSet; 00126 typedef set<TaskType> TaskTypeSet; 00127 typedef set<AgentType> AgentTypeSet; 00128 typedef set<TilePosition> TilePositionSet; 00129 typedef set<MapSector*> MapSectorSet; 00130 typedef set<UnitMemory*> UnitMemorySet; 00131 00132 typedef map<unsigned long, TilePosition> TilePositionMap; 00133 typedef map<Unit*, Agent*> AgentMap; 00134 typedef map<Unit*, BuildRefineryTask*> BuildRefineryTaskMap; 00135 typedef map<Unit*, RecollectGasTask*> RecollectGasTaskMap; 00136 typedef map<Unit*, RecollectMinTask*> RecollectMinTaskMap; 00137 typedef map<Unit*, TaskTypeSet> TaskTargetMap; 00138 typedef map<unsigned long, MapSector*> MapSectorMap; 00139 typedef map<unsigned long, int> DistanceMap; 00140 typedef map<unsigned long, Quadrant*> QuadrantMap; 00141 typedef map<Unit*, UnitMemory*> UnitMemoryMap; 00142 typedef map<UnitType, int> UnitTypeCountMap; 00143 00144 typedef list<Unit*> UnitList; 00145 typedef list<Agent*> AgentList; 00146 typedef list<Task*> TaskList; 00147 typedef list<MapSector*> SectorList; 00148 typedef list<UnitType> UnitTypeList; 00149 00151 00152 #define MAX_ACTIVE_ASSAULT_PRIORITY 120 00153 #define MIN_ACTIVE_ASSAULT_PRIORITY 110 00154 00155 #define MAX_ACTIVE_PROTECT_PRIORITY 110 00156 #define MIN_ACTIVE_PROTECT_PRIORITY 100 00157 00158 #define MAX_INACTIVE_ASSAULT_PRIORITY 100 00159 #define MIN_INACTIVE_ASSAULT_PRIORITY 90 00160 00161 #define MAX_MOVE_PRIORITY 100 00162 #define MIN_MOVE_PRIORITY 90 00163 00164 #define MAX_ATTACK_PRIORITY 90 00165 #define MIN_ATTACK_PRIORITY 80 00166 00167 #define MAX_SCAN_PRIORITY 90 00168 #define MIN_SCAN_PRIORITY 80 00169 00170 #define MAX_EXPLORE_PRIORITY 80 00171 #define MIN_EXPLORE_PRIORITY 70 00172 00173 #define MAX_RESEARCH_PRIORITY 70 00174 #define MIN_RESEARCH_PRIORITY 60 00175 00176 #define MAX_BUILD_PRIORITY 70 00177 #define MIN_BUILD_PRIORITY 60 00178 00179 #define MAX_TRAIN_PRIORITY 70 00180 #define MIN_TRAIN_PRIORITY 60 00181 00182 #define MAX_MINERAL_PRIORITY 40 00183 #define MIN_MINERAL_PRIORITY 30 00184 00185 #define MAX_GAS_PRIORITY 40 00186 #define MIN_GAS_PRIORITY 30 00187 00188 #define MAX_PASSIVE_PROTECT_PRIORITY 20 00189 #define MIN_PASSIVE_PROTECT_PRIORITY 10 00190
1.7.6.1