BWAPI
Skynet/Skynet/UnitPredictor.cpp
Go to the documentation of this file.
00001 #include "UnitPredictor.h"
00002 #include "UnitTracker.h"
00003 #include "Logger.h"
00004 
00005 UnitPredictorClass::UnitPredictorClass()
00006 {
00007 }
00008 
00009 Unit UnitPredictorClass::createPrediction(Position pos, BWAPI::UnitType type, int startTime)
00010 {
00011         return Unit(new UnitClass(pos, type, startTime));
00012 }
00013 
00014 void UnitPredictorClass::savePrediction(Unit unit)
00015 {
00016         mUnits.insert(unit);
00017         UnitTracker::Instance().onDiscover(unit);
00018 }
00019 
00020 void UnitPredictorClass::deletePrediction(Unit unit)
00021 {
00022         if(unit->accessibility() == AccessType::Prediction)
00023                 UnitTracker::Instance().onDestroy(unit);
00024 
00025         mUnits.erase(unit);
00026 }
00027 
00028 Unit UnitPredictorClass::onNewUnit(BWAPI::Unit* newUnit)
00029 {
00030         for each(Unit unit in mUnits)
00031         {
00032                 if(unit->getType() == newUnit->getType() && unit->getPlayer() == newUnit->getPlayer())
00033                 {
00034                         if(unit->getTilePosition() == newUnit->getTilePosition() || newUnit->getPosition().getDistance(unit->getPosition()) <= TILE_SIZE * 6)
00035                         {
00036                                 unit->promote(newUnit);
00037                                 return unit;
00038                         }
00039                 }
00040         }
00041 
00042         return StaticUnits::nullunit;
00043 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines