﻿agot_hf_revealbastard_story = {
	on_setup = {
		story_owner = { save_scope_as = bastard_revealer }
		scope:story = {
			set_variable = {
				name = agot_hf_bastard_character
				value = scope:bastard_revealer.var:agot_hf_bastard_character
			}
			set_variable = {
				name = agot_hf_clue_points
				value = 1
			}
		}
		story_owner = {
			remove_variable = agot_hf_bastard_character
			save_scope_as = bastard_revealer
			scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
			if = {
				limit = {
					scope:bastard_revealer = scope:bastard_character.real_father
					NOT = { scope:bastard_revealer = scope:bastard_character.father }
					scope:bastard_character = { NOT = { real_paternal_held_iron_throne_claim = yes } }
				}
				trigger_event = agot_hf_revealbastard_events.0021
			}
			else = { trigger_event = agot_hf_revealbastard_events.0001 }
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = { is_alive = yes }
				if = {
					limit = { has_character_flag = revealbastard_0005_sent }
					remove_character_flag = revealbastard_0005_sent
				}
				if = {
					limit = { has_character_flag = revealbastard_0006_sent }
					remove_character_flag = revealbastard_0006_sent
				}
				if = {
					limit = { has_character_flag = revealbastard_0007_sent }
					remove_character_flag = revealbastard_0007_sent
				}
				if = {
					limit = { has_character_flag = revealbastard_0008_sent }
					remove_character_flag = revealbastard_0008_sent
				}
				if = {
					limit = { has_character_flag = revealbastard_0009_sent }
					remove_character_flag = revealbastard_0009_sent
				}
			}
		}
	}

	on_owner_death = {
		scope:story = { end_story = yes }
	}

	### DAILY
	effect_group = {
		days = 1

		### VALIDITY CHECKS ###

		#Check if the story is still valid - Bastard died
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { is_alive = no }
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:bastard_revealer = { trigger_event = agot_hf_revealbastard_events.0002 } #bastard is dead
			}
		}

		#Check if the story is still valid - Bastard gone missing
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { is_alive = yes }
					scope:story.var:agot_hf_bastard_character = { has_character_flag = generic_secret_identity }
					exists = scope:story.var:agot_hf_bastard_character.var:secret_identity_character
					scope:story.var:agot_hf_bastard_character.var:secret_identity_character = { is_alive = no }
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:story.var:agot_hf_bastard_character.var:secret_identity_character = { save_scope_as = dupe_bastard_character }
				scope:bastard_revealer = { trigger_event = agot_hf_revealbastard_events.0003 } #bastard is dead, or is it?
			}
		}

		#Check if the story is still valid - Bastard got revealed
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { has_character_flag = already_revealed_my_parentage }
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:bastard_revealer = { trigger_event = agot_hf_revealbastard_events.0004 } #bastard got revealed already
			}
		}

		#Check if the story is still valid - Story is complete
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = var:agot_hf_revealbastard_completed
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:story = { end_story = yes }
			}
		}

		### ROYAL BASTARD ###

		#Is royal bastard
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { real_paternal_held_iron_throne_claim = yes }
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { add_character_flag = agot_hf_royal_bastard }
			}
		}

		### NEW CLUE GAINED! ###

		#Send Clue Events
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { is_alive = yes }
					exists = scope:story.var:agot_hf_clue_points
					scope:story.var:agot_hf_clue_points >= 10
					NOT = { has_character_flag = revealbastard_clue_event_sent }
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:bastard_revealer = {
					if = {
						limit = {
							scope:story.var:agot_hf_clue_points >= 10
							scope:story.var:agot_hf_clue_points < 25
							NOT = { has_character_flag = revealbastard_0005_sent }
						}
						add_character_flag = {
							flag = revealbastard_clue_event_sent
							days = 10
						}
						add_character_flag = revealbastard_0005_sent
						trigger_event = agot_hf_revealbastard_events.0005
					}
					else_if = {
						limit = {
							scope:story.var:agot_hf_clue_points >= 25
							scope:story.var:agot_hf_clue_points < 50
							NOT = { has_character_flag = revealbastard_0006_sent }
						}
						add_character_flag = {
							flag = revealbastard_clue_event_sent
							days = 10
						}
						add_character_flag = revealbastard_0006_sent
						trigger_event = agot_hf_revealbastard_events.0006
					}
					else_if = {
						limit = {
							scope:story.var:agot_hf_clue_points >= 50
							scope:story.var:agot_hf_clue_points < 75
							NOT = { has_character_flag = revealbastard_0007_sent }
						}
						add_character_flag = {
							flag = revealbastard_clue_event_sent
							days = 10
						}
						add_character_flag = revealbastard_0007_sent
						trigger_event = agot_hf_revealbastard_events.0007
					}
					else_if = {
						limit = {
							scope:story.var:agot_hf_clue_points >= 75
							scope:story.var:agot_hf_clue_points <= 99
							NOT = { has_character_flag = revealbastard_0008_sent }
						}
						add_character_flag = {
							flag = revealbastard_clue_event_sent
							days = 10
						}
						add_character_flag = revealbastard_0008_sent
						trigger_event = agot_hf_revealbastard_events.0008
					}
					else_if = {
						limit = {
							scope:story.var:agot_hf_clue_points >= 100
							NOT = { has_character_flag = revealbastard_0009_sent }
						}
						add_character_flag = {
							flag = revealbastard_clue_event_sent
							days = 10
						}
						add_character_flag = revealbastard_0009_sent
						trigger_event = agot_hf_revealbastard_events.0009
					}
				}
			}
		}
	}

	### MONTHLY
	effect_group = {
		days = 14

		### CLUE POINT GENERATION ###

		#Clue Points added based on learning and intrigue
		#Example:
		# for a character with 10 learning and 10 intrigue, it would take a bit more than 2 years to complete the reveal
		# for a character with 10 learning and 20 intrigue, it would take a bit more than 1 year to complete the reveal
		# for a character with 20 learning and 10 intrigue, it would take a bit more than 1 year to complete the reveal
		# for a character with 20 learning and 20 intrigue, it would take a bit more than 6 months to complete the reveal
		triggered_effect = {
			trigger = {
				story_owner = {
					exists = scope:story.var:agot_hf_bastard_character
					scope:story.var:agot_hf_bastard_character = { is_alive = yes }
					exists = scope:story.var:agot_hf_clue_points
				}
			}
			effect = {
				story_owner = { save_scope_as = bastard_revealer }
				scope:story.var:agot_hf_bastard_character = { save_scope_as = bastard_character }
				scope:story = {
					random = {
						chance = {
							value = scope:bastard_revealer.intrigue
							multiply = 2
							max = 100
						}
						change_variable = {
							name = agot_hf_clue_points
							add = {
								value = scope:bastard_revealer.learning
								min = 1
							}
						}
					}
				}
			}
		}
	}
}