//========================================================================================== // // [dark]-siege_beta.gm // // Who When What //------------------------------------------------------------------------------------------ // palota 02 May 2011 Initial Script // palota 29 April 2012 roles, DEFEND_checkpoint, DEFEND_cap, MOBILEMG42, CALLARTILLERY_depot, more allied covertops when tank is near cannons // //========================================================================================== // global Map = { Debug = 0, Movers = { "MOVER_tank" }, barrierDestroyed = false, bridgeDestroyed = true, northCannonDestroyed = false, southCannonDestroyed = false, eastAADestroyed = false, westAADestroyed = false, eastTowerDestroyed = false, westTowerDestroyed = false, flagAxis = true, tankPosition = 0, FocusPrimary = false, Est_Entrance_Dyno = 0, East_Anti_Air_Cannon_Dyno = 0, West_Anti_Air_Cannon_Dyno = 0, Roles = { AXIS = { AllBots = true, DEFENDER = { numbots = 9, }, ATTACKER1 = { numbots = 8, }, ATTACKER2 = { numbots = 3, }, }, ALLIES = { AllBots = true, DEFENDER1 = { numbots = 3, }, DEFENDER2 = { numbots = 3, }, DEFENDER3 = { numbots = 3, }, ATTACKER = { numbots = 10, crucialClass = CLASS.ENGINEER, }, }, }, SetEscort = function() { b = true; if(Map.tankPosition == 1){ b = !Map.bridgeDestroyed; } if(Map.tankPosition == 10){ b = Map.barrierDestroyed; } if(Map.tankPosition == 20){ b = Map.northCannonDestroyed && Map.southCannonDestroyed; } SetAvailableMapGoals( TEAM.ALLIES, b, "ESCORT_tank" ); }, Tank_Arrived = function( trigger ) { if(Map.tankPosition>=20){ Server.MinClassCount[TEAM.ALLIES][CLASS.COVERTOPS] -= 2; } Map.tankPosition = 0; SetAvailableMapGoals( TEAM.AXIS, false, { ".*MG42_axis_bunker", ".*MG42_Axis_Depot_MG", "MOBILEMG42_axis.*", }); SetAvailableMapGoals( TEAM.ALLIES, false, { "PLANT_Axis_Depot_MG", "PLANT_.*_Anti_Tank_Cannon", "GRENADE_axis_bunker", "CALLARTILLERY_depot1", }); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Tank_Barrier" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Tank_Barrier" ); SetGoalPriority( "ATTACK_v2.*", 0.5); Util.SetMaxUsers(1, "ESCORT_tank"); ETUtil.SetStartIndex("BUILD_Tank", -1); Util.OnTriggerPosition("MOVER_tank", "tank_bridge", 250.0, Map.Tank_Bridge); Util.MapDebugPrint( "Tank_Arrived" ); }, Tank_Bridge = function( trigger ) { Map.tankPosition = 1; Map.SetEscort(); SetGoalPriority( "BUILD_HQ_Bridge", 0.95, TEAM.ALLIES); Util.OnTriggerPosition("MOVER_tank", "past_bridge", 200.0, Map.Tank_Past_Bridge); Util.MapDebugPrint( "Tank_Bridge" ); }, Tank_Past_Bridge = function( trigger ) { Map.tankPosition = 2; Map.SetEscort(); SetGoalPriority( "BUILD_HQ_Bridge", 0.85, TEAM.ALLIES); Util.OnTriggerPosition("MOVER_tank", "tank_barrier", 200.0, Map.Tank_Barrier); Util.MapDebugPrint( "Tank_Past_Bridge" ); }, HQ_Bridge_Built = function( trigger ) { Map.bridgeDestroyed = false; Map.SetEscort(); Util.EnableGoal("ROUTE_bridge"); Util.MapDebugPrint( "HQ_Bridge_Built" ); }, HQ_Bridge_Destroyed = function( trigger ) { Map.bridgeDestroyed = true; Map.SetEscort(); Util.DisableGoal("ROUTE_bridge"); Util.MapDebugPrint( "HQ_Bridge_Destroyed" ); }, Est_Entrance_Built = function( trigger ) { Util.DisableGoal("ROUTE_east_entrance"); SetAvailableMapGoals( TEAM.ALLIES, false, ".*MG42_tunnel" ); Util.MapDebugPrint( "Est_Entrance_Built" ); }, Est_Entrance_Destroyed = function( trigger ) { Util.EnableGoal("ROUTE_east_entrance"); Map.Est_Entrance_Dyno = 0; Util.MapDebugPrint( "Est_Entrance_Destroyed" ); }, Tank_Barrier = function( trigger ) { Map.tankPosition = 10; Map.SetEscort(); SetGoalPriority( "PLANT_Tank_Barrier", 0.95, TEAM.ALLIES); Util.OnTriggerPosition("MOVER_tank", "past_barrier", 200.0, Map.Tank_Past_Barrier); Util.MapDebugPrint( "Tank_Barrier" ); }, Tank_Barrier_Built = function( trigger ) { Map.barrierDestroyed = false; Map.SetEscort(); Util.MapDebugPrint( "Tank_Barrier_Built" ); }, Tank_Barrier_Destroyed = function( trigger ) { Map.barrierDestroyed = true; Map.SetEscort(); Util.MapDebugPrint( "Tank_Barrier_Destroyed" ); }, Tank_Past_Barrier = function( trigger ) { Map.tankPosition = 11; Map.SetEscort(); SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_Tank_Barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Tank_Barrier" ); SetAvailableMapGoals( TEAM.AXIS, true, { ".*MG42_axis_bunker", ".*MG42_Axis_Depot_MG", "MOBILEMG42_axis.*", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "PLANT_Axis_Depot_MG", "PLANT_.*_Anti_Tank_Cannon", "GRENADE_axis_bunker", "CALLARTILLERY_depot1", }); SetGoalPriority( "PLANT_Tank_Barrier", 0.81, TEAM.ALLIES); Util.SetMaxUsers(2, "ESCORT_tank"); ETUtil.SetStartIndex("BUILD_Tank", 0); Util.OnTriggerPosition("MOVER_tank", "tank_cannons", 290.0, Map.Tank_Cannons); Util.MapDebugPrint( "Tank_Past_Barrier" ); }, Tank_Cannons = function( trigger ) { Map.tankPosition = 20; Map.SetEscort(); Util.OnTriggerPosition("MOVER_tank", "tank_cannons2", 200.0, Map.Tank_Near_Cannons); Server.MinClassCount[TEAM.ALLIES][CLASS.COVERTOPS] += 2; Util.MapDebugPrint( "Tank_Cannons" ); }, North_Anti_Tank_Cannon_Built = function( trigger ) { Map.northCannonDestroyed = false; Map.SetEscort(); Util.MapDebugPrint( "North_Anti_Tank_Cannon_Built" ); }, North_Anti_Tank_Cannon_Destroyed = function( trigger ) { Map.northCannonDestroyed = true; Map.SetEscort(); Util.MapDebugPrint( "North_Anti_Tank_Cannon_Destroyed" ); }, South_Anti_Tank_Cannon_Built = function( trigger ) { Map.southCannonDestroyed = false; Map.SetEscort(); Util.MapDebugPrint( "South_Anti_Tank_Cannon_Built" ); }, South_Anti_Tank_Cannon_Destroyed = function( trigger ) { Map.southCannonDestroyed = true; Map.SetEscort(); Util.MapDebugPrint( "South_Anti_Tank_Cannon_Destroyed" ); }, Tank_Near_Cannons = function( trigger ) { Map.tankPosition = 21; Map.SetEscort(); SetGoalPriority( "ATTACK_v2.*", 0.67); SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_depot1" ); Util.MapDebugPrint( "Tank_Near_Cannons" ); }, East_Anti_Air_Cannon_Destroyed = function( trigger ) { Map.eastAADestroyed = true; SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_east_aa.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_east_aa.*" ); if (Map.westAADestroyed){ Util.SetRoleForGoals( "FLAG_docs", ROLE.ATTACKER2); } Util.SetRoleForTable({ "DEFEND_west_aa.*", "DEFEND_docs.*" }, ROLE.DEFENDER1); Map.East_Anti_Air_Cannon_Dyno = 0; Util.MapDebugPrint( "East_Anti_Air_Cannon_Destroyed" ); }, West_Anti_Air_Cannon_Destroyed = function( trigger ) { Map.westAADestroyed = true; SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_west_aa.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_west_aa.*" ); if (Map.eastAADestroyed){ Util.SetRoleForGoals( "FLAG_docs", ROLE.ATTACKER2); } Util.SetRoleForTable({ "DEFEND_east_aa.*", "DEFEND_docs.*" }, ROLE.DEFENDER2); Map.West_Anti_Air_Cannon_Dyno = 0; Util.MapDebugPrint( "West_Anti_Air_Cannon_Destroyed" ); }, docs_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_docs.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_cap.*" ); Util.MapDebugPrint( "docs_Taken" ); }, docs_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_cap.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_docs.*" ); Util.MapDebugPrint( "docs_Returned" ); }, docs_Secured = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "FLAG_docs" ); SetAvailableMapGoals( TEAM.ALLIES, false, { ".*MG42_docs_mg", "DEFEND_cap.*", }); Util.SetRoleForTable({ "ATTACK_east_aa.*", "ATTACK_west_aa.*" }, ROLE.ATTACKER1); Util.SetRoleForTable({ "DEFEND_east_aa.*", "DEFEND_west_aa.*" }, ROLE.DEFENDER3); Util.MapDebugPrint( "docs_Secured" ); }, forward_spawn_Axis_Captured = function( trigger ) { Map.flagAxis = true; SetAvailableMapGoals( TEAM.ALLIES, false, "MOBILEMG42_l_checkpoint.*" ); Util.LimitToTeam(TEAM.AXIS, ".*_Command_Post"); SetAvailableMapGoals( TEAM.ALLIES, true, ".*MG42_docs_mg" ); if (!Map.FocusPrimary){ SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_HQ_Bridge" ); } SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_HQ_Bridge" ); if (Map.tankPosition <= 10){ SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Tank_Barrier" ); } SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_depot1" ); SetAvailableMapGoals( TEAM.AXIS, true, ".*_Command_Post" ); Util.MapDebugPrint( "forward_spawn_Axis_Captured" ); }, forward_spawn_Allies_Captured = function( trigger ) { Map.flagAxis = false; SetAvailableMapGoals( TEAM.ALLIES, false, ".*MG42_docs_mg" ); if (Map.tankPosition > 1){ SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_HQ_Bridge" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_HQ_Bridge" ); } if (Map.tankPosition >= 11){ SetAvailableMapGoals( TEAM.ALLIES, true, "CALLARTILLERY_depot1" ); } Util.LimitToTeam(TEAM.ALLIES, ".*_Command_Post"); SetAvailableMapGoals( TEAM.ALLIES, true, "MOBILEMG42_l_checkpoint.*" ); Util.MapDebugPrint( "forward_spawn_Allies_Captured" ); }, East_Tower_Built = function( trigger ) { Map.eastTowerDestroyed = false; SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNTMG42_East_MG_Tower" ); SetGoalPriority( "BUILD_Tank", 0.91); Util.MapDebugPrint( "East_Tower_Built" ); }, East_Tower_Destroyed = function( trigger ) { Map.eastTowerDestroyed = true; SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNTMG42_East_MG_Tower" ); if(Map.westTowerDestroyed){ SetGoalPriority( "BUILD_Tank", 0.9); } Util.MapDebugPrint( "East_Tower_Destroyed" ); }, West_Tower_Built = function( trigger ) { Map.westTowerDestroyed = false; SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNTMG42_West_MG_Tower" ); SetGoalPriority( "BUILD_Tank", 0.91); Util.MapDebugPrint( "West_Tower_Built" ); }, West_Tower_Destroyed = function( trigger ) { Map.westTowerDestroyed = true; SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNTMG42_West_MG_Tower" ); if(Map.eastTowerDestroyed){ SetGoalPriority( "BUILD_Tank", 0.9); } Util.MapDebugPrint( "West_Tower_Destroyed" ); }, Est_Entrance_Planted = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, ".*MG42_tunnel" ); Map.Est_Entrance_Dyno += 1; Util.MapDebugPrint( "Est_Entrance_Planted" ); }, Est_Entrance_Defused = function( trigger ) { Map.Est_Entrance_Dyno -= 1; if (Map.Est_Entrance_Dyno == 0){ SetAvailableMapGoals( TEAM.ALLIES, false, ".*MG42_tunnel" ); } Util.MapDebugPrint( "Est_Entrance_Defused" ); }, East_Anti_Air_Cannon_Planted = function( trigger ) { Map.East_Anti_Air_Cannon_Dyno += 1; Util.MapDebugPrint( "East_Anti_Air_Cannon_Planted" ); }, East_Anti_Air_Cannon_Defused = function( trigger ) { Map.East_Anti_Air_Cannon_Dyno -= 1; Util.MapDebugPrint( "East_Anti_Air_Cannon_Defused" ); }, West_Anti_Air_Cannon_Planted = function( trigger ) { Map.West_Anti_Air_Cannon_Dyno += 1; Util.MapDebugPrint( "West_Anti_Air_Cannon_Planted" ); }, West_Anti_Air_Cannon_Defused = function( trigger ) { Map.West_Anti_Air_Cannon_Dyno -= 1; Util.MapDebugPrint( "West_Anti_Air_Cannon_Defused" ); }, two_minute = function( trigger ) { if (GetGameTimeLeft() > 0) { Map.FocusPrimary = true; SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_.*_MG_Tower" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_HQ_Bridge" ); } Util.MapDebugPrint( "two_minute" ); }, }; global OnMapLoad = function() { OnTrigger( "Allied team has built the HQ bridge!", Map.HQ_Bridge_Built ); OnTrigger( "Axis team has destroyed the HQ bridge!", Map.HQ_Bridge_Destroyed ); OnTrigger( "Allied team has destroyed the Tank Barrier!", Map.Tank_Barrier_Destroyed ); OnTrigger( "Axis team has re-built the Tank Barrier!", Map.Tank_Barrier_Built ); OnTrigger( "Axis capture the Main Entrance!", Map.forward_spawn_Axis_Captured ); OnTrigger( "Allies capture the Main Entrance!", Map.forward_spawn_Allies_Captured ); OnTrigger( "Allied team has built the East MG Tower!", Map.East_Tower_Built ); OnTrigger( "Axis team has destroyed the East MG Tower!", Map.East_Tower_Destroyed ); OnTrigger( "Allied team has built the West MG Tower!", Map.West_Tower_Built ); OnTrigger( "Axis team has destroyed the West MG Tower!", Map.West_Tower_Destroyed ); OnTrigger( "Allied team has re-built the East entrance!", Map.Est_Entrance_Built ); OnTrigger( "Axis have breached the East entrance!!", Map.Est_Entrance_Destroyed ); OnTrigger( "Allied team has destroyed the North Anti-Tank Cannon!!", Map.North_Anti_Tank_Cannon_Destroyed ); OnTrigger( "Axis team has re-built the North Anti-Tank Cannon!!", Map.North_Anti_Tank_Cannon_Built ); OnTrigger( "Allied team has destroyed the South Anti-Tank Cannon!!", Map.South_Anti_Tank_Cannon_Destroyed ); OnTrigger( "Axis team has re-built the South Anti-Tank Cannon!!", Map.South_Anti_Tank_Cannon_Built ); OnTrigger( "Axis has destroyed the East Flack Cannon!", Map.East_Anti_Air_Cannon_Destroyed ); OnTrigger( "Axis has destroyed the West Flack Cannon!", Map.West_Anti_Air_Cannon_Destroyed ); OnTrigger( "Axis has stolen the Allied battle plans!", Map.docs_Taken ); //this wm_announce text is in map script OnTrigger( "Axis have stolen the Allied battle plans!", Map.docs_Taken ); OnTrigger( "Flag returned docs!", Map.docs_Returned ); OnTrigger( "Axis has secured the Allied battle plans!", Map.docs_Secured ); OnTrigger( "allies_tank_arrived", Map.Tank_Arrived ); OnTrigger( "Axis team has ruined the Allied Tank! A new one is on it's route to the Allied base.", Map.Tank_Arrived ); OnTrigger( "Planted at the East Anti-Air-Cannon.", Map.East_Anti_Air_Cannon_Planted ); OnTrigger( "Planted at the West Anti-Air-Cannon.", Map.West_Anti_Air_Cannon_Planted ); OnTrigger( "Planted at the Est Entrance.", Map.Est_Entrance_Planted ); OnTrigger( "Defused at the East Anti-Air-Cannon.", Map.East_Anti_Air_Cannon_Defused ); OnTrigger( "Defused at the West Anti-Air-Cannon.", Map.West_Anti_Air_Cannon_Defused ); OnTrigger( "Defused at the Est Entrance.", Map.Est_Entrance_Defused ); OnTrigger( "two minute warning.", Map.two_minute ); Util.DisableGoal("ROUTE_east_entrance"); Util.DisableGoal("ROUTE_bridge"); Util.LimitToTeam(TEAM.AXIS, "ATTACK_east_aa.*"); Util.LimitToTeam(TEAM.AXIS, "ATTACK_west_aa.*"); Util.LimitToTeam(TEAM.AXIS, ".*cabinet"); //health and ammo in axis bunker Util.LimitToTeam(TEAM.AXIS, "DEFEND_checkpoint.*"); Util.LimitToTeam(TEAM.ALLIES, "ESCORT_tank"); Util.LimitToTeam(TEAM.ALLIES, "DEFEND_east_aa.*"); Util.LimitToTeam(TEAM.ALLIES, "DEFEND_west_aa.*"); Util.LimitToTeam(TEAM.ALLIES, "DEFEND_docs.*"); Util.LimitToTeam(TEAM.ALLIES, "ATTACK_v2_.*"); SetAvailableMapGoals( TEAM.ALLIES, false, { ".*_Command_Post", "PLANT_Axis_Depot_MG", "PLANT_.*_Anti_Tank_Cannon", }); Util.DisableGoal("GRENADE_.*"); Util.DisableGoal("DEFEND_cap.*"); Util.DisableGoal(".*MG42_.*"); SetAvailableMapGoals( TEAM.ALLIES, true, { "REPAIRMG42_East_MG_Tower", "REPAIRMG42_West_MG_Tower", ".*MG42_docs_mg", }); // Roles Util.ClearRoleForGoals( "FLAG_docs", ROLE.ATTACKER2); Util.ClearRoleForTable({ "ATTACK_east_aa.*", "ATTACK_west_aa.*" }, ROLE.ATTACKER1); Util.SetRoleForGoals( "FLAG_docs", ROLE.ATTACKER1); Util.SetRoleForTable({ "ATTACK_east_aa.*", "ATTACK_west_aa.*" }, ROLE.ATTACKER2); Util.SetRoleForGoals( "CHECKPOINT_forward_spawn", { ROLE.ATTACKER, ROLE.DEFENDER }); Util.ClearRoleForTable({ "DEFEND_west_aa.*", "DEFEND_docs.*" }, ROLE.DEFENDER1); Util.ClearRoleForTable({ "DEFEND_east_aa.*", "DEFEND_docs.*" }, ROLE.DEFENDER2); Util.SetRoleForTable({ "ESCORT_tank", "MOUNT_tank", "GRENADE_axis_bunker" }, ROLE.ATTACKER); Util.SetRoleForGoals( "MOUNTMG42_tunnel", { ROLE.DEFENDER2, ROLE.DEFENDER3 }); Util.SetRoleForTable({ "DEFEND_east_aa.*", "MOUNTMG42_East_MG_Tower" }, ROLE.DEFENDER1); Util.SetRoleForTable({ "DEFEND_west_aa.*", "MOUNTMG42_West_MG_Tower" }, ROLE.DEFENDER2); Util.SetRoleForTable({ "DEFEND_docs.*", "MOUNTMG42_docs_mg" }, ROLE.DEFENDER3); // Priority SetGoalPriority( "CHECKPOINT_forward_spawn", 0.51, TEAM.AXIS); SetGoalPriority( "PLANT_.*_MG_Tower", 0.0, TEAM.AXIS, CLASS.ENGINEER); SetGoalPriority( "FLAG_docs", 0.5, TEAM.AXIS, CLASS.ENGINEER); SetGoalPriority( "BUILD_Tank", 0.91); SetGoalPriority( "MOUNT_tank", 0.7); SetGoalPriority( "ESCORT_tank", 0.69); SetGoalPriority( "MOUNTMG42_.*", 0.62); SetGoalPriority( "CHECKPOINT_forward_spawn", 0.61, TEAM.ALLIES); SetGoalPriority( "DEFEND_cap.*", 0.66); SetGoalPriority( "GRENADE.*", 0.55); SetGoalPriority( "DEFUSE_Est_Entrance.*", 0.9, TEAM.ALLIES, CLASS.ENGINEER, true); SetGoalPriority( "PLANT_Axis_Depot_MG", 0.8, TEAM.ALLIES, CLASS.COVERTOPS); SetGoalPriority( "PLANT_Axis_Depot_MG", 0.0, TEAM.ALLIES, CLASS.ENGINEER); // Max users per goal foreach (goal in { "DEFEND_.*", ".*MG42_.*", "GRENADE_.*", "CALLARTILLERY_.*", "*._Command_Post", "BUILD_Axis_Depot_MG", "BUILD_.*_MG_Tower", "BUILD_.*_Anti_Tank_Cannon", "BUILD_Est_Entrance" }){ Util.SetMaxUsers(1, goal); } // Camp times SetMapGoalProperties( "DEFEND_.*", {MinCampTime=10, MaxCampTime=70} ); SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=25, MaxCampTime=90} ); // Use points Util.AddUsePoint("BUILD_Est_Entrance", Vector3(429.646, -951.034, 1160.125)); Util.AddUsePoint("BUILD_East_MG_Tower", Vector3(-1422.278, 1041.602, 1182.297)); Util.AddUsePoint("PLANT_East_MG_Tower", Vector3(-1535.365, 920.671, 1146.563)); Util.AddUsePoint("PLANT_West_MG_Tower", Vector3(-2981.903, 907.603, 1252.831)); Util.AddUsePoint("PLANT_South_Anti_Tank_Cannon", Vector3(1002.940, -1891.341, 1123.125)); Util.AddUsePoint("PLANT_Tank_Barrier", Vector3(-1626.051, -1861.131, 1376.327)); Util.SetGoalOffset(30, -30, 0, "MOUNTMG42_axis_bunker"); Map.Tank_Arrived(); MapRoutes = { FLAG_docs = { ROUTE_flag_spawn = { ROUTE_bridge = {}, ROUTE_bridge_east = {}, ROUTE_bridge_west = { ROUTE_north_tunnel = {}}, ROUTE_east_entrance = { Weight=2 }, }, ROUTE_axis_spawn = { ROUTE_east_entrance = {}, ROUTE_fence = { ROUTE_bridge_east = {}, ROUTE_bridge_west = {}, }, }, }, CAPPOINT_truck = { ROUTE_docs = { ROUTE_north_tunnel = { Weight=2, ROUTE_bridge_west = { ROUTE_command_post = {}, ROUTE_south_west = {}, } }, ROUTE_east_entrance = {}, ROUTE_bridge_east = {}, } }, CHECKPOINT_forward_spawn = { ROUTE_allied_spawn = { ROUTE_fence = {}, ROUTE_bridge_west = { ROUTE_south_west = {}, ROUTE_command_post = {}, }, ROUTE_west_tunnel = { Weight=3 }, }, ROUTE_axis_spawn = { ROUTE_axis_north = { ROUTE_fence = { ROUTE_barrier = {}}}, ROUTE_axis_south = {}, }, }, MOUNTMG42_axis_bunker = { ROUTE_axis_spawn = { ROUTE_axis_tunnel = {}}, }, PLANT_Tank_Barrier = { ROUTE_allied_spawn = { ROUTE_bridge = {}, } }, }; MapRoutes.REPAIRMG42_axis_bunker = MapRoutes.MOUNTMG42_axis_bunker; Util.Routes(MapRoutes); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { bot.TargetBreakableDist = 90.0; bot.MaxViewDistance = 2440; };