#include "Behaviors/StateMachine.h"

$nodeclass Lab2part3 : StateNode {
  $setupmachine{

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

    blink1: LedNode [getMC()->flash(RobotInfo::PowerGreenLEDMask, 1.0, 1000)]
    blink1 =C=> blink2
    blink1 =B(RobotInfo::BumpLeftButOffset)=>blink3_r

    blink2: LedNode [getMC()->flash(RobotInfo::PlayLEDMask, 1.0, 1000)]
    blink2 =C=> blink3
    blink2 =B(RobotInfo::BumpLeftButOffset)=>blink1_r

    blink3: LedNode [getMC()->flash(RobotInfo::AdvanceLEDMask, 1.0, 1000)]
    blink3 =C=> blink1
    blink3 =B(RobotInfo::BumpLeftButOffset)=>blink2_r

    blink1_r: LedNode [getMC()->flash(RobotInfo::PowerGreenLEDMask, 1.0, 1000)]
    blink1_r =C=> blink3_r
    blink1_r =B(RobotInfo::BumpLeftButOffset)=>blink2

    blink2_r: LedNode [getMC()->flash(RobotInfo::PlayLEDMask, 1.0, 1000)]
    blink2_r =C=> blink1_r
    blink2_r =B(RobotInfo::BumpLeftButOffset)=>blink3

    blink3_r: LedNode [getMC()->flash(RobotInfo::AdvanceLEDMask, 1.0, 1000)]
    blink3_r =C=> blink2_r
    blink3_r =B(RobotInfo::BumpLeftButOffset)=>blink1


    sound1: SoundNode("barklow.wav") 
    sound1 =C=> sound2
    sound1 =B(RobotInfo::BumpLeftButOffset)=>sound3_r

    sound2: SoundNode("barkmed.wav")
    sound2 =C=> sound3
    sound2 =B(RobotInfo::BumpLeftButOffset)=>sound1_r

    sound3: SoundNode("yipper.wav")
    sound3 =C=> sound1
    sound3 =B(RobotInfo::BumpLeftButOffset)=>sound2_r

    sound1_r: SoundNode("barklow.wav")
    sound1_r =C=> sound3_r
    sound1_r =B(RobotInfo::BumpLeftButOffset)=>sound2

    sound2_r: SoundNode("barkmed.wav")
    sound2_r =C=> sound1_r
    sound2_r =B(RobotInfo::BumpLeftButOffset)=>sound3

    sound3_r: SoundNode("yipper.wav")
    sound3_r =C=> sound2_r
    sound3_r =B(RobotInfo::BumpLeftButOffset)=>sound1
  }

}

REGISTER_BEHAVIOR(Lab2part3);
