#include "Behaviors/StateMachine.h"

$nodeclass SequenceLEDBehavior : StateNode {
  $setupmachine{

    launch: StateNode =N=> {fdBlink, fdHowl}

    fdBlink: StateNode =N=> r_blink_fd
    fdHowl: StateNode =N=> l_howl_fd

    r_blink_fd: LedNode [getMC()->set(RobotInfo::RedLEDMask, 1.0)]
    r_blink_fd =B(RobotInfo::GreenButOffset)=> b_blink_bk
    r_blink_fd =T(1000)=> y_blink_fd

    y_blink_fd: LedNode [getMC()->set(RobotInfo::YellowLEDMask, 1.0)]
    y_blink_fd =B(RobotInfo::GreenButOffset)=> r_blink_bk
    y_blink_fd =T(1000)=> g_blink_fd

    g_blink_fd: LedNode [getMC()->set(RobotInfo::GreenLEDMask, 1.0)]
    g_blink_fd =B(RobotInfo::GreenButOffset)=> y_blink_bk
    g_blink_fd =T(1000)=> b_blink_fd

    b_blink_fd: LedNode [getMC()->set(RobotInfo::BlueLEDMask, 1.0)]
    b_blink_fd =B(RobotInfo::GreenButOffset)=> g_blink_bk
    b_blink_fd =T(1000)=> r_blink_fd

    r_blink_bk: LedNode [getMC()->set(RobotInfo::RedLEDMask, 1.0)]
    r_blink_bk =B(RobotInfo::GreenButOffset)=> y_blink_fd
    r_blink_bk =T(1000)=> b_blink_bk

    y_blink_bk: LedNode [getMC()->set(RobotInfo::YellowLEDMask, 1.0)]
    y_blink_bk =B(RobotInfo::GreenButOffset)=> g_blink_fd
    y_blink_bk =T(1000)=> r_blink_bk

    g_blink_bk: LedNode [getMC()->set(RobotInfo::GreenLEDMask, 1.0)]
    g_blink_bk =B(RobotInfo::GreenButOffset)=> b_blink_fd
    g_blink_bk =T(1000)=> y_blink_bk

    b_blink_bk: LedNode [getMC()->set(RobotInfo::BlueLEDMask, 1.0)]
    b_blink_bk =B(RobotInfo::GreenButOffset)=> r_blink_fd
    b_blink_bk =T(1000)=> g_blink_bk


    l_howl_fd: SoundNode($, "barklow.wav")
    l_howl_fd =B(RobotInfo::GreenButOffset)=> h_howl_bk
    l_howl_fd =C=> m_howl_fd

    m_howl_fd: SoundNode($, "barkmed.wav")
    m_howl_fd =B(RobotInfo::GreenButOffset)=> l_howl_bk
    m_howl_fd =C=> h_howl_fd

    h_howl_fd: SoundNode($, "barkhigh.wav")
    h_howl_fd =B(RobotInfo::GreenButOffset)=> m_howl_bk
    h_howl_fd =C=> l_howl_fd

    l_howl_bk: SoundNode($, "barklow.wav")
    l_howl_bk =B(RobotInfo::GreenButOffset)=> m_howl_fd
    l_howl_bk =C=> h_howl_bk

    m_howl_bk: SoundNode($, "barkmed.wav")
    m_howl_bk =B(RobotInfo::GreenButOffset)=> h_howl_fd
    m_howl_bk =C=> l_howl_bk

    h_howl_bk: SoundNode($, "barkhigh.wav")
    h_howl_bk =B(RobotInfo::GreenButOffset)=> l_howl_fd
    h_howl_bk =C=> m_howl_bk



  }

}

REGISTER_BEHAVIOR(SequenceLEDBehavior);
