BWAPI
|
00001 #pragma once 00002 #include "GroupTacticalAction.h" 00003 #include "../../../../PerceptualState/Locations/Static/BaseLocation.h" 00004 00005 namespace layer2 00006 { 00007 class Collect : public virtual GroupTacticalAction 00008 { 00009 public: 00010 Collect(unsigned int priority, const PersistentUnitGroup* initialGroup, BaseLocation* baseLocation) 00011 : GroupTacticalAction(priority, initialGroup) 00012 , TacticalAction(priority) 00013 , Process(Spar) 00014 , m_baseLocation(baseLocation) 00015 { 00016 } 00017 00018 public: 00019 BaseLocation* getMiningLocation() const 00020 { 00021 return m_baseLocation; 00022 } 00023 00024 protected: 00025 BaseLocation* const m_baseLocation; 00026 }; 00027 00028 class CollectMinerals : public virtual Collect 00029 { 00030 public: 00031 CollectMinerals(unsigned int priority, const PersistentUnitGroup* initialGroup, BaseLocation* baseLocation) 00032 : Collect(priority, initialGroup, baseLocation) 00033 , GroupTacticalAction(priority, initialGroup) 00034 , TacticalAction(priority) 00035 , Process(Spar) 00036 { 00037 } 00038 00039 virtual std::string getName() const 00040 { 00041 return "CollectMinerals"; 00042 } 00043 00044 protected: 00045 virtual void output(std::ostream& out) const 00046 { 00047 Collect::output(out); 00048 out << "Collect-Minerals(" << getGroup()->getName() << ", " << *m_baseLocation << ")"; 00049 } 00050 }; 00051 00052 class CollectGas : public virtual Collect 00053 { 00054 public: 00055 CollectGas(unsigned int priority, const PersistentUnitGroup* initialGroup, BaseLocation* baseLocation) 00056 : Collect(priority, initialGroup, baseLocation) 00057 , GroupTacticalAction(priority, initialGroup) 00058 , TacticalAction(priority) 00059 , Process(Spar) 00060 { 00061 } 00062 00063 virtual std::string getName() const 00064 { 00065 return "CollectGas"; 00066 } 00067 00068 protected: 00069 virtual void output(std::ostream& out) const 00070 { 00071 Collect::output(out); 00072 out << "CollectGas(" << getGroup()->getName() << ", " << *m_baseLocation << ")"; 00073 } 00074 }; 00075 }