BWAPI
SPAR/AIModule/SparAIModule/DecisionMaking/Layer1Reactive/FSM/Conditions/IsIdle.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "../../../../Utils/FSM/Condition.h"
00003 
00008 template <class UnitGroup>
00009 class IsGroupIdle : public Condition
00010 {
00011 public:
00012   IsGroupIdle(const UnitGroup* group)
00013     : m_group(group) {}
00014   bool evaluate() const
00015   {
00016     bool idle = true;
00017     for (UnitGroup::const_iterator it = m_group->begin();
00018          idle && it != m_group->end();
00019          ++it)
00020     {
00021       idle = (*it)->isIdle();
00022     }
00023     return idle;
00024   }
00025 protected:
00026   const UnitGroup* const m_group;
00027 };
00028 
00029 class IsUnitIdle : public Condition
00030 {
00031 public:
00032   IsUnitIdle(BWAPI::Unit* unit)
00033     : m_unit(unit) {}
00034   bool evaluate() const
00035   {
00036     return m_unit->isIdle();
00037   }
00038 protected:
00039   BWAPI::Unit* const m_unit;
00040 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines