(
"multiplayer_fd",mtf_battle_mode,-1, #fight and destroy mode
"You lead your men to battle.",
[
(0,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
(1,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
(2,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(3,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(4,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(5,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(6,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(7,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(8,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(9,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(10,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(11,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(12,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(13,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(14,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(15,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(16,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(17,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(18,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(19,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(20,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(21,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(22,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(23,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(24,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(25,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(26,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(27,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(28,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(29,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(30,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(31,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(32,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
(33,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
(34,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(35,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(36,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(37,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(38,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(39,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(40,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(41,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(42,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(43,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(44,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(45,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(46,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(47,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
(48,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(49,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(50,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(51,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(52,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(53,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(54,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(55,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(56,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(57,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(58,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(59,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(60,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(61,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(62,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
(63,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
],
[
common_battle_init_banner,
multiplayer_server_check_polls,
(ti_server_player_joined, 0, 0, [],
[
(store_trigger_param_1, ":player_no"),
(call_script, "script_multiplayer_server_player_joined_common", ":player_no"),
]),
(ti_before_mission_start, 0, 0, [],
[
(assign, "$g_multiplayer_game_type", multiplayer_game_type_destroy),
(call_script, "script_multiplayer_server_before_mission_start_common"),
(assign, "$g_waiting_for_confirmation_to_terminate", 0),
(assign, "$g_round_ended", 0),
(assign, "$g_reduced_waiting_seconds", 0),
(try_begin),
(multiplayer_is_server),
(assign, "$g_round_start_time", 0),
(try_end),
(assign, "$my_team_at_start_of_round", -1),
(call_script, "script_multiplayer_init_mission_variables"),
(call_script, "script_multiplayer_remove_headquarters_flags"),
]),
(ti_after_mission_start, 0, 0, [],
[
(call_script, "script_determine_team_flags", 0),
(call_script, "script_determine_team_flags", 1),
(set_spawn_effector_scene_prop_kind, 0, -1), #during this mission, agents of "team 0" will try to spawn around scene props with kind equal to -1(no effector for this mod)
(set_spawn_effector_scene_prop_kind, 1, -1), #during this mission, agents of "team 1" will try to spawn around scene props with kind equal to -1(no effector for this mod)
(call_script, "script_initialize_all_scene_prop_slots"),
(call_script, "script_multiplayer_initialize_belfry_wheel_rotations"),
(call_script, "script_multiplayer_move_moveable_objects_initial_positions"),
(assign, "$g_destructible_target_1", "spr_catapult_destructible"),
(assign, "$g_destructible_target_2", "spr_trebuchet_destructible"),
#assigning destructible object team nos to 0. (0 is also used for showing defender team in siege mode)
(scene_prop_get_num_instances, ":num_destructible_target_1", "$g_destructible_target_1"),
(try_for_range, ":destructible_target_1_no", 0, ":num_destructible_target_1"),
(scene_prop_get_instance, ":destructible_target_1_id", "$g_destructible_target_1", ":destructible_target_1_no"),
(ge, ":destructible_target_1_id", 0),
(scene_prop_set_team, ":destructible_target_1_id", 0),
(try_end),
(scene_prop_get_num_instances, ":num_destructible_target_2", "$g_destructible_target_2"),
(try_for_range, ":destructible_target_2_no", 0, ":num_destructible_target_2"),
(scene_prop_get_instance, ":destructible_target_2_id", "$g_destructible_target_2", ":destructible_target_2_no"),
(ge, ":destructible_target_2_id", 0),
(scene_prop_set_team, ":destructible_target_2_id", 0),
(try_end),
(try_begin),
(scene_prop_get_num_instances, ":num_catapults", "spr_catapult_destructible"),
(ge, ":num_catapults", 1),
(scene_prop_get_instance, ":catapult_scene_prop_id", "spr_catapult_destructible", 0),
(scene_prop_get_team, "$g_defender_team", ":catapult_scene_prop_id"),
(else_try),
(scene_prop_get_num_instances, ":num_trebuchets", "spr_trebuchet_destructible"),
(ge, ":num_trebuchets", 1),
(scene_prop_get_instance, ":trebuchet_scene_prop_id", "spr_trebuchet_destructible", 0),
(scene_prop_get_team, "$g_defender_team", ":trebuchet_scene_prop_id"),
(try_end),
(assign, "$g_number_of_targets_destroyed", 0),
(try_begin),
(assign, "$g_multiplayer_num_bots_required_team_1", "$g_multiplayer_num_bots_team_1"),
(assign, "$g_multiplayer_num_bots_required_team_2", "$g_multiplayer_num_bots_team_2"),
(try_end),
(start_presentation, "prsnt_multiplayer_destructible_targets_display"),
(assign, "$g_multiplayer_ready_for_spawning_agent", 1),
]),
(ti_on_agent_spawn, 0, 0, [],
[
(store_trigger_param_1, ":agent_no"),
(call_script, "script_multiplayer_server_on_agent_spawn_common", ":agent_no"),
(try_begin), #if my initial team still not initialized, find and assign its value.
(lt, "$my_team_at_start_of_round", 0),
(multiplayer_get_my_player, ":my_player_no"),
(ge, ":my_player_no", 0),
(player_get_agent_id, ":my_agent_id", ":my_player_no"),
(eq, ":my_agent_id", ":agent_no"),
(ge, ":my_agent_id", 0),
(agent_get_team, "$my_team_at_start_of_round", ":my_agent_id"),
(try_end),
(try_begin),
(neg|multiplayer_is_server),
(try_begin),
(eq, "$g_round_ended", 1),
(assign, "$g_round_ended", 0),
#initialize scene object slots at start of new round at clients.
(call_script, "script_initialize_all_scene_prop_slots"),
#these lines are done in only clients at start of each new round.
(call_script, "script_multiplayer_initialize_belfry_wheel_rotations"),
(call_script, "script_initialize_objects_clients"),
#end of lines
(start_presentation, "prsnt_multiplayer_destructible_targets_display"),
(try_begin),
(eq, "$g_team_balance_next_round", 1),
(assign, "$g_team_balance_next_round", 0),
(try_end),
(try_end),
(try_end),
]),
...