#include common.bhv <inits> initialize AGGRESSIVE = false initialize RECOVER = false initialize ACTION = $(START_ACTION) #include common.bhv <modes> set MODE = ATTACKING_EASY { MODE = ACTIVE ACTION = ATTACK_E } set MODE = ATTACKING_MEDIUM { MODE = ACTIVE ACTION = ATTACK_MED } set MODE = DEFENDING_EASY { MODE = ACTIVE ACTION = DEFEND_E } set MODE = DEFENDING_MEDIUM { MODE = ACTIVE ACTION = DEFEND_MED } set MODE = CONTROLLED { MODE = ACTIVE ACTION = CONTROL } set MODE = TAGGED { MODE = ACTIVE:CONTROLLED TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:ATTACKING_EASY TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:ATTACKING_MEDIUM TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:DEFENDING_EASY TAGGED = true } UNTAGGED set MODE = TAGGED { MODE = ACTIVE:DEFENDING_MEDIUM TAGGED = true } UNTAGGED #include common.bhv <bhvs> //---------------------------------------------- Behavior = BHV_AvoidCollision { // General Behavior Parameters // --------------------------- name = avdcollision_ pwt = 300 condition = ((MODE == UNTAGGED) or (MODE == TAGGED)) condition = (MODE == ATTACKING_MEDIUM) 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 contact = optional_vehicle_name decay = 15,30 extrapolate = true on_no_contact_ok = true // Parameters specific to this behavior // ------------------------------------ completed_dist = 25 max_util_cpa_dist = 20 min_util_cpa_dist = 10 pwt_grade = linear pwt_inner_dist = 10 pwt_outer_dist = 20 } //---------------------------------------------- Behavior = BHV_Waypoint { name = waypt_grab_easy pwt = 50 perpetual = true condition = (MODE == UNTAGGED) and (MODE == ATTACKING_EASY) 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 = $(CFXT) // Other guy's flag location } //---------------------------------------------- Behavior = BHV_Waypoint { name = waypt_grab_medium pwt = 50 perpetual = true condition = (MODE == UNTAGGED) condition = (MODE == ATTACKING_MEDIUM) 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 = $(CFXT) // Other Guy's flag location } //---------------------------------------------- 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 = $(CFT) } //---------------------------------------------- Behavior = BHV_Loiter { name = loiter_passive pwt = 100 condition = MODE==DEFENDING_EASY runflag = BOT_DIALOG_STATUS=Defending updates = LOITER_UPDATES speed = 5 polygon = radial:: x=0,y=0,radius=10,pts=8 center_assign = $(CF) } //---------------------------------------------- Behavior = BHV_CutRange { name = cutrange_aggressive_ pwt = 100 activeflag = BOT_DIALOG_STATUS=Intercepting // activeflag = AGGRESSIVE=true condition = MODE == DEFENDING_MEDIUM condition = AGGRESSIVE==TRUE updates = CR_INTERCEPT_UPDATES // templating = spawn // inactiveflag = AGGRESSIVE=false // endflag = STATION=true // endflag = AGGRESSIVE=false contact = blue_one decay = 15,30 extrapolate = false on_no_contact_ok = true time_on_leg = 60 giveup_dist = 50 //30 patience = 50 pwt_inner_dist = 0 pwt_outer_dist = 50 //20 } //---------------------------------------------- Behavior = BHV_StationKeep { name = aggressive_station_keep pwt = 100 condition = MODE==DEFENDING_MEDIUM runflag = BOT_DIALOG_STATUS=protect // center_activate = true station_pt = $(CMT) 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 } #ifdef RLA_ENABLED yes //---------------------------------------------- Behavior = BHV_RLAgent { name = rlagent_attacker pwt = 50 perpetual = true condition = (MODE == CONTROLLED) condition = (TAGGED == false) runflag = BOT_DIALOG_STATUS=Controlled } #endif