//---------------------------------------------------
// Helm Behavior file 

initialize   DEPLOY  = false
initialize   RETURN  = false
initialize   STATION_KEEP = false
initialize   LOITER  = true
initialize   AVOID   = true
initialize   CONTACT_AVOID = false
initialize   AVOIDING = idle

set MODE = ACTIVE {
  DEPLOY = true
} INACTIVE

set MODE = STATION-KEEPING {
  MODE = ACTIVE
  STATION_KEEP = true
}                       

set MODE = RETURNING {
  MODE = ACTIVE
  RETURN = true
} SURVEYING

//----------------------------------------------
Behavior = BHV_Waypoint
{ 
  name      = waypt_survey
  pwt       = 100
  condition = MODE==SURVEYING
  endflag   = RETURN = true

  updates    = WPT_UPDATE
  perpetual  = true

         lead_condition = AVOIDING != active

                lead = 8
         lead_damper = 1
       lead_to_start = true
               speed = 2.5   // meters per second
        capture_line = true
      capture_radius = 5.0
         slip_radius = 15.0
	efficiency_measure = all

             polygon = 60,-40 : 60,-160 : 150,-160 : 180,-100 : 150,-40

               order = normal
             repeat  = 1

    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=5, edge_size=1
}

//----------------------------------------------
Behavior = BHV_AvdColregsV17
//Behavior = BHV_AvoidCollision
{
  name         = ac_
  pwt          = 500
  condition    = AVOID = true 
  condition    = MODE==SURVEYING
  updates      = CONTACT_INFO
  idleflag     = AVOIDING = idle
  activeflag   = AVOIDING = active

  inactiveflag = AVOIDING = inactive
  runflag      = AVOIDING = running
  endflag      = AVOIDING = end
  endflag      = CONTACT_RESOLVED = $[CONTACT]
  templating   = spawn

             contact = to-be-set
    on_no_contact_ok = true
         extrapolate = true
               decay = 30,60

        pwt_outer_dist = 50
        pwt_inner_dist = 20
        completed_dist = 75
     min_util_cpa_dist = 8
     max_util_cpa_dist = 15
             pwt_grade = linear
   bearing_line_config = white:0, green:0.65, yellow:0.8, red:1.0
}

//----------------------------------------------
Behavior = BHV_Waypoint
{
  name      = waypt_return
  pwt       = 100
  updates   = RETURN_UPDATES
  condition = MODE==RETURNING
  endflag   = STATION_KEEP = true
  endflag   = AVOID = false

      speed = 1.3
     radius = 3.0
  nm_radius = 15.0
     points = $(START_POS)
     repeat = 10
       lead = 8
}

//----------------------------------------------
Behavior = BHV_StationKeep
{
  name         = station-keep
  pwt          = 100
  condition    = MODE==STATION-KEEPING
  inactiveflag = STATIONING = false
  activeflag   = STATIONING = true

     center_activate = true
        inner_radius = 5
        outer_radius = 10 
         outer_speed = 1.0

       transit_speed = 1.3
          swing_time = 7
//  hibernation_radius = 25
        visual_hints = vertex_size=0, edge_color=gray50
}