# script_enter_court
# Input: arg1 = center_no
# Output: none
#other search term: setup_court
("enter_court",
[
(store_script_param_1, ":center_no"),
(assign, "$talk_context", tc_court_talk),
(set_jump_mission,"mt_visit_town_castle"),
(mission_tpl_entry_clear_override_items, "mt_visit_town_castle", 0),
#(mission_tpl_entry_set_override_flags, "mt_visit_town_castle", 0, af_override_all),
(party_get_slot, ":castle_scene", ":center_no", slot_town_castle),
(modify_visitors_at_site,":castle_scene"),
(reset_visitors),
#Adding guards
(store_faction_of_party, ":center_faction", ":center_no"),
(faction_get_slot, ":guard_troop", ":center_faction", slot_faction_guard_troop),
(try_begin),
(le, ":guard_troop", 0),
(assign, ":guard_troop", "trp_swadian_sergeant"),
(try_end),
(set_visitor, 6, ":guard_troop"),
(set_visitor, 7, ":guard_troop"),
(assign, ":cur_pos", 16),
(try_begin),
(troop_get_slot, ":player_spouse", "trp_player", slot_troop_spouse),
(gt, ":player_spouse", 0),
(troop_slot_eq, ":player_spouse", slot_troop_cur_center, ":center_no"),
(set_visitor, ":cur_pos", ":player_spouse"),
(val_add,":cur_pos", 1),
(else_try),
(troop_get_slot, ":player_betrothed", "trp_player", slot_troop_betrothed),
(gt, ":player_betrothed", 0),
(troop_slot_eq, ":player_betrothed", slot_troop_cur_center, ":center_no"),
(set_visitor, ":cur_pos", ":player_betrothed"),
(val_add,":cur_pos", 1),
(try_end),
(try_begin),
(eq, "$g_player_court", ":center_no"),
(gt, "$g_player_minister", 0),
(neg|troop_slot_eq, "trp_player", slot_troop_spouse, "$g_player_minister"),
(set_visitor, ":cur_pos", "$g_player_minister"),
(val_add,":cur_pos", 1),
(try_end),
#Lords wishing to pledge allegiance - inactive, but part of player faction
(try_begin),
(eq, "$g_player_court", ":center_no"),
(faction_slot_eq, ":center_faction", slot_faction_leader, "trp_player"),
(try_for_range, ":active_npc", active_npcs_begin, active_npcs_end),
(store_faction_of_troop, ":active_npc_faction", ":active_npc"),
(eq, ":active_npc_faction", "fac_player_supporters_faction"),
(troop_slot_eq, ":active_npc", slot_troop_occupation, slto_inactive),
(neg|troop_slot_ge, ":active_npc", slot_troop_prisoner_of_party, 0), #if he/she is not prisoner in any center.
(neq, ":active_npc", "$g_player_minister"),
(set_visitor, ":cur_pos", ":active_npc"),
(val_add,":cur_pos", 1),
(try_end),
(try_end),
(call_script, "script_get_heroes_attached_to_center", ":center_no", "p_temp_party"),
(party_get_num_companion_stacks, ":num_stacks","p_temp_party"),
(try_for_range, ":i_stack", 0, ":num_stacks"),
(party_stack_get_troop_id, ":stack_troop","p_temp_party",":i_stack"),
(lt, ":cur_pos", 32), # spawn up to entry point 32 - is it possible to add another 10 spots?
(set_visitor, ":cur_pos", ":stack_troop"),
(val_add,":cur_pos", 1),
(try_end),
(try_for_range, ":cur_troop", kingdom_ladies_begin, kingdom_ladies_end),
(neq, ":cur_troop", "trp_knight_1_1_wife"), #The one who should not appear in game
#(troop_slot_eq, ":cur_troop", slot_troop_occupation, slto_kingdom_lady),
(troop_slot_eq, ":cur_troop", slot_troop_cur_center, ":center_no"),
(assign, ":lady_meets_visitors", 0),
(try_begin),
(this_or_next|troop_slot_eq, "trp_player", slot_troop_spouse, ":cur_troop"), #player spouse goes in position of honor
(this_or_next|troop_slot_eq, "trp_player", slot_troop_betrothed, ":cur_troop"), #player spouse goes in position of honor
(this_or_next|troop_slot_eq, ":cur_troop", slot_troop_spouse, "trp_player"), #player spouse goes in position of honor
(troop_slot_eq, ":cur_troop", slot_troop_betrothed, "trp_player"),
(assign, ":lady_meets_visitors", 0), #She is already in the place of honor
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "str_s4_is_present_at_the_center_and_in_place_of_honor"),
(try_end),
(else_try), #lady is troop
(store_faction_of_troop, ":lady_faction", ":cur_troop"),
(neq, ":lady_faction", ":center_faction"),
(assign, ":lady_meets_visitors", 1),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "str_s4_is_present_at_the_center_as_a_refugee"),
(try_end),
(else_try),
(troop_slot_ge, ":cur_troop", slot_troop_spouse, 1),
(try_begin),
#married ladies at a feast will not mingle - this is ahistorical, as married women and widows probably had much more freedom than unmarried ones, at least in the West, but the game needs to leave slots for them to show off their unmarried daughters
(faction_slot_eq, ":center_faction", slot_faction_ai_state, sfai_feast),
(faction_slot_eq, ":center_faction", slot_faction_ai_object, ":center_no"),
(assign, ":lady_meets_visitors", 0),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "str_s4_is_present_at_the_center_and_not_attending_the_feast"),
(try_end),
(else_try),
(assign, ":lady_meets_visitors", 1),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "str_s4_is_present_at_the_center_and_is_married"),
(try_end),
(try_end),
(else_try), #feast is in progress
(faction_slot_eq, ":center_faction", slot_faction_ai_state, sfai_feast),
(faction_slot_eq, ":center_faction", slot_faction_ai_object, ":center_no"),
(assign, ":lady_meets_visitors", 1),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "@{!}DEBUG -- {s4} is present at the center and is attending the feast"),
(try_end),
(else_try), #already met - awaits in private
(troop_slot_ge, ":cur_troop", slot_troop_met, 2),
(assign, ":lady_meets_visitors", 0),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "@{!}DEBUG -- {s4} is present at the center and is awaiting the player in private"),
(try_end),
(else_try),
(call_script, "script_get_kingdom_lady_social_determinants", ":cur_troop"),
(call_script, "script_npc_decision_checklist_male_guardian_assess_suitor", reg0, "trp_player"),
(gt, reg0, 0),
(assign, ":lady_meets_visitors", 1),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "@{!}DEBUG -- {s4} is_present_at_the_center_and_is_allowed_to_meet_the_player"),
(try_end),
(else_try),
(try_begin),
(eq, "$cheat_mode", 1),
(str_store_troop_name, s4, ":cur_troop"),
(display_message, "@{!}DEBUG -- {s4}is_present_at_the_center_and_is_not_allowed_to_meet_the_player"),
(try_end),
(try_end),
(eq, ":lady_meets_visitors", 1),
(lt, ":cur_pos", 32), # spawn up to entry point 32
(set_visitor, ":cur_pos", ":cur_troop"),
(val_add,":cur_pos", 1),
(try_end),
(set_jump_entry, 0),
(jump_to_scene,":castle_scene"),
(scene_set_slot, ":castle_scene", slot_scene_visited, 1),
(change_screen_mission),
]),