//-*-c++-*-
#ifndef INCLUDED_FLASHBARK_h_
#define INCLUDED_FLASHBARK_h_

#include "Behaviors/BehaviorBase.h"
#include "Events/EventRouter.h"
#include "Behaviors/StateMachine.h"


//! DESCRIPTION
class FlashBark : public StateNode {
public:
	FlashBark() : StateNode("FlashBark") {}

	virtual void setup() {

#statemachine

startnode: StateNode =N=> {fRed, fLow}

fRed: LedNode [getMC()->flash(ChiaraInfo::RedLEDMask, 1000);] =C=> fYellow
fYellow: LedNode [getMC()->flash(ChiaraInfo::YellowLEDMask, 1000);] =C=> fGreen
fGreen: LedNode [getMC()->flash(ChiaraInfo::GreenLEDMask, 1000);] =C=> fBlue
fBlue: LedNode [getMC()->flash(ChiaraInfo::BlueLEDMask, 1000);] =C=> fRed

fBlue =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rGreen
fRed =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rBlue
fYellow =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rRed
fGreen =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rYellow

rRed: LedNode [getMC()->flash(ChiaraInfo::RedLEDMask, 1000);] =C=> rBlue
rYellow: LedNode [getMC()->flash(ChiaraInfo::YellowLEDMask, 1000);] =C=> rRed
rGreen: LedNode [getMC()->flash(ChiaraInfo::GreenLEDMask, 1000);] =C=> rYellow
rBlue: LedNode [getMC()->flash(ChiaraInfo::BlueLEDMask, 1000);] =C=> rGreen

rBlue =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fRed
rRed =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fYellow
rYellow =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fGreen
rGreen =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fBlue

fLow: SoundNode($,"barklow.wav") =T(1000)=> fMed
fMed: SoundNode($,"barkmed.wav") =T(1000)=> fHigh
fHigh: SoundNode($,"barkhigh.wav") =T(1000)=> fLow

fLow  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rHigh
fMed  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rLow
fHigh  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> rMed

rLow: SoundNode($,"barklow.wav") =T(1000)=> rHigh
rMed: SoundNode($,"barkmed.wav") =T(1000)=> rLow
rHigh: SoundNode($,"barkhigh.wav") =T(1000)=> rMed

rLow  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fMed
rMed  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fHigh
rHigh  =E(buttonEGID, ChiaraInfo::GreenButOffset, activateETID)=> fLow


#endstatemachine
	}
};
#endif
