#include "Behaviors/StateMachine.h"

$nodeclass SoundBlinkBehavior: StateNode {
  $setupmachine{
   launch: StateNode =N=>{power, howl}
   //lights
    power: LedNode [getMC()->flash(RobotInfo::PowerRedLEDMask, 1.0, 3000)] 
    play: LedNode [getMC()->flash(RobotInfo::PlayLEDMask, 1.0, 1500)] 
    advance: LedNode [getMC()->flash(RobotInfo::AdvanceLEDMask, 1.0, 1000)] 

    power2: LedNode [getMC()->flash(RobotInfo::PowerRedLEDMask, 1.0, 3000)] 
    play2: LedNode [getMC()->flash(RobotInfo::PlayLEDMask, 1.0, 1500)] 
    advance2: LedNode [getMC()->flash(RobotInfo::AdvanceLEDMask, 1.0, 1000)]
    
    //sounds
    barklow: SoundNode("barklow.wav")
    howl: SoundNode("howl.wav")
    ping: SoundNode("ping.wav")

    barklow2: SoundNode("barklow.wav")
    howl2: SoundNode("howl.wav")
    ping2: SoundNode("ping.wav")
    
    {power, howl} =C=>{play, barklow} 
    {play, barklow} =C=>{advance, ping}
    {advance, ping} =C=>{power, howl}

    {power2, howl2}=C=>{advance2, ping2}
    {advance2, ping2}=C=>{play2,barklow2}
    {play2, barklow2} =C=>{power2, howl2}

   {power, howl}=B(RobotInfo::BumpLeftButOffset)=>{advance2, ping2}
   {advance2, ping2}=B(RobotInfo::BumpLeftButOffset)=>{power, howl} 

    {play, barklow}=B(RobotInfo::BumpLeftButOffset)=>{power2, howl2}
   {power2, howl2}=B(RobotInfo::BumpLeftButOffset)=>{play, barklow}

    {advance, ping}=B(RobotInfo::BumpLeftButOffset)=>{play2, barklow2}
    {play2, barklow2}=B(RobotInfo::BumpLeftButOffset)=>{advance, ping}

  }
}

REGISTER_BEHAVIOR(SoundBlinkBehavior);
