dofile("Scripts/mission.lua");
dofile("Scripts/msl.lua");

function PostCreate()
	mission_lua.BasicMissionInitialize()
	AIparts:AddPeriodic("000. Presets airplanes", 40, func_000__Presets_airplanes, 10 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 1", 40, func_015b__Airraid_1, 0 + RandomHalf(40))
	AIparts:AddPeriodic("010c. Train in Lehrter Bahnhof", 40, func_010c__Train_in_Lehrter_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("010d. Train in Tiergarten Bahnhof", 40, func_010d__Train_in_Tiergarten_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("010a. Train to Friedrichstrasse Bahnhof", 40, func_010a__Train_to_Friedrichstrasse_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("011b. Train in Anhalter Bahnhof", 40, func_011b__Train_in_Anhalter_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("011a. Train to Anhalter Bahnhof", 40, func_011a__Train_to_Anhalter_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("010b. Train in Friedrichstrasse Bahnhof", 40, func_010b__Train_in_Friedrichstrasse_Bahnhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("011c. Train in Anhalter Bahnhof EoT", 40, func_011c__Train_in_Anhalter_Bahnhof_EoT, 0 + RandomHalf(40))
	AIparts:AddPeriodic("009a. Attack End of Traintrack", 40, func_009a__Attack_End_of_Traintrack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("009b. Attack End of Traintrack T34", 40, func_009b__Attack_End_of_Traintrack_T34, 0 + RandomHalf(40))
	AIparts:AddOneTime("000. If group see enemy now", 100, func_000__If_group_see_enemy_now)
	AIparts:AddPeriodic("016a. Variable attack_1 Berlin", 40, func_016a__Variable_attack_1_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("975. Variable objectives", 40, func_975__Variable_objectives, 0 + RandomHalf(40))
	AIparts:AddOneTime("002a. Hitler is Arrived", 40, func_002a__Hitler_is_Arrived)
	AIparts:AddPeriodic("002b. Hitler is Killed", 50, func_002b__Hitler_is_Killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("002c. EvHitlerKilled", 40, func_002c__EvHitlerKilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Win or Loose", 40, func_000__Win_or_Loose, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Clock", 40, func_000__Clock, 0 + RandomHalf(40))
	AIparts:AddOneTime("003a. Weidling is Arrived", 40, func_003a__Weidling_is_Arrived)
	AIparts:AddOneTime("004a. Rauch is Arrived", 40, func_004a__Rauch_is_Arrived)
	AIparts:AddOneTime("005a. Mummert is Arrived", 40, func_005a__Mummert_is_Arrived)
	AIparts:AddOneTime("006a. Herrman is Arrived", 40, func_006a__Herrman_is_Arrived)
	AIparts:AddOneTime("007a. Krukenberg is Arrived", 40, func_007a__Krukenberg_is_Arrived)
	AIparts:AddPeriodic("003b. Weidling is killed", 50, func_003b__Weidling_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("003c. EvWeidlingKilled", 40, func_003c__EvWeidlingKilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("004c. EvRauchKilled", 40, func_004c__EvRauchKilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("004b. Rauch is killed", 50, func_004b__Rauch_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("005b. Mummert is killed", 50, func_005b__Mummert_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("005c. EvMummerkilled", 40, func_005c__EvMummerkilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("006b. Herrman is killed", 50, func_006b__Herrman_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("006c. EvHerrmanKilled", 40, func_006c__EvHerrmanKilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("007b. Krukenberg is killed", 50, func_007b__Krukenberg_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("007c. EvKrukenbergkilled", 40, func_007c__EvKrukenbergkilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Airstrip Tempelhof ", 200, func_000__Airstrip_Tempelhof_, 100 + RandomHalf(100))
	AIparts:AddPeriodic("000. Airstrip Charlottenburg", 200, func_000__Airstrip_Charlottenburg, 100 + RandomHalf(100))
	AIparts:AddPeriodic("021. Arrival Volkssturm", 40, func_021__Arrival_Volkssturm, 0 + RandomHalf(40))
	AIparts:AddPeriodic("950. Airraid Factory 1 West", 40, func_950__Airraid_Factory_1_West, 0 + RandomHalf(40))
	AIparts:AddPeriodic("951. Airraid Factory 2 West", 40, func_951__Airraid_Factory_2_West, 0 + RandomHalf(40))
	AIparts:AddPeriodic("952. Airraid Factory 3 West", 40, func_952__Airraid_Factory_3_West, 0 + RandomHalf(40))
	AIparts:AddPeriodic("976a. Objective North", 40, func_976a__Objective_North, 0 + RandomHalf(40))
	AIparts:AddPeriodic("976b. Objective North cleared", 40, func_976b__Objective_North_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("977a. Objective South", 40, func_977a__Objective_South, 0 + RandomHalf(40))
	AIparts:AddPeriodic("977b. Objective South cleared", 40, func_977b__Objective_South_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("008a. Mohnke is Arrived", 40, func_008a__Mohnke_is_Arrived, 0 + RandomHalf(40))
	AIparts:AddPeriodic("008b. Mohnke is killed", 50, func_008b__Mohnke_is_killed, 50 + RandomHalf(50))
	AIparts:AddPeriodic("008c. EvMohnkekilled", 40, func_008c__EvMohnkekilled, 0 + RandomHalf(40))
	AIparts:AddPeriodic("974. Kill Hitler", 40, func_974__Kill_Hitler, 0 + RandomHalf(40))
	AIparts:AddPeriodic("001a. Presentation", 40, func_001a__Presentation, 0 + RandomHalf(40))
	AIparts:AddPeriodic("001b. Presentation", 40, func_001b__Presentation, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Create dead bodies", 40, func_000__Create_dead_bodies, 0 + RandomHalf(40))
	AIparts:AddPeriodic("978a. Objective West", 40, func_978a__Objective_West, 0 + RandomHalf(40))
	AIparts:AddPeriodic("978b. Objective West cleared", 40, func_978b__Objective_West_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("979a. Objective East", 40, func_979a__Objective_East, 0 + RandomHalf(40))
	AIparts:AddPeriodic("979b. Objective East cleared", 40, func_979b__Objective_East_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("980a. Objective NorthWest", 40, func_980a__Objective_NorthWest, 0 + RandomHalf(40))
	AIparts:AddPeriodic("980b. Objective NorthWest cleared", 40, func_980b__Objective_NorthWest_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Camera position", 100, func_000__Camera_position, 50 + RandomHalf(100))
	AIparts:AddPeriodic("000. Camera position 2", 40, func_000__Camera_position_2, 40 + RandomHalf(40))
	AIparts:AddPeriodic("981b. Objective NorthEast cleared", 40, func_981b__Objective_NorthEast_cleared, 0 + RandomHalf(40))
	AIparts:AddPeriodic("981a. Objective NorthEast", 40, func_981a__Objective_NorthEast, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Artillery Present 1", 40, func_000__Artillery_Present_1, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Artillery Present 0", 40, func_000__Artillery_Present_0, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Artillery Present 2", 40, func_000__Artillery_Present_2, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. Luftwaffe airdrop", 40, func_000__Luftwaffe_airdrop, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015a. Variable Airraid", 40, func_015a__Variable_Airraid, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 2", 40, func_015b__Airraid_2, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 3", 40, func_015b__Airraid_3, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 4", 40, func_015b__Airraid_4, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 5", 40, func_015b__Airraid_5, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015b. Airraid 6", 40, func_015b__Airraid_6, 0 + RandomHalf(40))
	AIparts:AddPeriodic("015c. Airraid Berlin", 40, func_015c__Airraid_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Ev_1_Guards", 40, func_016b__Ev_1_Guards, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Ev_3_Guards", 40, func_016b__Ev_3_Guards, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Ev_28_Army", 40, func_016b__Ev_28_Army, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Ev_5_Shock", 40, func_016b__Ev_5_Shock, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016c. Attack_1 Berlin", 40, func_016c__Attack_1_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Ev_1_Guards Germaniastrasse", 40, func_016b__Ev_1_Guards_Germaniastrasse, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016b. Reinforcement Kriegsmarine", 40, func_016b__Reinforcement_Kriegsmarine, 0 + RandomHalf(40))
	AIparts:AddPeriodic("016. Variable attack_1", 40, func_016__Variable_attack_1, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_3_Shock", 40, func_026b__Ev_3_Shock, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026a. Variable attack_2 Berlin", 40, func_026a__Variable_attack_2_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_3_Shock_right", 40, func_026b__Ev_3_Shock_right, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_1_Guards_2", 40, func_026b__Ev_1_Guards_2, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_2_Guards_TA", 40, func_026b__Ev_2_Guards_TA, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_2_Guards_TA (2)", 40, func_026b__Ev_2_Guards_TA__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Ev_2_Guards_TA (3)", 40, func_026b__Ev_2_Guards_TA__3_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026c. Attack_2 Berlin", 40, func_026c__Attack_2_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("026b. Reinforcement Hitlerjugend", 40, func_026b__Reinforcement_Hitlerjugend, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_1_Guards_3", 40, func_036b__Ev_1_Guards_3, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_1_Guards_3 (2)", 40, func_036b__Ev_1_Guards_3__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036c. Attack_3 Berlin", 40, func_036c__Attack_3_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_8_Guards_B", 40, func_036b__Ev_8_Guards_B, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_3_Guards_Left", 40, func_036b__Ev_3_Guards_Left, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_3_Guards_Left (2)", 40, func_036b__Ev_3_Guards_Left__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036a. Variable attack_3 Berlin", 40, func_036a__Variable_attack_3_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_3_Shock_left", 40, func_036b__Ev_3_Shock_left, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_3_Shock_left (2)", 40, func_036b__Ev_3_Shock_left__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Ev_3_Shock_left (3)", 40, func_036b__Ev_3_Shock_left__3_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("036b. Reinforcement Hitlerjugend_Kroll", 40, func_036b__Reinforcement_Hitlerjugend_Kroll, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_8_Guards_B", 40, func_046b__Ev_8_Guards_B, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_8_Guards_B (2)", 40, func_046b__Ev_8_Guards_B__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046a. Variable attack_4 Berlin", 40, func_046a__Variable_attack_4_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_3_Shock", 40, func_046b__Ev_3_Shock, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_3_Shock (2)", 40, func_046b__Ev_3_Shock__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_3_Shock (3)", 40, func_046b__Ev_3_Shock__3_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_28_Army_2", 40, func_046b__Ev_28_Army_2, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_28_Army_2 (2)", 40, func_046b__Ev_28_Army_2__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_2_Guards_TA (B)", 40, func_046b__Ev_2_Guards_TA__B_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_2_Guards_TA (B) (2)", 40, func_046b__Ev_2_Guards_TA__B___2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Ev_2_Guards_TA (B) (3)", 40, func_046b__Ev_2_Guards_TA__B___3_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046c. Attack_4 Berlin", 40, func_046c__Attack_4_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("046b. Reinforcement Hitlerjugend_Reichstag", 40, func_046b__Reinforcement_Hitlerjugend_Reichstag, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056a. Variable attack_5 Berlin", 40, func_056a__Variable_attack_5_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056c. Attack_5 Berlin", 40, func_056c__Attack_5_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056b. Ev_1_Guards_4", 40, func_056b__Ev_1_Guards_4, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056b. Ev_2_Guards_TA (C)", 40, func_056b__Ev_2_Guards_TA__C_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("900. Special Colonel Herrmann killed", 40, func_900__Special_Colonel_Herrmann_killed, 0 + RandomHalf(40))
	AIparts:AddPeriodic("901. Special Gen Mummert killed", 40, func_901__Special_Gen_Mummert_killed, 0 + RandomHalf(40))
	AIparts:AddPeriodic("902. Special Gen Rauch killed", 40, func_902__Special_Gen_Rauch_killed, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056b. Ev_3_Guards_Left (2)", 40, func_056b__Ev_3_Guards_Left__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("056b. Ev_5_Shock (2)", 40, func_056b__Ev_5_Shock__2_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("100. Mines", 40, func_100__Mines, 0 + RandomHalf(40))
	AIparts:AddOneTime("000. Create Mortar Presets", 20, func_000__Create_Mortar_Presets)
	AIparts:AddPeriodic("977c. Objective South counterattack", 40, func_977c__Objective_South_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("980c. Objective NorthWest counterattack", 40, func_980c__Objective_NorthWest_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("978c. Objective West counterattack", 40, func_978c__Objective_West_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("976c. Objective North counterattack", 40, func_976c__Objective_North_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("981c. Objective NorthEast counterattack", 40, func_981c__Objective_NorthEast_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("979c. Objective East counterattack", 40, func_979c__Objective_East_counterattack, 0 + RandomHalf(40))
	AIparts:AddPeriodic("101. Mines", 40, func_101__Mines, 0 + RandomHalf(40))
	AIparts:AddPeriodic("102. Mines", 40, func_102__Mines, 0 + RandomHalf(40))
	AIparts:AddPeriodic("200. Ministerium des Innens taken", 40, func_200__Ministerium_des_Innens_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("201. Reichstag taken", 40, func_201__Reichstag_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("990. Attack_6 Berlin", 40, func_990__Attack_6_Berlin, 0 + RandomHalf(40))
	AIparts:AddPeriodic("991. Ev. Status Berlin Reichstag", 40, func_991__Ev__Status_Berlin_Reichstag, 0 + RandomHalf(40))
	AIparts:AddPeriodic("992. Ev. Status Berlin Reichskanzlei", 40, func_992__Ev__Status_Berlin_Reichskanzlei, 0 + RandomHalf(40))
	AIparts:AddPeriodic("993. Ev. Status Berlin Kroll Opera", 40, func_993__Ev__Status_Berlin_Kroll_Opera, 0 + RandomHalf(40))
	AIparts:AddPeriodic("202. Opera Kroll taken", 40, func_202__Opera_Kroll_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("903. Special Gen Mohnke killed", 40, func_903__Special_Gen_Mohnke_killed, 0 + RandomHalf(40))
	AIparts:AddPeriodic("904. Special Gen Krukenberg killed", 40, func_904__Special_Gen_Krukenberg_killed, 0 + RandomHalf(40))
	AIparts:AddPeriodic("905. Special Berlin Parc empty", 40, func_905__Special_Berlin_Parc_empty, 0 + RandomHalf(40))
	AIparts:AddPeriodic("203. Flakturm I taken", 40, func_203__Flakturm_I_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("204. Flakturm II taken", 40, func_204__Flakturm_II_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("205. Flakturm III taken", 40, func_205__Flakturm_III_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("206. Alexanderplatz taken", 40, func_206__Alexanderplatz_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("207.Tempelhof taken", 40, func_207_Tempelhof_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("208. KW Gedächtnis-Kirche taken", 40, func_208__KW_Ged_chtnis_Kirche_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("209. KH Robert Koch taken", 40, func_209__KH_Robert_Koch_taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("210. Anhalter Bahnhof Taken", 40, func_210__Anhalter_Bahnhof_Taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("211. Lehrter Bahnhof Taken", 40, func_211__Lehrter_Bahnhof_Taken, 0 + RandomHalf(40))
	AIparts:AddPeriodic("001c. Presentation", 40, func_001c__Presentation, 0 + RandomHalf(40))
	AIparts:AddPeriodic("994. Ev. Status Berlin Tempelhof", 40, func_994__Ev__Status_Berlin_Tempelhof, 0 + RandomHalf(40))
	AIparts:AddPeriodic("995. Ev. Status Berlin Berlin Parc", 40, func_995__Ev__Status_Berlin_Berlin_Parc, 0 + RandomHalf(40))
	AIparts:AddPeriodic("996. Ev. Status Berlin Ministerium", 40, func_996__Ev__Status_Berlin_Ministerium, 0 + RandomHalf(40))
	AIparts:AddPeriodic("997. Ev. Ministerium", 40, func_997__Ev__Ministerium, 0 + RandomHalf(40))
	AIparts:AddPeriodic("998. Ev. Status Berlin Humboldhain", 40, func_998__Ev__Status_Berlin_Humboldhain, 0 + RandomHalf(40))
	AIparts:AddPeriodic("981d. Event NorthEast ", 40, func_981d__Event_NorthEast_, 0 + RandomHalf(40))
	AIparts:AddPeriodic("976d. Event North", 40, func_976d__Event_North, 0 + RandomHalf(40))
	AIparts:AddPeriodic("977d. EventSouth", 40, func_977d__EventSouth, 0 + RandomHalf(40))
	AIparts:AddPeriodic("978d. Event West", 40, func_978d__Event_West, 0 + RandomHalf(40))
	AIparts:AddPeriodic("980d. Event NorthWest", 40, func_980d__Event_NorthWest, 0 + RandomHalf(40))
	AIparts:AddPeriodic("979d. Event East", 40, func_979d__Event_East, 0 + RandomHalf(40))
	AIparts:AddPeriodic("999a. Ev. Status Berlin Wedding", 40, func_999a__Ev__Status_Berlin_Wedding, 0 + RandomHalf(40))
	AIparts:AddPeriodic("000. May 5th 1945", 40, func_000__May_5th_1945, 0 + RandomHalf(40))
	msd_vars = {
		VarAirraid = 0,
		VarAttackA = 0,
		VarAttackB = 0,
		VarAttackC = 0,
		VarAttackD = 0,
		VarAttackE = 0,
		VarHerrman_ID = 0,
		VarHerrmanAlive = true,
		VarHitler_ID = 0,
		VarHitlerAlive = true,
		VarKrukenberg_ID = 0,
		VarKrukenbergAlive = true,
		VarMohnke_ID = 0,
		VarMohnkeAlive = true,
		VarMummert_ID = 0,
		VarMummertAlive = true,
		VarObjective = 0,
		VarRauch_ID = 0,
		VarRauchAlive = true,
		VarWeidling_ID = 0,
		VarWeidlingAlive = true,
	}
end

function func_000__Presets_airplanes()
	do
		SetPlaneDesc("ussr", "transport", "ussr/li_2.dsc")
		SetPlaneDesc("ussr", "extra", "ussr/il_2.dsc")
		SetPlaneDesc("ussr", "fighter", "ussr/yak_9t.dsc")
		SetPlaneDesc("ussr", "bomber", "ussr/pe_2.dsc")
		SetPlaneDesc("ussr", "scout", "ussr/po_2.dsc")
		SetPlaneDesc("germany", "strike_fighter", "German/fw_190_bomber.dsc")
		SetPlaneDesc("germany", "transport", "German/ju_52.dsc")
		SetPlaneSide(1, "S")
		SetPlaneSide(2, "N")
	end
end

function func_015b__Airraid_1()
	if IsEventPresent("EvAirraid_1") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_a1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_a2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_a3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_a4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_a5", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 1")
	end
end

function func_010c__Train_in_Lehrter_Bahnhof()
	if NumPlayerUnitsInZoneByType("Allied", "Bahnhof_Lehrter", 22) > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Lehrter1", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Lehrter2", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  mission.OutScreenMessage(100040, 5, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  MoveGroupTo("Train_Lehrter", {"BF_Lehrter", }, {"BF_Tiergarten", }, {}, false, false, "", false, 30) end)
		AIparts:RemovePeriodic("010c. Train in Lehrter Bahnhof")
	end
end

function func_010d__Train_in_Tiergarten_Bahnhof()
	if NumPlayerUnitsInZoneByType("Allied", "Bahnhof_Tiergarten", 22) > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Tiergarten1", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  mission.OutScreenMessage(100041, 5, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  MoveGroupTo("Train_Lehrter", {"BF_Tiergarten", }, {"BF_EndOfTrack", }, {}, false, false, "", true, 30) end)
		AIparts:RemovePeriodic("010d. Train in Tiergarten Bahnhof")
	end
end

function func_010a__Train_to_Friedrichstrasse_Bahnhof()
	if IsEventPresent("EvTrainReleaseLehrter") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  mission.OutScreenMessage(100042, 5, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  RunSpawn("Allied", {"German_train", }, "Train_Lehrter", "Train_Lehrter", "Train_Lehrter", false, false, {{dislocation="BF_Friedrichstrasse", }, }, false, 50) end)
		AIparts:RemovePeriodic("010a. Train to Friedrichstrasse Bahnhof")
	end
end

function func_011b__Train_in_Anhalter_Bahnhof()
	if NumPlayerUnitsInZoneByType("Allied", "Bahnhof_Anhalter", 22) > 0 then
		SetEvent("EvTrainAnhaltBahnhof")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Anhalter1", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Anhalter2", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  mission.OutScreenMessage(100038, 5, "0xFFFFFFFF") end)
		AIparts:RemovePeriodic("011b. Train in Anhalter Bahnhof")
	end
end

function func_011a__Train_to_Anhalter_Bahnhof()
	if IsEventPresent("EvTrainReleaseLehrter") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Allied", {"German_train", }, "Train_Anhalter", "Train_Anhalter", "Train_Anhalter", false, false, {{dislocation="BF_Anhalter", }, }, false, 50) end)
		AIparts:RemovePeriodic("011a. Train to Anhalter Bahnhof")
	end
end

function func_010b__Train_in_Friedrichstrasse_Bahnhof()
	if NumPlayerUnitsInZoneByType("Allied", "Bahnhof_Friedrichstrasse", 22) > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SpawnAmmoFuel("ammo_4000.dsc", {"Ammo_Friedrich1", }, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  mission.OutScreenMessage(100039, 5, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  MoveGroupTo("Train_Lehrter", {"BF_Friedrichstrasse", }, {"BF_Lehrter", }, {}, false, false, "", false, 30) end)
		AIparts:RemovePeriodic("010b. Train in Friedrichstrasse Bahnhof")
	end
end

function func_011c__Train_in_Anhalter_Bahnhof_EoT()
	if IsEventPresent("EvTrainAnhaltBahnhof") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  MoveGroupTo("Train_Anhalter", {"BF_Anhalter", }, {"BF_EndOfTrack_2", }, {}, false, false, "", true, 5) end)
		AIparts:RemovePeriodic("011c. Train in Anhalter Bahnhof EoT")
	end
end

function func_009a__Attack_End_of_Traintrack()
	if NumPlayerUnitsInZone("Player", "EndOfTrack") > 0 and NumPlayerUnitsInZone("Enemy", "EndOfTrack") < 1 then
		SetEvent("EvTrainReleaseLehrter")
		AIparts:RemovePeriodic("009a. Attack End of Traintrack")
	end
end

function func_009b__Attack_End_of_Traintrack_T34()
	if NumPlayerUnitsInZone("Player", "EndOfTrack") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_T34_76", "Russian_T34_76", }, "EndofTrackTrain", "X_Russian_TrainForce", "X_Russian_TrainForce", false, false, {{dislocation="LehrterTrain", }, }, false, 50) end)
		AIparts:RemovePeriodic("009b. Attack End of Traintrack T34")
	end
end

function func_000__If_group_see_enemy_now()
	if GroupSeeEnemyNow("8_Guards_A") then
		UnloadTransports("8_Guards_A")
	end
	if GroupSeeEnemyNow("3_Guards_TA") then
		UnloadTransports("3_Guards_TA")
	end
	if GroupSeeEnemyNow("5_Shock") then
		UnloadTransports("5_Shock")
	end
	if GroupSeeEnemyNow("28_Army") then
		UnloadTransports("28_Army")
	end
	if GroupSeeEnemyNow("3_Shock") then
		UnloadTransports("3_Shock")
	end
	if GroupSeeEnemyNow("3_Shock_right") then
		UnloadTransports("3_Shock_right")
	end
	if GroupSeeEnemyNow("3_Shock_left") then
		UnloadTransports("3_Shock_left")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_South") then
		UnloadTransports("X_Russian_Obj_South")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_North") then
		UnloadTransports("X_Russian_Obj_North")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_East") then
		UnloadTransports("X_Russian_Obj_East")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_NorthWest") then
		UnloadTransports("X_Russian_Obj_NorthWest")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_West") then
		UnloadTransports("X_Russian_Obj_West")
	end
	if GroupSeeEnemyNow("X_Russian_Obj_NorthEast") then
		UnloadTransports("X_Russian_Obj_NorthEast")
	end
	if GroupSeeEnemyNow("2_Guards_extra") then
		UnloadTransports("2_Guards_extra")
	end
end

function func_016a__Variable_attack_1_Berlin()
	do
		msd_vars.VarAttackA = RandomHalf(100)
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAttackA <= 25 then
		SetEvent("EvAttack_1")
		AIparts:RemovePeriodic("016a. Variable attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAttackA > 25 and msd_vars.VarAttackA <= 50 then
		SetEvent("EvAttack_2")
		AIparts:RemovePeriodic("016a. Variable attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAttackA > 50 and msd_vars.VarAttackA <= 75 then
		SetEvent("EvAttack_3")
		AIparts:RemovePeriodic("016a. Variable attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAttackA > 75 and msd_vars.VarAttackA <= 100 then
		SetEvent("EvAttack_4")
		AIparts:RemovePeriodic("016a. Variable attack_1 Berlin")
	end
end

function func_975__Variable_objectives()
	do
		msd_vars.VarObjective = RandomHalf(120)
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective <= 20 then
		AcivateObjective("North")
		SetEvent("EvObjectiveNorth")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective > 20 and msd_vars.VarObjective <= 40 then
		AcivateObjective("South")
		SetEvent("EvObjectiveSouth")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective > 40 and msd_vars.VarObjective <= 60 then
		AcivateObjective("West")
		SetEvent("EvObjectiveWest")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective > 60 and msd_vars.VarObjective <= 80 then
		AcivateObjective("East")
		SetEvent("EvObjectiveEast")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective > 80 and msd_vars.VarObjective <= 100 then
		AcivateObjective("NorthWest")
		SetEvent("EvObjectiveNorthWest")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
	if IsEventPresent("EvHitlerDead") and msd_vars.VarObjective > 100 and msd_vars.VarObjective <= 120 then
		AcivateObjective("NorthEast")
		SetEvent("EvObjectiveNorthEast")
		AIparts:RemovePeriodic("975. Variable objectives")
	end
end

function func_002a__Hitler_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarHitler_ID = (34947)
		LogVariable("VarHitler_ID = ", msd_vars.VarHitler_ID)
		SetEvent("EvHitlerArrived")
	end
end

function func_002b__Hitler_is_Killed()
	if IsEventPresent("EvHitlerArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarHitlerAlive = para.IsUnitDead(msd_vars.VarHitler_ID, "Allied")
		LogVariable("VarHitlerAlive = ", msd_vars.VarHitlerAlive)
	end
	if IsEventPresent("EvHitlerArrived") and not msd_vars.VarHitlerAlive then
		log("HitlerDead")
		SetEvent("EvHitlerKilled")
		AIparts:RemovePeriodic("002b. Hitler is Killed")
	end
end

function func_002c__EvHitlerKilled()
	if IsEventPresent("EvHitlerKilled") and IsObjectiveCompleted("30APRIL1945", "Player") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100014, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetEvent("EvHitlerDead") end)
		AIparts:RemovePeriodic("002c. EvHitlerKilled")
	end
	if IsEventPresent("EvHitlerKilled") and not IsObjectiveCompleted("30APRIL1945", "Player") then
		mission.OutScreenMessage(100015, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetEvent("EvHitlerDead2") end)
		AIparts:RemovePeriodic("002c. EvHitlerKilled")
	end
end

function func_000__Win_or_Loose()
	if IsEventPresent("EvHitlerDead2") then
		PlayerDefeat("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("North", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("South", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("West", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("East", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("NorthWest", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
	if IsObjectiveCompleted("NorthEast", "Player") then
		PlayerWin("Player")
		AIparts:RemovePeriodic("000. Win or Loose")
	end
end

function func_000__Clock()
	if IsEventPresent("EvAttack_1") or IsEventPresent("EvAttack_2") or IsEventPresent("EvAttack_3") or IsEventPresent("EvAttack_4") then
		AcivateObjective("30APRIL1945")
		ProceedObjective("30APRIL1945", "Player")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 18001*10, function()  SetObjectiveComplete("30APRIL1945", "Player") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25200*10, function()  mission.OutScreenMessage(100078, 30, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 28800*10, function()  mission.OutScreenMessage(100079, 30, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 32600*10, function()  mission.OutScreenMessage(100080, 30, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 36000*10, function()  SetEvent("EvMay5th") end)
		AIparts:RemovePeriodic("000. Clock")
	end
end

function func_003a__Weidling_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarWeidling_ID = (34694)
		LogVariable("VarWeidling_ID = ", msd_vars.VarWeidling_ID)
		SetEvent("EvWeidlingArrived")
	end
end

function func_004a__Rauch_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarRauch_ID = (38464)
		LogVariable("VarRauch_ID = ", msd_vars.VarRauch_ID)
		SetEvent("EvRauchArrived")
	end
end

function func_005a__Mummert_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarMummert_ID = (38610)
		LogVariable("VarMummert_ID = ", msd_vars.VarMummert_ID)
		SetEvent("EvMummertArrived")
	end
end

function func_006a__Herrman_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarHerrman_ID = (38270)
		LogVariable("VarHerrman_ID = ", msd_vars.VarHerrman_ID)
		SetEvent("EvHerrmanArrived")
	end
end

function func_007a__Krukenberg_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarKrukenberg_ID = (27578)
		LogVariable("VarKrukenberg_ID = ", msd_vars.VarKrukenberg_ID)
		SetEvent("EvKrukenbergArrived")
	end
end

function func_003b__Weidling_is_killed()
	if IsEventPresent("EvWeidlingArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarWeidlingAlive = para.IsUnitDead(msd_vars.VarWeidling_ID, "Player")
		LogVariable("VarWeidlingAlive = ", msd_vars.VarWeidlingAlive)
	end
	if IsEventPresent("EvWeidlingArrived") and not msd_vars.VarWeidlingAlive then
		log("WeidlingDead")
		SetEvent("EvMay5th")
		AIparts:RemovePeriodic("003b. Weidling is killed")
	end
end

function func_003c__EvWeidlingKilled()
	if IsEventPresent("EvMay5th") then
		mission.OutScreenMessage(100016, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetEvent("EvHitlerDead2") end)
		AIparts:RemovePeriodic("003c. EvWeidlingKilled")
	end
end

function func_004c__EvRauchKilled()
	if IsEventPresent("EvRauchKilled") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100017, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SetEvent("EvRauchKilled_Attack") end)
		AIparts:RemovePeriodic("004c. EvRauchKilled")
	end
end

function func_004b__Rauch_is_killed()
	if IsEventPresent("EvRauchArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarRauchAlive = para.IsUnitDead(msd_vars.VarRauch_ID, "Player")
		LogVariable("VarRauchAlive = ", msd_vars.VarRauchAlive)
	end
	if IsEventPresent("EvRauchArrived") and not msd_vars.VarRauchAlive then
		log("RauchDead")
		SetEvent("EvRauchKilled")
		AIparts:RemovePeriodic("004b. Rauch is killed")
	end
end

function func_005b__Mummert_is_killed()
	if IsEventPresent("EvMummertArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarMummertAlive = para.IsUnitDead(msd_vars.VarMummert_ID, "Player")
		LogVariable("VarMummertAlive = ", msd_vars.VarMummertAlive)
	end
	if IsEventPresent("EvMummertArrived") and not msd_vars.VarMummertAlive then
		log("MummertDead")
		SetEvent("EvMummertKilled")
		AIparts:RemovePeriodic("005b. Mummert is killed")
	end
end

function func_005c__EvMummerkilled()
	if IsEventPresent("EvMummertKilled") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100018, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SetEvent("EvMummertKilled_Attack") end)
		AIparts:RemovePeriodic("005c. EvMummerkilled")
	end
end

function func_006b__Herrman_is_killed()
	if IsEventPresent("EvHerrmanArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarHerrmanAlive = para.IsUnitDead(msd_vars.VarHerrman_ID, "Player")
		LogVariable("VarHerrmanAlive = ", msd_vars.VarHerrmanAlive)
	end
	if IsEventPresent("EvHerrmanArrived") and not msd_vars.VarHerrmanAlive then
		log("HerrmantDead")
		SetEvent("EvHerrmanKilled")
		AIparts:RemovePeriodic("006b. Herrman is killed")
	end
end

function func_006c__EvHerrmanKilled()
	if IsEventPresent("EvHerrmanKilled") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100019, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetEvent("EvHerrmanKilled_Attack") end)
		AIparts:RemovePeriodic("006c. EvHerrmanKilled")
	end
end

function func_007b__Krukenberg_is_killed()
	if IsEventPresent("EvKrukenbergArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarKrukenbergAlive = para.IsUnitDead(msd_vars.VarKrukenberg_ID, "Player")
		LogVariable("VarKrukenbergAlive = ", msd_vars.VarKrukenbergAlive)
	end
	if IsEventPresent("EvKrukenbergArrived") and not msd_vars.VarKrukenbergAlive then
		log("KrukenbergDead")
		SetEvent("EvKrukenbergKilled")
		AIparts:RemovePeriodic("007b. Krukenberg is killed")
	end
end

function func_007c__EvKrukenbergkilled()
	if IsEventPresent("EvKrukenbergKilled") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100020, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SetEvent("EvKrukenbergKilled_Attack") end)
		AIparts:RemovePeriodic("007c. EvKrukenbergkilled")
	end
end

function func_000__Airstrip_Tempelhof_()
	if NumGroupUnits("Tempolhof_Player", 0, false, false, false) > 0 and NumPlayerUnitsInZone("Player", "Tempelhof") < 2 then
		TransferUnits("Tempolhof_Player", 0, "Tempolhof_Enemy", 0)
		UpdateGroupCounters("Tempolhof_Enemy")
	end
	if NumGroupUnits("Tempolhof_Enemy", 0, false, false, false) > 0 and NumPlayerUnitsInZone("Player", "Tempelhof") > 1 then
		TransferUnits("Tempolhof_Enemy", 0, "Tempolhof_Player", 0)
		UpdateGroupCounters("Tempolhof_Player")
	end
end

function func_000__Airstrip_Charlottenburg()
	if NumGroupUnits("Airstrip_Player", 0, false, false, false) > 0 and NumPlayerUnitsInZone("Player", "Airstrip_Charlottenburg") < 2 and NumPlayerUnitsInZone("Enemy", "Airstrip_Charlottenburg") > 2 then
		TransferUnits("Airstrip_Player", 0, "Airstrip_Enemy", 0)
		UpdateGroupCounters("Airstrip_Enemy")
	end
	if NumGroupUnits("Airstrip_Enemy", 0, false, false, false) > 0 and NumPlayerUnitsInZone("Player", "Airstrip_Charlottenburg") > 1 and NumPlayerUnitsInZone("Enemy", "Airstrip_Charlottenburg") < 1 then
		TransferUnits("Airstrip_Enemy", 0, "Airstrip_Player", 0)
		UpdateGroupCounters("Airstrip_Player")
	end
end

function func_021__Arrival_Volkssturm()
	if GetGameTime() > 10000 then
		RunSpawn("Player", {"German_Volkssturm", }, "Kaserne_1", "Volkssturm", "", true, false, {}, false, 50)
		mission.OutScreenMessage(100082, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("021. Arrival Volkssturm")
	end
end

function func_950__Airraid_Factory_1_West()
	if GetGameTime() < 18000 and NumPlayerUnitsInZone("Player", "Factory_1_West") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SendPlane("Enemy", "Airraid_Factory1_West1", "bomber", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 61*10, function()  SendPlane("Enemy", "Airraid_Factory1_West2", "bomber", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SendPlane("Enemy", "Airraid_Factory1_West3", "bomber", "N", 10, -1, "") end)
		AIparts:RemovePeriodic("950. Airraid Factory 1 West")
	end
end

function func_951__Airraid_Factory_2_West()
	if GetGameTime() < 18000 and NumPlayerUnitsInZone("Player", "Factory_2_West") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SendPlane("Enemy", "Airraid_Factory2_West1", "bomber", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 61*10, function()  SendPlane("Enemy", "Airraid_Factory2_West2", "bomber", "N", 10, -1, "") end)
		AIparts:RemovePeriodic("951. Airraid Factory 2 West")
	end
end

function func_952__Airraid_Factory_3_West()
	if GetGameTime() < 18000 and NumPlayerUnitsInZone("Player", "Factory_3_West") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SendPlane("Enemy", "Airraid_Factory3_West1", "bomber", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 121*10, function()  SendPlane("Enemy", "Airraid_Factory3_West2", "bomber", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 122*10, function()  SendPlane("Enemy", "Airraid_Factory3_West3", "bomber", "N", 10, -1, "") end)
		AIparts:RemovePeriodic("952. Airraid Factory 3 West")
	end
	
end

function func_976a__Objective_North()
	if IsObjectiveActive("North") then
		mission.CameraLock(true)
		mission.CameraAt({5.475952, 2.998398, 903.529419}, 44.999992, 90.000000, 107.425690, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", }, "Obj_North_Inf", "X_Russian_Obj_North", "X_Russian_Obj_North", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100010, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_North_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_North_Mor", "X_Russian_Obj_North_Mor", "X_Russian_Obj_North_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_North", "Objective_North", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetGroupBehaviour("X_Russian_Obj_North", true, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_North_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:RemovePeriodic("976a. Objective North")
	end
end

function func_976b__Objective_North_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_North") < 1 and IsObjectiveActive("North") and NumPlayerUnitsInZone("Player", "Objective_North") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("North", "Player") end)
		AIparts:RemovePeriodic("976b. Objective North cleared")
	end
end

function func_977a__Objective_South()
	if IsObjectiveActive("South") then
		mission.CameraLock(true)
		mission.CameraAt({-208.085571, 2.998398, -969.249146}, 44.999992, -90.542442, 107.413750, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", }, "Obj_South_Inf", "X_Russian_Obj_South", "X_Russian_Obj_South", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100011, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_South_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_South_Mor", "X_Russian_Obj_South_Mor", "X_Russian_Obj_South_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_South", "Objective_South", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetGroupBehaviour("X_Russian_Obj_South", true, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_South_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:RemovePeriodic("977a. Objective South")
	end
end

function func_977b__Objective_South_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_South") < 1 and IsObjectiveActive("South") and NumPlayerUnitsInZone("Player", "Objective_South") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("South", "Player") end)
		AIparts:RemovePeriodic("977b. Objective South cleared")
	end
end

function func_008a__Mohnke_is_Arrived()
	do
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarMohnke_ID = (62139)
		LogVariable("VarMohnke_ID = ", msd_vars.VarMohnke_ID)
		SetEvent("EvMohnkeArrived")
		AIparts:RemovePeriodic("008a. Mohnke is Arrived")
	end
end

function func_008b__Mohnke_is_killed()
	if IsEventPresent("EvMohnkeArrived") then
		dofile("Missions/Single/Berlin 1945/para2.lua")
		msd_vars.VarMohnkeAlive = para.IsUnitDead(msd_vars.VarMohnke_ID, "Player")
		LogVariable("VarMohnkeAlive = ", msd_vars.VarMohnkeAlive)
	end
	if IsEventPresent("EvMohnkeArrived") and not msd_vars.VarMohnkeAlive then
		log("MohnkeDead")
		SetEvent("EvMohnkeKilled")
		AIparts:RemovePeriodic("008b. Mohnke is killed")
	end
end

function func_008c__EvMohnkekilled()
	if IsEventPresent("EvMohnkeKilled") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100021, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SetEvent("EvMohnkeKilled_Attack") end)
		AIparts:RemovePeriodic("008c. EvMohnkekilled")
	end
end

function func_974__Kill_Hitler()
	if IsObjectiveCompleted("30APRIL1945", "Player") then
		Bombardment("KillHitler", 1, 3, 6, 30)
		AIparts:RemovePeriodic("974. Kill Hitler")
	end
end

function func_001a__Presentation()
	if GetGameTime() > 0 then
		SetEvent("EvPresentation")
		AIparts:RemovePeriodic("001a. Presentation")
	end
end

function func_001b__Presentation()
	if IsEventPresent("EvPresentation") then
		mission.CameraLock(true)
		mission.OutScreenMessage(100061, 10, "0xFFFFFFFF")
		mission.CameraAt({-326.338287, 3.003314, 202.326675}, 44.999992, 131.249557, 42.487072, 5.00)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100025, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  mission.CameraAt({757.408447, 2.998398, -434.724854}, 44.999992, -88.070496, 36.637150, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  mission.OutScreenMessage(100024, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  mission.CameraAt({445.326874, 2.998398, -816.676086}, 44.999992, -90.800613, 63.679485, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100023, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 45*10, function()  mission.CameraAt({244.141403, 2.998398, -542.173767}, 44.999992, 85.491508, 42.517723, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  mission.OutScreenMessage(100026, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  mission.CameraAt({48.294720, 2.998398, -219.315918}, 44.999992, -1.921219, 30.000002, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 65*10, function()  mission.OutScreenMessage(100027, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  mission.CameraAt({-201.923569, 2.998398, -554.190674}, 45.000000, 178.534714, 30.000023, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 80*10, function()  mission.OutScreenMessage(100022, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 90*10, function()  mission.CameraAt({170.414429, 2.998398, -425.254517}, 44.999992, -1.921219, 30.000011, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 95*10, function()  mission.OutScreenMessage(100028, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 105*10, function()  mission.CameraAt({146.879639, 2.998398, -362.746735}, 44.999992, 1.709834, 31.708462, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 110*10, function()  mission.OutScreenMessage(100029, 5, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 111*10, function()  TransferUnits("Deserter", 0, "Deserter1", 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  mission.CameraAt({847.662109, 2.998398, -964.624146}, 44.999992, 89.744827, 124.328438, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 125*10, function()  mission.OutScreenMessage(100033, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  mission.CameraAt({917.896057, 2.998398, -317.253998}, 44.999992, -5.580440, 110.194328, 5.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  mission.OutScreenMessage(100037, 15, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 155*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 165*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 166*10, function()  AddBonus(1, 6, 1, 100001, -1) end)
		AIparts:RemovePeriodic("001b. Presentation")
	end
end

function func_000__Create_dead_bodies()
	if GetGameTime() > 4 then
		local g = mission.Groups["Dead_Bodies"]; for _,u in pairs(g.UnitList) do u:Die() end  
		AIparts:RemovePeriodic("000. Create dead bodies")
	end
end

function func_978a__Objective_West()
	if IsObjectiveActive("West") then
		mission.CameraLock(true)
		mission.CameraAt({926.971252, 2.998398, 516.456604}, 44.999992, -1.299503, 127.821823, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", }, "Obj_West_Inf", "X_Russian_Obj_West", "X_Russian_Obj_West", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100012, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_West_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_West_Mor", "X_Russian_Obj_West_Mor", "X_Russian_Obj_West_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_West", "Objective_West", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetGroupBehaviour("X_Russian_Obj_West", true, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_West_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:RemovePeriodic("978a. Objective West")
	end
end

function func_978b__Objective_West_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_West") < 1 and IsObjectiveActive("West") and NumPlayerUnitsInZone("Player", "Objective_West") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("West", "Player") end)
		AIparts:RemovePeriodic("978b. Objective West cleared")
	end
end

function func_979a__Objective_East()
	if IsObjectiveActive("East") then
		mission.CameraLock(true)
		mission.CameraAt({-906.543457, 2.998398, 471.270020}, 45.000000, 178.922974, 161.243134, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", }, "Obj_East_Inf", "X_Russian_Obj_East", "X_Russian_Obj_East", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100013, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_East_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_East_Mor", "X_Russian_Obj_East_Mor", "X_Russian_Obj_East_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_East", "Objective_East", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetGroupBehaviour("X_Russian_Obj_East", true, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_East_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:RemovePeriodic("979a. Objective East")
	end
end

function func_979b__Objective_East_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_East") < 1 and IsObjectiveActive("East") and NumPlayerUnitsInZone("Player", "Objective_East") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("East", "Player") end)
		AIparts:RemovePeriodic("979b. Objective East cleared")
	end
end

function func_980a__Objective_NorthWest()
	if IsObjectiveActive("NorthWest") then
		mission.CameraLock(true)
		mission.CameraAt({923.139404, 2.998398, 933.447693}, 44.999992, 90.654327, 133.105820, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Army", "Russian_Inf_Army", "Russian_Inf_Army", }, "Obj_NorthWest_Inf", "X_Russian_Obj_NorthWest", "X_Russian_Obj_NorthWest", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100032, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthWest_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_NorthWest_Mor", "X_Russian_Obj_NorthWest_Mor", "X_Russian_Obj_NorthWest_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_NorthWest", "Objective_NorthWest", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SetGroupBehaviour("X_Russian_Obj_NorthWest", true, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_NorthWest_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:RemovePeriodic("980a. Objective NorthWest")
	end
end

function func_980b__Objective_NorthWest_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_NorthWest") < 1 and IsObjectiveActive("NorthWest") and NumPlayerUnitsInZone("Player", "Objective_NorthWest") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("NorthWest", "Player") end)
		AIparts:RemovePeriodic("980b. Objective NorthWest cleared")
	end
end

function func_000__Camera_position()
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_North") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({847.662109, 2.998398, -964.624146}, 44.999992, 89.744827, 124.328438, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_South") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({847.662109, 2.998398, -964.624146}, 44.999992, -89.991493, 124.327980, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_West") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({847.662109, 2.998398, -964.624146}, 44.999989, 0.000000, 124.327705, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_East") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({847.662109, 2.998398, -964.624146}, 44.999992, -178.936874, 124.327972, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_NorthEast") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({828.924255, 2.998398, -954.857117}, 44.999992, 132.883011, 99.496017, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_NorthWest") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({855.445679, 2.998398, -959.532227}, 44.999989, 55.454601, 92.344177, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_SouthEast") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({845.964966, 2.998398, -966.873535}, 45.000000, -144.452637, 92.344208, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
	if GetGameTime() < 50000 and NumGroupUnitsInZone("Camera_operator", "Camera_SouthWest") > 0 then
		TransferUnits("Camera_operator", 0, "Camera_operator2", 0)
		mission.CameraLock(true)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  mission.CameraAt({845.436157, 2.998398, -981.908203}, 44.999992, -49.267094, 92.344246, 2.00) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  UpdateGroupCounters("Camera_operator2") end)
	end
end

function func_000__Camera_position_2()
	if NumGroupUnitsInZone("Camera_operator2", "Camera_Neutral") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  TransferUnits("Camera_operator2", 0, "Camera_operator", 0) end)
		UpdateGroupCounters("Camera_operator")
	end
end

function func_981b__Objective_NorthEast_cleared()
	if NumPlayerUnitsInZone("Enemy", "Objective_NorthEast") < 1 and IsObjectiveActive("NorthEast") and NumPlayerUnitsInZone("Player", "Objective_NorthEast") > 0 then
		mission.OutScreenMessage(100031, 20, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  SetObjectiveComplete("NorthEast", "Player") end)
		AIparts:RemovePeriodic("981b. Objective NorthEast cleared")
	end
end

function func_981a__Objective_NorthEast()
	if IsObjectiveActive("NorthEast") then
		mission.CameraLock(true)
		mission.CameraAt({-817.612793, 2.922108, 893.360352}, 44.999989, 86.229500, 124.507103, 5.00)
		RunSpawn("Enemy", {"Russian_Inf_Army", "Russian_Inf_Army", "Russian_Inf_Army", }, "Obj_NorthEast_Inf", "X_Russian_Obj_NorthEast", "X_Russian_Obj_NorthEast", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Zis_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Zis_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  mission.OutScreenMessage(100000, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  AddBonus(1, 6, 1, 100034, -1) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Zis_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Zis_4", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Zis_5", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Mor_1", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Mor_2", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SpawnUnit("Mods/Berlin/57mm_zis2.dsc", "Enemy", {"Obj_NorthEast_Mor_3", }, true) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  mission.CameraLock(false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  RunSpawn("Enemy", {"Russian_Mortar_120", "Russian_Mortar_120", "Russian_Mortar_120", }, "Obj_NorthEast_Mor", "X_Russian_Obj_NorthEast_Mor", "X_Russian_Obj_NorthEast_Mor", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_NorthEast", "Objective_NorthEast", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SetGroupBehaviour("X_Russian_Obj_NorthEast_Mor", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  SetGroupBehaviour("X_Russian_Obj_NorthEast", true, true, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:RemovePeriodic("981a. Objective NorthEast")
	end
end

function func_000__Artillery_Present_1()
	if IsEventPresent("EvArtillery_Present") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  RunSpawn("Enemy", {"Russian_Supply", "Russian_Supply", "Russian_Supply", }, "Artillery_Present", "X_Russian_Soccer_Supply", "X_Russian_Soccer_Supply", false, false, {{dislocation="Berlin_Soccerfield", }, }, false, 20) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_Gaz_AA", }, "Artillery_Present", "", "", false, false, {{dislocation="Berlin_Soccerfield", }, }, false, 20) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  RunSpawn("Enemy", {"Russian_152mm_Arty", "Russian_152mm_Arty", "Russian_152mm_Arty", "Russian_152mm_Arty", "Russian_152mm_Arty", }, "Artillery_Present", "X_Russian_Soccer_Arty", "X_Russian_Soccer_Arty", false, false, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetGroupBehaviour("X_Russian_Soccer_Arty", nil, nil, nil, nil, nil, nil, nil, true, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 122*10, function()  SetGroupBehaviour("X_Russian_Soccer_Supply", nil, nil, nil, nil, nil, true, true, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  SetEvent("EvArtillery_Fire") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  mission.OutScreenMessage(100035, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2000*10, function()  SendPlane("Enemy", "Berlin_Soccerfield", "transport", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3000*10, function()  SendPlane("Enemy", "Berlin_Soccerfield", "transport", "N", 2, -1, "") end)
		AIparts:RemovePeriodic("000. Artillery Present 1")
	end
end

function func_000__Artillery_Present_0()
	if IsEventPresent("EvSoccerfield_Industry3") then
		SetEvent("EvArtillery_Present")
		AIparts:RemovePeriodic("000. Artillery Present 0")
	end
end

function func_000__Artillery_Present_2()
	if IsEventPresent("EvArtillery_Fire") and GetGameTime() < 18000 then
		SetGroupBehaviour("X_Russian_Soccer_Arty", nil, nil, nil, nil, nil, true, nil, true, nil, nil)
		SetGroupBehaviour("X_Russian_Soccer_Supply", nil, nil, nil, nil, nil, true, true, nil, nil, nil)
		GroupAttackPlace("X_Russian_Soccer_Arty", "Berlin_Arty_point", 250)
		AIparts:UpdatePeriodic("000. Artillery Present 2", 900)
	end
end

function func_000__Luftwaffe_airdrop()
	if GetGameTime() > 5400 then
		AddBonus(1, 8, 1, -1, -1)
		mission.OutScreenMessage(100036, 10, "0xFF00FFFF")
		AIparts:UpdatePeriodic("000. Luftwaffe airdrop", 54000)
	end
end

function func_015a__Variable_Airraid()
	do
		msd_vars.VarAirraid = RandomHalf(120)
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAirraid <= 20 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_A") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAirraid > 20 and msd_vars.VarAirraid <= 40 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_B") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAirraid > 40 and msd_vars.VarAirraid <= 60 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_C") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarAirraid > 60 and msd_vars.VarAirraid <= 80 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_D") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarObjective > 80 and msd_vars.VarAirraid <= 100 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_E") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
	if IsEventPresent("EvAttack_1_Start") and msd_vars.VarObjective > 100 and msd_vars.VarAirraid <= 120 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAirraid_F") end)
		AIparts:RemovePeriodic("015a. Variable Airraid")
	end
end

function func_015b__Airraid_2()
	if IsEventPresent("EvAirraid_2") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_b1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_b2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_b3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_b4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_b5", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 2")
	end
end

function func_015b__Airraid_3()
	if IsEventPresent("EvAirraid_3") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_c1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_c2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_c3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_c4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_c5", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 3")
	end
end

function func_015b__Airraid_4()
	if IsEventPresent("EvAirraid_4") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_d1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_d2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_d3", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 4")
	end
end

function func_015b__Airraid_5()
	if IsEventPresent("EvAirraid_5") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_e1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_e2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_e3", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 5")
	end
end

function func_015b__Airraid_6()
	if IsEventPresent("EvAirraid_6") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_f1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2*10, function()  SendPlane("Enemy", "Airraid_f2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_f3", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("015b. Airraid 6")
	end
end

function func_015c__Airraid_Berlin()
	if IsEventPresent("EvAirraid_A") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
	if IsEventPresent("EvAirraid_B") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
	if IsEventPresent("EvAirraid_C") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
	if IsEventPresent("EvAirraid_D") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
	if IsEventPresent("EvAirraid_E") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
	if IsEventPresent("EvAirraid_F") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAirraid_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAirraid_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1080*10, function()  SetEvent("EvAirraid_5") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1540*10, function()  SetEvent("EvAirraid_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("EvAirraid_6") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2160*10, function()  SetEvent("EvAirraid_4") end)
		AIparts:RemovePeriodic("015c. Airraid Berlin")
	end
end

function func_016b__Ev_1_Guards()
	if IsEventPresent("Ev1Guards") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  mission.OutScreenMessage(100046, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "1_Guards", "1_Guards_TA", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 385*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 410*10, function()  RunSpawn("Enemy", {"Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "1_Guards", "1_Guards_TA", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 435*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 440*10, function()  SetEvent("Ev1Guards_Retreat") end)
		AIparts:RemovePeriodic("016b. Ev_1_Guards")
	end
end

function func_016b__Ev_3_Guards()
	if IsEventPresent("Ev3Guards") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_KWG_Kirche", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 26*10, function()  mission.OutScreenMessage(100044, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_T34_76_Guards", "Russian_T34_76_Guards", "Russian_T34_76_Guards", "Russian_BA_10_Guards", "Russian_BA_10_Guards", }, "3_Guards", "3_Guards_TA", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_KWG_Kirche", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 385*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85", "Russian_BA_10_Guards", "Russian_BA_10_Guards", }, "3_Guards", "3_Guards_TA", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_KWG_Kirche", true, false) end)
		AIparts:RemovePeriodic("016b. Ev_3_Guards")
	end
end

function func_016b__Ev_28_Army()
	if IsEventPresent("Ev28Army") then
		RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  mission.OutScreenMessage(100045, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_SU_85", "Russian_SU_85", "Russian_BA_10", "Russian_T34_76", "Russian_T34_76", "Russian_KV_1", "Russian_KV_1", }, "28_Army", "28_Army", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 380*10, function()  RunSpawn("Enemy", {"Russian_BA_10", "Russian_BA_10", "Russian_SU_85", "Russian_SU_85", "Russian_SU_85", "Russian_Halftrack", "Russian_Halftrack", }, "28_Army", "28_Army", "", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:RemovePeriodic("016b. Ev_28_Army")
	end
end

function func_016b__Ev_5_Shock()
	if IsEventPresent("Ev5Shock") then
		RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_SU_85", "Russian_SU_85", }, "5_Shock", "5_Shock", "5_Shock", true, true, {}, false, 0)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  mission.OutScreenMessage(100043, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_SU_85", "Russian_SU_85", }, "5_Shock", "5_Shock", "5_Shock", true, true, {}, false, 0) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 420*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:RemovePeriodic("016b. Ev_5_Shock")
	end
end

function func_016c__Attack_1_Berlin()
	if IsEventPresent("EvAttack_1") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev28Army") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev5Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev1Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvKriegsmarine") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100056, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_2_Start") end)
		AIparts:RemovePeriodic("016c. Attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_2") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev1Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev28Army") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev5Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvKriegsmarine") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100056, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_2_Start") end)
		AIparts:RemovePeriodic("016c. Attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_3") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev1Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev5Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev28Army") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvKriegsmarine") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100056, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_2_Start") end)
		AIparts:RemovePeriodic("016c. Attack_1 Berlin")
	end
	if IsEventPresent("EvAttack_4") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev5Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev28Army") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev1Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev3Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvKriegsmarine") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100056, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_2_Start") end)
		AIparts:RemovePeriodic("016c. Attack_1 Berlin")
	end
end

function func_016b__Ev_1_Guards_Germaniastrasse()
	if IsEventPresent("Ev1Guards_Retreat") then
		RunSpawn("Enemy", {"Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "1_Guards", "1_Guards_TA", "", false, false, {}, false, 10)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Germaniastrasse", false, false) end)
		AIparts:RemovePeriodic("016b. Ev_1_Guards Germaniastrasse")
	end
end

function func_016b__Reinforcement_Kriegsmarine()
	if IsEventPresent("EvKriegsmarine") then
		mission.OutScreenMessage(100000, 5, "0xFF000000")
		AddBonus(1, 6, 1, 100048, -1)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  RunSpawn("Player", {"German_Kriegsmarine", "German_Kriegsmarine", "German_Kriegsmarine", "German_Kriegsmarine", }, "Kriegsmarine", "Kriegsmarine", "Kriegsmarine", true, true, {{dislocation="Berlin_Tiergarten", }, }, false, 50) end)
		AIparts:RemovePeriodic("016b. Reinforcement Kriegsmarine")
	end
end

function func_016__Variable_attack_1()
	if GetGameTime() > 1680 or IsEventPresent("EvTrainReleaseLehrter") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  SetEvent("EvAttack_1_Start") end)
		AIparts:RemovePeriodic("016. Variable attack_1")
	end
end

function func_026b__Ev_3_Shock()
	if IsEventPresent("Ev3Shock") then
		RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_BA_10", "Russian_BA_10", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "3_Shock", "3_Shock", "3_Shock", true, true, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Berlin_Tiergarten", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "BF_Tiergarten", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  mission.OutScreenMessage(100051, 10, "0xFFFF0000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  MoveGroupToZone("3_Shock", "Berlin_Humboldhain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  MoveGroupToZone("3_Shock", "Berlin_Humboldhain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Halftrack", "Russian_Halftrack", "Russian_JSU_152", "Russian_JSU_152", "Russian_SU_76", "Russian_SU_76", }, "3_Shock", "3_Shock", "3_Shock", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  MoveGroupToZone("3_Shock", "Berlin_Humboldhain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 350*10, function()  MoveGroupToZone("3_Shock", "Berlin_Humboldhain", true, false) end)
		AIparts:RemovePeriodic("026b. Ev_3_Shock")
	end
end

function func_026a__Variable_attack_2_Berlin()
	do
		msd_vars.VarAttackB = RandomHalf(100)
	end
	if IsEventPresent("EvAttack_2_Start") and msd_vars.VarAttackB <= 25 then
		SetEvent("EvAttack_5")
		AIparts:RemovePeriodic("026a. Variable attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_2_Start") and msd_vars.VarAttackB > 25 and msd_vars.VarAttackB <= 50 then
		SetEvent("EvAttack_6")
		AIparts:RemovePeriodic("026a. Variable attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_2_Start") and msd_vars.VarAttackB > 50 and msd_vars.VarAttackB <= 75 then
		SetEvent("EvAttack_7")
		AIparts:RemovePeriodic("026a. Variable attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_2_Start") and msd_vars.VarAttackB > 75 and msd_vars.VarAttackB <= 100 then
		SetEvent("EvAttack_8")
		AIparts:RemovePeriodic("026a. Variable attack_2 Berlin")
	end
end

function func_026b__Ev_3_Shock_right()
	if IsEventPresent("Ev3Shock_right") then
		RunSpawn("Enemy", {"Russian_Katusha", }, "3_Shock_right", "Katyusha_1", "Katyusha_1", true, true, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  RunSpawn("Enemy", {"Russian_T70", "Russian_T70", "Russian_T70", "Russian_T70", "Russian_Halftrack", "Russian_Halftrack", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_JS_2_inf", }, "3_Shock_right", "3_Shock_right", "3_Shock_right", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  SetGroupBehaviour("Katyusha_1", nil, nil, nil, nil, nil, nil, true, true, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  GroupAttackPlace("Katyusha_1", "Berlin_Square_9FSJ", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 45*10, function()  DisappearUnitsInGroup("Katyusha_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  MoveGroupToZone("3_Shock_right", "Berlin_Square_9FSJ", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  MoveGroupToZone("3_Shock_right", "Berlin_Square_9FSJ", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  RunSpawn("Enemy", {"Russian_KV_1", "Russian_KV_1", "Russian_OT34", "Russian_OT34", "Russian_Halftrack", "Russian_Halftrack", "Russian_T34_76", "Russian_T34_76", "Russian_SU_76", "Russian_SU_76", }, "3_Shock_right", "3_Shock_right", "3_Shock_right", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 250*10, function()  MoveGroupToZone("3_Shock_right", "Berlin_Square_9FSJ", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 350*10, function()  MoveGroupToZone("3_Shock_right", "Berlin_Square_9FSJ", true, false) end)
		AIparts:RemovePeriodic("026b. Ev_3_Shock_right")
	end
end

function func_026b__Ev_1_Guards_2()
	if IsEventPresent("Ev1Guards_2") then
		RunSpawn("Enemy", {"Russian_Katusha", "Russian_Katusha", "Russian_Katusha", }, "1_Guards", "Katyusha_1", "Katyusha_1", false, false, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Tempelhof_airraid_1", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  MoveGroupToZone("Katyusha_1", "Special_Retreat_1Guards", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SendPlane("Enemy", "Tempelhof_airraid_2", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SendPlane("Enemy", "Tempelhof_airraid_3", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{assault="Tempelhof_Katyusha", }, }, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 55*10, function()  SetGroupBehaviour("Katyusha_1", nil, nil, nil, nil, nil, nil, true, true, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 57*10, function()  GroupAttackPlace("Katyusha_1", "Tempelhof_Katyusha", 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  GroupAttackPlace("Katyusha_1", "Tempelhof_Katyusha", 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 67*10, function()  GroupAttackPlace("Katyusha_1", "Tempelhof_Katyusha", 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  RunSpawn("Enemy", {"Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{assault="Tempelhof_Katyusha", }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 85*10, function()  DisappearUnitsInGroup("Katyusha_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 260*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{assault="Tempelhof_Katyusha", }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 285*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{assault="Tempelhof_Katyusha", }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 310*10, function()  RunSpawn("Enemy", {"Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{assault="Tempelhof_Katyusha", }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 390*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 450*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichstag", true, false) end)
		AIparts:RemovePeriodic("026b. Ev_1_Guards_2")
	end
end

function func_026b__Ev_2_Guards_TA()
	if IsEventPresent("Ev2Guards") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_T70", "Russian_T70", "Russian_BA_10_Guards", "Russian_Jeep_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", true, true, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Berlin_KrH_RobertKoch", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Berlin_KrH_RobertKoch", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Alt_Moabit", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 240*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Alt_Moabit", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 660*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_KrH_RobertKoch", true, false) end)
		AIparts:RemovePeriodic("026b. Ev_2_Guards_TA")
	end
end

function func_026b__Ev_2_Guards_TA__2_()
	if NumPlayerUnitsInZone("Player", "Berlin_KrH_RobertKoch") > 4 and NumPlayerUnitsInZone("Enemy", "Berlin_KrH_RobertKoch") > 0 and not IsEventPresent("Ev2Guards_3") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", true, true, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_KrH_RobertKoch", true, false) end)
		SetEvent("EvKrhRobertKoch")
		AIparts:RemovePeriodic("026b. Ev_2_Guards_TA (2)")
	end
end

function func_026b__Ev_2_Guards_TA__3_()
	if NumPlayerUnitsInZone("Player", "Berlin_KrH_RobertKoch") < 2 and NumPlayerUnitsInZone("Enemy", "Berlin_KrH_RobertKoch") > 5 and IsEventPresent("EvKrhRobertKoch") and not IsEventPresent("Ev2Guards_3") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Kleiner_Tiergarten", true, false) end)
		AIparts:RemovePeriodic("026b. Ev_2_Guards_TA (3)")
	end
end

function func_026c__Attack_2_Berlin()
	if IsEventPresent("EvAttack_5") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev1Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev2Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev3Shock_right") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100057, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_3_Start") end)
		AIparts:RemovePeriodic("026c. Attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_6") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Shock_right") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev2Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev1Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100057, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_3_Start") end)
		AIparts:RemovePeriodic("026c. Attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_7") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock_right") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev1Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev2Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100057, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_3_Start") end)
		AIparts:RemovePeriodic("026c. Attack_2 Berlin")
	end
	if IsEventPresent("EvAttack_8") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev2Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev1Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Shock_right") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev3Shock") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100057, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_3_Start") end)
		AIparts:RemovePeriodic("026c. Attack_2 Berlin")
	end
end

function func_026b__Reinforcement_Hitlerjugend()
	if IsEventPresent("EvHitlerjugend") then
		mission.OutScreenMessage(100052, 10, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  RunSpawn("Player", {"German_Hitlerjugend", "German_Hitlerjugend", "German_Hitlerjugend", "German_Hitlerjugend", "German_Hitlerjugend", }, "Prison", "Hitlerjugend", "Hitlerjugend", true, true, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 17*10, function()  TransferUnits("Hitlerjugend1", 0, "Hitlerjugend", 0) end)
		AIparts:RemovePeriodic("026b. Reinforcement Hitlerjugend")
	end
end

function func_036b__Ev_1_Guards_3()
	if IsEventPresent("Ev1Guards_3") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{unload_all=true, }, }, false, 10)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Tempelhof_airraid_1", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  SendPlane("Enemy", "Tempelhof_airraid_2", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SendPlane("Enemy", "Tempelhof_airraid_3", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 110*10, function()  RunSpawn("Enemy", {"Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  SetEvent("EvGuardsTempelhof") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 170*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{unload_all=true, }, }, false, 10) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 230*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("036b. Ev_1_Guards_3")
	end
end

function func_036b__Ev_1_Guards_3__2_()
	if IsEventPresent("EvGuardsTempelhof") and NumPlayerUnitsInZone("Enemy", "Tempelhof") > 0 then
		MoveGroupToZone("1_Guards_TA", "Berlin_Reichskanzlei", true, false)
		TransferUnits("Pzr_Div_18_Res", 0, "Pzr_Div_18", 0)
		mission.OutScreenMessage(100053, 10, "0xFFFFFFFF")
		RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {{dislocation="1stGuardsTA", }, }, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichskanzlei", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("036b. Ev_1_Guards_3 (2)")
	end
	if IsEventPresent("EvGuardsTempelhof") and NumPlayerUnitsInZone("Enemy", "Bahnhof_Anhalter") > 0 then
		MoveGroupToZone("8_Guards_A", "Berlin_Reichskanzlei", true, false)
		TransferUnits("Pzr_Div_18_Res", 0, "Pzr_Div_18", 0)
		mission.OutScreenMessage(100053, 10, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("036b. Ev_1_Guards_3 (2)")
	end
end

function func_036c__Attack_3_Berlin()
	if IsEventPresent("EvAttack_9") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev1Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Guards_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Shock_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev8Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Kroll") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100058, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_4_Start") end)
		AIparts:RemovePeriodic("036c. Attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_10") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev8Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Guards_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev1Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Kroll") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100058, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_4_Start") end)
		AIparts:RemovePeriodic("036c. Attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_11") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Shock_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev1Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev8Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev3Guards_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Kroll") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100058, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_4_Start") end)
		AIparts:RemovePeriodic("036c. Attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_12") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Guards_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock_left") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev1Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev8Guards") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Kroll") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100058, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_4_Start") end)
		AIparts:RemovePeriodic("036c. Attack_3 Berlin")
	end
end

function func_036b__Ev_8_Guards_B()
	if IsEventPresent("Ev8Guards") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {{unload_all=true, }, }, false, 10)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_8Guards_1", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  SendPlane("Enemy", "Airraid_8Guards_2", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SendPlane("Enemy", "Airraid_8Guards_3", "bomber", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("8_Guards_A", "Bahnhof_Anhalter", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  MoveGroupToZone("8_Guards_A", "Bahnhof_Anhalter", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 110*10, function()  RunSpawn("Enemy", {"Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("8_Guards_A", "Bahnhof_Anhalter", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  SetEvent("EvGuardsTempelhof") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 170*10, function()  RunSpawn("Enemy", {"Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  MoveGroupToZone("8_Guards_A", "Bahnhof_Anhalter", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("036b. Ev_8_Guards_B")
	end
end

function func_036b__Ev_3_Guards_Left()
	if IsEventPresent("Ev3Guards_left") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 80*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 540*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:RemovePeriodic("036b. Ev_3_Guards_Left")
	end
end

function func_036b__Ev_3_Guards_Left__2_()
	if IsEventPresent("Ev3Guards_left") and NumPlayerUnitsInZone("Enemy", "Berlin_Flak1_Zoo") > 0 then
		MoveGroupToZone("3_Guards_TA", "Berlin_Reichskanzlei", true, false)
		AIparts:RemovePeriodic("036b. Ev_3_Guards_Left (2)")
	end
end

function func_036a__Variable_attack_3_Berlin()
	do
		msd_vars.VarAttackC = RandomHalf(100)
	end
	if IsEventPresent("EvAttack_3_Start") and msd_vars.VarAttackC <= 25 then
		SetEvent("EvAttack_9")
		AIparts:RemovePeriodic("036a. Variable attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_3_Start") and msd_vars.VarAttackC > 25 and msd_vars.VarAttackC <= 50 then
		SetEvent("EvAttack_10")
		AIparts:RemovePeriodic("036a. Variable attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_3_Start") and msd_vars.VarAttackC > 50 and msd_vars.VarAttackC <= 75 then
		SetEvent("EvAttack_11")
		AIparts:RemovePeriodic("036a. Variable attack_3 Berlin")
	end
	if IsEventPresent("EvAttack_3_Start") and msd_vars.VarAttackC > 75 and msd_vars.VarAttackC <= 100 then
		SetEvent("EvAttack_12")
		AIparts:RemovePeriodic("036a. Variable attack_3 Berlin")
	end
end

function func_036b__Ev_3_Shock_left()
	if IsEventPresent("Ev3Shock_left") then
		RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {{unload_all=true, }, }, false, 10)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_1", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_2", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_3", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_4", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_5", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 14*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_6", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 16*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_7", "extra", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 20*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  RunSpawn("Enemy", {"Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 45*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_JS_2_inf", "Russian_JS_2_inf", "Russian_JS_2_inf", "Russian_JS_2_inf", "Russian_JS_2_inf", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  RunSpawn("Enemy", {"Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 95*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {{unload_all=true, }, }, false, 10) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 160*10, function()  RunSpawn("Enemy", {"Russian_SU_76", "Russian_SU_76", "Russian_BA_10", "Russian_BA_10", "Russian_OT34", "Russian_OT34", "Russian_KV_1", "Russian_KV_1", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "3_Shock_left", "3_Shock_left", "3_Shock_left", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 185*10, function()  MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvSoccerfield_Industry") end)
		AIparts:RemovePeriodic("036b. Ev_3_Shock_left")
	end
end

function func_036b__Ev_3_Shock_left__2_()
	if IsEventPresent("EvSoccerfield_Industry") and NumPlayerUnitsInZone("Player", "Berlin_Soccerfield_parc") < 3 then
		MoveGroupToZone("3_Shock_left", "Berlin_Soccerfield_Industry", true, false)
		SetEvent("EvSoccerfield_Industry2")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_8", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SendPlane("Enemy", "Airraid_3Shock_left_9", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("036b. Ev_3_Shock_left (2)")
	end
end

function func_036b__Ev_3_Shock_left__3_()
	if IsEventPresent("EvSoccerfield_Industry2") and NumPlayerUnitsInZone("Player", "Berlin_Soccerfield_Industry") < 3 then
		SetEvent("EvSoccerfield_Industry3")
		MoveGroupToZone("3_Shock_left", "Berlin_Reichskanzlei", true, false)
		AIparts:RemovePeriodic("036b. Ev_3_Shock_left (3)")
	end
end

function func_036b__Reinforcement_Hitlerjugend_Kroll()
	if IsEventPresent("EvHitlerjugend_Kroll") then
		mission.OutScreenMessage(100054, 10, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  RunSpawn("Player", {"German_Hitlerjugend", "German_Hitlerjugend", "German_Hitlerjugend", }, "Kroll_Opera_Hitlerjugend", "Hitlerjugend", "Hitlerjugend", true, true, {}, false, 50) end)
		AIparts:RemovePeriodic("036b. Reinforcement Hitlerjugend_Kroll")
	end
end

function func_046b__Ev_8_Guards_B()
	if IsEventPresent("Ev8Guards_B") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "8_Guards_B", "8_Guards_A", "8_Guards_A", false, false, {{unload_all=true, }, }, false, 10)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 4*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_1", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_1", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 6*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_2", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_2", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 8*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_3", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 9*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_3", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_4", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 11*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_4", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 12*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_5", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_5", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_1", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 31*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_2", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 32*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_3", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_4", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_AlexanderPlatz", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "8_Guards_B", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_AlexanderPlatz", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 110*10, function()  RunSpawn("Enemy", {"Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_Jeep_Guards", "Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "8_Guards_B", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_AlexanderPlatz", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 170*10, function()  RunSpawn("Enemy", {"Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", }, "8_Guards_B", "8_Guards_A", "8_Guards_A", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_AlexanderPlatz", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 210*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "8_Guards_B", "8_Guards_A", "8_Guards_A", false, false, {{unload_all=true, }, }, false, 10) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 270*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_AlexanderPlatz", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvAlexanderplatz") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 370*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("046b. Ev_8_Guards_B")
	end
end

function func_046b__Ev_8_Guards_B__2_()
	if IsEventPresent("EvAlexanderplatz") and NumPlayerUnitsInZone("Enemy", "Berlin_AlexanderPlatz") > 5 then
		MoveGroupToZone("8_Guards_A", "Berlin_Reichskanzlei", true, false)
		mission.OutScreenMessage(100055, 10, "0xFFFFFFFF")
		RunSpawn("Player", {"German_Volkssturm", "German_Volkssturm", "German_Volkssturm", }, "Stadhaus", "Volkssturm", "Volkssturm", true, true, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_6", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 61*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_6", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_7", "bomber", "E", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 63*10, function()  SendPlane("Enemy", "Airraid_8Guards_B_7", "bomber", "E", 15, -1, "") end)
		AIparts:RemovePeriodic("046b. Ev_8_Guards_B (2)")
	end
end

function func_046a__Variable_attack_4_Berlin()
	do
		msd_vars.VarAttackD = RandomHalf(100)
	end
	if IsEventPresent("EvAttack_4_Start") and msd_vars.VarAttackD <= 25 then
		SetEvent("EvAttack_13")
		AIparts:RemovePeriodic("046a. Variable attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_4_Start") and msd_vars.VarAttackD > 25 and msd_vars.VarAttackD <= 50 then
		SetEvent("EvAttack_14")
		AIparts:RemovePeriodic("046a. Variable attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_4_Start") and msd_vars.VarAttackD > 50 and msd_vars.VarAttackD <= 75 then
		SetEvent("EvAttack_15")
		AIparts:RemovePeriodic("046a. Variable attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_4_Start") and msd_vars.VarAttackD > 75 and msd_vars.VarAttackD <= 100 then
		SetEvent("EvAttack_16")
		AIparts:RemovePeriodic("046a. Variable attack_4 Berlin")
	end
end

function func_046b__Ev_3_Shock()
	if IsEventPresent("Ev3Shock_B") then
		RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_BA_10", "Russian_BA_10", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "3_Shock_right", "3_Shock", "3_Shock", true, true, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 9*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 11*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 31*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 37*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("3_Shock", "Berlin_Prenzlau", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 61*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 63*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 65*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 67*10, function()  SendPlane("Enemy", "Airraid_3Shock_B_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  MoveGroupToZone("3_Shock", "Berlin_Prenzlau", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Halftrack", "Russian_Halftrack", "Russian_JSU_152", "Russian_JSU_152", "Russian_SU_76", "Russian_SU_76", }, "3_Shock_right", "3_Shock", "3_Shock", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  MoveGroupToZone("3_Shock", "Berlin_Prenzlau", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 310*10, function()  RunSpawn("Enemy", {"Russian_JS_2_inf", "Russian_JS_2_inf", "Russian_JSU_152", "Russian_JSU_152", "Russian_Halftrack", "Russian_Halftrack", "Russian_T34_76", "Russian_T34_76", "Russian_OT34", "Russian_OT34", }, "3_Shock_right", "3_Shock", "3_Shock", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 350*10, function()  MoveGroupToZone("3_Shock", "Berlin_Prenzlau", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("046b. Ev_3_Shock")
	end
end

function func_046b__Ev_3_Shock__2_()
	if IsEventPresent("Ev3Shock_B") and NumPlayerUnitsInZone("Enemy", "Berlin_Prenzlau") > 5 then
		MoveGroupToZone("3_Shock", "Berlin_Friedrichstrasse_Area", true, false)
		AIparts:RemovePeriodic("046b. Ev_3_Shock (2)")
	end
end

function func_046b__Ev_3_Shock__3_()
	if IsEventPresent("Ev3Shock_B") and NumPlayerUnitsInZone("Enemy", "Berlin_Friedrichstrasse_Area") > 5 then
		MoveGroupToZone("3_Shock", "Berlin_Reichskanzlei", true, false)
		AIparts:RemovePeriodic("046b. Ev_3_Shock (3)")
	end
end

function func_046b__Ev_28_Army_2()
	if IsEventPresent("Ev28Army_2") then
		RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack_Guards", "Russian_Halftrack", }, "28_Army", "28_Army", "28_Army", false, false, {{unload_all=true, }, }, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_d2", "scout", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_d3", "scout", "S", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 65*10, function()  RunSpawn("Enemy", {"Russian_SU_76", "Russian_SU_76", "Russian_BA_10", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 95*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack_Guards", "Russian_Halftrack", }, "28_Army", "28_Army", "28_Army", false, false, {{unload_all=true, }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  RunSpawn("Enemy", {"Russian_BA_10", "Russian_BA_10", "Russian_BA_10", "Russian_BA_10", "Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  RunSpawn("Enemy", {"Russian_KV_1", "Russian_KV_1", "Russian_KV_1", "Russian_KV_1", "Russian_BA_10", "Russian_BA_10", "Russian_BA_10", "Russian_JSU_152", "Russian_JSU_152", "Russian_JSU_152", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 230*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 250*10, function()  RunSpawn("Enemy", {"Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_T70", "Russian_T70", "Russian_T70", "Russian_T70", "Russian_T70", "Russian_OT34", "Russian_OT34", }, "28_Army", "28_Army", "28_Army", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 275*10, function()  MoveGroupToZone("28_Army", "Bendlerblock", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 280*10, function()  SetEvent("EvBendlerblock_taken") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("046b. Ev_28_Army_2")
	end
end

function func_046b__Ev_28_Army_2__2_()
	if IsEventPresent("EvBendlerblock_taken") and NumPlayerUnitsInZone("Enemy", "Bendlerblock") > 5 then
		MoveGroupToZone("28_Army", "Berlin_Reichskanzlei", true, false)
		SetEvent("EvBahnhofLehrter")
		AIparts:RemovePeriodic("046b. Ev_28_Army_2 (2)")
	end
end

function func_046b__Ev_2_Guards_TA__B_()
	if IsEventPresent("Ev2Guards_2") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {{unload_all=true, }, }, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Berlin_KrH_RobertKoch", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Berlin_KrH_RobertKoch", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 240*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 270*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 310*10, function()  SetEvent("EvBahnhofLehrterPark") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 320*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("046b. Ev_2_Guards_TA (B)")
	end
end

function func_046b__Ev_2_Guards_TA__B___2_()
	if IsEventPresent("EvBahnhofLehrterPark") and NumPlayerUnitsInZone("Enemy", "Bahnhof_Lehrter_Park") > 5 and not IsEventPresent("Ev2Guards_3") then
		MoveGroupToZone("3_Guards_TA", "Bahnhof_Lehrter_HQ9", true, false)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 240*10, function()  SetEvent("EvBahnhofLehrterHQ") end)
		AIparts:RemovePeriodic("046b. Ev_2_Guards_TA (B) (2)")
	end
end

function func_046b__Ev_2_Guards_TA__B___3_()
	if IsEventPresent("EvBahnhofLehrterHQ") and NumPlayerUnitsInZone("Enemy", "Bahnhof_Lehrter_HQ9") > 5 and not IsEventPresent("Ev1Guards_3") then
		MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false)
		AIparts:RemovePeriodic("046b. Ev_2_Guards_TA (B) (3)")
	end
end

function func_046c__Attack_4_Berlin()
	if IsEventPresent("EvAttack_13") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev28Army_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev2Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Shock_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev8Guards_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Reichstag") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100059, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_5_Start") end)
		AIparts:RemovePeriodic("046c. Attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_14") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev8Guards_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev2Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev28Army_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Reichstag") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100059, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_5_Start") end)
		AIparts:RemovePeriodic("046c. Attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_15") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Shock_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev28Army_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev2Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev8Guards_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Reichstag") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100059, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_5_Start") end)
		AIparts:RemovePeriodic("046c. Attack_4 Berlin")
	end
	if IsEventPresent("EvAttack_16") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev2Guards_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Shock_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev8Guards_B") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev28Army_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3500*10, function()  SetEvent("EvHitlerjugend_Reichstag") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3599*10, function()  mission.OutScreenMessage(100059, 25, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_5_Start") end)
		AIparts:RemovePeriodic("046c. Attack_4 Berlin")
	end
end

function func_046b__Reinforcement_Hitlerjugend_Reichstag()
	if IsEventPresent("EvHitlerjugend_Reichstag") then
		mission.OutScreenMessage(100062, 10, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  RunSpawn("Player", {"German_Hitlerjugend", "German_Hitlerjugend", "German_Hitlerjugend", }, "Reichstag", "Volkssturm", "Hitlerjugend", true, true, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 190*10, function()  RunSpawn("Player", {"German_Volkssturm", "German_Volkssturm", "German_Volkssturm", }, "Reichstag", "Volkssturm", "Volkssturm", true, true, {}, false, 50) end)
		AIparts:RemovePeriodic("046b. Reinforcement Hitlerjugend_Reichstag")
	end
end

function func_056a__Variable_attack_5_Berlin()
	do
		msd_vars.VarAttackE = RandomHalf(100)
	end
	if IsEventPresent("EvAttack_5_Start") and msd_vars.VarAttackE <= 25 then
		SetEvent("EvAttack_17")
		AIparts:RemovePeriodic("056a. Variable attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_5_Start") and msd_vars.VarAttackE > 25 and msd_vars.VarAttackE <= 50 then
		SetEvent("EvAttack_18")
		AIparts:RemovePeriodic("056a. Variable attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_5_Start") and msd_vars.VarAttackE > 50 and msd_vars.VarAttackE <= 75 then
		SetEvent("EvAttack_19")
		AIparts:RemovePeriodic("056a. Variable attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_5_Start") and msd_vars.VarAttackE > 75 and msd_vars.VarAttackE <= 100 then
		SetEvent("EvAttack_20")
		AIparts:RemovePeriodic("056a. Variable attack_5 Berlin")
	end
end

function func_056c__Attack_5_Berlin()
	if IsEventPresent("EvAttack_17") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev1Guards_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev3Guards_left_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev5Shock_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev2Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_6_Start") end)
		AIparts:RemovePeriodic("056c. Attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_18") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev2Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev5Shock_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev3Guards_left_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev1Guards_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_6_Start") end)
		AIparts:RemovePeriodic("056c. Attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_19") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev5Shock_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev1Guards_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev2Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev3Guards_left_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_6_Start") end)
		AIparts:RemovePeriodic("056c. Attack_5 Berlin")
	end
	if IsEventPresent("EvAttack_20") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SetEvent("Ev3Guards_left_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 900*10, function()  SetEvent("Ev2Guards_3") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1800*10, function()  SetEvent("Ev1Guards_4") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 2700*10, function()  SetEvent("Ev5Shock_2") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvAttack_6_Start") end)
		AIparts:RemovePeriodic("056c. Attack_5 Berlin")
	end
end

function func_056b__Ev_1_Guards_4()
	if NumPlayerUnitsInZone("Player", "Tempelhof") > 10 and IsEventPresent("Ev1Guards_4") then
		RunSpawn("Enemy", {"Russian_Katusha", "Russian_Katusha", "Russian_Katusha", "Russian_Katusha", "Russian_Katusha", }, "1_Guards", "Katyusha_1", "Katyusha_1", false, false, {}, false, 100)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  MoveGroupToZone("Katyusha_1", "Special_Retreat_1Guards", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 9*10, function()  MoveGroupToZone("Katyusha_1", "Special_Retreat_1Guards", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_truck", "1_Guards_TA", false, false, {{unload_all=true, }, {unload_to="1stGuardsTA", }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  MoveGroupToZone("1_Guards_TA", "Special_Retreat_1Guards", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 55*10, function()  SetGroupBehaviour("Katyusha_1", nil, nil, nil, nil, nil, nil, true, true, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 57*10, function()  GroupAttackPlace("Katyusha_1", "Katyusha_1", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  GroupAttackPlace("Katyusha_1", "Katyusha_2", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 67*10, function()  GroupAttackPlace("Katyusha_1", "Katyusha_3", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 69*10, function()  GroupAttackPlace("Katyusha_1", "Katyusha_4", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 71*10, function()  GroupAttackPlace("Katyusha_1", "Katyusha_5", 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  RunSpawn("Enemy", {"Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 85*10, function()  DisappearUnitsInGroup("Katyusha_1") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 119*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  RunSpawn("Enemy", {"Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 210*10, function()  MoveGroupToZone("1_Guards_TA", "Tempelhof", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  RunSpawn("Enemy", {"Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 460*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 510*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichstag", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 590*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("056b. Ev_1_Guards_4")
	end
	if NumPlayerUnitsInZone("Player", "Tempelhof") < 10 and IsEventPresent("Ev1Guards_4") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "1_Guards", "1_Guards_truck", "1_Guards_TA", false, false, {{unload_all=true, }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  MoveGroupToZone("1_Guards_TA", "Special_Retreat_1Guards", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  RunSpawn("Enemy", {"Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 119*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  RunSpawn("Enemy", {"Russian_BA_10_Guards", "Russian_BA_10_Guards", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 210*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichstag", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 460*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, true, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 510*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichstag", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 590*10, function()  FlushSpawn(2) end)
		AIparts:RemovePeriodic("056b. Ev_1_Guards_4")
	end
end

function func_056b__Ev_2_Guards_TA__C_()
	if IsEventPresent("Ev2Guards_3") and NumPlayerUnitsInZone("Enemy", "Bahnhof_Lehrter_Park") > 5 then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Berlin_Arty_point", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Berlin_Arty_point", "scout", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 160*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 190*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 220*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 270*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 330*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 390*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  SendPlane("Enemy", "Airraid_Berlin_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 401*10, function()  SendPlane("Enemy", "Airraid_Berlin_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 402*10, function()  SendPlane("Enemy", "Airraid_Berlin_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 403*10, function()  SendPlane("Enemy", "Airraid_Berlin_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 404*10, function()  SendPlane("Enemy", "Airraid_Berlin_5", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 410*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 415*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 418*10, function()  SetGroupBehaviour("2_Guards_TA", false, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 420*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 740*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false) end)
		AIparts:RemovePeriodic("056b. Ev_2_Guards_TA (C)")
	end
	if IsEventPresent("Ev2Guards_3") and NumPlayerUnitsInZone("Enemy", "Bahnhof_Lehrter_Park") < 1 then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 9*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_5", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 11*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 13*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 15*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 17*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 19*10, function()  SendPlane("Enemy", "Airraid_2Guards_C_5", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 160*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 190*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 220*10, function()  MoveGroupToZone("2_Guards_TA", "Reassamble_2Guards8ta", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 270*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 330*10, function()  MoveGroupToZone("2_Guards_TA", "Bahnhof_Lehrter_Park", false, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 390*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 400*10, function()  SendPlane("Enemy", "Airraid_Berlin_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 401*10, function()  SendPlane("Enemy", "Airraid_Berlin_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 402*10, function()  SendPlane("Enemy", "Airraid_Berlin_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 403*10, function()  SendPlane("Enemy", "Airraid_Berlin_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 404*10, function()  SendPlane("Enemy", "Airraid_Berlin_5", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 410*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 415*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 418*10, function()  SetGroupBehaviour("2_Guards_TA", false, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 420*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 740*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false) end)
		AIparts:RemovePeriodic("056b. Ev_2_Guards_TA (C)")
	end
end

function func_900__Special_Colonel_Herrmann_killed()
	if GetGameTime() < 18000 and IsEventPresent("EvHerrmanKilled_Attack") then
		RunSpawn("Enemy", {"Russian_Inf_Specialists", "Russian_Inf_Specialists", "Russian_Inf_Specialists", }, "Specialists_sewer", "0_Specialists", "0_Specialists", false, false, {}, false, 25)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  mission.OutScreenMessage(100063, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  MoveGroupToZone("0_Specialists", "Berlin_Reichskanzlei", true, false) end)
		AIparts:RemovePeriodic("900. Special Colonel Herrmann killed")
	end
end

function func_901__Special_Gen_Mummert_killed()
	if GetGameTime() < 18000 and IsEventPresent("EvMummertKilled_Attack") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_1", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_2", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 64*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_3", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 66*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_1", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 68*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_2", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_3", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 72*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_1", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 74*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_2", "fighter", "N", 2, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 76*10, function()  SendPlane("Enemy", "Airraid_Arty_Tiergarten_3", "fighter", "N", 2, -1, "") end)
		AIparts:RemovePeriodic("901. Special Gen Mummert killed")
	end
end

function func_902__Special_Gen_Rauch_killed()
	if GetGameTime() < 18000 and IsEventPresent("EvRauchKilled_Attack") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 37*10, function()  mission.OutScreenMessage(100064, 5, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 40*10, function()  Bombardment("Artystrike_Tiergarten_1", 30, 14, 6, 30) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 45*10, function()  Bombardment("Artystrike_Tiergarten_2", 30, 14, 6, 30) end)
		AIparts:RemovePeriodic("902. Special Gen Rauch killed")
	end
end

function func_056b__Ev_3_Guards_Left__2_()
	if IsEventPresent("Ev3Guards_left_2") and NumPlayerUnitsInZone("Player", "Berlin_Flak1_Zoo") > 0 then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "1_Guards_truck", "3_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 37*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 80*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "1_Guards_truck", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 137*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 145*10, function()  RunSpawn("Enemy", {"Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_OT34", "Russian_OT34", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 165*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Flak1_Zoo", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  MoveGroupToZone("3_Guards_TA", "Bendlerblock", true, false) end)
		AIparts:RemovePeriodic("056b. Ev_3_Guards_Left (2)")
	end
	if IsEventPresent("Ev3Guards_left_2") and NumPlayerUnitsInZone("Player", "Berlin_Flak1_Zoo") < 1 then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "1_Guards_truck", "3_Guards_TA", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  MoveGroupToZone("3_Guards_TA", "Reassamble_3Guard_ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 37*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 80*10, function()  MoveGroupToZone("3_Guards_TA", "Reassamble_3Guard_ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "3_Guards_Left", "1_Guards_truck", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  MoveGroupToZone("3_Guards_TA", "Reassamble_3Guard_ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 137*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("3_Guards_TA", "Reassamble_3Guard_ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 145*10, function()  RunSpawn("Enemy", {"Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_OT34", "Russian_OT34", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 165*10, function()  MoveGroupToZone("3_Guards_TA", "Reassamble_3Guard_ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  MoveGroupToZone("3_Guards_TA", "Bendlerblock", true, false) end)
		AIparts:RemovePeriodic("056b. Ev_3_Guards_Left (2)")
	end
end

function func_056b__Ev_5_Shock__2_()
	if IsEventPresent("Ev5Shock_2") then
		RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "5_Shock", "1_Guards_truck", "5_Shock", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 25*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 50*10, function()  RunSpawn("Enemy", {"Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", "Russian_SU_76", }, "5_Shock", "5_Shock", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 65*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 100*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "5_Shock", "1_Guards_truck", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 130*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 135*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 140*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 150*10, function()  RunSpawn("Enemy", {"Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_Gaz_AA", "Russian_BA_10", "Russian_BA_10", "Russian_JSU_152", "Russian_JSU_152", "Russian_JSU_152", "Russian_JSU_152", }, "5_Shock", "5_Shock", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 185*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 200*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", }, "5_Shock", "1_Guards_truck", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 230*10, function()  UnloadTransports("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 235*10, function()  DisappearUnitsInGroup("1_Guards_truck") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 240*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 250*10, function()  RunSpawn("Enemy", {"Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "5_Shock", "5_Shock", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 285*10, function()  MoveGroupToZone("5_Shock", "Berlin_Friedrichshain", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 290*10, function()  FlushSpawn(2) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 490*10, function()  RunSpawn("Enemy", {"Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_OT34", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", }, "5_Shock", "5_Shock", "5_Shock", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 540*10, function()  MoveGroupToZone("5_Shock", "Bahnhof_Friedrichstrasse", true, false) end)
		AIparts:RemovePeriodic("056b. Ev_5_Shock (2)")
	end
end

function func_100__Mines()
	if NumPlayerUnitsInZone("Player", "Mines") > 0 then
		mission.OutScreenMessage(100009, 5, "0xFF000000")
		AIparts:RemovePeriodic("100. Mines")
	end
end

function func_000__Create_Mortar_Presets()
	do
		groups.CreateTemplate("MortarsSouth", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_South", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 1})
		groups.CreateTemplate("MortarsNorth", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_North", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 0})
		groups.CreateTemplate("MortarsWest", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_West", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 0})
		groups.CreateTemplate("MortarsEast", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_East", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 0})
		groups.CreateTemplate("MortarsNorthEast", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_NorthEast", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 0})
		groups.CreateTemplate("MortarsNorthWest", groups.ttypes.howitzer,
			{ call_for_help = false, call_for_howitzer = false, reinf_lost = 0,
			groups_list = {"X_Russian_Obj_NorthWest", }, alert_rad = 1000,
			num_voley = 3, advantage = 0.00, shot_timeout = 4, rest_time = 10, safe_rad = 1, min_ammo = 0})
		groups.AssignTemplate("MortarsSouth", "X_Russian_Obj_South_Mor")
		groups.AssignTemplate("MortarsNorth", "X_Russian_Obj_North_Mor")
		groups.AssignTemplate("MortarsWest", "X_Russian_Obj_West_Mor")
		groups.AssignTemplate("MortarsEast", "X_Russian_Obj_East_Mor")
		groups.AssignTemplate("MortarsNorthEast", "X_Russian_Obj_NorthEast_Mor")
		groups.AssignTemplate("MortarsNorthWest", "X_Russian_Obj_NorthWest_Mor")
	end
end

function func_977c__Objective_South_counterattack()
	if IsObjectiveActive("South") and NumPlayerUnitsInZone("Player", "Objective_South") > 5 then
		SendPlane("Enemy", "Obj_South_Zis_1", "scout", "E", 15, -1, "")
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "8_Guards", "X_Russian_Obj_South", "X_Russian_Obj_South", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_South", "Objective_South", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAttackSouth") end)
		AIparts:RemovePeriodic("977c. Objective South counterattack")
	end
end

function func_980c__Objective_NorthWest_counterattack()
	if IsObjectiveActive("NorthWest") and NumPlayerUnitsInZone("Player", "Objective_NorthWest") > 5 then
		RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_SU_76", "Russian_SU_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_JS_2_inf", "Russian_JS_2_inf", }, "Obj_West_Inf", "X_Russian_Obj_NorthWest", "X_Russian_Obj_NorthWest", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_NorthWest", "Objective_NorthWest", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAttackNorthWest") end)
		AIparts:RemovePeriodic("980c. Objective NorthWest counterattack")
	end
end

function func_978c__Objective_West_counterattack()
	if IsObjectiveActive("West") and NumPlayerUnitsInZone("Player", "Objective_West") > 5 then
		SendPlane("Enemy", "Obj_West_Zis_1", "scout", "N", 15, -1, "")
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "Obj_NorthWest_Inf", "X_Russian_Obj_West", "X_Russian_Obj_West", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_West", "Objective_West", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAttackWest") end)
		AIparts:RemovePeriodic("978c. Objective West counterattack")
	end
end

function func_976c__Objective_North_counterattack()
	if IsObjectiveActive("North") and NumPlayerUnitsInZone("Player", "Objective_North") > 5 then
		SendPlane("Enemy", "Obj_North_Mor_1", "scout", "E", 15, -1, "")
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "Obj_NorthWest_Inf", "X_Russian_Obj_North", "X_Russian_Obj_North", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_North", "Objective_North", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:RemovePeriodic("976c. Objective North counterattack")
	end
end

function func_981c__Objective_NorthEast_counterattack()
	if IsObjectiveActive("NorthEast") and NumPlayerUnitsInZone("Player", "Objective_NorthEast") > 5 then
		SendPlane("Enemy", "Obj_NorthEast_Mor_3", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_SU_76", "Russian_SU_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_JS_2_inf", "Russian_JS_2_inf", }, "2_Guards", "X_Russian_Obj_NorthEast", "X_Russian_Obj_NorthEast", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_NorthEast", "Objective_NorthEast", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAttackNorthEast") end)
		AIparts:RemovePeriodic("981c. Objective NorthEast counterattack")
	end
end

function func_979c__Objective_East_counterattack()
	if IsObjectiveActive("East") and NumPlayerUnitsInZone("Player", "Objective_East") > 5 then
		SendPlane("Enemy", "Obj_East_Mor_1", "scout", "N", 15, -1, "")
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "2_Guards", "X_Russian_Obj_East", "X_Russian_Obj_East", false, false, {}, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  MoveGroupToZone("X_Russian_Obj_East", "Objective_East", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  mission.OutScreenMessage(100002, 5, "0xFF000000") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  SetEvent("EvAttackEast") end)
		AIparts:RemovePeriodic("979c. Objective East counterattack")
	end
end

function func_101__Mines()
	if NumPlayerUnitsInZone("Player", "Mines2") > 0 then
		mission.OutScreenMessage(100009, 5, "0xFF000000")
		AIparts:RemovePeriodic("101. Mines")
	end
end

function func_102__Mines()
	if NumPlayerUnitsInZone("Player", "Mines3") > 0 then
		mission.OutScreenMessage(100009, 5, "0xFF000000")
		AIparts:RemovePeriodic("102. Mines")
	end
end

function func_200__Ministerium_des_Innens_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Ministerium") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Ministerium") < 1 then
		mission.OutScreenMessage(100065, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("200. Ministerium des Innens taken")
	end
end

function func_201__Reichstag_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Reichstag") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Reichstag") < 1 then
		mission.OutScreenMessage(100066, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("201. Reichstag taken")
	end
end

function func_990__Attack_6_Berlin()
	if IsEventPresent("EvAttack_6_Start") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  RunSpawn("Enemy", {"Russian_Inf_Guards", "Russian_Inf_Guards", "Russian_Inf_Guards", }, "Specialists_sewer", "2_Guards_TA", "2_Guards_TA", false, false, {}, false, 25) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 721*10, function()  mission.OutScreenMessage(100063, 10, "0xFFFFFFFF") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 780*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Kroll_Opera", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 785*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichskanzlei", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 790*10, function()  MoveGroupToZone("5_Shock", "Berlin_Reichstag", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1440*10, function()  SetEvent("EvStatus_Berlin") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 3600*10, function()  SetEvent("EvStatus_Berlin") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 7200*10, function()  SetEvent("EvStatus_Berlin") end)
		AIparts:RemovePeriodic("990. Attack_6 Berlin")
	end
end

function func_991__Ev__Status_Berlin_Reichstag()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Reichstag") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1010*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1040*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "8_Guards", "8_Guards_A", "8_Guards_A", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1100*10, function()  MoveGroupToZone("8_Guards_A", "Berlin_Reichstag", false, false) end)
		AIparts:RemovePeriodic("991. Ev. Status Berlin Reichstag")
	end
end

function func_992__Ev__Status_Berlin_Reichskanzlei()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Reichskanzlei") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 670*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 700*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "1_Guards", "1_Guards_TA", "1_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 740*10, function()  MoveGroupToZone("1_Guards_TA", "Berlin_Reichskanzlei", false, false) end)
		AIparts:RemovePeriodic("992. Ev. Status Berlin Reichskanzlei")
	end
end

function func_993__Ev__Status_Berlin_Kroll_Opera()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Kroll_Opera") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 270*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 300*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JS_2_Guards", "Russian_JS_2_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "3_Guards_Left", "3_Guards_TA", "3_Guards_TA", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  MoveGroupToZone("3_Guards_TA", "Berlin_Kroll_Opera", false, false) end)
		AIparts:RemovePeriodic("993. Ev. Status Berlin Kroll Opera")
	end
end

function func_202__Opera_Kroll_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Kroll_Opera") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Kroll_Opera") < 1 then
		mission.OutScreenMessage(100067, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("202. Opera Kroll taken")
	end
end

function func_903__Special_Gen_Mohnke_killed()
	if GetGameTime() < 18000 and IsEventPresent("EvMohnkeKilled_Attack") then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 62*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 64*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 66*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 68*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 72*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 74*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 76*10, function()  SendPlane("Enemy", "Berlin_Reichstag", "fighter", "N", 10, -1, "") end)
		AIparts:RemovePeriodic("903. Special Gen Mohnke killed")
	end
end

function func_904__Special_Gen_Krukenberg_killed()
	if GetGameTime() < 18000 and IsEventPresent("EvKrukenbergKilled_Attack") and NumPlayerUnitsInZone("Player", "Berlin_Wedding") > 3 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", }, "Obj_West_Inf", "X_Russian_KrukenbergForce", "X_Russian_KrukenbergForce", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 64*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 66*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 68*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  SetGroupBehaviour("X_Russian_KrukenbergForce", false, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Wedding", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 750*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Reichskanzlei", true, false) end)
		AIparts:RemovePeriodic("904. Special Gen Krukenberg killed")
	end
	if GetGameTime() < 18000 and IsEventPresent("EvKrukenbergKilled_Attack") and NumPlayerUnitsInZone("Player", "Berlin_Wedding") < 1 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 5*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", }, "Obj_West_Inf", "X_Russian_KrukenbergForce", "X_Russian_KrukenbergForce", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 64*10, function()  SendPlane("Enemy", "Berlin_Reichstag_Trenches", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 66*10, function()  SendPlane("Enemy", "Berlin_Reichstag_Trenches", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 68*10, function()  SendPlane("Enemy", "Berlin_Reichstag_Trenches", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 70*10, function()  SetGroupBehaviour("X_Russian_KrukenbergForce", false, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 75*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Bridge2", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 750*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Reichskanzlei", true, false) end)
		AIparts:RemovePeriodic("904. Special Gen Krukenberg killed")
	end
end

function func_905__Special_Berlin_Parc_empty()
	if NumPlayerUnitsInZone("Player", "Berlin_Parc") < 3 and not IsEventPresent("EvStatus_Berlin") then
		RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "Berlin_Parc", "X_Russian_Parc", "X_Russian_Parc", false, false, {{unload_all=true, }, }, false, 50)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 60*10, function()  MoveGroupToZone("X_Russian_Parc", "Berlin_Parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  MoveGroupToZone("X_Russian_Parc", "Berlin_Reichstag", true, false) end)
		AIparts:RemovePeriodic("905. Special Berlin Parc empty")
	end
end

function func_203__Flakturm_I_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Flak2_Zoo") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Flak1_Zoo") < 1 and NumPlayerUnitsInZone("Player", "Berlin_Flak2_Zoo") < 1 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  mission.OutScreenMessage(100070, 10, "0xFFFFFFFF") end)
		AIparts:RemovePeriodic("203. Flakturm I taken")
	end
end

function func_204__Flakturm_II_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Friedrichshain") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Friedrichshain") < 1 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  mission.OutScreenMessage(100068, 10, "0xFFFFFFFF") end)
		AIparts:RemovePeriodic("204. Flakturm II taken")
	end
end

function func_205__Flakturm_III_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_Humboldhain") > 0 and NumPlayerUnitsInZone("Player", "Berlin_Humboldhain") < 1 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 10*10, function()  mission.OutScreenMessage(100069, 10, "0xFFFFFFFF") end)
		AIparts:RemovePeriodic("205. Flakturm III taken")
	end
end

function func_206__Alexanderplatz_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_AlexanderPlatz") > 0 and NumPlayerUnitsInZone("Player", "Berlin_AlexanderPlatz") < 1 then
		mission.OutScreenMessage(100071, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("206. Alexanderplatz taken")
	end
end

function func_207_Tempelhof_taken()
	if NumPlayerUnitsInZone("Enemy", "Tempelhof") > 0 and NumPlayerUnitsInZone("Player", "Tempelhof") < 1 then
		mission.OutScreenMessage(100072, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("207.Tempelhof taken")
	end
end

function func_208__KW_Ged_chtnis_Kirche_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_KWG_Kirche") > 0 and NumPlayerUnitsInZone("Player", "Berlin_KWG_Kirche") < 1 then
		mission.OutScreenMessage(100073, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("208. KW Gedächtnis-Kirche taken")
	end
end

function func_209__KH_Robert_Koch_taken()
	if NumPlayerUnitsInZone("Enemy", "Berlin_KrH_RobertKoch") > 0 and NumPlayerUnitsInZone("Player", "Berlin_KrH_RobertKoch") < 1 then
		mission.OutScreenMessage(100074, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("209. KH Robert Koch taken")
	end
end

function func_210__Anhalter_Bahnhof_Taken()
	if NumPlayerUnitsInZone("Enemy", "Bahnhof_Anhalter") > 0 and NumPlayerUnitsInZone("Player", "Bahnhof_Anhalter") < 1 then
		mission.OutScreenMessage(100075, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("210. Anhalter Bahnhof Taken")
	end
end

function func_211__Lehrter_Bahnhof_Taken()
	if NumPlayerUnitsInZone("Enemy", "Bahnhof_Lehrter") > 0 and NumPlayerUnitsInZone("Player", "Bahnhof_Lehrter") < 1 then
		mission.OutScreenMessage(100076, 10, "0xFFFFFFFF")
		AIparts:RemovePeriodic("211. Lehrter Bahnhof Taken")
	end
end

function func_001c__Presentation()
	if GetGameTime() > 42 then
		 u = GetObject(224314); u:Die() 
		AIparts:RemovePeriodic("001c. Presentation")
	end
end

function func_994__Ev__Status_Berlin_Tempelhof()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Tempelhof") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 90*10, function()  SendPlane("Enemy", "Airraid_airfield_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 91*10, function()  SendPlane("Enemy", "Airraid_airfield_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 92*10, function()  SendPlane("Enemy", "Airraid_airfield_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 93*10, function()  SendPlane("Enemy", "Airraid_airfield_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 94*10, function()  SendPlane("Enemy", "Airraid_airfield_5", "bomber", "N", 15, -1, "") end)
		AIparts:RemovePeriodic("994. Ev. Status Berlin Tempelhof")
	end
end

function func_995__Ev__Status_Berlin_Berlin_Parc()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Parc") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 180*10, function()  SendPlane("Enemy", "Airraid_berlinParc_5", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 181*10, function()  SendPlane("Enemy", "Airraid_berlinParc_4", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 183*10, function()  SendPlane("Enemy", "Airraid_berlinParc_3", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 184*10, function()  SendPlane("Enemy", "Airraid_berlinParc_2", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 185*10, function()  SendPlane("Enemy", "Airraid_berlinParc_1", "bomber", "N", 15, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 190*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_JSU_152_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", }, "Berlin_Parc", "X_Russian_Parc", "X_Russian_Parc", false, false, {{unload_all=true, }, }, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 250*10, function()  MoveGroupToZone("X_Russian_Parc", "Berlin_Parc", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 610*10, function()  MoveGroupToZone("X_Russian_Parc", "Berlin_Reichstag", true, false) end)
		AIparts:RemovePeriodic("995. Ev. Status Berlin Berlin Parc")
	end
end

function func_996__Ev__Status_Berlin_Ministerium()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Ministerium") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 30*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_extra", "2_Guards_extra", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 35*10, function()  MoveGroupToZone("2_Guards_TA", "Berlin_Ministerium", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 45*10, function()  MoveGroupToZone("2_Guards_extra", "Reassamble_2Guards8ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 46*10, function()  RunSpawn("Enemy", {"Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Jeep_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_Halftrack_Guards", }, "2_Guards", "2_Guards_extra", "2_Guards_extra", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 61*10, function()  MoveGroupToZone("2_Guards_extra", "Reassamble_2Guards8ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 65*10, function()  RunSpawn("Enemy", {"Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", }, "2_Guards", "2_Guards_extra", "2_Guards_extra", false, false, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 86*10, function()  MoveGroupToZone("2_Guards_extra", "Reassamble_2Guards8ta", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 120*10, function()  MoveGroupToZone("2_Guards_extra", "Berlin_Ministerium", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 360*10, function()  SetEvent("EvMinisterium") end)
		AIparts:RemovePeriodic("996. Ev. Status Berlin Ministerium")
	end
end

function func_997__Ev__Ministerium()
	if IsEventPresent("EvMinisterium") and NumPlayerUnitsInZone("Player", "Berlin_Ministerium") < 1 then
		MoveGroupToZone("2_Guards_extra", "Berlin_Reichstag", true, false)
		AIparts:RemovePeriodic("997. Ev. Ministerium")
	end
end

function func_998__Ev__Status_Berlin_Humboldhain()
	if IsEventPresent("EvStatus_Berlin") and NumPlayerUnitsInZone("Player", "Berlin_Humboldhain") > 0 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1480*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_BA_10", "Russian_BA_10", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "3_Shock", "3_Shock", "3_Shock", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1610*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_Halftrack", "Russian_JSU_152", "Russian_JSU_152", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", }, "3_Shock", "3_Shock", "3_Shock", true, true, {}, false, 100) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1640*10, function()  MoveGroupToZone("3_Shock", "Berlin_Humboldhain", true, false) end)
		AIparts:RemovePeriodic("998. Ev. Status Berlin Humboldhain")
	end
end

function func_981d__Event_NorthEast_()
	if IsEventPresent("EvAttackNorthEast") and NumPlayerUnitsInZone("Player", "Objective_NorthEast") > 5 then
		SendPlane("Enemy", "Obj_NorthEast_Mor_3", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_SU_76", "Russian_SU_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_JS_2_inf", "Russian_JS_2_inf", }, "2_Guards", "X_Russian_Obj_NorthEast", "X_Russian_Obj_NorthEast", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_NorthEast", "Objective_NorthEast", true, false) end)
		AIparts:RemovePeriodic("981d. Event NorthEast ")
	end
end

function func_976d__Event_North()
	if IsEventPresent("EvAttackNorth") and NumPlayerUnitsInZone("Player", "Objective_North") > 5 then
		SendPlane("Enemy", "Obj_North_Mor_1", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "Obj_NorthWest_Inf", "X_Russian_Obj_North", "X_Russian_Obj_North", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_North", "Objective_North", true, false) end)
		AIparts:RemovePeriodic("976d. Event North")
	end
end

function func_977d__EventSouth()
	if IsEventPresent("EvAttackSouth") and NumPlayerUnitsInZone("Player", "Objective_South") > 5 then
		SendPlane("Enemy", "Obj_South_Mor_1", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_85_Guards", "Russian_SU_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "8_Guards", "X_Russian_Obj_South", "X_Russian_Obj_South", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_South", "Objective_South", true, false) end)
		AIparts:RemovePeriodic("977d. EventSouth")
	end
end

function func_978d__Event_West()
	if IsEventPresent("EvAttackWest") and NumPlayerUnitsInZone("Player", "Objective_West") > 5 then
		SendPlane("Enemy", "Obj_West_Mor_1", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "Obj_NorthWest_Inf", "X_Russian_Obj_West", "X_Russian_Obj_West", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_West", "Objective_West", true, false) end)
		AIparts:RemovePeriodic("978d. Event West")
	end
end

function func_980d__Event_NorthWest()
	if IsEventPresent("EvAttackNorthWest") and NumPlayerUnitsInZone("Player", "Objective_NorthWest") > 5 then
		SendPlane("Enemy", "Obj_NorthWest_Mor_1", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack", "Russian_Halftrack", "Russian_SU_76", "Russian_SU_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_T34_76", "Russian_JS_2_inf", "Russian_JS_2_inf", }, "Obj_West_Inf", "X_Russian_Obj_NorthWest", "X_Russian_Obj_NorthWest", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_NorthWest", "Objective_NorthWest", true, false) end)
		AIparts:RemovePeriodic("980d. Event NorthWest")
	end
end

function func_979d__Event_East()
	if IsEventPresent("EvAttackEast") and NumPlayerUnitsInZone("Player", "Objective_East") > 5 then
		SendPlane("Enemy", "Obj_East_Zis_2", "scout", "E", 15, -1, "")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1*10, function()  RunSpawn("Enemy", {"Russian_Halftrack_Guards", "Russian_Halftrack_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_SU_100_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_T34_85_Guards", "Russian_OT34", "Russian_OT34", }, "2_Guards", "X_Russian_Obj_East", "X_Russian_Obj_East", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 33*10, function()  MoveGroupToZone("X_Russian_Obj_East", "Objective_East", true, false) end)
		AIparts:RemovePeriodic("979d. Event East")
	end
end

function func_999a__Ev__Status_Berlin_Wedding()
	if IsEventPresent("EvStatus_Berlin") and not IsEventPresent("EvKrukenbergKilled_Attack") and NumPlayerUnitsInZone("Player", "Berlin_Wedding") > 3 then
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 720*10, function()  RunSpawn("Enemy", {"Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", "Russian_Inf_Shock", }, "Obj_West_Inf", "X_Russian_KrukenbergForce", "X_Russian_KrukenbergForce", false, false, {}, false, 50) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 721*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 722*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 723*10, function()  SendPlane("Enemy", "Berlin_Wedding", "fighter", "N", 10, -1, "") end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 790*10, function()  SetGroupBehaviour("X_Russian_KrukenbergForce", false, nil, nil, nil, nil, nil, nil, nil, nil, nil) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 795*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Wedding", true, false) end)
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 1500*10, function()  MoveGroupToZone("X_Russian_KrukenbergForce", "Berlin_Reichskanzlei", true, false) end)
		AIparts:RemovePeriodic("999a. Ev. Status Berlin Wedding")
	end
end

function func_000__May_5th_1945()
	if IsEventPresent("EvMay5th") then
		mission.OutScreenMessage(100081, 30, "0xFFFFFFFF")
		AIparts:AddOneTime(AIparts:GetUniqueId("TIMER_DO_"), 32*10, function()  SetEvent("EvHitlerDead2") end)
		AIparts:RemovePeriodic("000. May 5th 1945")
	end
end

