BWAPI
Skynet/Skynet/GatherTask.h
Go to the documentation of this file.
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;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines