BWAPI
Skynet/Skynet/PylonPowerTracker.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "Singleton.h"
00006 #include "Task.h"
00007 
00008 class PylonPowerTrackerClass
00009 {
00010 public:
00011         PylonPowerTrackerClass(){}
00012 
00013         void update();
00014 
00015         void onDiscover(Unit unit);
00016         void onMorphRenegade(Unit unit, Player previousPlayer, BWAPI::UnitType previousType);
00017         void onDestroy(Unit unit);
00018 
00019         bool hasPower(TilePosition tile, BWAPI::UnitType unit);
00020 
00021 private:
00022         UnitGroup mPylons;
00023 
00024         UnitGroup mLiftedBuildings;
00025 
00026         std::map<Unit, std::set<TilePosition>> mPylonSmallPowerSites;
00027         std::map<Unit, std::set<TilePosition>> mPylonMediumPowerSites;
00028         std::map<Unit, std::set<TilePosition>> mPylonLargePowerSites;
00029 
00030         std::map<TilePosition, int> mSmallPowerSites;
00031         std::map<TilePosition, int> mMediumPowerSites;
00032         std::map<TilePosition, int> mLargePowerSites;
00033 
00034         void onAddPylon(Unit unit);
00035         void onRemovePylon(Unit unit);
00036 
00037         void addToPowerField(Unit unit);
00038         void removeFromPowerField(Unit unit);
00039 };
00040 
00041 typedef Singleton<PylonPowerTrackerClass> PylonPowerTracker;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines