##tournament triggers above??
(0, 0, ti_once, [], [(eq, "$g_mt_mode", abm_training),(start_presentation, "prsnt_arena_training")]),
(0, 0, ti_once, [], [(eq, "$g_mt_mode", abm_training),
(assign, "$g_arena_training_max_opponents", 40),## yes it seems to be right
(assign, "$g_arena_training_num_agents_spawned", 0),
(assign, "$g_arena_training_kills", 0),
(assign, "$g_arena_training_won", 0),
(call_script, "script_music_set_situation_with_culture", mtf_sit_arena),
]),
(1, 4, ti_once, [(eq, "$g_mt_mode", abm_training),
(store_mission_timer_a, ":cur_time"),
(gt, ":cur_time", 3),
(assign, ":win_cond", 0),
(try_begin),
(ge, "$g_arena_training_num_agents_spawned", "$g_arena_training_max_opponents"),#spawn at most 40 agents
(num_active_teams_le, 1),
(assign, ":win_cond", 1),
(try_end),
(this_or_next|eq, ":win_cond", 1),
(main_hero_fallen)],
[
(get_player_agent_no, ":player_agent"),
(agent_get_kill_count, "$g_arena_training_kills", ":player_agent", 1),#use this for conversation
(assign, "$g_arena_training_won", 0),
(try_begin),
(neg|main_hero_fallen),
(assign, "$g_arena_training_won", 1),#use this for conversation
(try_end),
(assign, "$g_mt_mode", abm_visit),
(set_jump_mission, "mt_arena_melee_fight"),
(party_get_slot, ":arena_scene", "$current_town", slot_town_arena),
(modify_visitors_at_site, ":arena_scene"),
(reset_visitors),
(set_visitor, 35, "trp_veteran_fighter"),
(set_visitor, 36, "trp_hired_blade"),
(set_jump_entry, 50),
(jump_to_scene, ":arena_scene"),
]),
(0.2, 0, 0,
[
(eq, "$g_mt_mode", abm_training),
(assign, ":num_active_fighters", 0),
(try_for_agents, ":agent_no"),
(agent_is_human, ":agent_no"),
(agent_is_alive, ":agent_no"),
(agent_get_team, ":team_no", ":agent_no"),
(is_between, ":team_no", 0 ,7),
(val_add, ":num_active_fighters", 1),
(try_end),
(lt, ":num_active_fighters", 7),
(neg|main_hero_fallen),
(store_mission_timer_a, ":cur_time"),
(this_or_next|ge, ":cur_time", "$g_arena_training_next_spawn_time"),
(this_or_next|lt, "$g_arena_training_num_agents_spawned", 6),
(num_active_teams_le, 1),
(lt, "$g_arena_training_num_agents_spawned", "$g_arena_training_max_opponents"),
],
[
(assign, ":added_troop", "$g_arena_training_num_agents_spawned"),
(store_div, ":added_troop", "$g_arena_training_num_agents_spawned", 6),
(assign, ":added_troop_sequence", "$g_arena_training_num_agents_spawned"),
(val_mod, ":added_troop_sequence", 6),
(val_add, ":added_troop", ":added_troop_sequence"),
(val_min, ":added_troop", 9),
(val_add, ":added_troop", "trp_arena_training_fighter_1"),
(assign, ":end_cond", 10000),
(get_player_agent_no, ":player_agent"),
(agent_get_position, pos5, ":player_agent"),
(try_for_range, ":unused", 0, ":end_cond"),
(store_random_in_range, ":random_entry_point", 32, 40),
(neq, ":random_entry_point", "$g_player_entry_point"), # make sure we don't overwrite player
(entry_point_get_position, pos1, ":random_entry_point"),
(get_distance_between_positions, ":dist", pos5, pos1),
(gt, ":dist", 1200), #must be at least 12 meters away from the player
(assign, ":end_cond", 0),
(try_end),
(add_visitors_to_current_scene, ":random_entry_point", ":added_troop", 1),
(store_add, ":new_spawned_count", "$g_arena_training_num_agents_spawned", 1),
(store_mission_timer_a, ":cur_time"),
(store_add, "$g_arena_training_next_spawn_time", ":cur_time", 14),
(store_div, ":time_reduction", ":new_spawned_count", 3),
(val_sub, "$g_arena_training_next_spawn_time", ":time_reduction"),
]),
(0, 0, 0,
[
(eq, "$g_mt_mode", abm_training)
],
[
(assign, ":max_teams", 6),
(val_max, ":max_teams", 1),
(get_player_agent_no, ":player_agent"),
(try_for_agents, ":agent_no"),
(agent_is_human, ":agent_no"),
(agent_is_alive, ":agent_no"),
(agent_slot_eq, ":agent_no", slot_agent_arena_team_set, 0),
(agent_get_team, ":team_no", ":agent_no"),
(is_between, ":team_no", 0 ,7),
(try_begin),
(eq, ":agent_no", ":player_agent"),
(agent_set_team, ":agent_no", 6), #player is always team 6.
(else_try),
(store_random_in_range, ":selected_team", 0, ":max_teams"),
# find strongest team
(try_for_range, ":t", 0, 6),
(troop_set_slot, "trp_temp_array_a", ":t", 0),
(try_end),
(try_for_agents, "

ther_agent_no"),
(agent_is_human, "

ther_agent_no"),
(agent_is_alive, "

ther_agent_no"),
(neq, ":agent_no", ":player_agent"),
(agent_slot_eq, "

ther_agent_no", slot_agent_arena_team_set, 1),
(agent_get_team, "

ther_agent_team", "

ther_agent_no"),
(troop_get_slot, ":count", "trp_temp_array_a", "

ther_agent_team"),
(val_add, ":count", 1),
(troop_set_slot, "trp_temp_array_a", "

ther_agent_team", ":count"),
(try_end),
(assign, ":strongest_team", 0),
(troop_get_slot, ":strongest_team_count", "trp_temp_array_a", 0),
(try_for_range, ":t", 1, 6),
(troop_slot_ge, "trp_temp_array_a", ":t", ":strongest_team_count"),
(troop_get_slot, ":strongest_team_count", "trp_temp_array_a", ":t"),
(assign, ":strongest_team", ":t"),
(try_end),
(store_random_in_range, ":rand", 5, 100),
(try_begin),
(lt, ":rand", "$g_arena_training_num_agents_spawned"),
(assign, ":selected_team", ":strongest_team"),
(try_end),
(agent_set_team, ":agent_no", ":selected_team"),
(try_end),
(agent_set_slot, ":agent_no", slot_agent_arena_team_set, 1),
(try_begin),
(neq, ":agent_no", ":player_agent"),
(val_add, "$g_arena_training_num_agents_spawned", 1),
(try_end),
(try_end),
]),
]