//*******************************************************
// ShoreSide Configuration File

ServerHost = localhost
ServerPort = $(MOOS_PORT)
Community  = shoreside

#include plug_origin_warp.moos

//--------------------------------------------------------
Processconfig = ANTLER
{
  MSBetweenLaunches = 100

  Run = MOOSDB          @ NewConsole = false
  Run = pLogger         @ NewConsole = false

  Run = uFldFlagManager @ NewConsole = false
  Run = uFldTagManager  @ NewConsole = false

  Run = uProcessWatch   @ NewConsole = false

  Run = pHostInfo       @ NewConsole = false
  Run = pShare          @ NewConsole = false
  Run = uFldShoreBroker @ NewConsole = false
  Run = uFldNodeComms   @ NewConsole = false

  Run = pMarineViewer   @ NewConsole = false
	Run = pRealm          @ NewConsole = false
  Run = iSay            @ NewConsole = false
}

#include plug_pShare.moos
#include plug_pHostInfo.moos

//--------------------------------------------------
// uFldFlagMgr Configuration Block

ProcessConfig = uFldFlagManager
{
  AppTick       = 4
  CommsTick     = 4
  
  default_flag_range = 15

  flag_follows_vehicle = true

  near_flag_range_buffer = 5

  flag = $(RED_FLAG), color=red, label=red, range=15
  flag = $(BLUE_FLAG), color=blue, label=blue, range=15

  grab_post = var=SAY_MOOS, sval={say={$VNAME has the $FLAG flag}}
  //lose_post = var=SAY_MOOS, sval={say={the $FLAG flag has been reset}}

  //near_post = var=SAY_MOOS, sval={say={$VNAME is near the $FLAG flag}}
  near_post = var=SAY_MOOS, sval={file=sounds/shipbell.wav}
  away_post = var=SAY_MOOS, sval={file=sounds/buzzer.wav}

  //deny_post = var=SAY_MOOS, sval={file=sounds/sf-no-soup.wav}
  deny_post = var=SAY_MOOS, sval={say={Grab denied $REASON}}

  goal_post = var=SAY_MOOS, sval={say={$VTEAM has scored and returned the $FLAG flag}}
  home_post = var=SAY_MOOS, sval={say={$VNAME has returned home}}

  near_post = var=LED_IN_FLAG_ZONE_$VNAME, sval={true}
  away_post = var=LED_IN_FLAG_ZONE_$VNAME, sval={false}

  near_flag_range_buffer = 0    // Default is 2
}

//--------------------------------------------------
// uFldTagManager Configuration Block

ProcessConfig = uFldTagManager
{
  AppTick   = 4
  CommsTick = 4

  tag_range = 10     // default (meters)

  post_color = white  // default

  tag_circle = true
  tag_circle_range = 5
  tag_circle_color = "green"
  tag_min_interval = 10

  tag_duration = 10000

	robot_tag_post   = TESTING=true
	
  //robot_tag_post   = MOOS_MANUAL_OVERRIDE_$UP_TARGET=true
  human_tag_post   = SAY_MOOS=say={$TARGET_has_been_tagged},rate=200
  human_tag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_tagged},rate=200
  robot_tag_post   = SAY_MOOS=say={$TARGET_has_been_tagged},rate=200
  robot_tag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_tagged},rate=200

  // Return Flag
  human_tag_post   = FLAG_RESET=vname=$TARGET
  robot_tag_post   = FLAG_RESET=vname=$TARGET
  human_tag_post   = TAGGED_$UP_TARGET=true
  robot_tag_post   = TAGGED_$UP_TARGET=true

	notag_post = SAY_MOOS_$UP_SOURCE=say={No Tag $REASON},rate=200 
	
  //robot_untag_post = MOOS_MANUAL_OVERRIDE_$UP_TARGET=false
  // human_untag_post   = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  // human_untag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_untagged},rate=200

  //robot_untag_post   = SAY_MOOS=say={$TARGET_has_been_untagged},rate=200
  //robot_untag_post   = SAY_MOOS_$UP_TARGET=say={you_have_been_untagged},rate=200

	robot_untag_post   = TEST_UNTAG=$TARGET_has_been_untagged,rate=200

	human_untag_post = TAGGED_$UP_TARGET=false
  robot_untag_post = TAGGED_$UP_TARGET=false

  team_one=red
  team_two=blue

  // NW: -85.00   -48.00  
	// NE:  59.37    20.97  
  // SW: -50.51  -120.19  
  // SE:  93.86   -51.22  

	// NMid -12.81  -13.51 
	// SMid  22.09  -85.70 

  zone_one = pts={ 59.37,20.97 : -12.81,-13.51 : 22.09,-85.7 : 93.86,-51.22 }
  zone_two = pts={ -12.81,-13.51 : -85,-48 : -50.51,-120.19 : 22.09,-85.7 }

  //zone_one = pts={ 56,16 : -15,-17 : 17,-83 : 82,-56 }
  //zone_two = pts={ -15,-17 : -83,-49 : -53,-114 : 17,-83 }
	
  zone_one_color = pink
  zone_two_color = dodger_blue
}

//--------------------------------------------------
// ufldnodecomms Config Block

ProcessConfig = uFldNodeComms
{
  AppTick       = 2
  CommsTick     = 2

  comms_range      = 5000
  critical_range   = 25

  min_msg_interval = 0
  max_msg_length   = 10000
  groups           = false

  view_node_rpt_pulses = false
}

//--------------------------------------------------
// uFldShoreBroker Config Block

ProcessConfig = uFldShoreBroker
{
  AppTick       = 1
  CommsTick     = 1

  // Note: [QBRIDGE = FOO]  is shorthand for
  //       [BRIDGE = src=FOO_$V,  alias=FOO] and
  //       [BRIDGE = src=FOO_ALL, alias=FOO]

  qbridge  = DEPLOY, RETURN, STATION_KEEP, NODE_REPORT, NODE_MESSAGE
  qbridge  = MOOS_MANUAL_OVERRIDE, APPCAST_REQ, AVOID, CHASE
  qbridge  = TAGGED, ACTION, LOITER_UPDATES, GO_GRAB, LED_TAGGED
  qbridge  = SAY_MOOS, HAS_FLAG, ONFIELD, CANTAG, LED_IN_FLAG_ZONE

  bridge   = src=IN_OWN_TERRITORY
  bridge   = src=IN_ENEMY_TERRITORY

  bridge   = src=UP_LOITER_$N, alias=UP_LOITER
  bridge   = src=HELM_MAP_CLEAR, alias=HELM_MAP_CLEAR
  bridge   = src=FLAG_SUMMARY
}

//--------------------------------------------------

ProcessConfig = pHostInfo
{
  AppTick     = 1
  CommsTick   = 1

  // DEFAULT_HOSTIP = localhost
}

//--------------------------------------------------
// pLogger Configuration Block

ProcessConfig = pLogger
{
  AppTick       = 10
  CommsTick     = 10

  File          = LOG_SHORESIDE
  PATH          = ./
  SyncLog       = true @ 0.2
  AsyncLog      = true
  FileTimeStamp = true

  LogAuxSrc     = true

  // Log it all!!!!!
  WildCardLogging = true
  WildCardOmitPattern = *_STATUS
  WildCardOmitPattern = *_ITER_GAP
  WildCardOmitPattern = *_ITER_LEN
  WildCardOmitPattern = DB_VARSUMMARY
  WildCardOmitPattern = DB_RWSUMMARY
  WildCardOmitPattern = PSHARE_INPUT_SUMMARY
  WildCardOmitPattern = PSHARE_OUTPUT_SUMMARY
}

//--------------------------------------------------------

