BWAPI
|
00001 #pragma once 00002 #include "GroupTacticalAction.h" 00003 00004 namespace layer2 00005 { 00006 class Scout : public virtual GroupTacticalAction 00007 { 00008 public: 00009 // TODO: PrimitiveLocation? or allow CompositeLocation as well? 00010 Scout(unsigned int priority, StaticLocation* location) 00011 : GroupTacticalAction(priority) 00012 , TacticalAction(priority) 00013 , Process(Spar) 00014 , m_location(location) 00015 {} 00016 00017 virtual std::string getName() const 00018 { 00019 return "Scout"; 00020 } 00021 00022 DECLARE_EVENT3(OnScoutArrived, const Scout*, StaticLocation*,BWAPI::Unit*); 00023 OnScoutArrived& getScoutArrivedEvent() const { return m_scoutArrivedEvent; } 00024 00025 DECLARE_EVENT3(OnLocationScouted, const Scout*, PrimitiveLocation*,BWAPI::Unit*); 00026 OnLocationScouted& getLocationScoutedEvent() const { return m_locationScoutedEvent; } 00027 00028 protected: 00029 virtual void output(std::ostream& out) const 00030 { 00031 TacticalAction::output(out); 00032 00033 out << "Scout(" << *m_location << ")"; 00034 } 00035 00036 StaticLocation* const m_location; 00037 00038 EVENT(OnScoutArrived) m_scoutArrivedEvent; 00039 EVENT(OnLocationScouted) m_locationScoutedEvent; 00040 }; 00041 }