#include "Behaviors/StateMachine.h"

$nodeclass Lab2p4  : StateNode {  
	$setupmachine{

		launch : StateNode =N=> forwardlight

		flashredf : LedNode [getMC()->set(RobotInfo::AllLEDMask,0.0); getMC()->set(RobotInfo::PowerRedLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> backwardlight

		flashplayf : LedNode [getMC()->set(RobotInfo::AllLEDMask,0.0); getMC()->set(RobotInfo::PlayLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> backwardlight

		flashadvancef : LedNode [getMC()->set(RobotInfo::AllLEDMask,0.0); getMC()->set(RobotInfo::AdvanceLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> backwardlight
	
		flashredb : LedNode [getMC()->set(RobotInfo::AllLEDMask,0.0); getMC()->set(RobotInfo::PowerRedLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> forwardlight

		flashplayb : LedNode [getMC()->set(RobotInfo::AllLEDMask,0.0); getMC()->set(RobotInfo::PlayLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> forwardlight

		flashadvanceb : LedNode [getMC()->flash(RobotInfo::AdvanceLEDMask, 1000)] =B(RobotInfo::PlayButOffset)=> forwardlight

		howlf : SoundNode("howl.wav")
		
		barklowf : SoundNode("barklow.wav")

		pingf : SoundNode("ping.wav")

		howlb : SoundNode("howl.wav")
		
		barklowb : SoundNode("barklow.wav")

		pingb : SoundNode("ping.wav")

		forwardlight : StateNode =N=> {flashredf, howlf} =C(2)=> 
				{flashplayf, barklowf} =C(2)=> 
				 {flashadvancef, pingf} =C(2)=>
			           forwardlight

		backwardlight : StateNode =N=> {flashadvanceb, pingb} =C(2)=> 
				 {flashplayb, barklowb} =C(2)=> 			
				    {flashredb, howlb} =C(2)=> 				   
				      backwardlight
			
  	}

}

REGISTER_BEHAVIOR(Lab2p4);
