﻿on_game_start = {
	on_actions = {
		historicinvasions_suppress_errors_at_game_start
		historicinvasions_save_dynasties_on_game_start
		historicinvasions_on_game_start
	}
}

historicinvasions_suppress_errors_at_game_start = {
	trigger = { always = no }
	effect = {
		if = {
			### syntax for global variable lists
			# name = historicinvasions_story_started
			# name = historicinvasions_story_ended
			# target = flag:timurid_story_started
			# target = flag:timurid_story_ended
			# target = flag:fatimid_africa_story_started
			# target = flag:almohad_two_story_ended
			limit = {
				always = no 

				exists = global_var:historicinvasions_mod_active
				exists = global_var:historicinvasions_ludolfinger_enabled
				#exists = global_var:moregermankingdoms_mod_active
				exists = var:invasion_ends_after_loss_to_invader

				is_target_in_global_variable_list = {
					name = historicinvasions_story_started
					target = flag:fatimid_arabia_story_started
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_started
					target = flag:al-qays_story_started
				}

				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:timurid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:fatimid_story_ended # arabia
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ghaznavid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:seljuk_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ziyarid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ayyubid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:balgarsko_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:almoravid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:almohad_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ghurid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ludolfinger_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:hauteville_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:jannabid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:vlaanderen_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:balk_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:bassenheim_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:terteroba_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:rurikid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:chola_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:anushtiginid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:yelu_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:ottoman_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:keita_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:al-qays_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:knytling_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:gediminid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:yngling_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:jabalid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:sabbah_story_ended
				}				
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:qarghuyid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:vivar_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:normandie_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:piast_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:sangama_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:bearn_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:eldiguzid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:borjigin_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:jochid_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:hulagu_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:yuan_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:qara_qoyunlu_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:aq_qoyunlu_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:wanggiyan_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:rajasa_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:liao_story_ended
				}

				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:attila_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:argead_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:maurya_story_ended
				}

				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:song_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:zunbil_story_ended
				}
				is_target_in_global_variable_list = {
					name = historicinvasions_story_ended
					target = flag:komnenos_story_ended
				}

				is_target_in_global_variable_list = {
					name = historicinvasions_story_started
					target = flag:turkish_migrations_ended
				}

				has_global_variable = golden_horde_was_broken_up

				any_artifact = {
					count < 1
					OR = {
						has_variable = seljuk_sword
						has_variable = almohad_book
						has_variable = marco_polo_book
					}
					
				}

				title:e_mongol_empire = {
					has_variable = title_may_splinter_on_death
				}
			}
			# do nothing; is never TRUE
			set_global_variable = {
				name = GG_is_loaded
				value = yes
			}
		}

	}
}

historicinvasions_save_dynasties_on_game_start = {
	trigger = {}
	effect = {
		### keep dynasty roots from disappearing by granting them at least one county at game start
		### doing this for landless adventrers turns them into simple courtiers
		# 02 fatimid
		if = {
			limit = {
				game_start_date >= 867.1.1
				game_start_date < 1066.09.15
				exists = character:33920
				NOT = { character:33920 = { has_government = landless_adventurer_government } }
			}
			title:c_hama = { save_scope_as = temporary_title }
			scope:temporary_title.holder = { save_scope_as = previous_holder }
			# history entry
			create_title_and_vassal_change = {
				type = leased_out
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = character:33920
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
			# revert
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = scope:previous_holder
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
		}
		# 04 seljuk
		if = {
			limit = {
				game_start_date >= 867.1.1
				game_start_date < 1066.09.15
				exists = character:1000230102
				NOT = { character:1000230102 = { has_government = landless_adventurer_government } }
			}
			title:c_sutkend = { save_scope_as = temporary_title }
			scope:temporary_title.holder = { save_scope_as = previous_holder }
			# history entry
			create_title_and_vassal_change = {
				type = leased_out
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = character:1000230102
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
			# revert
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = scope:previous_holder
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
		}
		if = {
			limit = {
				game_start_date >= 1039.1.1
				exists = character:3046
			}
			character:3046 = { add_trait = suleiman_seljuk_trait }
		}
		# 05 ziyarid
		if = {
			limit = {
				game_start_date >= 867.1.1
				game_start_date < 1066.09.15
				exists = character:166987
				NOT = { character:166987 = { has_government = landless_adventurer_government } }
			}
			title:c_gilan = { save_scope_as = temporary_title }
			scope:temporary_title.holder = { save_scope_as = previous_holder }
			# history entry
			create_title_and_vassal_change = {
				type = leased_out
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = character:166987
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
			# revert
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = scope:previous_holder
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
		}
		# 06 ayyubid
		if = {
			limit = {
				game_start_date >= 820.1.1 # in-game birth year of dynasty root character
				game_start_date < 1066.09.15
				exists = character:159169
				NOT = { character:159169 = { has_government = landless_adventurer_government } }
			}
			title:c_dvin = { save_scope_as = temporary_title }
			scope:temporary_title.holder = { save_scope_as = previous_holder }
			# history entry
			create_title_and_vassal_change = {
				type = leased_out
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = character:159169
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
			# revert
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = scope:previous_holder
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
		}
		# 12 hauteville
		if = {
			limit = {
				game_start_date >= 867.1.1
				game_start_date < 1066.09.15
				exists = character:242
				NOT = { character:242 = { has_government = landless_adventurer_government } }
			}
			title:c_varmland = { save_scope_as = temporary_title }
			scope:temporary_title.holder = { save_scope_as = previous_holder }
			# history entry
			create_title_and_vassal_change = {
				type = leased_out
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = character:242
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
			# revert
			create_title_and_vassal_change = {
				type = returned
				save_scope_as = title_change
				add_claim_on_loss = no
			}
			scope:temporary_title = {
				change_title_holder = {
					holder = scope:previous_holder
					change = scope:title_change
				}
			}
			resolve_title_and_vassal_change = scope:title_change
		}
	}
}

historicinvasions_on_game_start = {
	trigger = { always = yes }
	effect = {
		# mod detection
		set_global_variable = {
			name = historicinvasions_mod_active
			value = yes
		}

		# always show debug decisions by default
		set_global_variable = {
			name = historicinvasions_debug_decisions
			value = 1
		}
	}
}