#include "Behaviors/StateMachine.h"

$nodeclass LightSoundPartTwo: StateNode {

    $setupmachine{

        launch: StateNode =N=> {ledPower, howl_for}

        ledPower: LedNode [getMC()->set(RobotInfo::PowerRedLEDMask, 1.0)]
        ledPlay: LedNode [getMC()->set(RobotInfo::PlayLEDMask, 1.0)]
        ledAdvance: LedNode [getMC()->set(RobotInfo::AdvanceLEDMask, 1.0)]

        howl_for: SoundNode("howl.wav")
        barklow_for: SoundNode("barklow.wav")
        ping_for: SoundNode("ping.wav")

        howl_back: SoundNode("howl.wav")
        barklow_back: SoundNode("barklow.wav")
        ping_back: SoundNode("ping.wav")

        {howl_for, ledPower} =C=> {ledPlay, barklow_for}
        howl_for =B(RobotInfo::BumpLeftButOffset)=> {ledAdvance, ping_back}
        {barklow_for, ledPlay} =C=> {ledAdvance, ping_for}
        barklow_for =B(RobotInfo::BumpLeftButOffset)=> {ledPower, howl_back}
        {ping_for, ledAdvance} =C=> {ledPower, howl_for}
        ping_for =B(RobotInfo::BumpLeftButOffset)=> {ledPlay, barklow_back}

        {howl_back, ledPower} =C=> {ledAdvance, ping_back}
        howl_back =B(RobotInfo::BumpRightButOffset)=> {ledPlay, barklow_for}
        {barklow_back, ledPlay} =C=> {ledPower, howl_back}
        barklow_back =B(RobotInfo::BumpRightButOffset)=> {ledAdvance, ping_for}
        {ping_back, ledAdvance} =C=> {ledPlay, barklow_back}
        ping_back =B(RobotInfo::BumpRightButOffset)=> {ledPower, howl_for}

    }

}

REGISTER_BEHAVIOR(LightSoundPartTwo);
