#pragma once
#include "../Behavior.h"

template<class DerivedBehavior>
class FinalState : public BehaviorStateT<DerivedBehavior, FinalState<DerivedBehavior>>
{
public:
  FinalState(DerivedBehavior & behav)
  : BehaviorStateT(behav),
    m_events(),
    m_transitions()
  {}

  void onEnter()
  {
    m_context.terminate(Behavior::Success);
  }
  void onExit()
  {
  }

  typedef boost::tuple<> Events;
	Events m_events;
  
	typedef boost::tuple<> Transitions;
	Transitions m_transitions;
};