//==========================================================================================
//
//	falcon2.gm
//
//	Who  	When		What
//------------------------------------------------------------------------------------------
//	^4Tardis	10 February 2011	Initial Script
//	^4Tardis	28 February 2016  Clean Up & Sort Out
//==========================================================================================
//

global Map =
{
	allies_shortcut_ladder_Dyno = 0,
	falcon_airlock_Dyno = 0,
	obelisk_Dyno = 0,
	sarlac_gate_Dyno = 0,
	WheelDoorOpen = false,
	part_counter = 0,

	Movers =
	{
		"MOVER_speederman",
		"MOVER_speederman_shell",
		"MOVER_hamster",
		"MOVER_raidspeeder",
	},

	Roles =
	{
		AXIS = // Team
		{
			AllBots = true, // each bot is considered for a role
			DEFENDER = // the DEFENDER role
			{
				spawnpt = 1,			// users of this role will choose spawnpt 1
				numbots = 3,			// maximum of 3 bots
				crucialClass = CLASS.ENGINEER,	// first bot
			},
		},
	},

	towerspeederTrigger=
	{
		TriggerOnEntity = GetGoal("MOVER_speederman").GetEntity(),
		OnEnter = function(ent)
		{
			SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNT_towerspeeder" );
			SetGoalPriority( "FLAG_w_radar_part", 0.92 );
			Util.MapDebugPrint( "Tower_Speeder_Entered_Dissmount_Zone" );
		},
		OnExit = function(ent)
		{
			Util.MapDebugPrint( "Tower_Speeder_Exited__Dissmount_Zone" );
		},
	},

	allies_shortcut_ladder_Built = function()
	{
		SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_allies_shortcut_ladder" );
		Util.EnableGoal("ROUTE_shortcut");
		Util.EnableGoal("ROUTE_shortcut_1");

		Util.MapDebugPrint( "allies_shortcut_ladder_Built" );
	},

	allies_shortcut_ladder_Planted = function()
	{
		Map.allies_shortcut_ladder_Dyno += 1;
		Util.MapDebugPrint( "allies_shortcut_ladder_Planted" );
	},

	allies_shortcut_ladder_Defused = function()
	{
		Map.allies_shortcut_ladder_Dyno -= 1;
		Util.MapDebugPrint( "allies_shortcut_ladder_Defused" );
	},

	allies_shortcut_ladder_Destroyed = function()
	{
		Map.allies_shortcut_ladder_Dyno = 0;

		Util.MapDebugPrint( "allies_shortcut_ladder_Destroyed" );
	},

	falcon_airlock_Built = function()
	{
		SetAvailableMapGoals( TEAM.AXIS, true, "PLANTMINE_Falcon.*" );
		Util.MapDebugPrint( "falcon_airlock_Built" );
	},

	falcon_airlock_Planted = function()
	{
		Map.falcon_airlock_Dyno += 1;
		Util.MapDebugPrint( "falcon_airlock_Planted" );
	},

	falcon_airlock_Defused = function()
	{
		Map.falcon_airlock_Dyno -= 1;
		Util.MapDebugPrint( "falcon_airlock_Defused" );
	},

	falcon_airlock_Destroyed = function()
	{
		Map.falcon_airlock_Dyno = 0;

		SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_Falcon.*" );
		SetAvailableMapGoals( TEAM.ALLIES, true, {
			"ATTACK_Falcon.*",
			"MOUNT_towerspeeder",
		});
		SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_falcon_airlock" );
		SetGoalPriority( "MOUNT_towerspeeder", 0.91 );
		SetGoalPriority( "PLANT_falcon_airlock", 0.82 );
		SetGoalPriority( "FLAG_e_radar_part", 0.92 );

		Util.MapDebugPrint( "falcon_airlock_Destroyed" );
	},

	sarlac_gate_Built = function()
	{
		SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_sarlac_gate" );
		Util.MapDebugPrint( "sarlac_gate_Built" );
	},

	sarlac_gate_Planted = function()
	{
		Map.sarlac_gate_Dyno += 1;
		Util.MapDebugPrint( "sarlac_gate_Planted" );
	},

	sarlac_gate_Defused = function()
	{
		Map.sarlac_gate_Dyno -= 1;
		Util.MapDebugPrint( "sarlac_gate_Defused" );
	},

	sarlac_gate_Destroyed = function()
	{
		Map.sarlac_gate_Dyno = 0;

		Util.MapDebugPrint( "sarlac_gate_Destroyed" );
	},

	obelisk_Planted = function()
	{
		Map.obelisk_Dyno += 1;
		Util.MapDebugPrint( "obelisk_Planted" );
	},

	obelisk_Defused = function()
	{
		Map.obelisk_Dyno -= 1;
		Util.MapDebugPrint( "obelisk_Defused" );
	},

	obelisk_Destroyed = function()
	{
		Map.obelisk_Dyno = 0;
		SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_AxisWheel" );
		SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNT_towerspeeder" );
		SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_Falcon.*" );
		SetAvailableMapGoals( TEAM.ALLIES, true, {
			"MOUNTMG42_Falcon",
			"REPAIRMG42_Falcon",
		});
		SetAvailableMapGoals( TEAM.ALLIES, false, {
			"MOUNTMG42_AlliedMG",
			"REPAIRMG42_AlliedMG",
		});
		SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_Falcon.*" );
		SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_obelisk.*" );
		SetAvailableMapGoals( TEAM.AXIS, false, "CAMP_obelisk.*" );
		SetAvailableMapGoals( TEAM.AXIS, true, "SNIPE_Falcon.*" );
		SetAvailableMapGoals( TEAM.ALLIES, true, {
			"BUILD_allies_shortcut_ladder",
			"BUILD_sarlac_gate",
			"PLANT_falcon_airlock",
			"CALLARTILLERY_falcon",
			"ARTILLERY_S_falcon",
		});
		Util.EnableGoal("ROUTE_obleisktop");
		Util.EnableGoal("ROUTE_falconspeeder");
		Util.EnableGoal("ROUTE_falconmg");
		Util.EnableGoal("ROUTE_falconhigh");
		Util.EnableGoal( "FLAG_.*");
		Util.EnableGoal( "CAPPOINT_.*" );
		SetGoalPriority( "MOUNT_towerspeeder", 0.91 );
		SetGoalPriority( "PLANT_falcon_airlock", 0.82 );
		SetGoalPriority( "BUILD_allies_shortcut_ladder", 0.80 );
		SetGoalPriority( "ATTACK_Falcon.*", 0.7 );
		SetGoalPriority( "MOUNTMG42_Falcon", 0.8, TEAM.ALLIES, true );
		SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_drop.*" );
		Util.MapDebugPrint( "obelisk_Destroyed" );

	},

	e_radar_part_Taken = function()
	{
		Map.part_counter = +1;
		Util.MapDebugPrint( "e_radar_part_Taken" );
	},

	w_radar_part_Taken = function()
	{
		Map.part_counter = +1;
		Util.MapDebugPrint( "w_radar_part_Taken" );
	},

	e_radar_part_Returned = function()
	{
		Map.part_counter = -1;
		Util.MapDebugPrint( "e_radar_part_Returned" );
	},

	w_radar_part_Returned = function()
	{
		Map.part_counter = -1;
		Util.MapDebugPrint( "w_radar_part_Returned" );
	},

	e_radar_part_Secured = function()
	{
		if (Map.part_counter == 2)
		{
			SetAvailableMapGoals( TEAM.ALLIES, false, {
				"ATTACK_Falcon.*",
				"CALLARTILLERY_falcon",
				"ARTILLERY_S_falcon",
			});
		}
		SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_falcon_airlock" );
		Util.MapDebugPrint( "e_radar_part_Secured" );
	},

	w_radar_part_Secured = function()
	{
		if (Map.part_counter == 2)
		{
			SetAvailableMapGoals( TEAM.ALLIES, false, {
				"ATTACK_Falcon.*",
				"CALLARTILLERY_falcon",
				"ARTILLERY_S_falcon",
			});
		}
		SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNT_towerspeeder" );
		Util.MapDebugPrint( "w_radar_part_Secured" );
	},

	Wheelup = function()
	{
		Map.WheelDoorOpen = true;
		SetAvailableMapGoals( TEAM.AXIS, true, "RIDE_AxisWheel" );
		SetAvailableMapGoals( TEAM.ALLIES, false, "RIDE_Wheel" );
		Util.EnableGoal("ROUTE_wheelwall");
		SetGoalPriority( "RIDE_Wheel", 0.79 );
		Util.MapDebugPrint( "Wheel_up" );
	},

	Wheeldown = function()
	{
		Map.WheelDoorOpen = false;
		SetAvailableMapGoals( TEAM.ALLIES, true, "RIDE_Wheel" );
		SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_AxisWheel" );
		Util.DisableGoal("ROUTE_wheelwall");
		Util.MapDebugPrint( "Wheel_down" );
	},

	Allies_Win = function()
	{
		//Game Over
		if ( Map.Talk && MAP_TALK )
		{
			ETUtil.WinningChat( TEAM.ALLIES );
			ETUtil.LosingChat( TEAM.AXIS );
		}

		Util.MapDebugPrint( "Allies_Win" );
	},
};

global OnMapLoad = function()
{
	// Register callback functions
	OnTrigger( "Allies have built the shortcut ladder!", Map.allies_shortcut_ladder_Built );
	OnTrigger( "Axis have built the Falcon airlock defense!", Map.falcon_airlock_Built );
	OnTrigger( "Allies have built the bridge!", Map.sarlac_gate_Built );
	OnTrigger( "Planted at the allies_shortcut_ladder.", Map.allies_shortcut_ladder_Planted );
	OnTrigger( "Planted at the falcon_airlock.", Map.falcon_airlock_Planted );
	OnTrigger( "Planted at the obelisk.", Map.obelisk_Planted );
	OnTrigger( "Planted at the sarlac_gate.", Map.sarlac_gate_Planted );
	OnTrigger( "Defused at the allies_shortcut_ladder.", Map.allies_shortcut_ladder_Defused );
	OnTrigger( "Defused at thefalcon_airlock.", Map.falcon_airlock_Defused );
	OnTrigger( "Defused at the obelisk.", Map.obelisk_Defused );
	OnTrigger( "Defused at the sarlac_gate.", Map.sarlac_gate_Defused );
	OnTrigger( "Axis have damaged the shortcut ladder!", Map.allies_shortcut_ladder_Destroyed );
	OnTrigger( "Allies have damaged the Falcon airlock defense!", Map.falcon_airlock_Destroyed );
	OnTrigger( "Allies can now use the obelisk!", Map.obelisk_Destroyed );
	OnTrigger( "Axis have damaged the bridge!", Map.sarlac_gate_Destroyed );
	OnTrigger( "Allies have stolen the Falcon radar command system!", Map.e_radar_part_Taken );
	OnTrigger( "Allies have stolen the Falcon radar part!", Map.w_radar_part_Taken );
	OnTrigger( "Axis have returned the Falcon radar command system!", Map.e_radar_part_Returned );
	OnTrigger( "Axis have returned the Falcon radar part!", Map.w_radar_part_Returned );
	OnTrigger( "Allies have secured one of the Falcon radar components!", Map.e_radar_part_Secured );
	OnTrigger( "Allies have secured one of the Falcon radar components!", Map.w_radar_part_Secured );
	OnTrigger( "Wheel door up!", Map.Wheelup );
	OnTrigger( "Wheel door down!", Map.Wheeldown );
	OnTrigger( "Allies have secured all the Falcon radar components!", Map.Allies_Win );
	//Region Trigers
	Sarlac = OnTriggerRegion(AABB(-1176.931,5098.525,-190.875,-570.237,5381.570,-112.875),RegionTrigger.DisableCombatMovement);
	speeder = OnTriggerRegion(AABB(-2847.571,5742.745,267.428,-2651.314,5899.853,406.860),Map.towerspeederTrigger);
	//Disable All Goals
	Util.DisableGoal( ".*", true ); // all but routes
	// Disable MG , Bots Can't reach it
	Util.DisableGoal( "REPAIRMG42_Walker");
	Util.DisableGoal( "MOUNTMG42_Walker");
	//Not Needed
	Util.RemoveGoal( "BUILD_obelisk" );
	//Goals
	SetAvailableMapGoals( TEAM.ALLIES, true, {
		"RIDE_Wheel",
		"PLANT_obelisk",
		"MOUNTMG42_AlliedMG",
		"REPAIRMG42_AlliedMG",
		"ATTACK_obelisk.*",
	});
	SetAvailableMapGoals( TEAM.AXIS, true, {
		"CAMP_obelisk.*",
		"BUILD_falcon_airlock",
		"PLANTMINE_Falcon.*",
		"PLANTMINE_bridge.*",
	});


	//Disable Routes
	Util.DisableGoal("ROUTE_obleisktop");
	Util.DisableGoal("ROUTE_falconspeeder");
	Util.DisableGoal("ROUTE_falconmg");
	Util.DisableGoal("ROUTE_falconhigh");
	Util.DisableGoal("ROUTE_shortcut");
	Util.DisableGoal("ROUTE_shortcut_1");
	Util.DisableGoal("ROUTE_wheelwall");
	//AddUseWp
	Util.AddUseWp("PLANT_sarlac_gate", "gate1");
	Util.AddUseWp("PLANT_sarlac_gate", "gate2");
	Util.AddUseWp("PLANT_sarlac_gate", "gate3");
	Util.AddUseWp("PLANT_sarlac_gate", "gate4");
	Util.AddUseWp("PLANT_sarlac_gate", "gate5");
	Util.AddUseWp("PLANT_falcon_airlock", "airlock");
	Util.AddUseWp("PLANT_allies_shortcut_ladder", "short");
	Util.AddUseWp("PLANT_allies_shortcut_ladder", "short2");
	//Changing Priorities
	SetGoalPriority( "PLANT_obelisk", 0.92 );
	SetGoalPriority( "BUILD_sarlac_gate", 0.91 );
	SetGoalPriority( "MOUNTMG42_.*", 0.0, 0, CLASS.MEDIC, true  );
	SetGoalPriority( "CAMP_.*", 0.0, 0, CLASS.MEDIC, true  );
	SetGoalPriority( "DEFEND_.*", 0.0, 0, CLASS.MEDIC, true  );
	SetGoalPriority( "MOUNTMG42_.*", 0.0, 0, CLASS.ENGINEER, true );
	SetGoalPriority( "RIDE_Wheel", 0.0, 0, CLASS.ENGINEER, true );
	SetGoalPriority( "RIDE_Wheel", 0.93 );
	// Max users per goal
	Util.SetMaxUsers( 1, "DEFEND_.*" );
	Util.SetMaxUsers( 1, "GRENADE_.*" );
	Util.SetMaxUsers( 1, "MOUNTMG42_.*" );
	Util.SetMaxUsers( 1, "RIDE_.*" );
	Util.SetMaxUsers( 1, "PLANT_.*" );
	Util.SetMaxUsers( 1, "BUILD_.*" );
	Util.SetMaxUsers( 1, "CAMP_.*" );
	// Camp times
	SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} );
	SetMapGoalProperties( "CAMP_.*", {MinCampTime=15, MaxCampTime=60} );
	SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=10, MaxCampTime=60} );
	//Map Routes
	MapRoutes =
	{
		PLANT_obelisk =
		{
			ROUTE_AlliedSpawn  =
			{
				ROUTE_archsplit  =
				{
					ROUTE_wheelwall  =
					{
						ROUTE_oblelisk  =
						{
						},
					},
					ROUTE_archobli  =
					{
						ROUTE_oblelisk  =
						{
						},
					},
				},
			},
		},
		FLAG_w_radar_part =
		{
			ROUTE_obleisktop  =
			{
				ROUTE_falconspeeder  =
				{
					ROUTE_falconhigh  =
					{
					},
				},
			},
		},
		FLAG_e_radar_part =
		{
			ROUTE_AlliedSpawn  =
			{
				ROUTE_archsplit  =
				{
					ROUTE_wheelwall  =
					{
						ROUTE_oblelisk  =
						{
							ROUTE_obleisktop  =
							{
								ROUTE_falconspeeder  =
								{
									ROUTE_falconlow  =
									{
									},
								},
								ROUTE_falconmg  =
								{
									ROUTE_falconlow  =
									{
									},
								},
							},
						},
					},
					ROUTE_archobli  =
					{
						ROUTE_oblelisk  =
						{
							ROUTE_obleisktop  =
							{
								ROUTE_falconspeeder  =
								{
									ROUTE_falconlow  =
									{
									},
								},
								ROUTE_falconmg  =
								{
									ROUTE_falconlow  =
									{
									},
								},
							},
						},
						ROUTE_sarlac  =
						{
							ROUTE_falconlow  =
							{
							},
						},
					},
				},
			},
		},
		CAPPOINT_Radar =
		{
			ROUTE_falconhigh  =
			{
				ROUTE_sarlac  =
				{
					ROUTE_shortcut  =
					{
						ROUTE_shortcut_1  =
						{
							ROUTE_cappoint  =
							{
							},
						},
					},
					ROUTE_archobli  =
					{
						ROUTE_archsplit  =
						{
							ROUTE_cappoint  =
							{
							},
						},
					},
					ROUTE_oblelisk  =
					{
						ROUTE_wheelwall  =
						{
							ROUTE_archsplit  =
							{
								ROUTE_cappoint  =
								{
								},
							},
						},
					},
				},
			},
			ROUTE_falconlow  =
			{
				ROUTE_sarlac  =
				{
					ROUTE_shortcut  =
					{
						ROUTE_shortcut_1  =
						{
							ROUTE_cappoint  =
							{
							},
						},
					},
					ROUTE_archobli  =
					{
						ROUTE_archsplit  =
						{
							ROUTE_cappoint  =
							{
							},
						},
					},
					ROUTE_oblelisk  =
					{
						ROUTE_wheelwall  =
						{
							ROUTE_archsplit  =
							{
								ROUTE_cappoint  =
								{
								},
							},
						},
					},
				},
			},
		},
		BUILD_falcon_airlock =
		{
			ROUTE_Axis_Spawn  =
			{
				ROUTE_out1  =
				{
					ROUTE_out1_b  =
					{
						ROUTE_outfalcon  =
						{
						},
					},
					ROUTE_out1_a  =
					{
						ROUTE_sarlac  =
						{
							ROUTE_outfalcon  =
							{
							},
						},
					},
					ROUTE_outfalcon  =
					{
					},
				},
				ROUTE_out_c  =
				{
					ROUTE_out_c_1  =
					{
						ROUTE_out_c_2  =
						{
							ROUTE_out_c_3  =
							{
								ROUTE_out_c_a  =
								{
									ROUTE_out_c_a_1  =
									{
										ROUTE_outfalcon  =
										{
										},
									},
									ROUTE_out_c_c  =
									{
										ROUTE_outfalcon  =
										{
										},
									},
								},
								ROUTE_out_c_B  =
								{
									ROUTE_outfalcon  =
									{
									},
								},
								ROUTE_outfalcon  =
								{
								},
							},
						},
					},
				},
			},
		},
	};

	MapRoutes.ATTACK_obelisk = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_1 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_2 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_3 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_4 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_5 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_6 = MapRoutes.PLANT_obelisk;
	MapRoutes.ATTACK_obelisk_7 = MapRoutes.PLANT_obelisk;

	MapRoutes.CAMP_obelisk = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_1 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_2 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_3 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_4 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_5 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_6 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_7 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_8 = MapRoutes.DEFUSE_obelisk;
	MapRoutes.CAMP_obelisk_9 = MapRoutes.DEFUSE_obelisk;

	MapRoutes.ATTACK_Falcon = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_1 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_2 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_3 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_4 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_5 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_6 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_7 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_8 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.ATTACK_Falcon_9 = MapRoutes.FLAG_e_radar_part;

	MapRoutes.ATTACK_Falcon = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_1 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_2 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_3 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_4 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_5 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_6 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_7 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_8 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.ATTACK_Falcon_9 = MapRoutes.FLAG_w_radar_part;

	MapRoutes.CAMP_Falcon = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_1 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_2 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_3 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_4 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_5 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_6 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_7 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_8 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_9 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_10 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_11 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_12 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_13 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_14 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_15 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_16 = MapRoutes.FLAG_w_radar_part;
	MapRoutes.CAMP_Falcon_17 = MapRoutes.FLAG_w_radar_part;

	MapRoutes.CAMP_Falcon = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_1 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_2 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_3 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_4 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_5 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_6 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_7 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_8 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_9 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_10 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_11 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_12 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_13 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_14 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_15 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_16 = MapRoutes.FLAG_e_radar_part;
	MapRoutes.CAMP_Falcon_17 = MapRoutes.FLAG_e_radar_part;

	MapRoutes.CAMP_Falcon = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_1 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_2 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_3 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_4 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_5 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_6 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_7 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_8 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_9 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_10 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_11 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_12 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_13 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_14 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_15 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_16 = MapRoutes.BUILD_falcon_airlock;
	MapRoutes.CAMP_Falcon_17 = MapRoutes.BUILD_falcon_airlock;

	MapRoutes.DEFEND_drop =	MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_1 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_2 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_3 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_4 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_5 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop_6 = MapRoutes.w_radar_part_Taken;
	MapRoutes.DEFEND_drop = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_1 = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_2 = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_3 = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_4 = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_5 = MapRoutes.e_radar_part_Taken;
	MapRoutes.DEFEND_drop_6 = MapRoutes.e_radar_part_Taken;

	Util.Routes(MapRoutes);
	//End Routes
	Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." );
};

global OnBotJoin = function( bot )
{
	bot.MaxViewDistance = 2000;
};
