scripted_gui = {

	# ============================================================
	# MAIN NAVAL COLLEGE WINDOW
	# Visible whenever the nc_window_open flag is set on the player
	# country (set/cleared by the launcher button and the close button).
	# ============================================================
	# ============================================================
	# NAVAL COLLEGE LAUNCHER BUTTON
	# Lives inside the vanilla Officer Corps view (parent container
	# "officer_core_view" - confirmed at countryofficercorpview.gui:583).
	# Clicking the button toggles the nc_window_open country flag, so a
	# second click closes the naval college window.
	# Position offset (x = 55) is set in the .gui to avoid overlap with
	# any sibling launcher button at x = 5 (e.g. War College mod).
	# ============================================================
	nc_button_gui_window = {
		window_name = "nc_button_gui_window"
		parent_window_name = "officer_core_view"
		context_type = player_context

		visible = {
			always = yes
		}

		effects = {
			# Toggle the main naval college window. Both branches clear every
			# NC sub-flag so the player always opens fresh on the War Games
			# tab with no stale picker / sub-window state. Without this, a
			# previously-set nc_academy_tab would leave nc_main_window
			# hidden on re-open (since nc_main_window's visibility gates
			# on NOT academy_tab).
			nc_launcher_button_click = {
				if = {
					limit = { has_country_flag = nc_window_open }
					clr_country_flag = nc_window_open
					clr_country_flag = nc_picker_open
					clr_country_flag = nc_academy_tab
					clr_country_flag = nc_headmaster_picker_open
					clr_country_flag = nc_officer_picker_open
				}
				else = {
					set_country_flag = nc_window_open
					clr_country_flag = nc_picker_open
					clr_country_flag = nc_academy_tab
					clr_country_flag = nc_headmaster_picker_open
					clr_country_flag = nc_officer_picker_open
				}
			}
		}

		ai_enabled = { always = no }
	}
	nc_main_gui = {
		window_name = "nc_main_window"
		context_type = player_context

		# nc_main_window only shows on the War Games tab. The academy tab
		# is handled by nc_academy_gui targeting nc_academy_window.
		visible = {
			has_country_flag = nc_window_open
			NOT = { has_country_flag = nc_academy_tab }
		}

		effects = {
			# Close
			nc_main_close_button_click = {
				clr_country_flag = nc_window_open
				clr_country_flag = nc_picker_open
				clr_country_flag = nc_academy_tab
				clr_country_flag = nc_headmaster_picker_open
				clr_country_flag = nc_officer_picker_open
			}

			# Tab swap.
			nc_open_war_games_menu_click = {
				clr_country_flag = nc_academy_tab
			}
			nc_open_academy_menu_click = {
				set_country_flag = nc_academy_tab
				clr_country_flag = nc_picker_open
			}

			# Build the college (5 civs / 90 days, modeled as a productivity-loss timed idea)
			nc_build_college_button_click = {
				nc_build_college_effect = yes
			}

			# Open the picker sub-window
			nc_open_picker_button_click = {
				set_country_flag = nc_picker_open
			}

			# Advance the active training by one phase
			nc_advance_phase_button_click = {
				nc_advance_active_training_effect = yes
			}

			# Conclude a completed training
			nc_conclude_button_click = {
				nc_conclude_active_training_effect = yes
			}

			# Toggle auto-advance.
			nc_checkmark_box_frame_click = {
				if = {
					limit = { check_variable = { nc_auto_advance_enabled = 1 } }
					set_variable = { nc_auto_advance_enabled = 0 }
					set_variable = { nc_auto_advance_frame = 1 }
				}
				else = {
					set_variable = { nc_auto_advance_enabled = 1 }
					set_variable = { nc_auto_advance_frame = 2 }
				}
			}
		}

		triggers = {
			nc_open_war_games_menu_visible = { always = yes }
			nc_open_academy_menu_visible = { always = yes }

			nc_build_college_button_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				NOT = { check_variable = { nc_built = 1 } }
			}

			nc_build_college_button_click_enabled = {
				NOT = { check_variable = { nc_construction_active = 1 } }
				num_of_civilian_factories > 4
			}

			nc_construction_progress_bar_frame_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_construction_active = 1 }
			}
			nc_construction_bar_clip_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_construction_active = 1 }
			}
			nc_construction_progress_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_construction_active = 1 }
			}

			nc_open_picker_button_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
			}

			nc_advance_phase_button_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase < 3 }
			}

			nc_advance_phase_button_click_enabled = {
				check_variable = { nc_phase_cooldown_days < 1 }
				nc_can_pay_current_phase = yes
			}

			nc_conclude_button_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 3 }
				check_variable = { nc_phase_cooldown_days < 1 }
			}

			nc_track_panel_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_built = 1 }
			}

			nc_checkmark_box_frame_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_built = 1 }
			}

			nc_reward_frame_t1_visible = { check_variable = { nc_training_active = 1 } }
			nc_reward_icon_t1_visible  = { check_variable = { nc_training_active = 1 } }
			nc_reward_level_t1_visible = { check_variable = { nc_training_active = 1 } }
			nc_reward_frame_t2_visible = { check_variable = { nc_training_active = 1 } }
			nc_reward_icon_t2_visible  = { check_variable = { nc_training_active = 1 } }
			nc_reward_level_t2_visible = { check_variable = { nc_training_active = 1 } }
			nc_reward_frame_t3_visible = { check_variable = { nc_training_active = 1 } }
			nc_reward_icon_t3_visible  = { check_variable = { nc_training_active = 1 } }
			nc_reward_level_t3_visible = { check_variable = { nc_training_active = 1 } }

			nc_progress_fill_visible = {
				check_variable = { nc_training_phase > 0 }
			}
			nc_progress_fill_2_visible = {
				check_variable = { nc_training_phase > 1 }
			}
			nc_progress_fill_3_visible = {
				check_variable = { nc_training_phase > 2 }
			}

			nc_track_name_visible = { check_variable = { nc_built = 1 } }

			nc_status_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
			}
			nc_reward_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
			}

			nc_cost_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				NOT = { check_variable = { nc_construction_active = 1 } }
				NOT = { check_variable = { nc_training_active = 1 } }
			}

			nc_construction_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_construction_active = 1 }
			}

			nc_phase_info_p0_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 0 }
			}
			nc_phase_info_p1_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 1 }
			}
			nc_phase_info_p2_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 2 }
			}
			nc_phase_info_p3_pending_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 3 }
				check_variable = { nc_phase_cooldown_days > 0 }
			}
			nc_phase_info_p3_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 3 }
				check_variable = { nc_phase_cooldown_days < 1 }
			}

			nc_active_training_icon_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
			}
			nc_active_training_phase_pill_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
			}
			nc_active_training_name_text_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
			}

			nc_action_label_select_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
			}
			nc_action_label_advance_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase < 3 }
				check_variable = { nc_phase_cooldown_days < 1 }
			}
			nc_action_label_cooldown_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_phase_cooldown_days > 0 }
			}
			nc_action_label_conclude_visible = {
				NOT = { has_country_flag = nc_academy_tab }
				check_variable = { nc_training_active = 1 }
				check_variable = { nc_training_phase = 3 }
				check_variable = { nc_phase_cooldown_days < 1 }
			}

		}

		properties = {
			nc_reward_frame_t1 = { frame = nc_reward_t1_frame }
			nc_reward_frame_t2 = { frame = nc_reward_t2_frame }
			nc_reward_frame_t3 = { frame = nc_reward_t3_frame }

			nc_construction_progress_bar = { x = nc_construction_bar_x }

			nc_checkmark_box_frame = { frame = nc_auto_advance_frame }

			nc_active_training_icon = {
				image = "[GetNcTrainingIcon]"
			}
		}

		ai_enabled = { always = no }
	}

	# ============================================================
	# ACADEMY VIEW
	# ============================================================
	nc_academy_gui = {
		window_name = "nc_academy_window"
		context_type = player_context

		visible = {
			has_country_flag = nc_window_open
			has_country_flag = nc_academy_tab
		}

		effects = {
			nc_academy_main_close_button_click = {
				clr_country_flag = nc_window_open
				clr_country_flag = nc_picker_open
				clr_country_flag = nc_academy_tab
				clr_country_flag = nc_headmaster_picker_open
				clr_country_flag = nc_officer_picker_open
			}

			nc_academy_tab_war_games_click = {
				clr_country_flag = nc_academy_tab
			}
			nc_academy_tab_academy_click = { }

			# Faculty pickers
			nc_academy_headmaster_button_click = {
				nc_open_headmaster_picker_effect = yes
			}
			nc_academy_officer_1_button_click = {
				set_variable = { nc_officer_target_slot = 1 }
				nc_open_officer_picker_effect = yes
			}
			nc_academy_officer_2_button_click = {
				set_variable = { nc_officer_target_slot = 2 }
				nc_open_officer_picker_effect = yes
			}
			nc_academy_officer_3_button_click = {
				set_variable = { nc_officer_target_slot = 3 }
				nc_open_officer_picker_effect = yes
			}

			# Training tier upgrades.
			nc_academy_sub_tier_button_click = {
				set_variable = { nc_pending_upgrade_id = 1 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_scr_tier_button_click = {
				set_variable = { nc_pending_upgrade_id = 4 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_car_tier_button_click = {
				set_variable = { nc_pending_upgrade_id = 7 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_bb_tier_button_click = {
				set_variable = { nc_pending_upgrade_id = 10 }
				nc_start_upgrade_effect = yes
			}

			# Placeholder slots
			nc_academy_sub_slot2_button_click = { }
			nc_academy_sub_slot3_button_click = { }
			nc_academy_scr_slot2_button_click = { }
			nc_academy_scr_slot3_button_click = { }
			nc_academy_car_slot2_button_click = { }
			nc_academy_car_slot3_button_click = { }
			nc_academy_bb_slot2_button_click = { }
			nc_academy_bb_slot3_button_click = { }

			# Academy global upgrades
			nc_academy_unlock_slots_button_click = {
				set_variable = { nc_pending_upgrade_id = 13 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_unlock_spirit_button_click = {
				set_variable = { nc_pending_upgrade_id = 14 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_unlock_theorist_button_click = {
				set_variable = { nc_pending_upgrade_id = 15 }
				nc_start_upgrade_effect = yes
			}
			nc_academy_speed_upgrade_button_click = {
				set_variable = { nc_pending_upgrade_id = 16 }
				nc_start_upgrade_effect = yes
			}
		}

		triggers = {
			nc_academy_tab_war_games_visible = { always = yes }
			nc_academy_tab_academy_visible = { always = yes }

			nc_academy_active_upgrade_text_visible = {
				check_variable = { nc_active_upgrade_id > 0 }
			}
			nc_academy_idle_banner_text_visible = {
				check_variable = { nc_active_upgrade_id = 0 }
			}

			# Tier upgrade buttons
			nc_academy_sub_tier_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				check_variable = { nc_submarine_tier < 3 }
			}
			nc_academy_scr_tier_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				check_variable = { nc_screen_tier < 3 }
			}
			nc_academy_car_tier_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				check_variable = { nc_carrier_tier < 3 }
			}
			nc_academy_bb_tier_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				check_variable = { nc_battleship_tier < 3 }
			}

			# Placeholder slot buttons
			nc_academy_sub_slot2_button_click_enabled = { always = no }
			nc_academy_sub_slot3_button_click_enabled = { always = no }
			nc_academy_scr_slot2_button_click_enabled = { always = no }
			nc_academy_scr_slot3_button_click_enabled = { always = no }
			nc_academy_car_slot2_button_click_enabled = { always = no }
			nc_academy_car_slot3_button_click_enabled = { always = no }
			nc_academy_bb_slot2_button_click_enabled = { always = no }
			nc_academy_bb_slot3_button_click_enabled = { always = no }

			# Academy globals
			nc_academy_unlock_slots_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				NOT = { check_variable = { nc_academy_slots_unlocked = 1 } }
			}
			nc_academy_unlock_spirit_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				NOT = { check_variable = { nc_academy_spirit_unlocked = 1 } }
			}
			nc_academy_unlock_theorist_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				NOT = { check_variable = { nc_academy_theorist_unlocked = 1 } }
			}
			nc_academy_speed_upgrade_button_click_enabled = {
				check_variable = { nc_active_upgrade_id = 0 }
				check_variable = { nc_academy_speed_level < 3 }
			}
		}

		ai_enabled = { always = no }
	}

	# ============================================================
	# TRAINING PICKER
	# ============================================================

	nc_picker_gui = {
		window_name = "nc_picker_window"
		context_type = player_context

		visible = {
			has_country_flag = nc_picker_open
		}

		effects = {
			nc_picker_close_button_click = {
				clr_country_flag = nc_picker_open
			}

			nc_picker_t1_submarine_studies_assign_button_click = {
				nc_assign_t1_submarine_studies_effect = yes
			}
			nc_picker_t1_screen_studies_assign_button_click = {
				nc_assign_t1_screen_studies_effect = yes
			}
			nc_picker_t1_carrier_studies_assign_button_click = {
				nc_assign_t1_carrier_studies_effect = yes
			}
			nc_picker_t1_battleship_studies_assign_button_click = {
				nc_assign_t1_battleship_studies_effect = yes
			}
		}

		triggers = {
			# Common gating across all picker rows: college built, no active
			# training, 50 navy XP available. Per-training equipment requirements
			# are not pre-checked at assign time - they're checked at each
			# advance click via the cooldown + button gating loop.
			nc_picker_t1_submarine_studies_assign_button_click_enabled = {
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
				has_navy_experience > 49
			}
			nc_picker_t1_screen_studies_assign_button_click_enabled = {
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
				has_navy_experience > 49
			}
			nc_picker_t1_carrier_studies_assign_button_click_enabled = {
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
				has_navy_experience > 49
			}
			nc_picker_t1_battleship_studies_assign_button_click_enabled = {
				check_variable = { nc_built = 1 }
				NOT = { check_variable = { nc_training_active = 1 } }
				has_navy_experience > 49
			}
		}

		ai_enabled = { always = no }
	}

	# ============================================================
	# HEADMASTER PICKER
	# ============================================================
	nc_headmaster_picker_gui = {
		window_name = "nc_headmaster_picker_window"
		context_type = player_context

		visible = {
			has_country_flag = nc_headmaster_picker_open
		}

		effects = {
			nc_headmaster_picker_close_button_click = {
				nc_close_headmaster_picker_effect = yes
			}

			nc_headmaster_dismiss_button_click = {
				nc_dismiss_headmaster_effect = yes
			}

			nc_headmaster_picker_entry_assign_button_click = {
				ROOT = {
					nc_assign_headmaster_effect = yes
				}
			}
		}

		triggers = {
			nc_headmaster_dismiss_button_click_enabled = {
				has_variable = nc_headmaster_id
			}
		}

		dynamic_lists = {
			nc_headmaster_picker_gridbox = {
				array = ROOT.nc_academy_leaders_array
				value = nc_headmaster_pick_value
				index = nc_headmaster_pick_index
				change_scope = yes
				entry_container = nc_headmaster_picker_entry
			}
		}

		ai_enabled = { always = no }
	}

	# ============================================================
	# OFFICER PICKER
	# ============================================================
	nc_officer_picker_gui = {
		window_name = "nc_officer_picker_window"
		context_type = player_context

		visible = {
			has_country_flag = nc_officer_picker_open
		}

		effects = {
			nc_officer_picker_close_button_click = {
				nc_close_officer_picker_effect = yes
			}

			nc_officer_dismiss_button_click = {
				nc_dismiss_officer_effect = yes
			}

			nc_officer_picker_entry_assign_button_click = {
				ROOT = {
					nc_assign_officer_effect = yes
				}
			}
		}

		triggers = {
			nc_officer_dismiss_button_click_enabled = {
				OR = {
					AND = { check_variable = { nc_officer_target_slot = 1 } has_variable = nc_officer_1_id }
					AND = { check_variable = { nc_officer_target_slot = 2 } has_variable = nc_officer_2_id }
					AND = { check_variable = { nc_officer_target_slot = 3 } has_variable = nc_officer_3_id }
				}
			}
		}

		dynamic_lists = {
			nc_officer_picker_gridbox = {
				array = ROOT.nc_academy_leaders_array
				value = nc_officer_pick_value
				index = nc_officer_pick_index
				change_scope = yes
				entry_container = nc_officer_picker_entry
			}
		}

		ai_enabled = { always = no }
	}
}
