//*******************************************************
// 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
  //Run = pMapMarkers     @ NewConsole = false
}

#include plug_pShare.moos
#include plug_pHostInfo.moos

//--------------------------------------------------
// uFldFlagMgr Config 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_flag_range_buffer = 0    // Default is 2
}

//--------------------------------------------------
// uFldTagManager Config 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

  zone_one = $(RED_ZONE)
  zone_two = $(BLUE_ZONE)

  zone_one_color = dodger_blue
  zone_two_color = pink
}

//--------------------------------------------------
// 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, MM_KEY
  qbridge  = TAGGED, ACTION, LOITER_UPDATES, GO_GRAB, LED_TAGGED
  qbridge  = SAY_MOOS, HAS_FLAG, ONFIELD, CANTAG, CANTAG_SUMMARY
  qbridge  = MAP_MARKERS, XALIAS, MM_KEY

  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
}

//--------------------------------------------------
// pHostInfo Config Block

ProcessConfig = pHostInfo
{
  AppTick     = 1
  CommsTick   = 1

  // DEFAULT_HOSTIP = localhost
}

//--------------------------------------------------
// pLogger Config 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
}

//--------------------------------------------------------
// uProcessWatch Config Block

ProcessConfig = pMarineViewer
{
  AppTick    = 4
  CommsTick  = 4

  //tiff_file            = jervis_s_shgoo_18.tif
  tiff_file            = jervis_esat_17.tif
  set_pan_x            = 1400
  set_pan_y            = -60
  zoom                 = 4
  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 = FLAG_GRAB_REPORT
  scope = NODE_BROKER_PING
  scope = DEPLOY_ALL

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

	action = MARKERS_SHOW = shoreside
	action = MARKERS_SHOW = abe
	action = MARKERS_SHOW = ben
	action = MARKERS_SHOW = cal
	action = MARKERS_SHOW = deb
	
  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  = STATION   # STATION_KEEP_ALL=true

  button_four  = OpField-Off # MM_KEY_ALL=off
	button_five  = OpField-Ben # MM_KEY_ALL=ben
	button_six   = OpField-Deb # MM_KEY_ALL=deb

	button_seven = Say-Mute   # SAY_VOLUME = mute 
	button_eight = Say-Normal # SAY_VOLUME = normal
	button_nine  = Say-Soft   # SAY_VOLUME = soft
	button_ten   = Say-VSoft  # SAY_VOLUME = vsoft

	
//	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
	op_vertex = $(NW), lwidth=1,lcolor=yellow,looped=true,group=moa
	// Southwest Corner
  op_vertex = $(NE), lwidth=1,lcolor=yellow,looped=true,group=moa
	// Southeast Corner
  op_vertex = $(SE), lwidth=1,lcolor=yellow,looped=true,group=moa
	// Northeast Corner
  op_vertex = $(SW), lwidth=1,lcolor=yellow,looped=true,group=moa

#include plug_commandfolio.txt	
}

//--------------------------------------------------------
// uProcessWatch Config Block

ProcessConfig = uCommand
{
  #include plug_commandfolio.txt	
}

//--------------------------------------------------------
// uProcessWatch Config Block

ProcessConfig = uProcessWatch
{
  AppTick   = 1
  CommsTick = 1

  allow_retractions = true

  watch_all = true      // default is true

  nowatch = uXMS*
  nowatch = uPokeDB*

  summary_wait = 12
}

//------------------------------------------
// iSay Config Block
	
ProcessConfig = iSay
{
  AppTick   = 5
  CommsTick = 5

  min_utter_interval = 1
  interval_policy    = from_start

  os_mode   = both
  audio_dir = sounds
  volume    = soft
}

//--------------------------------------------------
// pMapMarkers Config Block

ProcessConfig = pMapMarkers
{
  AppTick       = 4
  CommsTick     = 4

	//app_logging = true
	
	opfield = "bf=$(BF) # rf=$(RF)"
	opfield = "nw=$(NW)     # nwb=$(NWB) # ncb=$(NCB) # neb=$(NEB) # ne=$(NE)"
	opfield = "nwwf=$(NWWF) # nwf=$(NWF) # ncf=$(NCF) # nef=$(NEF) # neef=$(NEEF)"
	opfield = "nwwh=$(NWWH) # nwh=$(NWH) # nch=$(NCH) # neh=$(NEH) # neeh=$(NEEH)"
	opfield = "nwwm=$(NWWM) # nwm=$(NWM) # ncm=$(NCM) # nem=$(NEM) # neem=$(NEEM)"
	opfield = "wc=$(WC)     # cpw=$(CPW) # cc=$(CC)   # cpe=$(CPE) # ec=$(EC)"
	opfield = "swwm=$(SWWM) # swm=$(SWM) # scm=$(SCM) # sem=$(SEM) # seem=$(SEEM)"
	opfield = "swwh=$(SWWH) # swh=$(SWH) # sch=$(SCH) # seh=$(SEH) # seeh=$(SEEH)"
	opfield = "swwf=$(SWWF) # swf=$(SWF) # scf=$(SCF) # sef=$(SEF) # seef=$(SEEF)"
	opfield = "sw=$(SW)     # swb=$(SWB) # scb=$(SCB) # seb=$(SEB) # se=$(SE)"
}