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