//------------------------------------------
// NAME: M. Benjamin, MIT
// FILE: alpha.bhv
//------------------------------------------
initialize   DEPLOY = false
initialize   RETURN = false
initialize   ZIGGING = false
	
set MODE = ACTIVE {
  DEPLOY = true
} INACTIVE

set MODE = ZIGZAG {
  MODE = ACTIVE
	ZIGGING = true
}

set MODE = LEGRUN {
  MODE = ACTIVE
  RETURN != true
} RETURNING

//------------------------------------------------o
Behavior = BHV_LegRunZ
{
  name      = legs
  pwt       = 100
  condition = MODE == LEGRUN
  updates   = LEG_UPDATE
  perpetual = true

           speed = 1.4
  capture_radius = 5
     slip_radius = 15
        patience = 20
   offboard_tgap = 20

         leg = x=65,y=-110,len=160,ang=90
  turn1_bias = 100
  turn2_bias = 100
   turn1_dir = star
   turn2_dir = port
    turn_ext = 10

        repeat = 3
     turn1_rad = 12
     turn2_rad = 12
       mid_pct = 20
       midflag = ZIGGING=true
   adjust_turn = false
  mid_event_thresh = 0

  visual_hints = nextpt_color=yellow
  visual_hints = nextpt_vertex_size=8
  visual_hints = nextpt_lcolor=gray70
  visual_hints = vertex_color=dodger_blue, edge_color=white
  visual_hints = vertex_size=6, edge_size=1
  visual_hints = turn_edge_color=gray80
  visual_hints = turn_vertex_color=white
  visual_hints = turn_vertex_size=6
}
	
//------------------------------------------------o
Behavior = BHV_Waypoint
{
  name       = waypt_return
  pwt        = 100
  condition  = MODE == RETURNING
  perpetual  = true
  endflag    = RETURN = false
  endflag    = DEPLOY = false
  endflag    = MISSION = complete

           speed = 2.0
  capture_radius = 2.0
     slip_radius = 8.0
          points = 0,-20
}

//----------------------------------------------
Behavior = BHV_ZigZag
{
  name      = zig
  pwt       = 100
  condition = MODE==ZIGZAG
  endflag   = ZIGGING = false

  updates   = ZIG_UPDATE
  perpetual = true

            speed = 2.0   // meters per sec
    spd_on_active = true
   stem_on_active = true
        zig_first = star
     max_zig_zags = 2
        zig_angle = 45
 zig_angle_fierce = 30
       hdg_thresh = 2
   fierce_zigging = false

	max_stem_dist = 100 
   max_stem_odo = 100

   zigflag = VIEW_TEXTBOX="x=50,y=-135,msg=ZIGS:$[ZIGS],light_green,fsize=12,dur=300"
   zagflag = VIEW_TEXTBOX="x=50,y=-145,msg=ZAGS:$[ZAGS],light_green,fsize=12,dur=300"

   endflag = VIEW_TEXTBOX="x=50,y=-135"
   endflag = VIEW_TEXTBOX="x=50,y=-145"
		
	    zigflag = ZINFO=total_zigs=$[ZIGS]
	    zigflag = ZINFO=total_zags=$[ZAGS]
	    zigflag = ZINFO=zigs_togo=$[ZIGS_TOGO]
	    zigflag = ZINFO=zags_togo=$[ZAGS_TOGO]
	    zigflag = ZINFO=zigs_ever=$[ZIGS_EVER]

	    zigflag = ZINFO=total_odo=$[ODO]
  	  zigflag = ZINFO=zig_odo=$[ZIG_ODO]
	    zigflag = ZINFO=zag_odo=$[ZAG_ODO]

	    zigflag = ZINFO=zig_completed
	    zagflag = ZINFO=zag_completed
  	
	  portflag  = SIDE_INFO=starting_port
	  portflagx = SIDE_INFO=completing_port
	  starflag  = SIDE_INFO=starting_star
	  starflagx = SIDE_INFO=completing_star

	    zigflag = SIDE_INFO=side=$[ZIG_SIDE]
	    zigflag = SIDE_INFO=port=$[ZIG_PORT]
	    zigflag = SIDE_INFO=star=$[ZIG_STAR]

  	  zigflag = STEM_INFO=stem_hdg=$[STEM_HDG]
	    zigflag = STEM_INFO=stem_spd=$[STEM_SPD]
	    zigflag = STEM_DIST=stem_dist=$[STEM_DIST]
	
 visual_hints = draw_set_hdg = true
 visual_hints = draw_req_hdg = false
}