#include "Behaviors/StateMachine.h"

$nodeclass Lab2Q4 : StateNode {
  $setupmachine{

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

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

    howl: SoundNode("howl.wav")
    barklow: SoundNode("barklow.wav")
    ping: SoundNode("ping.wav")
    howlb: SoundNode("howl.wav")
    barklowb: SoundNode("barklow.wav")
    pingb: SoundNode("ping.wav")
    
//    powerblink =T(1000)=> playblink =T(1000)=> advanceblink =T(1000)=> powerblink
//    powerblinkb =T(1000)=> advanceblinkb =T(1000)=> playblinkb =T(1000)=> powerblinkb
    
    {howl, powerblink} =C=> {barklow, playblink} =C=> {ping, advanceblink} =C=> {howl, powerblink}
    {howlb, powerblink} =C=> {pingb, advanceblink} =C=> {barklowb, playblink} =C=> {howlb, powerblink}
        
    {howl, powerblink} =B(RobotInfo::BumpLeftButOffset)=> {howlb, powerblink} =B(RobotInfo::BumpLeftButOffset)=> {howl, powerblink}
    {barklow, playblink} =B(RobotInfo::BumpLeftButOffset)=> {barklowb, playblink} =B(RobotInfo::BumpLeftButOffset)=> {barklow, playblink}
    {ping, advanceblink} =B(RobotInfo::BumpLeftButOffset)=> {pingb, advanceblink} =B(RobotInfo::BumpLeftButOffset)=> {ping, advanceblink}
    
//    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(Lab2Q4);
