//****************************************************************************// // Map Script by [ETC]=ALICEINCHAINS= // Last updated: 04-03-2010 // For each stage of the map a maximum of 10 attack/defend spots have been defined // As such it is not recommended to play this version with more than 20 bots at any time // TODO: No snipe, arty, artillery spots yet. // TODO: Check routing, stuckage locations. // TODO: Create additional facings for camp spots where needed. //****************************************************************************// global Map = { Debug = false, Switches = { Open_Safe = { Enabled = true, Priority = 0.0, WaypointName = "safe_open", LimitTeam = 0, // Not reachable yet LimitBots = 2, LimitDistance = 1200, }, Close_Safe = { Enabled = true, Priority = 0.0, WaypointName = "safe_close", LimitTeam = 0, // Not reachable yet LimitBots = 2, LimitDistance = 1200, }, open_bankdoor = // setproperty pathtrough changes capital letters to lower case { Enabled = false, Priority = 0.0, WaypointName = "bank_exit", LimitTeam = (1< Humans, tssssk SetAvailableMapGoals( TEAM.AXIS, false, { "SWITCH_Close_Safe", Map.Build_Banks_barricade, }); } else { SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_Close_Safe" ); } // Allied Goals SetAvailableMapGoals( TEAM.ALLIES, true, { "FLAG_case1", "CAPPOINT_deliver_Gold", }); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_Open_Safe" ); Util.MapDebugPrint( "Safe_Opened" ); }, Bank_Door_Moving = function( trigger ) { if ( trigger.Action == "opened" ) { Map.BankDoor_Status = 1; // Opened Map.Switches.open_bankdoor.Enabled = false; } else { Map.BankDoor_Status = 0; // closed Map.Switches.open_bankdoor.Enabled = true; } Util.MapDebugPrint( "Bank_Door_Moving: " + trigger.Action, true ); }, }; global OnMapLoad = function() { OnTrigger( "^5Allied team have constructed a command post. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "^1Axis team have constructed a command post. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "^1Axis have built the Backdoor's barricade", Map.Backdoors_barricade_Built ); OnTrigger( "^1Axis have built the Bank's barricade", Map.Banks_barricade_Built ); OnTrigger( "^1Axis team have constructed the North Market's MG nest", Map.North_Markets_MG_nest_Built ); OnTrigger( "^8The Tank ^ahas been repaired^8!", Map.Tank_Built ); OnTrigger( "^5Allied team have constructed the Tank Defences' Bridge", Map.Tank_Defences_Bridge_Built ); OnTrigger( "^8The Tank ^ais nearly at ^8the Main town gate!", Map.Tank_Near_Towngate ); OnTrigger( "^1Axis team have constructed the Villa Courtyard's Gate", Map.Villa_Courtyards_Gate_Built ); OnTrigger( "^5Allied team have constructed the Wire Swing Gate", Map.Wire_Swing_Gate_Built ); OnTrigger( "Planted at the Allied Command Post.", Map.Allied_Command_Post_Planted ); OnTrigger( "Planted at the Axis Command Post.", Map.Axis_Command_Post_Planted ); OnTrigger( "Planted at the Back Door.", Map.Back_Door_Planted ); OnTrigger( "Planted at the Backdoor's barricade.", Map.Backdoors_barricade_Planted ); OnTrigger( "Planted at the Bank's barricade.", Map.Banks_barricade_Planted ); OnTrigger( "Planted at the Bank's entrance.", Map.Banks_entrance_Planted ); OnTrigger( "Planted at the East Gate.", Map.East_Gate_Planted ); OnTrigger( "Planted at the North Market's MG nest.", Map.North_Markets_MG_nest_Planted ); OnTrigger( "Planted at the Tank Defences' Bridge.", Map.Tank_Defences_Bridge_Planted ); OnTrigger( "Planted at the Villa Courtyard's Gate.", Map.Villa_Courtyards_Gate_Planted ); OnTrigger( "Planted at the Wire Swing Gate.", Map.Wire_Swing_Gate_Planted ); OnTrigger( "Defused at the Allied Command Post.", Map.Allied_Command_Post_Defused ); OnTrigger( "Defused at the Axis Command Post.", Map.Axis_Command_Post_Defused ); OnTrigger( "Defused at the Back Door.", Map.Back_Door_Defused ); OnTrigger( "Defused at the Backdoor's barricade.", Map.Backdoors_barricade_Defused ); OnTrigger( "Defused at the Bank's barricade.", Map.Banks_barricade_Defused ); OnTrigger( "Defused at the Bank's entrance.", Map.Banks_entrance_Defused ); OnTrigger( "Defused at the East Gate.", Map.East_Gate_Defused ); OnTrigger( "Defused at the North Market's MG nest.", Map.North_Markets_MG_nest_Defused ); OnTrigger( "Defused at the Tank Defences' Bridge.", Map.Tank_Defences_Bridge_Defused ); OnTrigger( "Defused at the Villa Courtyard's Gate.", Map.Villa_Courtyards_Gate_Defused ); OnTrigger( "Defused at the Wire Swing Gate.", Map.Wire_Swing_Gate_Defused ); OnTrigger( "^1Axis team have destroyed the Allied Commmand Post!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "^5Allied team have destroyed the Axis Commmand Post!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "^5Allies have destroyed the Back door!", Map.Back_Door_Destroyed ); OnTrigger( "^5Allies have destroyed the Backdoor's barricade", Map.Backdoors_barricade_Destroyed ); OnTrigger( "^5Allies have destroyed the Bank's barricade", Map.Banks_barricade_Destroyed ); OnTrigger( "^5Allies have destroyed the Bank's entrance", Map.Banks_entrance_Destroyed ); OnTrigger( "^5Allies have destroyed the East Gate!", Map.East_Gate_Destroyed ); OnTrigger( "^5Allied team have destroyed the North Market's MG nest", Map.North_Markets_MG_nest_Destroyed ); OnTrigger( "^8The Tank ^ahas been damaged^8!", Map.Tank_Destroyed ); OnTrigger( "^1Axis team have destroyed the Tank Defences' Bridge", Map.Tank_Defences_Bridge_Destroyed ); OnTrigger( "^aAllies have destroyed ^8the Main town gate!", Map.Towngate_Destroyed ); OnTrigger( "^5Allied team have destroyed the Villa Courtyard's Gate", Map.Villa_Courtyards_Gate_Destroyed ); OnTrigger( "^1Axis team have destroyed the Wire Swing Gate", Map.Wire_Swing_Gate_Destroyed ); OnTrigger( "Allies have stolen the ^8Gold!", Map.case1_Taken ); OnTrigger( "Allies have stolen ^1the Key Card!", Map.case2_Taken ); OnTrigger( "Flag returned case1!", Map.case1_Returned ); OnTrigger( "Flag returned case2!", Map.case2_Returned ); OnTrigger( "^5The Allies have escaped with the Nazi gold!", Map.case1_Secured ); OnTrigger( "^5The Allies have got the access to the Gold Safe!", Map.case2_Secured ); OnTrigger( "^5Allies have opened the Gold Safe!", Map.Safe_Opened ); OnTrigger( "^1Axis have closed the Gold Safe!", Map.Safe_Closed ); OnTrigger( "bank_barricade_door_Moving", Map.Bank_Door_Moving ); OnTrigger( "tank at location", Map.Tank_At_Location ); Util.SetMaxUsers( 1, "ATTACK.*" ); Util.SetMaxUsers( 1, "DEFEND.*" ); Util.SetMaxUsers( 1, "PLANT.*" ); Util.SetMaxUsers( 2, "BUILD.*" ); Util.SetMaxUsers( 2, "ESCORT.*" ); Util.SetMaxUsers( 4, "FLAG.*" ); // disable combat movement and bot pushing near the door to the bank for more reliable pathing bpush = OnTriggerRegion(AABB(-256.505,354.329,-0.875,0.996,530.530,118.029),RegionTrigger.DisableCombatMovement); // tank location triggers tank1 = OnTriggerRegion(AABB(6638.042,-58.511,-191.661,7015.274,72.943,-96.540),RegionTrigger.VehicleTrigger); tank2 = OnTriggerRegion(AABB(5217.417,-718.246,-100.176,5474.668,-340.442,-5.286),RegionTrigger.VehicleTrigger); //~Util.OnTriggerPosition( Map.Mover_tank, "tankmarker3", 200, Map.Tank_At_Gate ); Util.SetGoalOffset( -450, 80, 0, Map.Plant_Tank_Defences_Bridge ); Util.SetGoalOffset( 20, -120, -100, Map.Plant_Back_Door ); Util.SetGoalOffset( 40, 10, 10, Map.Plant_Backdoors_barricade ); Util.SetGoalPosition( -205, 350, 55, Map.Build_Banks_barricade ); SetMapGoalProperties( "ATTACK.*", {mincamptime=20, maxcamptime=30} ); SetMapGoalProperties( "DEFEND.*", {mincamptime=30, maxcamptime=45} ); SetMapGoalProperties( "MOBILEMG42.*", {mincamptime=120, maxcamptime=180} ); SetMapGoalProperties( "SNIPE.*", {mincamptime=40, maxcamptime=60} ); // Allied goals SetGoalPriority( Map.Build_Wire_Swing_Gate, 0.65, TEAM.ALLIES, CLASS.ENGINEER ); SetGoalPriority( Map.Plant_East_Gate, 0,83, TEAM.ALLIES, CLASS.ENGINEER ); SetGoalPriority( Map.Plant_Banks_entrance, 0.82, TEAM.ALLIES, CLASS.ENGINEER ); SetAvailableMapGoals( TEAM.ALLIES, false, ".*" ); SetAvailableMapGoals( TEAM.ALLIES, true, { Map.Build_Tank, ".*_Allies_TankEscort.*", }); // Axis Goals SetGoalPriority( Map.Plant_Wire_Swing_Gate, 0.65, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( Map.Plant_Tank_Defences_Bridge, 0.82, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( Map.Build_Banks_barricade, 0.92, TEAM.AXIS, CLASS.ENGINEER ); SetAvailableMapGoals( TEAM.AXIS, false, ".*" ); //~SetAvailableMapGoals( TEAM.AXIS, true, Map.Ammo_Cabinet_ammo1 ); //~SetAvailableMapGoals( TEAM.AXIS, true, Map.Health_Cabinet_health1 ); SetAvailableMapGoals( TEAM.AXIS, true, ".*_Axis_TankDefense.*" ); Util.EnableGoal( "ROUTE.*" ); Util.DisableGoal( "ROUTE_Roof_Access" ); Util.DisableGoal( "ROUTE_Back_Door" ); Util.DisableGoal( "ROUTE_Courtyard" ); ETUtil.SetExcludeIndexes( "ESCORT_Tank", { 3 } ); Wp.SetWaypointFlag( "bridgeStart", "closed", false ); Wp.SetWaypointFlag( "bridgeEnd", "closed", false ); Wp.SetWaypointFlag( "Locked_Door", "closed", true ); Wp.SetWaypointFlag( "Bank_Door_1", "closed", true ); Wp.SetWaypointFlag( "Bank_Door_2", "closed", true ); // Set up Routing MapRoutes = { PLANT_Tank_Defences_Bridge = { ROUTE_Axis_Spawn_1 = { ROUTE_exit_Left = {}, ROUTE_exit_Right = {}, }, }, CAPPOINT_364 = { ROUTE_Keycard = { ROUTE_Crossroad = { ROUTE_Crates = { ROUTE_Town_Gate = { ROUTE_East_Gate = {}, }, }, ROUTE_Crates_Side = { ROUTE_Town_Gate = { ROUTE_East_Gate = {}, }, }, }, ROUTE_Courtyard = { ROUTE_Crossroad = {}, ROUTE_Door_Right = {}, }, ROUTE_Door_Right = {}, }, ROUTE_Door_Left = { ROUTE_Crossroad = { ROUTE_Town_Gate = { ROUTE_East_Gate = {}, }, }, }, }, PLANT_Banks_entrance = { ROUTE_Axis_Spawn_1 = { ROUTE_Door_Right = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Door_Left = {}, }, ROUTE_Crates = { ROUTE_Crossroad = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Courtyard = {}, ROUTE_Door_Left = { ROUTE_Back_Door = { ROUTE_Back_Right = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Back_Left = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Balcony = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, }, }, ROUTE_Crates_Side = { ROUTE_Crossroad = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Courtyard = {}, ROUTE_Door_Left = { ROUTE_Back_Door = { ROUTE_Back_Right = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Back_Left = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Balcony = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, }, }, }, ROUTE_Axis_Spawn_1_Exit = { ROUTE_Door_Right = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Door_Left = {}, }, ROUTE_Crossroad = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Courtyard = {}, ROUTE_Door_Left = { ROUTE_Back_Door = { ROUTE_Back_Right = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Back_Left = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Balcony = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, }, }, }, BUILD_Tank_Defences_Bridge = { ROUTE_alliedSpawn = { ROUTE_escort_Left = { Weight = 2, ROUTE_bridge_Left = {}, ROUTE_house_Right = {}, }, ROUTE_escort_Right = { Weight = 2, ROUTE_bridge_Left = {}, ROUTE_house_Right = {}, }, ROUTE_Break_Right = { ROUTE_tunnel_Left = { ROUTE_tunnel_Exit }, ROUTE_tunnel_Right = { ROUTE_tunnel_Exit }, ROUTE_tunnel_Ladder = {}, }, }, }, ATTACK_Allies_Bank_1 = { ROUTE_Door_Right = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Door_Left = {}, }, ROUTE_Crossroad = { ROUTE_Upper_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, ROUTE_Lower_Path = { ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Courtyard = {}, ROUTE_Door_Left = { ROUTE_Back_Door = { ROUTE_Back_Right = { ROUTE_Wire_Swing_Gate = {}, ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Back_Left = { ROUTE_Wire_Swing_Gate = {}, ROUTE_Command_Post = {}, ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_Balcony = { ROUTE_Wire_Swing_Gate = {}, ROUTE_Command_Post = {}, ROUTE_BankEntry_Left = {}, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, ROUTE_BankEntry_Center = {}, ROUTE_BankEntry_Right = {}, }, }, }, }, }; // Copy Routes MapRoutes.ATTACK_Allies_TankEscort_1 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_2 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_3 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_4 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_5 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_6 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_7 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_8 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_9 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TankEscort_10 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_1 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_2 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_3 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_4 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_5 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_6 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_7 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_8 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_9 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.ATTACK_Allies_TownGate_10 = MapRoutes.BUILD_Tank_Defences_Bridge; MapRoutes.PLANT_Banks_barricade = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_1 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_2 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_3 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_4 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_5 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_6 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_7 = MapRoutes.PLANT_Banks_entrance; MapRoutes.ATTACK_Allies_Bank_8 = MapRoutes.PLANT_Banks_entrance; MapRoutes.DEFEND_Axis_TankDefense_1 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_2 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_3 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_4 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_5 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_6 = MapRoutes.PLANT_Tank_Defences_Bridge; //~MapRoutes.DEFEND_Axis_TankDefense_7 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_8 = MapRoutes.PLANT_Tank_Defences_Bridge; //~MapRoutes.DEFEND_Axis_TankDefense_9 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TankDefense_10 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_1 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_2 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_3 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_4 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_5 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_6 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_7 = MapRoutes.PLANT_Tank_Defences_Bridge; MapRoutes.DEFEND_Axis_TownGate_8 = MapRoutes.PLANT_Tank_Defences_Bridge; Util.Routes(MapRoutes); Util.UpdateSwitchData(); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { bot.TargetBreakableDist = 80.0; // Only set on maps with limited sight conditions (e.g. fog) };