BWAPI
|
00001 #pragma once 00002 00003 #include "Interface.h" 00004 00005 #include "Task.h" 00006 #include "Base.h" 00007 00008 class GatherTask : public Task 00009 { 00010 public: 00011 GatherTask(Unit resource, Base base); 00012 00013 virtual int getEndTime() const; 00014 virtual int getEndTime(Unit unit) const; 00015 00016 virtual int getPriority(Unit unit) const; 00017 00018 virtual Position getStartLocation(Unit unit) const; 00019 virtual Position getEndLocation(Unit unit) const; 00020 00021 virtual bool preUpdate(); 00022 virtual bool update(); 00023 00024 virtual void updateRequirements(); 00025 00026 virtual bool waitingForUnit(Unit unit) const; 00027 virtual void giveUnit(Unit unit); 00028 virtual void returnUnit(Unit unit); 00029 virtual bool morph(Unit unit, BWAPI::UnitType previousType); 00030 virtual UnitGroup getFinishedUnits(); 00031 00032 virtual std::string getTaskName() const { return "Gathering"; } 00033 virtual std::string getOutputName() const { return mResource->getType().getName(); } 00034 00035 double getMineralRate(); 00036 double getGasRate(); 00037 00038 private: 00039 void updateWorker(Unit worker); 00040 00041 Base mBase; 00042 Unit mResource; 00043 00044 Unit mWorkerOne; 00045 Unit mWorkerTwo; 00046 Unit mWorkerThree; 00047 00048 int workerPriority(int workerNumber) const; 00049 }; 00050 00051 typedef std::tr1::shared_ptr<GatherTask> GatherTaskPointer;