BWAPI
Skynet/Skynet/UpgradeTask.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "Task.h"
00006 
00007 class UpgradeTask : public Task
00008 {
00009 public:
00010         UpgradeTask(TaskType priority, BWAPI::UpgradeType type, int level);
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 "Upgrading"; }
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 mUnit; }
00040         virtual bool inProgress() const { return mUnit && mUnit->isUpgrading(); }
00041 
00042 private:
00043         BWAPI::UpgradeType mType;
00044         int mLevel;
00045 
00046         Unit mUnit;
00047 
00048         int mRequiredSatisfyTime;
00049 
00050         bool mReservedResources;
00051 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines