namespace = tgp_china_decision

scripted_effect set_up_local_examiner_effect = {
	top_liege = { save_scope_as = hegemon }
	scope:hegemon = {
		if = {
			limit = {
				any_vassal_or_below = {
					NOT = { this = root }
					has_trait = governor
					is_available = yes
					capital_county = root.domicile.domicile_location.county
				}
			}
			random_vassal_or_below = {
				limit = {
					NOT = { this = root }
					has_trait = governor
					is_available = yes
					capital_county = root.domicile.domicile_location.county
				}
				save_scope_as = examiner
			}
		}
		else = {
			create_character = {
				template = tgp_learning_exam_entrant_template
				age = { 33 79 }
				location = root.location
				faith = scope:hegemon.faith
				culture = scope:hegemon.culture
				gender_female_chance = {
					if = {
						limit = { scope:hegemon.faith = { has_doctrine = doctrine_gender_male_dominated } }
						add = 0
					}
					else_if = {
						limit = { scope:hegemon.faith = { has_doctrine = doctrine_gender_female_dominated } }
						add = 100
					}
					else = {
						add = 50
					}
				}
				save_scope_as = examiner
			}
		}
	}
	scope:examiner = {
		hidden_effect = {
			add_trait = governor
			change_merit = massive_merit_value
		}
	}
}

tgp_china_decision.1000 = {
	type = character_event
	title = tgp_china_decision.1000.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { has_character_flag = failed_child_exam }
				desc = tgp_china_decision.1000.desc_returning
			}
			desc = tgp_china_decision.1000.desc_new
		}
		desc = tgp_china_decision.1000.desc_outro
	}

	theme = imperial_examination
	override_background = { reference = study }

	left_portrait = {
		character = root
		animation = worry
	}

	right_portrait = {
		character = scope:examiner
		animation = happy_teacher
	}

	immediate = {
		set_variable = {
			name = child_examination_success_chance
			value = child_examination_success_chance_value
		}
		set_up_local_examiner_effect = yes
	}

	widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }

	option = { # Recite classics
		name = tgp_china_decision.1000.a
		duel = {
			skill = learning
			value = 1
			50 = { # You succeed
				desc = provincial_exam_success
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3
				}
				add_character_modifier = {
					modifier = tgp_local_exam_initial_success
					years = 12
				}
				custom_tooltip = examination_success_increase_medium_tt
			}
			50 = { # You fail
				desc = provincial_exam_duel_fail
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3
				}
				stress_impact = { base = medium_stress_impact_gain }
			}
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1
				ai_energy = 1
			}
			modifier = {
				add = 20
				learning > medium_skill_rating
			}
			modifier = {
				add = 40
				has_trait = ambitious
			}
			modifier = {
				add = -40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
		}
	}

	option = { # Play it safe
		name = tgp_china_decision.1000.b
		custom_tooltip = examination_success_increase_miniscule_tt
		# Use this var to track score
		change_variable = {
			name = safe_bets
			add = 1
		}
		add_character_flag = safe_start
		add_prestige = miniscule_prestige_loss
		ai_chance = {
			base = 100
			modifier = {
				add = 40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
			modifier = {
				add = 40
				stress_level < 0
			}
		}
	}

	after = {
		trigger_event = tgp_china_decision.1001
	}
}

tgp_china_decision.1001 = {
	type = character_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						has_character_modifier = tgp_local_exam_initial_success
						has_character_flag = safe_start
					}
				}
				desc = tgp_china_decision.1001.t_success
			}
			desc = tgp_china_decision.1001.t_fail
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					has_character_modifier = tgp_local_exam_initial_success
				}
				desc = tgp_china_decision.1001.desc_success
			}
			triggered_desc = {
				trigger = {
					var:safe_bets = 1
				}
				desc = tgp_china_decision.1001.desc_safe
			}
			desc = tgp_china_decision.1001.desc_fail
		}
		desc = tgp_china_decision.1001.desc_outro
	}

	theme = imperial_examination
	override_background = { reference = study }

	left_portrait = {
		character = root
		triggered_animation = {
			trigger = {
				has_character_modifier = tgp_local_exam_initial_success
			}
  			animation = personality_bold
  		}
  		triggered_animation = {
			trigger = {
				var:safe_bets = 1
			}
  			animation = shame
  		}
		animation = disappointed
	}

	right_portrait = {
		character = scope:examiner
		animation = happy_teacher
	}

	immediate = {
		set_variable = {
			name = child_examination_success_chance
			value = child_examination_success_chance_value
		}
	}

	widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }

	option = { # Recite classics
		name = tgp_china_decision.1001.a
		duel = {
			skill = learning
			value = 1
			40 = { # You succeed
				desc = provincial_exam_success
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3
				}
				add_character_modifier = {
					modifier = tgp_local_exam_impressed_examiner
					years = 12
				}
				custom_tooltip = examination_success_increase_major_tt
			}
			60 = { # You fail
				desc = provincial_exam_duel_fail
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3
				}
				stress_impact = { base = medium_stress_impact_gain }
			}
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1
				ai_energy = 1
			}
			modifier = {
				add = 20
				learning > medium_skill_rating
			}
			modifier = {
				add = 40
				has_trait = ambitious
			}
			modifier = {
				add = -40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
		}
	}

	option = { # Play it safe
		name = tgp_china_decision.1001.b
		custom_tooltip = examination_success_increase_miniscule_tt
		# Use this var to track score
		change_variable = {
			name = safe_bets
			add = 1
		}
		# Use this flag for loc only
		add_character_flag = safe_midpoint
		add_prestige = miniscule_prestige_loss
		ai_chance = {
			base = 100
			modifier = {
				add = 40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
			modifier = {
				add = 40
				stress_level < 0
			}
		}
	}

	after = {
		trigger_event = tgp_china_decision.1002
	}
}

tgp_china_decision.1002 = {
	type = character_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						has_character_modifier = tgp_local_exam_impressed_examiner
						has_character_flag = safe_midpoint
					}
				}
				desc = tgp_china_decision.1002.t_success
			}
			desc = tgp_china_decision.1002.t_fail
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					has_character_modifier = tgp_local_exam_impressed_examiner
				}
				desc = tgp_china_decision.1002.desc_success
			}
			triggered_desc = {
				trigger = {
					has_character_flag = safe_midpoint
				}
				desc = tgp_china_decision.1002.desc_safe
			}
			desc = tgp_china_decision.1002.desc_fail
		}
		desc = tgp_china_decision.1002.desc_outro
	}

	theme = imperial_examination
	override_background = { reference = study }

	left_portrait = {
		character = root
		triggered_animation = {
			trigger = {
				has_character_modifier = tgp_local_exam_impressed_examiner
			}
  			animation = happiness
  		}
  		triggered_animation = {
			trigger = {
				has_character_flag = safe_midpoint
			}
  			animation = shame
  		}
		animation = stress
	}

	right_portrait = {
		character = scope:examiner
		animation = happy_teacher
	}

	immediate = {
		set_variable = {
			name = child_examination_success_chance
			value = child_examination_success_chance_value
		}
	}

	widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }

	option = { # Recite classics
		name = tgp_china_decision.1002.a
		duel = {
			skill = learning
			value = 1
			30 = { # You succeed
				desc = provincial_exam_success
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3
				}
				add_character_modifier = {
					modifier = tgp_local_exam_strong_finish
					years = 12
				}
				custom_tooltip = examination_success_increase_massive_tt
			}
			70 = { # You fail
				desc = provincial_exam_duel_fail
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3
				}
				stress_impact = { base = medium_stress_impact_gain }
			}
		}
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1
				ai_energy = 1
			}
			modifier = {
				add = 20
				learning > medium_skill_rating
			}
			modifier = {
				add = 40
				has_trait = ambitious
			}
			modifier = {
				add = -40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
		}
	}

	option = { # Play it safe
		name = tgp_china_decision.1002.b
		custom_tooltip = examination_success_increase_miniscule_tt
		# Use this var to track score
		change_variable = {
			name = safe_bets
			add = 1
		}
		# Use this flag for loc only
		add_character_flag = safe_end
		add_prestige = miniscule_prestige_loss
		ai_chance = {
			base = 100
			modifier = {
				add = 40
				OR = {
					has_trait = content
					has_trait = lazy
					has_trait = craven
				}
			}
			modifier = {
				add = 40
				stress_level < 0
			}
		}
	}

	after = {
		set_variable = {
			name = child_examination_success_chance
			value = child_examination_success_chance_value
		}
		trigger_event = tgp_china_decision.1005
	}
}

# Releasing the Roll (Results)
tgp_china_decision.1005 = {
	type = character_event
	title = tgp_china_decision.1005.t
	desc = {
		# Opening
		desc = tgp_china_decision.1005.desc
		# Did you get a strong finish, play it safe, or fail?
		first_valid = {
			triggered_desc = {
				trigger = {
					has_character_modifier = tgp_local_exam_strong_finish
				}
				desc = tgp_china_decision.1005.desc.success
			}
			triggered_desc = {
				trigger = {
					has_character_flag = safe_end
				}
				desc = tgp_china_decision.1005.desc.safe
			}
			# If none of the above, you failed.
			desc = tgp_china_decision.1005.desc.failure
		}
		# And now, for the score
		desc = tgp_china_decision.1005.desc.segway
		first_valid = {
			triggered_desc = {
				trigger = {
					var:child_examination_success_chance >= 90
				}
				desc = tgp_china_decision.1005.desc.high_score
			}
			triggered_desc = {
				trigger = {
					var:child_examination_success_chance >= 60
				}
				desc = tgp_china_decision.1005.desc.good_score
			}
			triggered_desc = {
				trigger = {
					var:child_examination_success_chance >= 40
				}
				desc = tgp_china_decision.1005.desc.passing_score
			}
			desc = tgp_china_decision.1005.desc.failing
		}
	}

	theme = imperial_examination
	override_background = { reference = study }

	left_portrait = {
		character = root
		triggered_animation = {
			trigger = {
				AND = {
					var:child_examination_success_chance >= 40
					var:child_examination_success_chance < 90
				}
			}
  			animation = war_over_win
  		}
  		triggered_animation = {
			trigger = {
				var:child_examination_success_chance < 40
			}
  			animation = disappointed
  		}
		animation = happiness
	}

	immediate = {
		if = {
			limit = {
				var:child_examination_success_chance >= 40
			}
			change_merit = {
				value = {
					add = minor_merit_value
					add = var:child_examination_success_chance
				}
			}
			dynasty = {
				add_dynasty_prestige = 10
			}
			# For all characters who pass the exam, we give a flag to check their overall progress at the Imperial Examinations.
			add_character_flag = passed_child_exam
			remove_character_flag ?= failed_child_exam
		}
		else = {
			add_character_flag = failed_child_exam
			add_character_modifier = {
				modifier = tgp_child_exam_cooldown_modifier
				years = 3
			}
		}
	}

	widget = { gui = "child_examination_success_chance" container = "custom_widgets_container" }

	# If you had a critical success, you do not get the option to dedicate yourself to studying.
	option = { # I have my family to thank for my success.
		name = tgp_china_decision.1005.a
		trigger = { var:child_examination_success_chance >= 90 }
		change_merit = medium_merit_value
		ai_chance = {
			base = 100
			modifier = {
				add = 40
				has_trait = loyal
			}
			modifier = {
				add = 50
				is_adult = no
			}
		}
	}

	option = { # My teachers deserve all the credit.
		name = tgp_china_decision.1005.b
		trigger = { var:child_examination_success_chance >= 90 }
		change_influence = medium_influence_gain
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_sociability = 1
			}
		}
	}

	option = { # I need to push myself harder next time!
		name = {
			text = tgp_china_decision.1005.a_success
			trigger = {
				var:child_examination_success_chance >= 40
			}
		}
		name = {
			text = tgp_china_decision.1005.a_failure
			trigger = {
				var:child_examination_success_chance < 40
			}
		}
		trigger = { var:child_examination_success_chance < 90 }
		add_character_modifier = {
			modifier = tgp_child_focused_studies_modifier
			years = 5
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_boldness = 1
				ai_energy = 1
			}
			modifier = {
				add = 40
				OR = {
					has_trait = ambitious
					has_trait = diligent
				}
			}
			modifier = {
				add = -100
				stress_level < 0
			}
		}
	}

	option = { # I am pleased with this result.
		name = {
			text = tgp_china_decision.1005.b_passing
			trigger = {
				var:child_examination_success_chance >= 40
			}
		}
		name = {
			text = tgp_china_decision.1005.b_failed
			trigger = {
				var:child_examination_success_chance < 40
			}
		}
		trigger = { var:child_examination_success_chance < 90 }

		ai_chance = {
			base = 100
			modifier = {
				add = 40
				OR = {
					has_trait = content
					has_trait = lazy
				}
			}
		}
	}

	after = {
		# Time to clean up some variables
		remove_character_flag ?= safe_end
		remove_variable ?= safe_bets
		# And possibly the examiner
		scope:examiner = {
			if = {
				limit = {
					NOT = { is_vassal_or_below_of = scope:hegemon }
				}
				silent_disappearance_effect = yes
			}
		}
	}
}
