﻿@infant_upper_age_threshold_value = 2
@teen_lower_threshold_value = 13
@teen_upper_threshold_value = 19

child_is_infant_trigger = {
	age <= @infant_upper_age_threshold_value
	is_adult = no
}

# Duplicated because there were some weird edge case OR uses where "child_is_infant_trigger = no" read _extremely_ confusingly.
child_not_infant_trigger = {
	age > @infant_upper_age_threshold_value
	is_adult = no
}

# At what point is it not weird to hear a child using (relatively) advanced reasoning & so able to hold an extended conversation?
child_can_have_full_conversations_trigger = {
	age >= 6
	is_adult = no
}

child_not_teen_trigger = {
	child_not_infant_trigger = yes
	age < @teen_lower_threshold_value
	is_adult = no
}

# Duplicated because there were some weird edge case OR uses where "child_not_teen_trigger = no" read _extremely_ confusingly.
child_is_teen_trigger = {
	age >= @teen_lower_threshold_value
	is_adult = no
}

child_old_enough_for_responsibility_trigger = {
	age >= 8
	is_adult = no
}

# Note: we don't want to say that children below this definitely can't read, that's a lot of edge cases to account for, but it's convenient to roughly unified trigger we can check for whether pensive characters are more likely to read or be read to.
child_likely_reader_trigger = { age >= 7 }

character_is_teen_trigger = {
	age >= @teen_lower_threshold_value
	age <= @teen_upper_threshold_value
}

character_is_teen_or_older_trigger = {
	age > @teen_lower_threshold_value
}

save_good_friend_character_trigger_check = {
	is_adult = no
	age >= root.age_dif_child_down_friend
	age <= root.age_dif_child_up_friend
	this != root
	is_imprisoned = no
	opinion = {
		target = root
		value > -10
	}
	NOR = {
		has_relation_friend = root
		has_any_bad_relationship_with_root_trigger = yes
	}
}


save_good_crush_character_trigger_check = {
	is_adult = no
	age >= root.age_dif_child_down
	age <= root.age_dif_child_up
	age > childhood_education_start_age
	this != root
	is_imprisoned = no
	is_close_family_of_root_trigger = no
	NOR = {
		root = { has_relation_crush = prev }
		has_relation_victim = root
	}
	OR = {
		has_sexuality = heterosexual
		has_sexuality = bisexual
		has_sexuality = homosexual
	}
	is_attracted_to_gender_of = root
	root = { is_attracted_to_gender_of = prev }
	OR = {
		num_of_relation_crush <= 2
		has_trait = lustful
	}
}

save_good_bully_character_trigger_check = {
	is_adult = no
	age >= 6
	age >= root.age
	this != root
	is_imprisoned = no
	OR = {
		has_trait_malicious_trigger = yes
		has_trait_dominant_trigger = yes
		has_trait_emotional_trigger = yes
	}
	NOR = {
		has_trait = compassionate
		has_trait_submissive_trigger = yes
	}
	opinion = {
		target = root
		value < 0
	}
	NOR = {
		has_any_bad_relationship_with_root_trigger = yes
		has_relation_victim = root
		has_relation_friend = root
		has_relation_crush = root
	}
	tgp_is_chinese_style_emperor_trigger = no # This would be weird, otherwise
}

save_good_victim_character_trigger_check = {
	is_adult = no
	age >= 6
	age <= root.age
	this != root
	is_imprisoned = no
	reverse_opinion = {
		target = root
		value < 0
	}
	NOR = {
		has_any_bad_relationship_with_root_trigger = yes
		has_relation_victim = root
		has_relation_friend = root
		has_relation_crush = root
	}
	tgp_is_chinese_style_emperor_trigger = no # This would be weird, otherwise
}

child_suitable_to_play_with_character = {
	# Is available for events at $CHARACTER$'s locale.
	is_available_child = yes
	location ?= $CHARACTER$.location
	# Of a suitable age range.
	child_not_infant_trigger = yes
	# Doesn't have a bad relationship with $CHARACTER$.
	NOT = {
		has_any_bad_relationship_with_character_trigger = { CHARACTER = $CHARACTER$ }
	}
}

child_suitable_to_play_with_character_one_sided = {
	child_suitable_to_play_with_character = { CHARACTER = $CHARACTER$ }
	is_ai = yes
}



childhood_mean_child_trigger = {
	OR = {
		has_trait = rowdy
		has_personality_malicious_trigger = yes
		has_personality_dominant_trigger = yes
		ai_compassion <= low_negative_ai_value
	}
}

childhood_loud_child_trigger = {
	OR = {
		has_trait = curious
		has_trait = bossy
		has_personality_extroverted_trigger = yes
		has_personality_emotional_trigger = yes
		ai_energy >= low_positive_ai_value
		ai_boldness >= low_positive_ai_value
	}
}

childhood_quiet_child_trigger = {
	OR = {
		has_trait = pensive
		has_personality_submissive_trigger = yes
		has_personality_introverted_trigger = yes
		ai_energy <= low_negative_ai_value
		ai_boldness <= low_negative_ai_value
	}
}

childhood_nice_child_trigger = {
	OR = {
		has_trait = charming
		has_trait = curious
		has_personality_benevolent_trigger = yes
		has_personality_levelheaded_trigger = yes
		ai_compassion >= low_positive_ai_value
	}
}

suitable_same_realm_child = {
	trigger_if = {
		limit = {
			OR = {
				father ?= {
					is_ai = no
				}
				mother ?= {
					is_ai = no
				}
				host ?= {
					is_ai = no
				}
			}
		}
		location.county.holder ?= { # Scoping like this allows children in the pool to also get this event
			OR = {
				AND = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_courtier_or_guest = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_warden_hostage = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_vassal = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_vassal = {
					any_courtier_or_guest = {
						is_ai = yes
						is_available_child = yes
						this != root
						age >= 6
					}
				}
			}
		}
	}
	trigger_else = {
		location.county.holder ?= { # Scoping like this allows children in the pool to also get this event
			OR = {
				AND = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_courtier = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
				any_warden_hostage = {
					is_ai = yes
					is_available_child = yes
					this != root
					age >= 6
				}
			}
		}
	}
}

similar_age_same_court_child = {
	exists = location.county.holder # Scoping like this allows children in the pool to also get this event
	location.county.holder = {
		OR = {
			AND = {
				is_ai = yes
				is_available_child = yes
				this != root
				age <= root.age_plus_3
				age >= age_minus_3
			}
			any_courtier_or_guest = {
				is_ai = yes
				is_available_child = yes
				this != root
				age <= root.age_plus_3
				age >= age_minus_3
			}
			any_warden_hostage = {
				is_ai = yes
				is_available_child = yes
				this != root
				age <= root.age_plus_3
				age >= age_minus_3
			}
		}
	}
}

suitable_crush_trigger = {
	AND = {
		save_temporary_scope_as = temp_crush
		is_ai = yes
		is_available_child = yes
		this != root
		child_not_infant_trigger = yes
		age <= root.age_plus_3
		age >= root.age_minus_3
		location = root.location
		OR = {
			matching_gender_and_sexuality_trigger = {
				CHARACTER_1 = root
				CHARACTER_2 = scope:temp_crush
			}
			AND = {
				has_sexuality = asexual
				root = {
					OR = {
						is_attracted_to_gender_of = scope:temp_crush
						has_sexuality = asexual
					}
				}
			}
			AND = {
				root = { has_sexuality = asexual }
				OR = {
					is_attracted_to_gender_of = root
					has_sexuality = asexual
				}
			}
		}
		NOT = {
			relation_with_character_is_incestuous_in_my_faith_trigger = { CHARACTER = root }
		}
	}
}

suitable_crush_same_court_child = {
	exists = location.county.holder # Scoping like this allows children in the pool to also get this event
	location.county.holder = {
		OR = {
			save_good_crush_character_trigger_check = yes
			any_courtier_or_guest = {
				save_good_crush_character_trigger_check = yes
			}
			any_warden_hostage = {
				save_good_crush_character_trigger_check = yes
			}
		}
	}
}

guardian_or_court_tutor_trait = {
	trigger_if = {
		limit = {
			any_relation = {
				type = guardian
			}
		}
		any_relation = {
			type = guardian
			has_trait = $TRAIT$
		}
	}
	trigger_else = {
		OR = {
			court_owner.court_position:court_tutor_court_position ?= {
				has_trait = $TRAIT$
			}
			court_owner.court_position:court_guru_court_position ?= {
				has_trait = $TRAIT$
			}
		}
	}
}

guardian_or_court_tutor_2_trait = {
	trigger_if = {
		limit = {
			any_relation = {
				type = guardian
			}
		}
		any_relation = {
			type = guardian
			OR = {
				has_trait = $TRAIT$
				has_trait = $TRAIT_2$
			}
		}
	}
	trigger_else = {
		OR = {
			court_owner.court_position:court_tutor_court_position ?= {
				OR = {
					has_trait = $TRAIT$
					has_trait = $TRAIT_2$
				}
			}
			court_owner.court_position:court_guru_court_position ?= {
				OR = {
					has_trait = $TRAIT$
					has_trait = $TRAIT_2$
				}
			}
		}
	}
}
