global Map = { Flag_gold = "FLAG_gold", Cappoint_truck = "CAPPOINT_truck", Build_Command_Post = "BUILD_Command_Post", Build_Truck = "BUILD_Truck", Build_door = "BUILD_door", Plant_Command_Post = "PLANT_Command_Post", Plant_Gate = "PLANT_Gate", Plant_door = "PLANT_door", Mover_truck = "MOVER_truck", truck_at_barrier = false, truck_past_barrier = false, barrier_up = false, gate_destroyed = false, gold_secured = false, Axis_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Allied_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Truck_Built = function( trigger ) { Util.MapDebugPrint( "Truck_Built" ); }, truck_construct_Damaged = function( trigger ) { Util.MapDebugPrint( "truck_construct_Damaged" ); }, door_Built = function( trigger ) { Util.SetRoleForGoals("ROUTE_Gold_West", ROLE.INFILTRATOR); Util.MapDebugPrint( "door_Built" ); }, Axis_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, Allied_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, Gate_Destroyed = function( trigger ) { Map.gate_destroyed = true; SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_truck" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_gate.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_hill.*" ); Util.MapDebugPrint( "Gate_Destroyed" ); }, door_Destroyed = function( trigger ) { Util.ClearRoleForGoals("ROUTE_Gold_West", ROLE.INFILTRATOR); Util.MapDebugPrint( "door_Destroyed" ); }, gold_Taken = function( trigger ) { // only have the thread running when needed if ( !Map.UpdateCappointThread ) { Map.UpdateCappointThread = thread(Map.UpdateCappoint); } SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_GOLD.*" ); Util.MapDebugPrint( "gold_Taken" ); }, gold_Returned = function( trigger ) { // kill the the thread, since updating the position is pointless if ( Map.UpdateCappointThread ) { threadKill(Map.UpdateCappointThread); Map.UpdateCappointThread = null; } SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_GOLD.*" ); Util.MapDebugPrint( "gold_Returned" ); }, gold_Captured = function( trigger ) { // on successful cap, kill the update thread if ( Map.UpdateCappointThread ) { threadKill(Map.UpdateCappointThread); Map.UpdateCappointThread = null; } SetAvailableMapGoals( TEAM.ALLIES, false, { "PLANT_door", "FLAG_gold", "CAPPOINT_truck", }); SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_door" ); Util.SetMaxUsersInProgress( 2, "ESCORT_truck" ); Map.gold_secured = true; Map.UpdateSwitch(); Util.MapDebugPrint( "gold_Captured" ); }, UpdateCappointThread = null, UpdateCappoint = function() { if(!Map.TruckGoal) { Map.TruckGoal = GetGoal("MOVER_truck"); } // / bot sgn 200 true in 0.71 while standing where the deliver spot is will show offset in console Map.CappointOffset = Vector3(0,-160,-30); if ( !Map.TruckGoal ) { Util.MapDebugPrint("UpdateCappoint: Invalid Vehicle Goalname!"); Map.UpdateCappointThread = null; return; } if (!Map.CappointGoal) { Map.CappointGoal = GetGoal("CAPPOINT_truck"); } if (!Map.CappointGoal) { Util.MapDebugPrint("UpdateCappoint: Invalid Cappoint Goalname!"); Map.UpdateCappointThread = null; return; } moverEnt = Map.TruckGoal.GetEntity(); // the main loop that updates the cappoint position while(1) { moverPos = Map.TruckGoal.GetPosition(); // update the position only if the truck has moved if ( moverPos != Map.TruckPosition ) { Map.TruckPosition = moverPos; newCapPos = GetEntityWorldSpace(moverEnt,Map.CappointOffset); Util.SetGoalPosition(newCapPos.x, newCapPos.y, newCapPos.z, "CAPPOINT_truck"); // toggle availability so they repath SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_truck" ); sleep(0.5); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_truck" ); } sleep(0.5); } }, UpdateSwitch = function() { // disable it immediately first SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_barrier.*" ); if ( Map.truck_past_barrier == true ) { SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_barrier.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_truck" ); Util.MapDebugPrint( "Switch_Inactive" ); return; } else if ( Map.barrier_up == true ) { SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_barrier.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_truck" ); Util.MapDebugPrint( "Switch_Axis" ); return; } else if ( Map.barrier_up == false && Map.truck_at_barrier == true ) { if ( Map.gold_secured == false ) { SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, { "SWITCH_barrier.*", "ESCORT_truck", }); Util.MapDebugPrint( "Switch_waiting_gold" ); return; } SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_barrier.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_truck" ); Util.MapDebugPrint( "Switch_Allies" ); return; } Util.MapDebugPrint( "switch_None" ); }, switch_Lowered = function( trigger ) { Map.barrier_up = false; Map.UpdateSwitch(); Util.MapDebugPrint( "switch_Lowered" ); }, switch_Raised = function( trigger ) { Map.barrier_up = true; Map.UpdateSwitch(); Util.MapDebugPrint( "switch_Raised" ); }, truck_at_gate = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { if ( Map.gate_destroyed == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_truck" ); SetGoalPriority( "PLANT_Gate", 0.85 ); } Util.MapDebugPrint( "truck_at_gate" ); }, OnExit = function(ent) { SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_gate.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_hill.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_gate.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_hill.*" ); Util.MapDebugPrint( "truck_passed_gate" ); }, }, truck_at_barrier = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { Map.truck_at_barrier = true; Map.UpdateSwitch(); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_hill.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_switch.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_hill.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_switch.*" ); SetAvailableMapGoals( TEAM.AXIS, false, { "BUILD_Command_Post", "PLANT_Command_Post", }); SetGoalPriority( "BUILD_Command_Post", 0.8 ); SetGoalPriority( "PLANT_Command_Post", 0.8 ); Util.ChangeSpawn(TEAM.AXIS, 3); Util.MapDebugPrint( "truck_at_barrier" ); }, }, truck_past_barrier = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { Map.truck_past_barrier = true; Map.UpdateSwitch(); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_switch.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_track.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_switch.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_track.*" ); Util.DisableGoal("BUILD_Command_Post"); Util.DisableGoal("PLANT_Command_Post"); Util.MapDebugPrint( "truck_past_barrier" ); }, }, first_corner = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.AXIS, true, { "CALLARTILLERY_Barn_Exit", "ARTILLERY_S_1st_Corner", }); Util.MapDebugPrint( "first_corner_enter" ); }, }, gate_downhill = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.AXIS, false, "ARTILLERY_S_1st_Corner" ); SetAvailableMapGoals( TEAM.AXIS, true, "ARTILLERY_S_Gate_Entry.*" ); Util.MapDebugPrint( "gate_downhill_entry" ); }, OnExit = function(ent) { SetAvailableMapGoals( TEAM.AXIS, false, { "CALLARTILLERY_Barn_Exit", "ARTILLERY_S_Gate_Entry.*", }); Util.MapDebugPrint( "gate_downhill_exit" ); }, }, gate_past = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.AXIS, true, { "CALLARTILLERY_Gate_Exit", "ARTILLERY_S_Gate_Exit.*", }); Util.MapDebugPrint( "gate_past_entry" ); }, }, hill_area = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.AXIS, false, { "CALLARTILLERY_Gate_Exit", "ARTILLERY_S_Gate_Exit.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "CALLARTILLERY_Hill", "ARTILLERY_S_Hill.*", }); Util.MapDebugPrint( "hill_area_entry" ); }, OnExit = function(ent) { SetAvailableMapGoals( TEAM.AXIS, false, { "CALLARTILLERY_Hill", "ARTILLERY_S_Hill.*", }); Map.ASTruck(1.0); Util.MapDebugPrint( "hill_area_exit" ); }, }, gold_door = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.AXIS, true, { "CALLARTILLERY_Gold", "ARTILLERY_S_Gold.*", }); Map.ASTruck(0); Util.MapDebugPrint( "gold_door_entry" ); }, OnExit = function(ent) { SetAvailableMapGoals( TEAM.AXIS, false, { "CALLARTILLERY_Gold", "ARTILLERY_S_Gold.*", }); Util.MapDebugPrint( "gold_door_exit" ); }, }, final_section = { TriggerOnEntity = GetGoal("MOVER_truck").GetEntity(), OnEnter = function(ent) { SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_track.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_final.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_track.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_final.*", "CALLARTILLERY_Final", "ARTILLERY_S_Final.*", }); Util.MapDebugPrint( "final_section_entry" ); }, OnExit = function(ent) { Map.ASTruck(1.0); }, }, ASTruck = function(bias) { w = GetWeapon(WEAPON.SMOKE_MARKER); w.PrimaryFire.SetTargetBias(CLASS.VEHICLE_HVY, bias); }, }; global OnMapLoad = function() { OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "The Truck has been repaired!", Map.Truck_Built ); OnTrigger( "The Truck has been damaged!", Map.truck_construct_Damaged ); OnTrigger( "Axis team has built the door!", Map.door_Built ); OnTrigger( "Allied team has destroyed the Axis Command Post!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "Axis team has destroyed the Allied Command Post!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "^3Allies have breached the Fortress Forward Gate!", Map.Gate_Destroyed ); OnTrigger( "Allied team has destroyed the door!", Map.door_Destroyed ); OnTrigger( "Allies have stolen The Gold Bar!", Map.gold_Taken ); OnTrigger( "Flag returned gold!", Map.gold_Returned ); OnTrigger( "goldrush_allies_gold1_secured", Map.gold_Captured ); OnTrigger( "Track Switch raised!", Map.switch_Raised ); OnTrigger( "Track Switch lowered!", Map.switch_Lowered ); Truck1 = OnTriggerRegion(AABB(-3077.660,2824.154,-96.875,-2973.625,3054.917,-22.764),Map.truck_at_gate); Truck2 = OnTriggerRegion(AABB(-1686.264,163.647,191.667,-1414.875,402.211,318.203),Map.truck_at_barrier); Truck3 = OnTriggerRegion(AABB(-1601.699,212.257,191.511,-1445.687,267.899,265.917),Map.truck_past_barrier); Truck4 = OnTriggerRegion(AABB(-5277.230,2753.093,124.426,-5110.675,3034.076,213.072),Map.first_corner); Truck5 = OnTriggerRegion(AABB(-4815.136,2807.074,-39.038,-4061.106,3068.452,166.423),Map.gate_downhill); Truck6 = OnTriggerRegion(AABB(-2357.467,2759.076,-94.875,-1719.416,3064.104,-9.294),Map.gate_past); Truck7 = OnTriggerRegion(AABB(-1645.833,1710.156,-91.442,-1375.074,2761.936,219.862),Map.hill_area); Truck8 = OnTriggerRegion(AABB(-1617.294,-415.237,193.137,-1362.685,64.677,271.469),Map.gold_door); Truck9 = OnTriggerRegion(AABB(-1666.738,-1519.600,201.125,-1058.406,-1227.014,283.766),Map.final_section); Util.DisableGoal(".*"); Util.EnableGoal("ROUTE.*"); Util.AddInvVehicle("MOVER_truck"); SetAvailableMapGoals( TEAM.ALLIES, true, { "ESCORT_truck", "FLAG_gold", "CAPPOINT_truck", "BUILD_Command_Post", "PLANT_Command_Post", "PLANT_Gate", "PLANT_door", "ATTACK_gate.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_gold.*", "DEFEND_gate.*", "BUILD_Command_Post", "PLANT_Command_Post", "BUILD_door", }); Map.ASTruck(0); Util.SetMaxUsersInProgress( 1, "DEFEND_.*" ); Util.SetMaxUsersInProgress( 1, "ESCORT_truck" ); Util.SetGoalOffset( -50, 0, 0, "PLANT_door" ); SetGoalPriority( "ESCORT_truck", 0.81 ); SetGoalPriority( "SWITCH_barrier", 0.81 ); SetGoalPriority( "PLANT_Command_Post", 0.95, 0, CLASS.COVERTOPS, true ); SetGoalPriority( "DEFEND_gold.*", 0.51 ); SetGoalPriority( "DEFEND_gold.*", 0.49, TEAM.AXIS, CLASS.FIELDOPS, true ); MapRoutes = { FLAG_gold = { ROUTE_Allied_Spawn = { ROUTE_Center = { ROUTE_hill_top_corner = { ROUTE_Gold_North = { }, ROUTE_Gold_West = { }, }, ROUTE_Switch_Exit = { ROUTE_Gold_North = { }, ROUTE_Gold_West = { }, }, ROUTE_Far_Exit = { ROUTE_Gold_West = { }, ROUTE_Gold_South = { }, }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_hill_top_corner = { ROUTE_Gold_North = { }, ROUTE_Gold_West = { }, }, ROUTE_Middle = { ROUTE_Switch_Exit = { ROUTE_Gold_North = { }, ROUTE_Gold_West = { }, }, ROUTE_Far_Exit = { ROUTE_Gold_South = { }, ROUTE_Gold_West = { }, }, }, }, }, ATTACK_gate_1 = { ROUTE_Allied_Spawn = { ROUTE_Corner_One = { }, ROUTE_Center = { ROUTE_barn_door = { }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_Middle = { ROUTE_Center = { }, }, ROUTE_barn_door = { }, }, }, ATTACK_hill_1 = { ROUTE_Allied_Spawn = { ROUTE_Center = { ROUTE_Switch_Exit = { }, ROUTE_hill_top_corner = { }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_Middle = { ROUTE_Switch_Exit = { }, }, ROUTE_hill_top_corner = { }, }, }, ATTACK_switch_1 = { ROUTE_Allied_Spawn = { ROUTE_Center = { ROUTE_hill_top_corner = { }, ROUTE_Switch_Exit = { }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_Middle = { ROUTE_Switch_Exit = { }, ROUTE_Far_Exit = { }, }, ROUTE_hill_top_corner = { }, }, }, ATTACK_track_1 = { ROUTE_Allied_Spawn = { ROUTE_hill_top_corner = { }, ROUTE_Switch_Exit = { }, ROUTE_Far_Exit = { }, }, ROUTE_Comm_Post_Spawn = { ROUTE_hill_top_corner = { }, ROUTE_Switch_Exit = { }, ROUTE_Far_Exit = { }, }, }, ATTACK_final_1 = { ROUTE_Allied_Spawn = { ROUTE_Switch_Exit = { }, ROUTE_Far_Exit = { }, }, ROUTE_Comm_Post_Spawn = { ROUTE_Switch_Exit = { }, ROUTE_Far_Exit = { }, }, }, DEFEND_gate_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { ROUTE_hill_top_corner = { }, }, ROUTE_Axis_Exit_South = { ROUTE_Gold_West_Axis = { ROUTE_Center = { }, }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_barn_door = { }, ROUTE_Middle = { ROUTE_Center = { }, }, }, }, DEFEND_hill_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { }, ROUTE_Axis_Exit_South = { ROUTE_Gold_West_Axis = { }, }, }, ROUTE_Comm_Post_Spawn = { ROUTE_hill_top_corner = { }, ROUTE_Middle = { ROUTE_Switch_Exit = { }, }, }, }, DEFEND_gold_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { }, ROUTE_Axis_Exit_South = { }, }, ROUTE_Comm_Post_Spawn = { ROUTE_hill_top_corner = { ROUTE_Gold_North = { }, ROUTE_Gold_West_Axis = { }, }, ROUTE_Middle = { ROUTE_Switch_Exit = { ROUTE_Gold_North = { }, ROUTE_Gold_West_Axis = { }, }, }, }, }, DEFEND_switch_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { ROUTE_Gold_North = { }, ROUTE_Gold_West_Axis = { }, }, ROUTE_Axis_Exit_South = { ROUTE_Gold_South = { ROUTE_Final_Corner = { }, }, ROUTE_Gold_West_Axis = { }, }, }, }, DEFEND_track_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { ROUTE_Gold_West = { }, ROUTE_Gold_South = { ROUTE_Final_Corner = { }, }, }, ROUTE_Axis_Exit_South = { ROUTE_Gold_West_Axis = { }, ROUTE_Gold_South = { ROUTE_Final_Corner = { }, }, }, }, }, DEFEND_final_1 = { ROUTE_Axis_Spawn = { ROUTE_Axis_Exit_North = { ROUTE_Gold_West = { }, ROUTE_Gold_South = { }, }, ROUTE_Axis_Exit_South = { ROUTE_Gold_West = { }, ROUTE_Gold_South = { }, }, }, }, PLANT_Command_Post = { ROUTE_Allied_Spawn = { ROUTE_Comm_Post_Top_Entry = { }, ROUTE_Switch_Exit = { ROUTE_Comm_Post_Bottom_Entry = { }, }, ROUTE_Comm_Post_Door = { }, }, ROUTE_Axis_Spawn = { ROUTE_Comm_Post_Top_Entry = { }, ROUTE_Comm_Post_Bottom_Entry = { }, ROUTE_Comm_Post_Door_Axis = { }, }, }, }; MapRoutes.ATTACK_gate_2 = MapRoutes.ATTACK_gate_1; MapRoutes.ATTACK_gate_3 = MapRoutes.ATTACK_gate_1; MapRoutes.ATTACK_gate_4 = MapRoutes.ATTACK_gate_1; MapRoutes.ATTACK_hill_2 = MapRoutes.ATTACK_hill_1; MapRoutes.ATTACK_hill_3 = MapRoutes.ATTACK_hill_1; MapRoutes.ATTACK_hill_4 = MapRoutes.ATTACK_hill_1; MapRoutes.ATTACK_switch_2 = MapRoutes.ATTACK_switch_1; MapRoutes.ATTACK_switch_3 = MapRoutes.ATTACK_switch_1; MapRoutes.ATTACK_switch_4 = MapRoutes.ATTACK_switch_1; MapRoutes.SWITCH_barrier = MapRoutes.ATTACK_switch_1; MapRoutes.ATTACK_track_2 = MapRoutes.ATTACK_track_1; MapRoutes.ATTACK_track_3 = MapRoutes.ATTACK_track_1; MapRoutes.ATTACK_track_4 = MapRoutes.ATTACK_track_1; MapRoutes.ATTACK_final_2 = MapRoutes.ATTACK_final_1; MapRoutes.ATTACK_final_3 = MapRoutes.ATTACK_final_1; MapRoutes.ATTACK_final_4 = MapRoutes.ATTACK_final_1; MapRoutes.DEFEND_gold_2 = MapRoutes.DEFEND_gold_1; MapRoutes.DEFEND_gold_3 = MapRoutes.DEFEND_gold_1; MapRoutes.DEFEND_gold_4 = MapRoutes.DEFEND_gold_1; MapRoutes.BUILD_door = MapRoutes.DEFEND_gold_1; MapRoutes.DEFEND_gate_2 = MapRoutes.DEFEND_gate_1; MapRoutes.DEFEND_gate_3 = MapRoutes.DEFEND_gate_1; MapRoutes.CALLARTILLERY_Barn_Exit= MapRoutes.DEFEND_gate_1; MapRoutes.DEFEND_hill_2 = MapRoutes.DEFEND_hill_1; MapRoutes.DEFEND_hill_3 = MapRoutes.DEFEND_hill_1; MapRoutes.DEFEND_hill_4 = MapRoutes.DEFEND_hill_1; MapRoutes.CALLARTILLERY_Gate_Exit= MapRoutes.DEFEND_gate_1; MapRoutes.CALLARTILLERY_Hill = MapRoutes.DEFEND_hill_1; MapRoutes.DEFEND_switch_2 = MapRoutes.DEFEND_switch_1; MapRoutes.DEFEND_switch_3 = MapRoutes.DEFEND_switch_1; MapRoutes.DEFEND_switch_4 = MapRoutes.DEFEND_switch_1; MapRoutes.DEFEND_track_2 = MapRoutes.DEFEND_track_1; MapRoutes.DEFEND_track_3 = MapRoutes.DEFEND_track_1; MapRoutes.DEFEND_track_4 = MapRoutes.DEFEND_track_1; MapRoutes.DEFEND_final_2 = MapRoutes.DEFEND_final_1; MapRoutes.DEFEND_final_3 = MapRoutes.DEFEND_final_1; MapRoutes.DEFEND_final_4 = MapRoutes.DEFEND_final_1; MapRoutes.CALLARTILLERY_Final = MapRoutes.DEFEND_final_1; Util.Routes(MapRoutes); Util.MapDebugPrint( "OnMapLoad" ); }; global OnBotJoin = function( bot ) { };