BWAPI
|
00001 #pragma once 00002 #include <BWAPI.h> 00003 #include "Common.h" 00004 #include "InformationManager.h" 00005 00006 class CombatAgent 00007 { 00008 public: 00009 CombatAgent(BWAPI::Unit* unit); 00010 void inCombat(const UnitSet &enemies, class SquadAgent *squad); 00011 void inCombatBiological(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00012 void inCombatMarine(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00013 void inCombatMedic(const UnitSet &enemies, class SquadAgent *squad); 00014 void inCombatVulture(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00015 void inCombatWraith(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00016 void inCombatTank(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00017 void inCombatGhost(BWAPI::Unit *bestTarget, const UnitSet &enemies, class SquadAgent *squad); 00018 void inCombatDropship(); 00019 void microScienceVessel(class SquadAgent *squad); 00020 00021 double computeTargetScore(BWAPI::Unit* target); 00022 double dps(BWAPI::Unit *unit, BWAPI::Unit *target); 00023 double tacticalThreat(BWAPI::Unit *unit, BWAPI::Unit *target); 00024 00025 int getEnemiesInRange(const UnitSet &enemies); 00026 void unsiegeRequest(); 00027 00028 BWAPI::Unit* _unit; 00029 BWAPI::Unit* _lastTarget; 00030 bool _inCooldown; 00031 BWAPI::Position _lastPosition; 00032 00033 // Variables for DropShip Micro: 00034 SquadAgent *loadedSquad; // squad to which the loaded units belong 00035 bool doneLoading; 00036 int unloadTimer; 00037 00038 private: 00039 bool enemyInSiegeRange(bool closeBuildings = true); 00040 bool onlyBuildingEnemies(const UnitSet &enemies); 00041 bool needCloak(); 00042 bool needCloakWraith(); 00043 bool allreadyFired(BWAPI::Unit* enemy); 00044 void isTankNear(BWAPI::Unit *bestTarget, class SquadAgent *squad); 00045 bool isSpiderMineNear(); 00046 00047 };