("town_default",0,-1,
"Default town visit",[
(0,mtef_scene_source|mtef_team_0,af_override_horse,0,1,pilgrim_disguise), #player spawn
(0,mtef_visitor_source,af_override_horse,0,1,[]), #random event spawn
(1,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(2,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(3,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(4,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(5,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(6,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(7,mtef_scene_source|mtef_team_0,af_override_horse,0,1,[]),
(8,mtef_scene_source,af_override_horse,0,1,[]),
(9,mtef_scene_source,af_override_horse,0,1,[]),
(10,mtef_scene_source,af_override_horse,0,1,[]),
(11,mtef_scene_source,af_override_horse,0,1,[]),
(12,mtef_scene_source,af_override_horse,0,1,[]),
(13,mtef_scene_source,0,0,1,[]),
(14,mtef_scene_source,0,0,1,[]),
(15,mtef_scene_source,0,0,1,[]),
(16,mtef_visitor_source,af_override_horse,0,1,[]),
(17,mtef_visitor_source,af_override_horse,0,1,[]),
(18,mtef_visitor_source,af_override_horse,0,1,[]),
(19,mtef_visitor_source,af_override_horse,0,1,[]),
(20,mtef_visitor_source,af_override_horse,0,1,[]),
(21,mtef_visitor_source,af_override_horse,0,1,[]),
(22,mtef_visitor_source,af_override_horse,0,1,[]),
(23,mtef_visitor_source,af_override_horse,0,1,[]),
(24,mtef_visitor_source,af_override_horse,0,1,[]),
(25,mtef_visitor_source,af_override_horse,0,1,[]),
(26,mtef_visitor_source,af_override_horse,0,1,[]),
(27,mtef_visitor_source,af_override_horse,0,1,[]),
(28,mtef_visitor_source,af_override_horse,0,1,[]),
(29,mtef_visitor_source,af_override_horse,0,1,[]),
(30,mtef_visitor_source,af_override_horse,0,1,[]),
(31,mtef_visitor_source,af_override_horse,0,1,[]),
#tavern OSP begin
(1,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#32
(2,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#33
(3,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#34
(4,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#35
(5,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#36
(6,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#37
(7,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#38
(8,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#39
(10,mtef_visitor_source,af_override_horse|af_override_gloves,0,1,[]),#40
],[
dedal_tavern_animations,
(1, 0, ti_once, [],
[
(store_current_scene, ":cur_scene"),
(scene_set_slot, ":cur_scene", slot_scene_visited, 1),
(try_begin),
(eq, "$sneaked_into_town", 1),
(call_script, "script_music_set_situation_with_culture", mtf_sit_town_infiltrate),
(else_try),
(eq, "$talk_context", tc_tavern_talk),
(call_script, "script_music_set_situation_with_culture", mtf_sit_tavern),
(else_try),
(call_script, "script_music_set_situation_with_culture", mtf_sit_town),
(try_end),
]),
(ti_before_mission_start, 0, 0, [],
[
(call_script, "script_change_banners_and_chest"),
(call_script, "script_initialize_tavern_variables"),
]),
(ti_inventory_key_pressed, 0, 0,
[
(set_trigger_result,1)
], []),
#tavern - belligerent drunk leaving/fading out
(1, 0, 0,
[
(gt, "$g_belligerent_drunk_leaving", 0),
(entry_point_get_position, pos0, 0),
(agent_get_position, pos1, "$g_belligerent_drunk_leaving"),
(get_distance_between_positions, ":dist", pos0, pos1),
(le, ":dist", 150),
],
[
(agent_fade_out, "$g_belligerent_drunk_leaving"),
(assign, "$g_belligerent_drunk_leaving", 0),
]),
(ti_tab_pressed, 0, 0,
[
(try_begin),
(eq, "$g_main_attacker_agent", 0),
(set_trigger_result, 1),
(try_end),
], []),
#tavern brawl triggers - drunk
(2, 0, 0,
[
(neg|conversation_screen_is_active),
(eq, "$talk_context", tc_tavern_talk),
(neg|troop_slot_eq, "trp_hired_assassin", slot_troop_cur_center, "$g_encountered_party"),
(troop_slot_eq, "trp_belligerent_drunk", slot_troop_cur_center, "$g_encountered_party"),
(eq, "$drunks_dont_pick_fights", 0),
],
[
(try_begin),
(eq, "$g_start_belligerent_drunk_fight", 0),
(assign, "$g_start_belligerent_drunk_fight", 1),
(try_for_agents, ":cur_agent"),
(agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
(eq, ":cur_agent_troop", "trp_belligerent_drunk"),
(assign, "$g_belligerent_drunk", ":cur_agent"),
(try_end),
(else_try),
(eq, "$g_start_belligerent_drunk_fight", 1),
(agent_is_active, "$g_belligerent_drunk"),
(agent_is_alive, "$g_belligerent_drunk"),
(get_player_agent_no, ":player_agent"),
(agent_get_position, pos0, ":player_agent"),
(agent_get_position, pos1, "$g_belligerent_drunk"),
(get_distance_between_positions, ":dist", pos0, pos1),
(position_get_z, ":pos0_z", pos0),
(position_get_z, ":pos1_z", pos1),
(store_sub, ":z_difference", ":pos1_z", ":pos0_z"),
(try_begin),
(le, ":z_difference", 0),
(val_mul, ":z_difference", -1),
(try_end),
(store_mul, ":z_difference_mul_3", ":z_difference", 3),
(val_add, ":dist", ":z_difference_mul_3"),
(store_random_in_range, ":random_value", 0, 200),
(store_add, ":400_plus_random_200", 400, ":random_value"),
(le, ":dist", ":400_plus_random_200"),
(call_script, "script_activate_tavern_attackers"),
(start_mission_conversation, "trp_belligerent_drunk"),
(assign, "$g_start_belligerent_drunk_fight", 2),
(try_end),
]),
#tavern brawl triggers - assassin
(2, 0, 0, [
(neg|conversation_screen_is_active),
(eq, "$talk_context", tc_tavern_talk),
(troop_slot_eq, "trp_hired_assassin", slot_troop_cur_center, "$g_encountered_party"),
],
[
(try_begin),
(eq, "$g_start_hired_assassin_fight", 0),
(assign, "$g_start_hired_assassin_fight", 1),
(try_for_agents, ":cur_agent"),
(agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
(eq, ":cur_agent_troop", "trp_hired_assassin"),
(assign, "$g_hired_assassin", ":cur_agent"),
(try_end),
(else_try),
(eq, "$g_start_hired_assassin_fight", 1),
(agent_is_active, "$g_hired_assassin"),
(agent_is_alive, "$g_hired_assassin"),
(get_player_agent_no, ":player_agent"),
(agent_get_position, pos0, ":player_agent"),
(agent_get_position, pos1, "$g_hired_assassin"),
(get_distance_between_positions, ":dist", pos0, pos1),
(position_get_z, ":pos0_z", pos0),
(position_get_z, ":pos1_z", pos1),
(store_sub, ":z_difference", ":pos1_z", ":pos0_z"),
(try_begin),
(le, ":z_difference", 0),
(val_mul, ":z_difference", -1),
(try_end),
(store_mul, ":z_difference_mul_3", ":z_difference", 3),
(val_add, ":dist", ":z_difference_mul_3"),
(store_random_in_range, ":random_value", 0, 200),
(store_add, ":400_plus_random_200", 400, ":random_value"),
(le, ":dist", ":400_plus_random_200"),
(call_script, "script_activate_tavern_attackers"),
(assign, "$g_start_hired_assassin_fight", 2),
(try_end),
]),
#Aftermath talks
(3, 0, ti_once,
[
(neg|conversation_screen_is_active),
(eq, "$talk_context", tc_tavern_talk),
(gt, "$g_main_attacker_agent", 0),
(this_or_next|neg|agent_is_alive, "$g_main_attacker_agent"),
(agent_is_wounded, "$g_main_attacker_agent"),
(try_begin),
(neq, "$belligerent_drunk_will_ask_to_join", 3),
(agent_is_wounded, "$g_main_attacker_agent"),
#(display_message, "@he was wounded."),
(store_random_in_range, ":belligerent_drunk_want_to_join", 0, 2),
(eq, ":belligerent_drunk_want_to_join", 1),
#(display_message, "@random works"),
#(ge, "$player_honor", 0),
#(display_message, "@honor enough he will join."),
(assign, "$belligerent_drunk_will_ask_to_join", 1),
(try_end),
],
[
(mission_enable_talk),
(try_for_agents, ":agent"),
(agent_is_alive, ":agent"),
(agent_get_position, pos4, ":agent"),
(agent_set_scripted_destination, ":agent", pos4),
(try_end),
(party_get_slot, ":tavernkeeper", "$g_encountered_party", slot_town_tavernkeeper),
(start_mission_conversation, ":tavernkeeper"),
]),
(3, 0, ti_once,
[
(neg|conversation_screen_is_active),
(eq, "$townsman_burst_in", 3),
(store_normalized_team_count, ":count1", 1),
(store_normalized_team_count, ":count2", 2),
(this_or_next|lt, ":count1", 1),
(lt, ":count2", 1),
],
[
(mission_enable_talk),
(finish_party_battle_mode),
(party_get_slot, ":tavernkeeper", "$g_encountered_party", slot_town_tavernkeeper),
(start_mission_conversation, ":tavernkeeper"),
]),
#Aftermath talks
(3, 0, ti_once,
[
(neg|conversation_screen_is_active),
(eq, "$talk_context", tc_tavern_talk),
(gt, "$g_main_attacker_agent", 0),
(main_hero_fallen),
],
[
(jump_to_menu, "mnu_lost_tavern_duel"),
(finish_mission,0)
]),
#No shooting in the tavern
(1, 0, 0,
[
(neg|conversation_screen_is_active),
(eq, "$talk_context", tc_tavern_talk),
(gt, "$g_main_attacker_agent", 0),
(get_player_agent_no, ":player_agent"),
(agent_is_alive, ":player_agent"),
(agent_get_wielded_item, ":wielded_item", ":player_agent", 0),
(is_between, ":wielded_item", "itm_darts", "itm_torch"),
(neq, ":wielded_item", "itm_javelin_melee"),
(neq, ":wielded_item", "itm_throwing_spear_melee"),
(neq, ":wielded_item", "itm_jarid_melee"),
(neq, ":wielded_item", "itm_light_throwing_axes_melee"),
(neq, ":wielded_item", "itm_throwing_axes_melee"),
(neq, ":wielded_item", "itm_heavy_throwing_axes_melee"),
],
[
(party_get_slot, ":tavernkeeper", "$g_encountered_party", slot_town_tavernkeeper),
##diplomacy start+
#Turn of this !@#$%ing obnoxious and totally illogical restriction provided:
(try_begin),
#1) there is an actual fight
(gt, "$g_main_attacker_agent", 0),
(agent_is_alive, "$g_main_attacker_agent"),
(neg|agent_is_wounded, "$g_main_attacker_agent"),
#2) the player is the lord of this town, a mercenary captain in the kingdom's employ, or ruler of this kingdom
(store_faction_of_party , ":center_faction", "$g_encountered_party"),
(this_or_next|eq, ":center_faction", "$players_kingdom"),
(eq, ":center_faction", "fac_player_supporters_faction"),
(else_try),
#Else, original behavior:
(start_mission_conversation, ":tavernkeeper"),
(try_end),
##diplomacy stop+
]),
#Check for weapon in hand of attacker, also, everyone gets out of the way
(1, 0, 0,
[
(gt, "$g_main_attacker_agent", 0),
],
[
(agent_get_wielded_item, ":wielded_item", "$g_main_attacker_agent", 0),
(val_max, "$g_attacker_drawn_weapon", ":wielded_item"),
(call_script, "script_neutral_behavior_in_fight"),
]),
#Random event
(3, 3, 3,
[
(neg|conversation_screen_is_active),
(eq, "$g_main_attacker_agent", 0),
],
[
(display_message, "@debug: trigger fired"),
(try_begin),
(eq, "$townsman_burst_in", 0),
(party_get_slot, ":tavern_traveler", "$current_town", slot_center_tavern_traveler),
(gt, ":tavern_traveler", 0),
#(store_random_in_range, ":random_chance_of_burst_in", 0, 3),
#(eq, ":random_chance_of_burst_in", 1), #random chance disabled for now
(assign, "$townsman_burst_in", 1),
(display_message, "@debug: in 9 seconds the theivery victim will appear"),
(else_try),
(display_message, "@debug: global townsman_burst_in not 0"),
(eq, "$townsman_burst_in", 1),
(display_message, "@debug: townsman_should burst_in"),
# (entry_point_get_position, pos1, 0), #tried this, didn't work
#(add_visitors_to_current_scene, pos1, "trp_townsman_whos_money_was_stolen", 1),
(store_current_scene, ":cur_scene"),
(modify_visitors_at_site, ":cur_scene"), #suggested by kalarhan
#(add_visitors_to_current_scene, 0, "trp_townsman_whos_money_was_stolen", 1, 0)
(add_visitors_to_current_scene, 0, "trp_townsman_whos_money_was_stolen", 1),
(assign, "$townsman_burst_in", 2),
(try_end),
]),
(1, 0, 0,
[
(neg|conversation_screen_is_active),
(eq, "$townsman_burst_in", 2),
(eq, "$g_main_attacker_agent", 0),
],
[
(try_for_agents, ":agent_no"),
(agent_get_troop_id, ":troop_no", ":agent_no"),
(party_get_slot, ":tavern_traveler", "$current_town", slot_center_tavern_traveler),
(eq, ":troop_no", ":tavern_traveler"),
(agent_get_position, pos50, ":agent_no"),
(try_end),
(try_for_agents, ":agent_no"),
(agent_get_troop_id, ":troop_no", ":agent_no"),
(eq, ":troop_no", "trp_townsman_whos_money_was_stolen"),
(party_get_slot, ":tavern_traveler", "$current_town", slot_center_tavern_traveler),
(gt, ":tavern_traveler", 0),
(agent_set_scripted_destination, ":agent_no", pos50),
(agent_get_position, pos1, ":agent_no"),
(get_distance_between_positions, ":dist", pos50, pos1),
(le, ":dist", 200),
(start_mission_conversation, ":troop_no"),
(try_end),
]),
] + bodyguard_triggers,
),