BWAPI
|
00001 #pragma once 00002 #include "Macro/MacroManager/TaskStreamObserver.h" 00003 #include "Macro/MacroManager/TaskStream.h" 00004 #include <BWAPI.h> 00005 class UnitCompositionProducer : public TaskStreamObserver 00006 { 00007 public: 00008 UnitCompositionProducer(BWAPI::UnitType workerType); 00009 virtual void attached(TaskStream* ts); 00010 virtual void detached(TaskStream* ts); 00011 void update(); 00012 void setUnitWeight(BWAPI::UnitType t, double weight); 00013 BWAPI::UnitType getNextUnitType(BWAPI::Unit* worker); 00014 private: 00015 std::set<TaskStream*> streams; 00016 BWAPI::UnitType workerType; 00017 std::map<BWAPI::UnitType, double> unitCompositionWeights; 00018 std::map<BWAPI::UnitType, int> actualUnitCounts; 00019 std::map<BWAPI::UnitType, double> desiredUnitCounts; 00020 };