BWAPI
Skynet/Skynet/TrainTask.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "Task.h"
00006 
00007 class TrainTask : public Task
00008 {
00009 public:
00010         TrainTask(TaskType priority, BWAPI::UnitType type);
00011 
00012         virtual int getEndTime() const;
00013         virtual int getEndTime(Unit unit) const;
00014 
00015         virtual int getPriority(Unit unit) const;
00016 
00017         virtual Position getStartLocation(Unit unit) const;
00018         virtual Position getEndLocation(Unit unit) const;
00019 
00020         virtual bool preUpdate();
00021         virtual bool update();
00022 
00023         virtual void updateRequirements();
00024 
00025         virtual bool waitingForUnit(Unit unit) const;
00026         virtual void giveUnit(Unit unit);
00027         virtual void returnUnit(Unit unit);
00028         virtual bool morph(Unit unit, BWAPI::UnitType previousType);
00029         virtual UnitGroup getFinishedUnits();
00030 
00031         virtual std::string getTaskName() const { return "Training"; }
00032         virtual std::string getOutputName() const { return mType.getName(); }
00033 
00034         virtual void setRequiredSatisfyTime(RequirementGroup requirements, int time, int delay) { mRequiredSatisfyTime = time; }
00035 
00036         virtual int dispatchTime() const { return mRequiredSatisfyTime; }
00037         virtual int startTime() const { return mRequiredSatisfyTime; }
00038 
00039         virtual bool hasDispatched() const { return mProductionBuilding; }
00040         virtual bool inProgress() const { return mProducedUnit; }
00041 
00042         BWAPI::UnitType getTrainType() { return mType; }
00043 
00044 private:
00045         BWAPI::UnitType mType;
00046 
00047         Unit mProductionBuilding;
00048         Unit mProducedUnit;
00049 
00050         int mRequiredSatisfyTime;
00051 
00052         bool mReservedResources;
00053 
00054         int mOrderTime;
00055 
00056         void reserveResources();
00057         void freeResources();
00058 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines