/********************************************************
Waypoints and Script by >WES< P!NNAN & >WES< GRANNY
********************************************************/


global Map =
{
	Debug = false,
	Talk = true, //set this to false if you wont bots talking ingame
	Quiet = true,
	Door = "closed",

	Ammo_Cabinet_north_ammocabinet = "AMMOCAB_north_ammocabinet",
	Ammo_Cabinet_north_ammocabinet_1 = "AMMOCAB_north_ammocabinet_1",
	Ammo_Cabinet_north_ammocabinet_2 = "AMMOCAB_north_ammocabinet_2",
	Ammo_Cabinet_north_ammocabinet_3 = "AMMOCAB_north_ammocabinet_3",
	Ammo_Cabinet_north_ammocabinet_4 = "AMMOCAB_north_ammocabinet_4",
	Health_Cabinet_north_healthcabinet = "HEALTHCAB_north_healthcabinet",
	Health_Cabinet_north_healthcabinet_1 = "HEALTHCAB_north_healthcabinet_1",
	Call_Artillery_ar_call_ax_1 = "CALLARTILLERY_ar_call_ax_1",
	Artillery_D_ar_ax_1 = "ARTILLERY_D_ar_ax_1",
	Checkpoint_oldcityflag = "CHECKPOINT_oldcityflag",
	Build_Command_Post = "BUILD_Command_Post",
	Build_axis_basement_MG_Gun = "BUILD_axis_basement_MG_Gun",
	Build_axis_basement_MG_Gun_1 = "BUILD_axis_basement_MG_Gun_1",
	Build_canyon_bunker_MG42_gun = "BUILD_canyon_bunker_MG42_gun",
	Build_main_bunker_MG42_gun = "BUILD_main_bunker_MG42_gun",
	Build_radio_beacon = "BUILD_radio_beacon",
	Plant_Axis_base_gate = "PLANT_Axis_base_gate",
	Plant_Command_Post = "PLANT_Command_Post",
	Plant_axis_basement_MG_Gun = "PLANT_axis_basement_MG_Gun",
	Plant_battery = "PLANT_battery",
	Plant_beach_bunker_door = "PLANT_beach_bunker_door",
	Plant_bunker_door = "PLANT_bunker_door",
	Plant_canyon_bunker_MG42_gun = "PLANT_canyon_bunker_MG42_gun",
	Plant_power_generator = "PLANT_power_generator",
	Plant_radio_beacon = "PLANT_radio_beacon",
	Explode_axis_basement_MG_Gun = "EXPLODE_axis_basement_MG_Gun",
	Explode_main_bunker_MG42_gun = "EXPLODE_main_bunker_MG42_gun",
	Mount_155 = "MOUNTMG42_155",
	Mount_2198 = "MOUNTMG42_2198",
	Mount_518 = "MOUNTMG42_518",
	Mount_axis_basement_MG_Gun = "MOUNTMG42_axis_basement_MG_Gun",
	Mount_canyon_bunker_MG42_gun = "MOUNTMG42_canyon_bunker_MG42_gun",
	Mount_mg1gun = "MOUNTMG42_mg1gun",
	Mount_mg1gun_1 = "MOUNTMG42_mg1gun_1",
	Mount_mg2gun = "MOUNTMG42_mg2gun",
	Mount_mg3gun = "MOUNTMG42_mg3gun",
	Repair_155 = "REPAIRMG42_155",
	Repair_2198 = "REPAIRMG42_2198",
	Repair_518 = "REPAIRMG42_518",
	Repair_axis_basement_MG_Gun = "REPAIRMG42_axis_basement_MG_Gun",
	Repair_canyon_bunker_MG42_gun = "REPAIRMG42_canyon_bunker_MG42_gun",
	Repair_mg1gun = "REPAIRMG42_mg1gun",
	Repair_mg1gun_1 = "REPAIRMG42_mg1gun_1",
	Repair_mg2gun = "REPAIRMG42_mg2gun",
	Repair_mg3gun = "REPAIRMG42_mg3gun",
	Mobile_MG42_mg_al_battery_1 = "MOBILEMG42_mg_al_battery_1",
	Mobile_MG42_mg_al_battery_2 = "MOBILEMG42_mg_al_battery_2",
	Mobile_MG42_mg_al_battery_3 = "MOBILEMG42_mg_al_battery_3",
	Mobile_MG42_mg_ax_1 = "MOBILEMG42_mg_ax_1",
	Mobile_MG42_mg_ax_2 = "MOBILEMG42_mg_ax_2",
	Mobile_MG42_mg_ax_3 = "MOBILEMG42_mg_ax_3",
	Mobile_MG42_mg_ax_4 = "MOBILEMG42_mg_ax_4",
	Mobile_MG42_mg_ax_5 = "MOBILEMG42_mg_ax_5",
	Mobile_MG42_mg_ax_6 = "MOBILEMG42_mg_ax_6",
	Mobile_MG42_mg_ax_battery_1 = "MOBILEMG42_mg_ax_battery_1",
	Mobile_MG42_mg_ax_battery_2 = "MOBILEMG42_mg_ax_battery_2",
	Mobile_MG42_mg_ax_battery_3 = "MOBILEMG42_mg_ax_battery_3",
	Mobile_Mortar_mo_al_start = "MOBILEMORTAR_mo_al_start",
	Mobile_Mortar_mo_ax_1 = "MOBILEMORTAR_mo_ax_1",
	Snipe_s_ally_start_1 = "SNIPE_s_ally_start_1",
	Snipe_s_ally_start_2 = "SNIPE_s_ally_start_2",
	Snipe_s_ally_start_3 = "SNIPE_s_ally_start_3",
	Snipe_s_ally_start_4 = "SNIPE_s_ally_start_4",
	Snipe_s_ax_bunker_1 = "SNIPE_s_ax_bunker_1",

	Navigation =
	{
		ladder_2_pt =
		{
			navigate = function(_this)
			{
				_this.Bot.HoldButton(BTN.FORWARD, 3);
				sleep(3);
			},
		},
		ladder_al_pt =
		{
			navigate = function(_this)
			{
				_this.Bot.HoldButton(BTN.FORWARD, 4);
				sleep(4);
			},
		},
	},

	//CP
	Allied_Command_Post_Built = function( trigger )
	{
		Util.MapDebugPrint( "Allied_Command_Post_Built" );
	},

	Axis_Command_Post_Built = function( trigger )
	{
		Util.MapDebugPrint( "Axis_Command_Post_Built" );
	},

	Allied_Command_Post_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "Allied_Command_Post_Destroyed" );
	},

	Axis_Command_Post_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "Axis_Command_Post_Destroyed" );
	},

	//MG�s
	axis_basement_MG_Gun_Built = function( trigger )
	{
		Util.MapDebugPrint( "axis_basement_MG_Gun_Built" );
	},

	axis_basement_MG_Gun_1_Built = function( trigger )
	{
		Util.MapDebugPrint( "axis_basement_MG_Gun_1_Built" );
	},

	canyon_bunker_MG42_gun_Built = function( trigger )
	{
		Util.MapDebugPrint( "canyon_bunker_MG42_gun_Built" );
	},

	main_bunker_MG42_gun_Built = function( trigger )
	{
		Util.MapDebugPrint( "main_bunker_MG42_gun_Built" );
	},

	axis_basement_MG_Gun_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "axis_basement_MG_Gun_Destroyed" );
	},

	canyon_bunker_MG42_gun_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "canyon_bunker_MG42_gun_Destroyed" );
	},

	//Radio
	radio_beacon_Built = function( trigger )
	{
		Groups.DisableAllies(Groups.group5);
		Groups.DisableAxis(Groups.group6);
		Groups.EnableAllies(Groups.group7);
		Groups.EnableAxis(Groups.group8);

		if ( Map.Talk && MAP_TALK )
		{
			foreach ( id and bot in BotTable )
			{
				if ( bot.GetTeam() == TEAM.ALLIES )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.DESTROY_SECONDARY);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTAttack");
					}
				}
				if ( bot.GetTeam() == TEAM.AXIS )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.REINFORCE_DEF);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTFallBack");
					}
				}
			}
		}

		Util.MapDebugPrint( "radio_beacon_Built" );
	},

	radio_beacon_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "radio_beacon_Destroyed" );
	},

	//Gates and doors
	Axis_base_gate_Destroyed = function( trigger )
	{
		Groups.DisableAllies(Groups.group3);
		Groups.DisableAxis(Groups.group4);
		Groups.EnableAllies(Groups.group5);
		Groups.EnableAxis(Groups.group6);

		if ( Map.Talk && MAP_TALK )
		{
			foreach ( id and bot in BotTable )
			{
				if ( bot.GetTeam() == TEAM.ALLIES )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.PATH_CLEARED);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTAttack");
					}
				}
				if ( bot.GetTeam() == TEAM.AXIS )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.REINFORCE_DEF);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTFallBack");
					}
				}
			}
		}

		Util.MapDebugPrint( "Axis_base_gate_Destroyed" );
	},

	beach_bunker_door_Destroyed = function( trigger )
	{
		Groups.DisableAllies(Groups.group1);
		Groups.DisableAxis(Groups.group2);
		Groups.EnableAllies(Groups.group3);
		Groups.EnableAxis(Groups.group4);

		if ( Map.Talk && MAP_TALK )
		{
			foreach ( id and bot in BotTable )
			{
				if ( bot.GetTeam() == TEAM.ALLIES )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.PATH_CLEARED);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTAttack");
					}
				}
				if ( bot.GetTeam() == TEAM.AXIS )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.REINFORCE_DEF);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTFallBack");
					}
				}
			}
		}

		Util.MapDebugPrint( "beach_bunker_door_Destroyed" );
	},

	bunker_door_Destroyed = function( trigger )
	{
		Groups.DisableAllies(Groups.group3);
		Groups.DisableAxis(Groups.group4);
		Groups.EnableAllies(Groups.group5);
		Groups.EnableAxis(Groups.group6);

		if ( Map.Talk && MAP_TALK )
		{
			foreach ( id and bot in BotTable )
			{
				if ( bot.GetTeam() == TEAM.ALLIES )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.PATH_CLEARED);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTAttack");
					}
				}
				if ( bot.GetTeam() == TEAM.AXIS )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.REINFORCE_DEF);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTFallBack");
					}
				}
			}
		}

		Util.MapDebugPrint( "bunker_door_Destroyed" );
	},

	//Generator
	power_generator_Destroyed = function( trigger )
	{
		Util.MapDebugPrint( "power_generator_Destroyed" );
	},

	//Spawnflags
	oldcityflag_Axis_Captured = function( trigger )
	{
		Util.MapDebugPrint( "oldcityflag_Axis_Captured" );
	},

	oldcityflag_Allies_Captured = function( trigger )
	{
		Util.MapDebugPrint( "oldcityflag_Allies_Captured" );
	},

	frontdoor_right_goto = function (trigger)
	{
		vec = ToVector(trigger.Action);
		if ( vec.x > 17 )   { Map.Door = "open" ; }
		if ( vec.x < 17 )   { Map.Door = "closed"; }
		sleep(5);

		Groups.DisableAllies(Groups.group7);
		Groups.DisableAxis(Groups.group8);
		Groups.EnableAllies(Groups.group9);
		Groups.EnableAxis(Groups.group10);

		if ( Map.Talk && MAP_TALK )
		{
			foreach ( id and bot in BotTable )
			{
				if ( bot.GetTeam() == TEAM.ALLIES )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.DESTROY_PRIMARY);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTAttack");
					}
				}
				if ( bot.GetTeam() == TEAM.AXIS )
				{
					r = RandRange(0,10);
					if( r < 2 )
					{
						bot.SayVoice(VOICE.REINFORCE_DEF);
					}
					else if( r > 8 )
					{
						sleep(1.2);
						bot.ExecCommand("vsay_team FTFallBack");
					}
				}
			}
		}

		Util.MapDebugPrint( "Door is now: ",Map.Door );
	},

	//Battery
	battery_Destroyed = function( trigger )
	{
		ETUtil.WinningChat( TEAM.ALLIES );
		ETUtil.LosingChat( TEAM.AXIS );
		Util.MapDebugPrint( "battery_Destroyed" );
	},

};

global OnMapLoad = function()
{
	OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built );
	OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built );
	OnTrigger( "MISSING_STRING", Map.axis_basement_MG_Gun_Built );
	OnTrigger( "Axis basement MG gun #1 constructed", Map.axis_basement_MG_Gun_1_Built );
	OnTrigger( "canyon bunker MG42 guns constructed", Map.canyon_bunker_MG42_gun_Built );
	OnTrigger( "Main beach bunker MG42 guns constructed", Map.main_bunker_MG42_gun_Built );
	OnTrigger( "^6Allied team has built the Radio", Map.radio_beacon_Built );
	OnTrigger( "Allies have breached axis base main gate!", Map.Axis_base_gate_Destroyed );
	OnTrigger( "Axis team has destroyed the Allied Command Post!", Map.Allied_Command_Post_Destroyed );
	OnTrigger( "Allied team has destroyed the Axis Command Post!", Map.Axis_Command_Post_Destroyed );
	OnTrigger( "Axis basement MG gun #1 disabled", Map.axis_basement_MG_Gun_Destroyed );
	OnTrigger( "^6Allies have destroyed the battery!!!!!!!", Map.battery_Destroyed );
	OnTrigger( "Allies have blown the lower beach bunker door!", Map.beach_bunker_door_Destroyed );
	OnTrigger( "Allies have blown the main beach bunker door!", Map.bunker_door_Destroyed );
	OnTrigger( "canyon bunker MG42 guns disabled", Map.canyon_bunker_MG42_gun_Destroyed );
	OnTrigger( "MISSING_STRING", Map.power_generator_Destroyed );
	OnTrigger( "^6Axis have destroyed the Radio", Map.radio_beacon_Destroyed );
	OnTrigger( "Axis reclaim the forward spawn!", Map.oldcityflag_Axis_Captured );
	OnTrigger( "Allies capture the forward spawn!", Map.oldcityflag_Allies_Captured );

	//Doortrigger
	OnTrigger( "frontdoor_right_goto", Map.frontdoor_right_goto );

	//Priority Main goals
	SetGoalPriority( "PLANT_beach_bunker_door", 0.9 );
	SetGoalPriority( "PLANT_bunker_door", 0.9 );

	//set offset for better reachable
	Util.SetGoalOffset( 0, -20, 0, "PLANT_beach_bunker_door" );
	Util.SetGoalPosition( 5111.796, 9325.875, -703.700, "PLANT_battery" );

	//set max users for goals
	Util.SetMaxUsersInProgress( 2, "BUILD.*" );
	Util.SetMaxUsersInProgress( 2, "PLANT.*" );
	Util.SetMaxUsersInProgress( 1, "DEFEND_.*" );
	Util.SetMaxUsersInProgress( 1, "ATTACK_.*" );


	//Set min/max camptime
	SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=120, MaxCampTime=120});
	SetMapGoalProperties( "SNIPE_.*", {MinCampTime=60, MaxCampTime=120});
	SetMapGoalProperties( "ATTACK_.*", {MinCampTime=30, MaxCampTime=60});
	SetMapGoalProperties( "DEFEND_.*", {MinCampTime=60, MaxCampTime=120});

	//clear all goals
	SetAvailableMapGoals( TEAM.AXIS, false, ".*" );
	SetAvailableMapGoals( TEAM.ALLIES, false, ".*" );

	Util.EnableGoal("ROUTE.*"); //enable routing for both teams

	//enable part 1 goals
	Groups.EnableAllies(Groups.group1);
	Groups.EnableAxis(Groups.group2);

	//Routes
	MapRoutes =
	{

		MOUNTMG42_518 =
		{
			ROUTE_r_alliespawn_1 =
			{
				ROUTE_r_beachtunnel_1 =
				{
					ROUTE_r_beachtunnel_2 = { ROUTE_r_beachbunker = {}, },
				},
			},
		},

		PLANT_beach_bunker_door =
		{
			ROUTE_r_alliespawn_1 =
			{
				ROUTE_r_beachtunnel_1 =
				{
					ROUTE_r_beachtunnel_3 =
					{
						ROUTE_r_beachtunnel_exit = { ROUTE_r_left_beachbunker_front = {}, },
					},
				},
				ROUTE_r_beachtunnel_entrance =
				{
					ROUTE_r_left_hill = { ROUTE_r_left_beachbunker = {}, },
				},
			},
		},
		CHECKPOINT_oldcityflag =
		{
			ROUTE_r_alliespawn_2 =
			{
				ROUTE_r_bunkertunnel_1 =
				{
					ROUTE_r_bunkerstairs =
					{
						ROUTE_r_cp_tunnel = { ROUTE_flagladder = {}, },
					},
				},
				ROUTE_r_al_spawn2_exit =
				{
					ROUTE_r_left_bunkerhill =
					{
						ROUTE_r_left_bunkerhill_1 = { ROUTE_r_left_bunkerhill_2 = {}, },
					},
				},
			},
		},
		PLANT_bunker_door =
		{
			ROUTE_r_alliespawn_2 =
			{
				ROUTE_r_al_spawn2_exit =
				{
					ROUTE_r_left_bunkerhill =
					{
						ROUTE_r_mgnest =
						{
							ROUTE_r_right_bunkerhill = { ROUTE_r_cptop = {}, },
						},
					},
				},
			},
		},
		PLANT_power_generator =
		{
			ROUTE_r_allygenspawn =
			{
				ROUTE_r_genspawnexit =
				{
					ROUTE_r_stairs_split =
					{
						ROUTE_r_stairs =
						{
							ROUTE_r_leftway =
							{
								ROUTE_r_leftdoor = {},
							},
							ROUTE_r_rightway =
							{
								ROUTE_r_rightway_1 =
								{
									ROUTE_r_rightway_2 = {},
								},
							},
						},
						ROUTE_r_rightway_3 =
						{
							ROUTE_r_rightway_1 = { ROUTE_r_rightway_2 = {}, },
						},
					},
				},
			},
		},
		PLANT_battery =
		{
			ROUTE_r_allygenspawn =
			{
				ROUTE_r_genspawnexit =
				{
					ROUTE_r_stairs_split =
					{
						ROUTE_r_stairs =
						{
							ROUTE_r_rightway_3 =
							{
								ROUTE_r_rightway_1 =
								{
									ROUTE_r_magnetic_door =
									{
										ROUTE_r_battery_ladder =
										{
											ROUTE_r_battery = {},
										},
										ROUTE_r_battery_stairs =
										{
											ROUTE_r_battery_stairs_1 =
											{
												ROUTE_r_battery_stairs_2 = {},
												ROUTE_r_battery_ladder_2 =
												{
													ROUTE_r_behind_battery = {},
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
			ROUTE_r_allygenspawn_1 =
			{
				ROUTE_r_genspawnexit =
				{
					ROUTE_r_stairs_split =
					{
						ROUTE_r_stairs =
						{
							ROUTE_r_rightway_3 =
							{
								ROUTE_r_rightway_1 =
								{
									ROUTE_r_magnetic_door =
									{
										ROUTE_r_battery_ladder =
										{
											ROUTE_r_battery = {},
										},
										ROUTE_r_battery_stairs =
										{
											ROUTE_r_battery_stairs_1 =
											{
												ROUTE_r_battery_stairs_2 = {},
												ROUTE_r_battery_ladder_2 =
												{
													ROUTE_r_behind_battery = {},
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
		},
	};

	//Copy Routes
	MapRoutes.SNIPE_s_ally_start_3 = MapRoutes.MOUNTMG42_518;
	MapRoutes.SNIPE_s_ally_start_4 = MapRoutes.PLANT_beach_bunker_door;

	Util.Routes(MapRoutes);
	Util.MapDebugPrint( "OnMapLoad" );
};


global OnBotJoin = function( bot )
{
	bot.TargetBreakableDist = 100.0;
	bot.MaxViewDistance = 2500;
};

global Groups =
{
	//Allied part 1
	group1 =
	{
		Map.Plant_beach_bunker_door,
		Map.Mount_518,
		Map.Repair_518,
		"ATTACK_a_start.*",
		"MOBILEMORTAR_mo_al_start_1.*",
		"SNIPE_s_ally_start.*",
	},

	//Axis part 1
	group2 =
	{
		Map.Call_Artillery_ar_call_ax_1,
		Map.Artillery_D_ar_ax_1,
		Map.Build_axis_basement_MG_Gun,
		Map.Build_canyon_bunker_MG42_gun,
		Map.Build_Command_Post,
		Map.Build_main_bunker_MG42_gun,
		Map.Mobile_MG42_mg_ax_3,
		"DEFEND_d_start.*",
		"MOBILEMORTAR_mo_ax_1.*",
		"SNIPE_s_axis_start.*",
	},

	//Allied part 2
	group3 =
	{
		Map.Checkpoint_oldcityflag,
		Map.Plant_axis_basement_MG_Gun,
		Map.Plant_Axis_base_gate,
		Map.Plant_bunker_door,
		Map.Plant_canyon_bunker_MG42_gun,
		Map.Plant_main_bunker_MG42_gun,
		"ATTACK_a_bunker.*",
	},

	//Axis part2
	group4=
	{
		Map.Build_axis_basement_MG_Gun,
		Map.Build_canyon_bunker_MG42_gun,
		Map.Build_Command_Post,
		Map.Build_main_bunker_MG42_gun,
		Map.Checkpoint_oldcityflag,
		Map.Mobile_MG42_mg_ax_1,
		Map.Mobile_MG42_mg_ax_2,
		Map.Mobile_MG42_mg_ax_4,
		Map.Mobile_MG42_mg_ax_5,
		Map.Mount_basement_bunker_MG42_gun,
		Map.Mount_canyon_bunker_MG42_gun,
		Map.Mount_main_bunker_MG42_gun,
		Map.Repair_basement_bunker_MG42_gun,
		Map.Repair_canyon_bunker_MG42_gun,
		Map.Repair_main_bunker_MG42_gun,
		"DEFEND_d_bunker.*",
	},

	//Allied part 3
	group5 =
	{
		Map.Build_Command_Post,
		Map.Build_radio_beacon,
		Map.Plant_Axis_base_gate,
		Map.Plant_axis_basement_MG_Gun,
		Map.Plant_bunker_door,
		Map.Plant_canyon_bunker_MG42_gun,
		Map.Plant_main_bunker_MG42_gun,
		Map.Plant_Command_Post,
		"ATTACK_a_bunker.*",
		"ATTACK_a_radio.*",
	},

	//Axis part3
	group6=
	{
		Map.Build_Command_Post,
		Map.Mount_2198,
		Map.Plant_Axis_base_gate,
		Map.Plant_Command_Post,
		Map.Plant_radio_beacon,
		Map.Repair_2198,
		"DEFEND_d_radio.*",
	},

	//Allies part4
	group7=
	{
		Map.Build_Command_Post,
		Map.Plant_Axis_base_gate,
		Map.Plant_Command_Post,
		Map.Plant_power_generator,
		"ATTACK_a_generator.*",
	},

	//Axis part 4
	group8=
	{
		"DEFEND_d_generator.*",
	},

	//Allies part5
	group9=
	{
		Map.Mobile_MG42_mg_al_battery_1,
		Map.Mobile_MG42_mg_al_battery_2,
		Map.Mobile_MG42_mg_al_battery_3,
		Map.Plant_battery,
		"ATTACK_a_battery.*",
	},

	//Axis part 5
	group10=
	{
		Map.Mobile_MG42_mg_ax_battery_1,
		Map.Mobile_MG42_mg_ax_battery_2,
		Map.Mobile_MG42_mg_ax_battery_3,
		"DEFEND_d_battery.*",
	},

	EnableAllies = function(group)
	{
		foreach (id and goal in group)
		{
			SetAvailableMapGoals( TEAM.ALLIES, true, goal );
			Util.MapDebugPrint("EnableAllies: enabling " + goal, true);
		}
	},

	EnableAxis = function(group)
	{
		foreach (id and goal in group)
		{
			SetAvailableMapGoals( TEAM.AXIS, true, goal );
			Util.MapDebugPrint("EnableAxis: enabling " + goal, true);
		}
	},

	DisableAllies = function(group)
	{
		foreach (id and goal in group)
		{
			SetAvailableMapGoals( TEAM.ALLIES, false, goal );
			Util.MapDebugPrint("DisableAllies: disabling " + goal, true);
		}
	},

	DisableAxis = function(group)
	{
		foreach (id and goal in group)
		{
			SetAvailableMapGoals( TEAM.AXIS, false, goal );
			Util.MapDebugPrint("DisableAxis: disabling " + goal, true);
		}
	},
};
