﻿story_peasant_affair = {

	on_setup = {
		set_variable = {
			name = peasant_character
			value = story_owner.var:story_peasant_affair_target
		}
		if = {
			limit = {
				exists = story_owner.var:rakish_night
			}
			set_variable = {
				name = rakish_night
				value = 0
			}
			story_owner = {
				remove_variable = rakish_night
			}
		}
		story_owner = {
			add_character_flag = had_story_cycle_peasant_affair
			remove_variable = story_peasant_affair_target
		}
	}

	on_end = {
		story_owner = {
			if = {
				limit = {
					has_character_flag = peasant_appeared_at_court
				}
				remove_character_flag = peasant_appeared_at_court
			}
			else_if = {
				limit = {
					has_character_flag = is_looking_for_peasant
				}
				remove_character_flag = is_looking_for_peasant
			}
		}
	}

	on_owner_death = {
		end_story = yes
	}

	#Chance that the cycle ends if nothing has happened (less likely if you really like them/don't like spouse)
	effect_group = {
		days = { 300 400 }
		chance = 5

		triggered_effect = {
			trigger = {
				story_owner = {
					NOR = {
						has_character_flag = is_looking_for_peasant
						has_character_flag = peasant_appeared_at_court
					}
					OR = {
						AND = {
							is_married = no
							opinion = {
								target = scope:story.var:peasant_character
								value >= 40
							}
						}
						AND = {
							is_married = yes
							opinion = {
								target = scope:story.var:peasant_character
								value >= 30
							}
							any_spouse = {
								reverse_opinion = {
									target = scope:story.story_owner
									value <= 0
								}
							}
						}
					}
				}
			}
			effect = {
				story_owner = { remove_character_flag = had_story_cycle_peasant_affair } # Reenable it to possible fire later
				end_story = yes
			}
		}
	}

	#Make sure a child is "born" at approximately the right time
	effect_group = {
		days = 548

		trigger = {
			exists = var:peasant_character
			var:peasant_character = {
				is_alive = yes
				has_character_flag = peasant_is_pregnant
			}
			NOT = { exists = var:child_age_variable }
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				var:peasant_character = {
					remove_character_flag = peasant_is_pregnant
				}
				set_variable = {
					name = child_age_variable
					value = 0
				}
			}
		}
	}

	#Age child if female peasant is pregnant
	effect_group = {
		days = 365

		trigger = {
			exists = var:child_age_variable
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				change_variable = {
					name = child_age_variable
					add = 1
				}
			}
		}
	}

	#Something happens!
	effect_group = {
		days = { 550 600 }
		chance = 50

		trigger = {
			story_owner = {
				NOR = {
					has_character_flag = is_looking_for_peasant
					has_character_flag = peasant_appeared_at_court
					scope:story.var:peasant_character = {
						is_courtier_of = scope:story.story_owner
					}
				}
			}
		}

		random_valid = {
			triggered_effect = { #They show up at court
				trigger = { var:peasant_character = { is_alive = yes } }
				effect = {
					story_owner = {
						trigger_event = peasant_affair.0001 #to save and/or create child
						add_character_flag = peasant_appeared_at_court
						trigger_event = {
							on_action = peasant_affair_shows_up_at_court
							days = 2
						}
					}
				}
			}

			triggered_effect = { #You start looking for them
				trigger = { always = yes }
				effect = {
					story_owner = {
						trigger_event = peasant_affair.0001 #to save and/or create child
						add_character_flag = is_looking_for_peasant
						trigger_event = {
							on_action = peasant_affair_looking_for_peasant
							days = 2
						}
					}
				}
			}
		}
	}

	#You start looking for the peasant from another event (ex. pregnancy.2001)
	effect_group = {
		days = { 490 540 }
		chance = 70

		trigger = {
			exists = var:peasant_character
			var:peasant_character = {
				NOT = { is_courtier_of = scope:story.story_owner }
			}
			story_owner = {
				has_character_flag = is_looking_for_peasant
			}
		}

		triggered_effect = {
			trigger = { always = yes }
			effect = {
				story_owner = {
					trigger_event = peasant_affair.0001 #to save and/or create child
					trigger_event = {
						on_action = peasant_affair_looking_for_peasant
						days = 2
					}
				}
			}
		}
	}

	#The peasant is at court
	effect_group = {
		days = 180
		chance = 100

		trigger = {
			story_owner = {
				is_ruler = yes
				has_character_flag = peasant_appeared_at_court
			}
			exists = var:peasant_character
			var:peasant_character = {
				OR = {
					is_alive = no
					is_foreign_court_or_pool_guest_of = scope:story.story_owner
					is_courtier_of = scope:story.story_owner
				}
			}
		}

		triggered_effect = {
			trigger = {
				var:peasant_character = { is_alive = yes }
			}
			effect = {
				story_owner = {
					trigger_event = {
						on_action = peasant_affair_peasant_at_court
					}
				}
			}
		}
	}

	effect_group = {
		days = 60
		chance = 100

		triggered_effect = {
			trigger = {
				OR = {
					NOT = { exists = var:peasant_character }
					story_owner = {
						is_ruler = no
					}
					AND = {
						exists = var:peasant_character
						story_owner = {
							any_scheme = {
								is_scheme_target_type = character # Unop: To not take other scheme target types.
								scheme_target_character ?= root.var:peasant_character
							}
						}
					}
				}
			}

			effect = {
				end_story = yes
			}
		}
	}
}
