BWAPI
|
00001 #pragma once 00002 00003 #include "Interface.h" 00004 00005 #include "Task.h" 00006 #include "BuildOrder.h" 00007 00008 class BaseSquadTask : public Task 00009 { 00010 public: 00011 BaseSquadTask(ArmyBehaviour behaviour) 00012 : Task(TaskType::Army) 00013 , mArmyBehaviour(behaviour) 00014 {} 00015 00016 virtual int getEndTime() const = 0; 00017 virtual int getEndTime(Unit unit) const = 0; 00018 00019 virtual int getPriority(Unit unit) const = 0; 00020 00021 virtual Position getStartLocation(Unit unit) const = 0; 00022 virtual Position getEndLocation(Unit unit) const = 0; 00023 00024 virtual bool preUpdate() = 0; 00025 virtual bool update() = 0; 00026 00027 virtual bool waitingForUnit(Unit unit) const = 0; 00028 virtual void giveUnit(Unit unit) = 0; 00029 virtual void returnUnit(Unit unit) = 0; 00030 virtual bool morph(Unit unit, BWAPI::UnitType previousType) = 0; 00031 virtual UnitGroup getFinishedUnits() = 0; 00032 00033 virtual std::string getTaskName() const = 0; 00034 virtual std::string getOutputName() const = 0; 00035 00036 virtual unsigned int controlSize() = 0; 00037 00038 virtual void updateRequirements(){} 00039 00040 void changeBehaviour(ArmyBehaviour armyBehaviour) { mArmyBehaviour = armyBehaviour; } 00041 00042 protected: 00043 ArmyBehaviour mArmyBehaviour; 00044 }; 00045 00046 typedef std::tr1::shared_ptr<BaseSquadTask> BaseSquadTaskPointer;