ProcessConfig = pMarineViewer
{
  AppTick    = 4
  CommsTick  = 4

  tiff_file            = MIT_SP.tif
  set_pan_x            = 129
  set_pan_y            = -364
  zoom                 = 1.6
  vehicles_shape_scale = 1.0
  vehicles_name_mode   = names

  circle_viewable_all = true
	polygon_viewable_labels = false
	point_viewable_labels = false
	
  appcast_viewable = true
  appcast_color_scheme = indigo
	
  scope = LED_IN_FLAG_ZONE_EVAN
  scope = LED_IN_FLAG_ZONE_GUS

  scope = CANTAG_EVAN
  scope = ONFIELD_EVAN 

  scope = FLAG_GRAB_REPORT
  scope = NODE_BROKER_PING
  scope = DEPLOY_ALL

  action = STATION_KEEP_ALL = false
  action = STATION_KEEP_ALL = true
  action = CHASE_ALL = false

  button_one   = DEPLOY  # DEPLOY_ALL=true
  button_one   = MOOS_MANUAL_OVERRIDE_ALL=false
  button_one   = RETURN_ALL=false # STATION_KEEP_ALL=false

  button_two   = RETURN  # RETURN_ALL=true
  button_two   = STATION_KEEP_ALL=false

  button_three = PLAY # STATION_KEEP_GUS=true
  button_three = ACTION_EVAN=attack
  button_three = STATION_KEEP_EVAN=false
  button_three = GO_GRAB_EVAN=true

  button_four  = STATION   # STATION_KEEP_ALL=true

//	op_vertex = x=-85, y=-48,      lwidth=1,lcolor=yellow,looped=true,group=moa
//  op_vertex = x=-53.1, y=-121.4, lwidth=1,lcolor=yellow,looped=true,group=moa
//  op_vertex = x=90.9, y=-52.4,   lwidth=1,lcolor=yellow,looped=true,group=moa
//  op_vertex = x=59, y=21,        lwidth=1,lcolor=yellow,looped=true,group=moa

	// Northwest Corner
	op_vertex = x=-85, y=-48,        lwidth=1,lcolor=yellow,looped=true,group=moa
	// Southwest Corner
  op_vertex = x=-50.51, y=-120.19, lwidth=1,lcolor=yellow,looped=true,group=moa
	// Southeast Corner
  op_vertex = x=93.86, y=-51.22,   lwidth=1,lcolor=yellow,looped=true,group=moa
	// Northeast Corner
  op_vertex = x=59.37, y=20.97,    lwidth=1,lcolor=yellow,looped=true,group=moa

#include plug_commandfolio.txt	
}

//--------------------------------------------------------
// uProcessWatch Configuration Block

ProcessConfig = uCommand
{
#include plug_commandfolio.txt	
}

//--------------------------------------------------------
// uProcessWatch Configuration Block

ProcessConfig = uProcessWatch
{
  AppTick   = 1
  CommsTick = 1

  allow_retractions = true

  watch_all = true      // default is true

  nowatch = uXMS*
  nowatch = uPokeDB*

  summary_wait = 12
}

//------------------------------------------

ProcessConfig = iSay
{
  AppTick   = 5
  CommsTick = 5

  min_utter_interval = 1
  interval_policy    = from_start

  os_mode=both
  audio_dir=sounds
}


	//------------------------------------------------
// uFldZoneEvent config block

ProcessConfig = UFZEUntag
{
  AppTick   = 4
  CommsTick = 4

  // dynamic values ($[VNAME], $[GROUP], $[TIME], $[VX], $[VY])

  // zone name should correspond to the vehicle's group name to be active
  zone_info = name=blue_untag # polygon=format=radial, $(BLUE_FLAG), radius=10, pts=10, snap=1
  zone_info = name=blue_untag # post_var = UNTAG_REQUEST=vname=$[VNAME]
  zone_info = name=blue_untag # post_var = FLAG_RESET=vname=$[VNAME]
  zone_info = name=blue_untag # viewable=false  // default is true

  //zone_info = name=blue_untag # color=blue  // default is orange
  zone_info = name=blue_untag # group=blue
	
  zone_info = name=red_untag  # polygon=format=radial, $(RED_FLAG), radius=10, pts=10, snap=1
  zone_info = name=red_untag  # post_var = UNTAG_REQUEST=vname=$[VNAME]
  zone_info = name=red_untag  # post_var = FLAG_RESET=vname=$[VNAME]
  zone_info = name=red_untag  # viewable=true # color=red # group = red
}