BWAPI
Skynet/Skynet/DefenseSquad.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Interface.h"
00004 
00005 #include "BaseSquad.h"
00006 #include "Behaviour.h"
00007 
00008 class DefenseSquadTask : public BaseSquadTask
00009 {
00010 public:
00011         DefenseSquadTask(ArmyBehaviour behaviour);
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 bool waitingForUnit(Unit unit) const;
00025         virtual void giveUnit(Unit unit);
00026         virtual void returnUnit(Unit unit);
00027         virtual bool morph(Unit unit, BWAPI::UnitType previousType);
00028         virtual UnitGroup getFinishedUnits();
00029 
00030         virtual std::string getTaskName() const { return "Defense Squad"; }
00031         virtual std::string getOutputName() const { return ""; }
00032 
00033         unsigned int controlSize() { return mUnits.size(); }
00034 
00035         virtual void updateRequirements();
00036 
00037         void setGoal(Goal goal) { mDefenseGoal = goal; }
00038 
00039 private:
00040         UnitGroup mUnits;
00041         std::map<Unit, Behaviour> mUnitBehaviours;
00042 
00043         int mNeededWorkers;
00044         bool mNeedsAntiAir;
00045         bool mNeedsAntiGround;
00046 
00047         UnitGroup mWorkerDefenders;
00048         Unit mObserver;
00049         Goal mDefenseGoal;
00050 };
00051 
00052 typedef std::tr1::shared_ptr<DefenseSquadTask> DefenseSquadPointer;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines