#include "Behaviors/StateMachine.h"

$nodeclass Lab2Q3 : StateNode {
  $setupmachine{

    launch: StateNode =N=> {powerblink, barklow}

    powerblink: LedNode [getMC()->set(RobotInfo::PowerRedLEDMask,1.0)]
    playblink: LedNode [getMC()->set(RobotInfo::PlayLEDMask,1.0)]
    advanceblink: LedNode [getMC()->set(RobotInfo::AdvanceLEDMask,1.0)]

    powerblinkb: LedNode [getMC()->set(RobotInfo::PowerRedLEDMask,1.0)]
    playblinkb: LedNode [getMC()->set(RobotInfo::PlayLEDMask,1.0)]
    advanceblinkb: LedNode [getMC()->set(RobotInfo::AdvanceLEDMask,1.0)]
    
    barklow: SoundNode("barklow.wav")
    barkmed: SoundNode("barkmed.wav")
    barkyip: SoundNode("yipper.wav")
    
    barklowb: SoundNode("barklow.wav")
    barkmedb: SoundNode("barkmed.wav")
    barkyipb: SoundNode("yipper.wav")
      
    powerblink =T(1000)=> playblink =T(1000)=> advanceblink =T(1000)=> powerblink
    powerblinkb =T(1000)=> advanceblinkb =T(1000)=> playblinkb =T(1000)=> powerblinkb
    
    barklow =C=> barkmed =C=> barkyip =C=> barklow
    barklowb =C=> barkyipb =C=> barkmedb =C=> barklowb
        
    powerblink =B(RobotInfo::BumpLeftButOffset)=> powerblinkb =B(RobotInfo::BumpLeftButOffset)=> powerblink
    playblink =B(RobotInfo::BumpLeftButOffset)=> playblinkb =B(RobotInfo::BumpLeftButOffset)=> playblink
    advanceblink =B(RobotInfo::BumpLeftButOffset)=> advanceblinkb =B(RobotInfo::BumpLeftButOffset)=> advanceblink

    barklow =B(RobotInfo::BumpLeftButOffset)=> barklowb =B(RobotInfo::BumpLeftButOffset)=> barklow
    barkmed =B(RobotInfo::BumpLeftButOffset)=> barkmedb =B(RobotInfo::BumpLeftButOffset)=> barkmed
    barkyip =B(RobotInfo::BumpLeftButOffset)=> barkyipb =B(RobotInfo::BumpLeftButOffset)=> barkyip
  }

}

REGISTER_BEHAVIOR(Lab2Q3);
