scripted_gui = { MD_auto_agency_queue_scripted_gui = { context_type = player_context window_name = "MD_auto_agency_queue_gui" dirty = global.auto_agency_upgrade visible = { has_country_flag = MD_auto_agency_queue_gui_open } triggers = { decrease_order_click_enabled = { set_temp_variable = { last_in_array = agency_queue^num } subtract_from_temp_variable = { last_in_array = 1 } check_variable = { i < last_in_array } } decrease_order_shift_click_enabled = { set_temp_variable = { last_in_array = agency_queue^num } subtract_from_temp_variable = { last_in_array = 1 } check_variable = { i < last_in_array } } increase_order_click_enabled = { check_variable = { i > 0 } } increase_order_shift_click_enabled = { check_variable = { i > 0 } } agency_upgrade_icon_button_click_enabled = { custom_trigger_tooltip = { tooltip = MD_auto_agency_queue_not_full_tt NOT = { check_variable = { var = agency_upgrades_completed_and_queued^i value = global.agency_max_upgrades^i compare = greater_than_or_equals } } } custom_trigger_tooltip = { tooltip = MD_auto_agency_prereqs_tt OR = { AND = { NOT = { check_variable = { i = 2 } } NOT = { check_variable = { i = 7 } } NOT = { check_variable = { i = 17 } } NOT = { check_variable = { i = 18 } } NOT = { check_variable = { i = 19 } } NOT = { check_variable = { i = 20 } } NOT = { check_variable = { i = 21 } } NOT = { check_variable = { i = 22 } } NOT = { check_variable = { i = 23 } } NOT = { check_variable = { i = 24 } } } AND = { check_variable = { i = 2 } has_tech = computing3 has_done_agency_upgrade = upgrade_form_department } AND = { check_variable = { i = 7 } has_tech = internet3 } AND = { OR = { check_variable = { i = 17 } check_variable = { i = 18 } check_variable = { i = 20 } } has_done_agency_upgrade = upgrade_form_department } AND = { check_variable = { i = 19 } has_done_agency_upgrade = upgrade_crypto_strength has_tech = artificial_intelligence_4 } AND = { OR = { check_variable = { i = 21 } check_variable = { i = 22 } check_variable = { i = 23 } } has_done_agency_upgrade = upgrade_establish_cyber_operations_division has_done_agency_upgrade = upgrade_form_department } AND = { check_variable = { i = 24 } has_done_agency_upgrade = upgrade_cyber_warfare_operational_planning has_done_agency_upgrade = upgrade_establish_cyber_operations_division has_done_agency_upgrade = upgrade_form_department } } } } } effects = { close_button_click = { clr_country_flag = MD_auto_agency_queue_gui_open MD_auto_agency_mark_dirty = yes } expand_agency_dropdown_button_click = { MD_auto_agency_toggle_dropdown = yes MD_auto_agency_mark_dirty = yes } expand_agency_dropdown_button_arrow_click = { MD_auto_agency_toggle_dropdown = yes MD_auto_agency_mark_dirty = yes } decrease_order_click = { set_temp_variable = { below = i } add_to_temp_variable = { below = 1 } set_temp_variable = { below_value = agency_queue^below } set_temp_variable = { hold = v } set_variable = { agency_queue^i = below_value } set_variable = { agency_queue^below = hold } MD_auto_agency_mark_dirty = yes } decrease_order_shift_click = { set_temp_variable = { hold_value = v } set_temp_variable = { shrink_idx = i } MD_auto_agency_shrink_queue_at_index = yes add_to_array = { agency_queue = hold_value } MD_auto_agency_mark_dirty = yes } increase_order_click = { set_temp_variable = { above = i } subtract_from_temp_variable = { above = 1 } set_temp_variable = { above_value = agency_queue^above } set_temp_variable = { hold = v } set_variable = { agency_queue^i = above_value } set_variable = { agency_queue^above = hold } MD_auto_agency_mark_dirty = yes } increase_order_shift_click = { set_temp_variable = { hold_value = v } for_loop_effect = { start = i end = 0 value = v2 compare = greater_than add = -1 set_temp_variable = { above = v2 } subtract_from_temp_variable = { above = 1 } set_temp_variable = { above_value = agency_queue^above } set_variable = { agency_queue^v2 = above_value } } set_variable = { agency_queue^0 = hold_value } MD_auto_agency_mark_dirty = yes } remove_from_queue_click = { set_temp_variable = { val = agency_queue^i } subtract_from_variable = { agency_upgrades_completed_and_queued^val = 1 } set_temp_variable = { shrink_idx = i } MD_auto_agency_shrink_queue_at_index = yes country_event = { id = md_auto_agency.1 days = 1 } MD_auto_agency_mark_dirty = yes } agency_upgrade_icon_button_click = { add_to_array = { agency_queue = i } add_to_variable = { agency_upgrades_completed_and_queued^i = 1 } MD_auto_agency_verify_queue = yes if = { limit = { OR = { NOT = { check_variable = { automate_agency_upgrades_choice = 3 } } has_active_mission = spy_agency_upgrade_in_progress check_variable = { agency_queue^num > 1 } } } MD_auto_agency_update_state = yes } else = { # Queue-Only + empty queue: defer so the item renders before # find_first_valid consumes it. country_event = { id = md_auto_agency.1 days = 1 } } MD_auto_agency_mark_dirty = yes } agency_upgrade_icon_button_shift_click = { set_temp_variable = { loop_duration = global.agency_max_upgrades^i } subtract_from_temp_variable = { loop_duration = agency_upgrades_completed_and_queued^i } set_temp_variable = { upgrade_index = i } if = { limit = { check_variable = { loop_duration > 0 } } for_loop_effect = { end = loop_duration add_to_array = { agency_queue = upgrade_index } add_to_variable = { agency_upgrades_completed_and_queued^upgrade_index = 1 } } MD_auto_agency_verify_queue = yes if = { limit = { OR = { NOT = { check_variable = { automate_agency_upgrades_choice = 3 } } has_active_mission = spy_agency_upgrade_in_progress check_variable = { agency_queue^num > 1 } } } MD_auto_agency_update_state = yes } else = { country_event = { id = md_auto_agency.1 days = 1 } } MD_auto_agency_mark_dirty = yes } } clear_queue_button_click = { for_each_loop = { array = agency_queue value = upgrade_idx index = local_index subtract_from_variable = { agency_upgrades_completed_and_queued^upgrade_idx = 1 } } clear_array = agency_queue # Deferred so ON mode doesn't immediately pick a random upgrade before # the player re-queues. country_event = { id = md_auto_agency.1 days = 1 } MD_auto_agency_mark_dirty = yes } } properties = { agency_queue_icon = { image = "[MD_auto_agency_queue_icon]" } agency_upgrade_icon_button = { image = "[MD_auto_agency_upgrade_icon]" } expand_agency_dropdown_button_arrow = { frame = agency_dropdown_visible } } dynamic_lists = { queue_list_gridbox = { array = agency_queue change_scope = no entry_container = "MD_auto_agency_upgrade_in_queue_item" } upgrades_list_gridbox = { array = global.agency_upgrades change_scope = no entry_container = "MD_auto_agency_upgrade_item" } } } MD_auto_agency_upgrade_selection_option_dropdown_gui = { context_type = player_context window_name = "MD_auto_agency_upgrade_selection_option_dropdown_container" parent_window_name = MD_auto_agency_queue_gui dirty = global.auto_agency_upgrade visible = { has_country_flag = MD_auto_agency_queue_gui_open check_variable = { agency_dropdown_visible = 1 } } effects = { auto_upgrades_off_button_click = { set_variable = { automate_agency_upgrades_choice = 1 } set_variable = { agency_dropdown_visible = 2 } MD_auto_agency_update_state = yes } auto_upgrades_on_button_click = { set_variable = { automate_agency_upgrades_choice = 2 } set_variable = { agency_dropdown_visible = 2 } # Deferred so find_first_valid doesn't strip queued items on the # same tick the player toggled automation. country_event = { id = md_auto_agency.1 days = 1 } MD_auto_agency_mark_dirty = yes } auto_upgrades_queue_only_button_click = { set_variable = { automate_agency_upgrades_choice = 3 } set_variable = { agency_dropdown_visible = 2 } country_event = { id = md_auto_agency.1 days = 1 } MD_auto_agency_mark_dirty = yes } } } spy_agency_upgrade_automation_scripted_ui = { context_type = player_context window_name = "spy_agency_upgrade_automation_ui" parent_window_name = agency_branches dirty = global.auto_agency_upgrade visible = { has_intelligence_agency = yes } effects = { load_queue_tab_button_click = { # Lazy init — skipping on_startup avoids ~5000 wasted variable slots # across AI nations for a player-only feature. if = { limit = { NOT = { has_variable = automate_agency_upgrades_choice } } MD_auto_agency_init_country_state = yes } if = { limit = { has_country_flag = MD_auto_agency_queue_gui_open } clr_country_flag = MD_auto_agency_queue_gui_open } else = { set_country_flag = MD_auto_agency_queue_gui_open } MD_auto_agency_mark_dirty = yes } } } }