initialize DEPLOY = false initialize RETURN = false initialize ACTION = $(START_ACTION) initialize TAGGED = false initialize AGGRESSIVE = false initialize RECOVER = false set MODE = ACTIVE { DEPLOY = true } INACTIVE set MODE = RECOVERING { MODE = ACTIVE RECOVER = true } set MODE = RETURNING { MODE = ACTIVE RETURN = true } INGAME set MODE = SOLOPLAY { MODE = ACTIVE:INGAME (((ACTION = ATTACK) or ((ACTION = ATTACK_LEFT) or (ACTION = ATTACK_RIGHT))) or ((ACTION = INTERCEPT) or (ACTION = DEFEND))) or (ACTION = PROTECT) } set MODE = TEAMPLAY { MODE = ACTIVE:INGAME ((ACTION = COVER) or ((ACTION = STATION) or (ACTION = TRAIL))) or (ACTION = SHIELD) } set MODE = ATTACKING { MODE = ACTIVE:INGAME:SOLOPLAY ACTION = ATTACK } set MODE = ATTACKING_LEFT { MODE = ACTIVE:INGAME:SOLOPLAY ACTION = ATTACK_LEFT } set MODE = ATTACKING_RIGHT { MODE = ACTIVE:INGAME:SOLOPLAY ACTION = ATTACK_RIGHT } set MODE = DEFENDING { MODE = ACTIVE:INGAME:SOLOPLAY } set MODE = TAGGED { MODE = ACTIVE:INGAME:SOLOPLAY:ATTACKING TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:INGAME:SOLOPLAY:ATTACKING_LEFT TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:INGAME:SOLOPLAY:ATTACKING_RIGHT TAGGED = true } UNTAGGED set MODE = AVOIDING { MODE = ACTIVE:INGAME:SOLOPLAY:ATTACKING:UNTAGGED AGGRESSIVE = false } set MODE = PASSIVE { MODE = ACTIVE:INGAME:SOLOPLAY:DEFENDING ACTION = DEFEND } set MODE = PROTECTING { MODE = ACTIVE:INGAME:SOLOPLAY:DEFENDING ACTION = PROTECT } set MODE = TRAILING { MODE = ACTIVE:INGAME:TEAMPLAY ACTION = TRAIL } set MODE = COVERING { MODE = ACTIVE:INGAME:TEAMPLAY ACTION = COVER } set MODE = SHIELDING { MODE = ACTIVE:INGAME:TEAMPLAY ACTION = SHIELD } set MODE = STATIONING { MODE = ACTIVE:INGAME:TEAMPLAY ACTION = STATION } //Behavior = BHV_AvoidCollision { // General Behavior Parameters // --------------------------- name = avdcollision_ pwt = 300 updates = CONTACT_INFO endflag = CONTACT_RESOLVED = $[CONTACT] templating = spawn // General Contact Behavior Parameters // ----------------------------------- bearing_lines = white:0, green:0.65, yellow:0.8, red:1.0 // example contact = optional_vehicle_name decay = 15,30 extrapolate = true on_no_contact_ok = true // Parameters specific to this behavior // ------------------------------------ completed_dist = 15 max_util_cpa_dist = 10 min_util_cpa_dist = 5 pwt_grade = linear pwt_inner_dist = 10 pwt_outer_dist = 20 } //---------------------------------------------- Behavior = BHV_OpRegionRecover { name = recover pwt = 300 updates = RECOVER_UPDATES activeflag = RECOVER = true inactiveflag = RECOVER = false polygon = pts={-85,-48 : 59,21 : 90.9,-52.4 : -53.1, -121.4} trigger_entry_time = 1 trigger_exit_time = 1 } //############################################################################# //Behavior = BHV_AvdColregsV17 { name = active_avd_ pwt = 300 updates = CONTACT_INFO condition = (MODE == ACTIVE) templating = spawn endflag = CONTACT_RESOLVED = $[CONTACT] contact = optional_vehicle_name decay = 15,30 on_no_contact_ok = true extrapolate = false completed_dist = 15 max_util_cpa_dist = 10 min_util_cpa_dist = 5 pwt_grade = linear pwt_inner_dist = 10 pwt_outer_dist = 20 } //############################################################################# Behavior = BHV_Waypoint { name = waypt_return pwt = 100 condition = MODE == RETURNING runflag = BOT_DIALOG_STATUS=Returning endflag = STATION_KEEP = true speed = 3.0 capture_radius = 3.0 slip_radius = 10.0 points = $(RETURN_POS) lead = 8 } //############################################################################# Behavior = BHV_Waypoint { name = waypt_grab pwt = 50 perpetual = true condition = (MODE == UNTAGGED) and (MODE == ATTACKING) runflag = BOT_DIALOG_STATUS=Attacking endflag = FLAG_GRAB_REQUEST=vname=$(RNAME) endflag = TAGGED=true speed = 5 // meters per second capture_line = false capture_radius = 7.0 slip_radius = 5.0 points = $(GRAB_POS) } //############################################################################# Behavior = BHV_Waypoint { name = left_waypt_grab pwt = 50 perpetual = true updates = UPDATE_WPT condition = (MODE == UNTAGGED) and (MODE == ATTACKING_LEFT) runflag = BOT_DIALOG_STATUS=Attacking endflag = FLAG_GRAB_REQUEST=vname=$(RNAME) endflag = TAGGED=true speed = 5 // meters per second capture_line = false capture_radius = 7.0 slip_radius = 5.0 points = $(GRABL_POS):$(GRAB_POS) visual_hints = vertex_size=0, edge_size=0 visual_hints = vertex_color=invisible, edge_color=invisible visual_hints = nextpt_color=invisible, nextpt_lcolor=invisible } //############################################################################# Behavior = BHV_Waypoint { name = right_waypt_grab pwt = 50 perpetual = true updates = UPDATE_WPT condition = (MODE == UNTAGGED) and (MODE == ATTACKING_RIGHT) runflag = BOT_DIALOG_STATUS=Attacking endflag = FLAG_GRAB_REQUEST=vname=$(RNAME) endflag = TAGGED=true speed = 5 // meters per second capture_line = false capture_radius = 7.0 slip_radius = 5.0 points = $(GRABR_POS):$(GRAB_POS) visual_hints = vertex_size=0, edge_size=0 visual_hints = vertex_color=invisible, edge_color=invisible visual_hints = nextpt_color=invisible, nextpt_lcolor=invisible } //############################################################################# //Behavior = BHV_AvdColregsV17 { name = avd_ pwt = 200 updates = CONTACT_INFO_AVOIDING condition = MODE == AVOIDING templating = spawn endflag = CONTACT_AVOIDING_RESOLVED = $[CONTACT] contact = optional_vehicle_name decay = 15,30 on_no_contact_ok = true extrapolate = false completed_dist = 30 max_util_cpa_dist = 25 min_util_cpa_dist = 15 pwt_grade = linear pwt_inner_dist = 10 pwt_outer_dist = 25 } //############################################################################# Behavior = BHV_Waypoint { name = waypt_untag pwt = 50 perpetual = true condition = MODE == TAGGED runflag = BOT_DIALOG_STATUS=Returning to home flag endflag = TAGGED=false endflag = UPDATE_WPT=currix=100 endflag = UPDATE_WPT=currix=0 speed = 5 // meters per second capture_line = false capture_radius = 10.0 slip_radius = 10.0 points = $(UNTAG_POS) } //############################################################################# Behavior = BHV_Loiter { name = loiter_passive pwt = 100 condition = MODE==PASSIVE runflag = BOT_DIALOG_STATUS=Defending updates = LOITER_UPDATES speed = 5 polygon = radial:: x=0,y=0,radius=10,pts=8 // example center_assign = $(UNTAG_POS) } //############################################################################# Behavior = BHV_StationKeep { name = station_keep pwt = 100 condition = MODE==STATIONING // example runflag = BOT_DIALOG_STATUS=Stationing center_activate = true hibernation_radius = 5 inner_radius = 4 outer_radius = 15 outer_speed = 5 transit_speed = 5 swing_time = 3 visual_hints = vertex_size = 1 // default visual_hints = edge_color = light_blue // default visual_hints = edge_size = 1 // default visual_hints = label_color = white // default visual_hints = vertex_color = red // default } //############################################################################# Behavior = BHV_Trail { name = cover_mokai pwt = 100 condition = MODE == COVERING runflag = BOT_DIALOG_STATUS=Covering contact = $(VTEAM)_one decay = 15,30 extrapolate = false on_no_contact_ok = true time_on_leg = 60 nm_radius = 10 no_alert_request = false post_trail_dist_on_idle = true pwt_outer_dist = 1000 radius = 5 trail_angle = 0 trail_angle_type = relative trail_range = 15 updates = COVER_UPDATES } //############################################################################# Behavior = BHV_Trail { name = trail_mokai pwt = 100 condition = MODE == TRAILING runflag = BOT_DIALOG_STATUS=Trailing contact = $(VTEAM)_one decay = 15,30 extrapolate = false on_no_contact_ok = true time_on_leg = 60 nm_radius = 1 no_alert_request = false post_trail_dist_on_idle = true pwt_outer_dist = 1000 radius = 2 trail_angle = 180 trail_angle_type = relative trail_range = 15 updates = TRAIL_UPDATES } //############################################################################# //Behavior = BHV_Defense_Multi { name = protect pwt = 100 condition = MODE==PROTECTING runflag = BOT_DIALOG_STATUS=Protecting flag = $(UNTAG_POS) enemy_flag = $(GRAB_POS) team = $(VTEAM) self = $(RNAME) teammate = $(HERON_TEAMMATE) speed = 2 //default distance_from_flag = 20 //default } //############################################################################# Behavior = BHV_Cover { name = shield pwt = 100 condition = MODE==SHIELDING runflag = BOT_DIALOG_STATUS=Covering team = $(VTEAM) requestor = $(VTEAM)_one enemy_flag = $(GRAB_POS) self = $(RNAME) updates = SHIELD_REQUEST speed = 2 //default distance_from_flag = 10 //default }