#ifndef INCLUDED_Project_h_
#define INCLUDED_Project_h_
 
#include "Behaviors/StateNode.h"
#include "Behaviors/Nodes/SoundNode.h"
#include "Patrol.h"
#include "Push.h"
#include "Behaviors/Nodes/PostureNode.h"
#include "Behaviors/Nodes/WalkNode.h"
#include "Behaviors/Transitions/EventTrans.h"
#include "Behaviors/Transitions/CompletionTrans.h"
#include "Behaviors/Transitions/CompareTrans.h"
#include "Behaviors/Transitions/TimeOutTrans.h"
#include "Behaviors/Transitions/SignalTrans.h"
#include "Events/EventRouter.h"
#include "DualCoding/DualCoding.h"
#include <string.h>

using namespace std;
class Project : public VisualRoutinesStateNode {

public:
  Project() : VisualRoutinesStateNode("Sets up State Machine") {}
 
  virtual void setup() {
    StateNode::setup();

#statemachine

patrol:Patrol()

push:Push()

walk:WalkEngineNode<WalkMC>(-80,0,0.5)

patrol == trans1:CompletionTrans ==> patrol

patrol == EventTrans(push, EventBase::aiEGID) ==> push == trans2:CompletionTrans ==>
 walk == TimeOutTrans(patrol, 3000) ==> patrol

#endstatemachine

      startnode = patrol;
  }       // end of setup()

};

#endif

