BWAPI
ExampleAIModule/Source/CombatAgent.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines