#include "Behaviors/StateMachine.h"

$nodeclass Lab2part4 : StateNode {
  $setupmachine{

    launch: StateNode =N=> {blink1, sound1}

    blink1: LedNode [getMC()->cset(RobotInfo::PowerGreenLEDMask, 1.0)]
    blink2: LedNode [getMC()->cset(RobotInfo::PlayLEDMask, 1.0)]
    blink3: LedNode [getMC()->cset(RobotInfo::AdvanceLEDMask, 1.0)]

    sound1: SoundNode("barklow.wav") 
    {sound1, blink1} =C(2)=> {sound2, blink2}
    {sound1, blink1} =B(RobotInfo::BumpLeftButOffset)=> {sound3_r, blink3}

    sound2: SoundNode("barkmed.wav")
    {sound2, blink2} =C(2)=> {sound3, blink3}
    {sound2, blink2} =B(RobotInfo::BumpLeftButOffset)=> {sound1_r, blink1}

    sound3: SoundNode("yipper.wav")
    {sound3, blink3} =C(2)=> {sound1, blink1}
    {sound3, blink3} =B(RobotInfo::BumpLeftButOffset)=> {sound2_r, blink2}

    sound1_r: SoundNode("barklow.wav")
    {sound1_r, blink1} =C(2)=> {sound3_r, blink3}
    {sound1_r, blink1} =B(RobotInfo::BumpLeftButOffset)=> {sound2, blink2}

    sound2_r: SoundNode("barkmed.wav")
    {sound2_r, blink2} =C(2)=> {sound1_r, blink1}
    {sound2_r, blink2} =B(RobotInfo::BumpLeftButOffset)=> {sound3, blink3}

    sound3_r: SoundNode("yipper.wav")
    {sound3_r, blink3} =C(2)=> {sound2_r, blink2}
    {sound3_r, blink3} =B(RobotInfo::BumpLeftButOffset)=> {sound1, blink1}
  }

}

REGISTER_BEHAVIOR(Lab2part4);
