BWAPI
SPAR/AIModule/SparAIModule/DecisionMaking/Layer2Actions/Interface/Actions/Scout.h
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines