﻿# Story for the Seljuk invasion
# originally made by Petter Vilberg
# adjusted by me

story_seljuk_persia_invasion = {
	on_setup = {
		historicinvasions_story_setup_effect = { # global start variable, story variables, conditional dissolution protection
			INVADER_DYNN = seljuk # for story start global variable
			INVADER_TITLE = title:e_seljuk # title the invader spawns with
		}
		story_owner = {
			seljuk_maintenance_effect = {
				INVADER_DYNN = seljuk
				INVADER_CHAR = scope:story.story_owner
				INVADER_TITLE = scope:story.var:invader_title_var
				LANDLESS_YES_NO = no
				STARTING_TIER = duchy
			}
			trigger_event = {
				id = seljuk_invasion.0200
				months = 1
			}
		}
		set_global_variable = { # base game variable
			name = seljuk_invasion_happened
			value = yes
		}
		title:e_seljuk = { copy_title_history = title:e_persia }
	}

	on_end = {
		invader_story_on_end_effect = { INVADER_DYNN = seljuk }

		### attempt to switch over to local title
		if = {
			limit = {
				story_owner = {
					is_alive = no
					exists = player_heir
				}
			}
			story_owner.player_heir = { save_scope_as = replacement_title_holder }
		}
		if = {
			limit = {
				hi_can_story_switch_to_local_title_trigger = {
					INVADER_TITLE = e_seljuk # to be replaced by
					LOCAL_TITLE = e_persia
				}
			}
			hi_story_switches_to_local_title_effect = {
				INVADER_TITLE = e_seljuk # to be replaced by
				LOCAL_TITLE = e_persia
			}
		}

		destroy_titular_invader_title_effect = yes
	}

	on_owner_death = {
		# random chance to set variable to end story after ruler N dies, depending on how many story owners there have been in total
		random = {
			chance = 0
			modifier = {
				add = 0
				var:story_owner_counter >= 1 # end story after death of ruler N?
			}
			modifier = {
				add = 0
				var:story_owner_counter >= 2
			}
			modifier = {
				add = 10
				var:story_owner_counter >= 3
			}
			modifier = {
				add = 10
				var:story_owner_counter >= 4
			}
			modifier = {
				add = 20
				var:story_owner_counter >= 5
			}
			modifier = {
				add = 60
				var:story_owner_counter >= 6
			}
			set_variable = {
				name = end_of_invasion_story
				value = yes
			}
		}
		invader_story_on_death_effect = { INVADER_DYNN = seljuk }
	}

	# maintenance: end story of ayyubid have appeared
	effect_group = {
		days = historicinvasions_story_maintenance_value

		trigger = { always = yes }

		# make sure they have money on hand
		triggered_effect = {
			trigger = { story_owner = { gold < 0 } }
			effect = { story_owner = { add_gold = 350 } }
		}

		# ayyubid
		triggered_effect = {
			trigger = {
				is_target_in_global_variable_list = {
					name = historicinvasions_story_started
					target = flag:ayyubid_story_started
				}
			}
			effect = {
				debug_log = "ending seljuk story because the ayyubid have appeared"
				end_story = yes
			}
		}

		# end the story prematurely, because their conquests have been completed
		triggered_effect = {
			trigger = {
				story_owner = { completely_controls_region = special_seljuk_conquest_region_total_no_anatolia }
			}
			effect = {
				debug_log = "ending seljuk story because the conquest goal has been completed"
				end_story = yes
			}
		}

		# end the story prematurely, because the invader has lost their #th offensive war
		triggered_effect = {
			trigger = {
				NOT = { has_game_rule = historicinvasions_invasion_ends_after_defeat_disabled }
			}
			effect = {
				historicinvasions_invasion_ends_after_defeat_effect = yes
			}
		}
	}

	#Start a new war if none is ongoing
	effect_group = {
		days = { 365 1095 }

		trigger = { story_owner = { is_ai = yes } }

		first_valid = {
			triggered_effect = {
				trigger = {
					story_owner = { has_character_flag = invasion_ends_after_player_win }
				}
				effect = {
					debug_log = "ending seljuk story because a player was able to defend against the invader"
					end_story = yes
				}
			}
			triggered_effect = {
				trigger = { story_owner = { should_invader_declare_war_trigger = { INVADER_TITLE = scope:story.var:invader_title_var } } }
				effect = {
					story_owner = {
						war_target_evaluation_and_declaration_effect = {
							INVADER_DYNN = seljuk
							INVADER_CHAR = scope:story.story_owner
							INVADER_REGION = total_no_anatolia
							INVADER_TARGET_TITLE_TIER = kingdom
							INVADER_RANGE = neighboring
							INVADER_LIEGE_RESTRICTIONS = "NOT = { this = title:k_rum.holder }"
						}
					}
				}
			}
		}
	}

	# Story handling in case of succession weirdness
	effect_group = {
		days = historicinvasions_succession_weirdness_value

		trigger = { NOT = { story_owner = { has_title = scope:story.var:invader_title_var } } }

		# either transfer story ownership or end story if the title is not created
		triggered_effect = {
			trigger = { always = yes }
			effect = {
				hi_check_for_valid_story_owner_effect = {
					INVADER_TITLE = scope:story.var:invader_title_var
					STORY_COUNTER_INCREASE = 0
				}
			}
		}
	}

	# offer to vassalize the sunni caliph
	effect_group = {
		days = 1825
		trigger = {
			exists = title:d_sunni
			OR = {
				title:d_sunni = { is_title_created = no }
				NOT = { title:d_sunni.holder = { top_liege = { this = scope:story.var:invader_title_var.holder } } } # no need to send offers if they are already our vassal
			}
			NOR = {
				exists = global_var:seljuk_offered_caliph_subjugation
				is_target_in_global_variable_list = {
					name = historicinvasions_migrations
					target = flag:abbasid_migration_complete
				}
			}
			story_owner = { completely_controls_region = special_seljuk_conquest_region_mesopotamia }
		}
		triggered_effect = {
			trigger = {
				story_owner = {
					faith = { has_doctrine = muhammad_succession_sunni_doctrine }
				}
			}
			effect = {
				story_owner = {
					trigger_event = {
						id = seljuk_invasion.1010
						days = 7
					}
				}
			}
		}
	}

	# switch to local title
	effect_group = {
		days = 240

		trigger = {}

		triggered_effect = {
			trigger = {
				hi_can_story_switch_to_local_title_trigger = {
					INVADER_TITLE = e_seljuk
					LOCAL_TITLE = e_persia
				}
			}
			effect = {
				hi_story_switches_to_local_title_effect = {
					INVADER_TITLE = e_seljuk
					LOCAL_TITLE = e_persia
				}
			}
		}
	}
}