BWAPI
Skynet/Skynet/MineDragAction.cpp
Go to the documentation of this file.
00001 #include "MineDragAction.h"
00002 
00003 #include <limits>
00004 
00005 #include "UnitTracker.h"
00006 #include "UnitInformation.h"
00007 
00008 bool MineDragAction::update(const Goal &squadGoal, const UnitGroup &squadUnitGroup)
00009 {
00010         for each(Unit unit in UnitInformation::Instance().getUnitsTargetting(mUnit))
00011         {
00012                 if(unit->getType() == BWAPI::UnitTypes::Terran_Vulture_Spider_Mine)
00013                 {
00014                         int distance = std::numeric_limits<int>::max();
00015                         Unit closestUnit;
00016 
00017                         for each(Unit enemyUnit in UnitTracker::Instance().selectAllEnemy())
00018                         {
00019                                 if(enemyUnit->getType().isFlyer() || enemyUnit->isLifted() || enemyUnit->getType().isBuilding() || enemyUnit->getType() == BWAPI::UnitTypes::Terran_Vulture_Spider_Mine)
00020                                         continue;
00021 
00022                                 int thisDistance = mUnit->getDistance(enemyUnit);
00023                                 if(thisDistance < distance)
00024                                 {
00025                                         distance = distance;
00026                                         closestUnit = enemyUnit;
00027                                 }
00028                         }
00029                         
00030                         if(closestUnit && distance < 32*3)
00031                         {
00032                                 mUnit->attack(closestUnit);
00033                                 return true;
00034                         }
00035                         else
00036                         {
00037                                 mUnit->move(unit->getPosition());
00038                                 return true;
00039                         }
00040                 }
00041         }
00042 
00043         return false;
00044 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines