﻿
namespace = learning_medicine

#Physician offers you to try different methods
scripted_trigger learning_medicine_2020_can_have_child_trigger = {
	trigger_if = {
		limit = { is_male = yes }
		is_visibly_fertile = yes
		fertility >= 0.1
	}
	trigger_if = {
		limit = { is_female = yes }
		is_visibly_fertile = yes
		fertility >= 0.1
		is_pregnant = no
	}
	NOT = {
		has_court_position = court_physician_court_position
	}
}

scripted_trigger learning_medicine_2022_valid_physician_trigger = {
	exists = scope:physician
	root = {
		any_court_position_holder = {
	        type = court_physician_court_position
	        this = scope:physician
	    }
	}
}

learning_medicine.2022 = { #by Mathilda Bjarnehed
	type = character_event
	id_override_priority = 100
	title = learning_medicine.2022.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:new_physician = no }
				desc = learning_medicine.2022.old_physician.desc
			}
			triggered_desc = {
				trigger = { scope:new_physician = yes }
				desc = learning_medicine.2022.new_physician.desc
			}
		}
	}

	theme = learning_medicine_focus
	left_portrait = {
		character = root
		animation = stunned
	}
	right_portrait = {
		character = scope:physician
		animation = physician
	}
	lower_right_portrait = scope:spouse

	trigger = {
		learning_medicine_2022_valid_physician_trigger = yes
		any_spouse = { learning_medicine_2020_can_have_child_trigger = yes }
	}

	immediate = {
		#pick a spouse
		random_spouse = {
			limit = {
				learning_medicine_2020_can_have_child_trigger = yes
				this = root.primary_spouse
			}
			alternative_limit = {
				learning_medicine_2020_can_have_child_trigger = yes
			}
			save_scope_as = spouse
			if = {
				limit = { is_female = yes }
				save_scope_as = woman
			}
			else = {
				save_scope_as = man
			}
		}
		if = {
			limit = { is_female = yes }
			save_scope_as = woman
		}
		else = {
			save_scope_as = man
		}
	}

	#Something safe
	option = {
		name = learning_medicine.2022.b

		random_list = {
			85 = {
				modifier = {
					add = {
						value = scope:physician.learning
						subtract = average_skill_rating
						multiply = 5
					}
				}
				desc = learning_medicine.2022.b.success
				send_interface_toast = {
					title = learning_medicine.2022.b.success
					left_icon = scope:physician
					right_icon = scope:spouse
					add_character_modifier = {
						modifier = successful_fertility_treatment
						years = 10
					}
					scope:spouse = {
						add_character_modifier = {
							modifier = successful_fertility_treatment
							years = 10
						}
					}
				}
			}
			15 = {
				modifier = {
					add = {
						value = scope:physician.learning
						subtract = average_skill_rating
						multiply = -1
						min = -10
					}
				}
				desc = learning_medicine.2022.b.failure
				send_interface_toast = {
					title = learning_medicine.2022.b.failure
					left_icon = scope:physician
					right_icon = scope:spouse
					add_character_modifier = {
						modifier = botched_fertility_treatment
						years = 5
					}
					scope:spouse = {
						add_character_modifier = {
							modifier = botched_fertility_treatment
							years = 5
						}
					}
				}
			}
		}
	}

	#Something new
	option = {
		name = learning_medicine.2022.a

		random_list = {
			desc = outcome_in_a_few_days
			55 = { #Good outcome
				modifier = {
					add = {
						value = scope:physician.learning
						subtract = average_skill_rating
						multiply = 5
					}
				}
				desc = learning_medicine.2022.a.success
				show_as_tooltip = {
					add_character_modifier = {
						modifier = very_successful_fertility_treatment
						years = 10
					}
					scope:spouse = {
						add_character_modifier = {
							modifier = very_successful_fertility_treatment
							years = 10
						}
					}
				}
				trigger_event = {
					id = learning_medicine.2023
					days = { 3 7 }
				}
			}
			30 = { #Strange outcome
				modifier = {
					scope:physician = {
						OR = {
							has_trait = lifestyle_mystic
							ai_honor <= medium_negative_ai_value
						}
					}
					add = 20
				}
				trigger = {
					is_ai = no
					scope:spouse = { might_cheat_on_every_partner_trigger = yes }
					scope:physician = { might_cheat_on_every_partner_trigger = yes }
				}
				desc = learning_medicine.2022.a.unexpected
				custom_tooltip = learning_medicine.2022.a.unexpected.tt
				hidden_effect = {
					random_list = {
						30 = { #Did the court physician have sex with my spouse...?
							trigger = {
								scope:spouse = { is_female = yes }
								scope:physician = {
									is_male = yes
									learning_medicine_2020_can_have_child_trigger = yes
								}
							}
							modifier = {
								add = {
									value = scope:physician.ai_honor
									divide = high_negative_ai_value
									multiply = 30
								}
							}
							hidden_effect = {
								scope:spouse = {
									random_list = {
										80 = {
											had_sex_with_effect = { #Use effect because we want possibility of suspicion
												CHARACTER = scope:physician
												PREGNANCY_CHANCE = 100
											}
										}
										20 = {
											make_pregnant = {
												father = root
											}
											# added to make sure the pregnancy can actually take effect, if it occurs
											event_pregnancy_effect = yes
										}
									}
								}
							}
							trigger_event = {
								id = learning_medicine.2025
								days = { 30 40 }
							}
						}
						70 = { #Regular side effects (good outcome + additional effects)
							save_scope_value_as = {
								name = side_effects
								value = yes
							}
							trigger_event = {
								id = learning_medicine.2023 #The good outcome
								days = { 3 7 }
							}
						}
					}
				}
			}
			15 = { # Bad outcome
				modifier = {
					add = {
						value = scope:physician.learning
						subtract = average_skill_rating
						multiply = -1
						min = -10
					}
				}
				desc = learning_medicine.2022.a.failure
				trigger_event = {
					id = learning_medicine.2024
					days = { 3 7 }
				}
				show_as_tooltip = {
					add_character_modifier = {
						modifier = botched_fertility_treatment
						years = 5
					}
					scope:spouse = {
						add_character_modifier = {
							modifier = botched_fertility_treatment
							years = 5
						}
					}
				}
			}
		}
	}



	#Actually, I just want some... tricks
	option = {
		name = learning_medicine.2022.c

		reverse_add_opinion = {
			target = scope:spouse
			modifier = romance_opinion
			opinion = 25
		}
	}

	#Nah thanks
	option = {
		trigger = { scope:new_physician = no }
		name = learning_medicine.2021.c
		add_prestige = miniscule_prestige_gain
	}
}

scripted_trigger learning_medicine_2023_continue_chain_trigger = {
	learning_medicine_2022_valid_physician_trigger = yes
	exists = scope:spouse
	scope:spouse = {
		is_alive = yes
		is_consort_of = root
	}
}

scripted_trigger learning_medicine_2023_random_foreign_ruler_trigger = {
	is_landed = yes
	is_ai = yes
	NOT = { in_diplomatic_range = root }
	might_cheat_on_every_partner_trigger = yes
}

scripted_trigger learning_medicine_2023_random_family_member_trigger = {
	is_male = yes
	is_ai = yes
	learning_medicine_2020_can_have_child_trigger = yes
	might_cheat_on_every_partner_trigger = yes
	save_temporary_scope_as = incest_relative
	NOR = {
		has_trait = chaste
		guaranteed_under_20_incest_rejection_trigger = {
			TARGET = scope:incest_relative
			SEDUCER = scope:spouse
		}
		guaranteed_under_20_incest_rejection_trigger = {
			TARGET = scope:spouse
			SEDUCER = scope:incest_relative
		}
	}
}

#Risky option: It went great!
learning_medicine.2023 = { #by Mathilda Bjarnehed
	type = character_event
	id_override_priority = 100
	title = learning_medicine.2022.t
	desc = {
		random_valid = {
			desc = {
				desc = learning_medicine.2023.urine.desc
				desc = learning_medicine.2023.unpleasant_end.desc
			}
			desc = {
				desc = learning_medicine.2023.pig_testicles.desc
				desc = learning_medicine.2023.pig_testicles_end.desc
			}
			desc = {
				desc = learning_medicine.2023.udder.desc
				desc = learning_medicine.2023.unpleasant_end.desc
			}
			desc = {
				desc = learning_medicine.2023.milk_bath.desc
				desc = learning_medicine.2023.milk_bath_end.desc
			}
			desc = {
				desc = learning_medicine.2023.female_orgasm.start.desc
				first_valid = {
					triggered_desc = {
						trigger = { is_female = yes }
						desc = learning_medicine.2023.female_orgasm.female.desc
					}
					triggered_desc = {
						trigger = { is_male = yes }
						desc = learning_medicine.2023.female_orgasm.male.desc
					}
				}
			}
		}
		desc = learning_medicine.2023.end.desc
	}

	theme = learning_medicine_focus
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:physician
		triggered_animation = {
			trigger = { religion = religion:christianity_religion }
			animation = acknowledging # anim uses crucifix scepter
		}
		animation = war_over_tie
	}
	lower_right_portrait = scope:spouse

	trigger = {
		learning_medicine_2023_continue_chain_trigger = yes
	}

	immediate = {
		play_music_cue = "mx_cue_epic_sacral_moment"
		hidden_effect = {
			if = {
				limit = {
					scope:woman = { is_pregnant = no } #We could have gotten pregnant while waiting
				}
				if = {
					limit = { exists = scope:side_effects }

					random_list = {
						10 = { #Far away pregnancy
							trigger = {
								scope:spouse = {
									is_female = yes
									might_cheat_on_every_partner_trigger = yes
								}
								any_independent_ruler = { learning_medicine_2023_random_foreign_ruler_trigger = yes }
							}
							random_independent_ruler = {
								limit = { learning_medicine_2023_random_foreign_ruler_trigger = yes }
								weight = {
									base = 1
									modifier = {
										add = 1000
										capital_province = {
											squared_distance = {
												target = root.capital_province
												value >= squared_distance_monstrous
											}
										}
									}
								}
								save_scope_as = foreign_ruler
								create_character = {
									location = root.capital_province
									template_character = scope:foreign_ruler
									gender = male
									age = { 15 35 }
									save_scope_as = foreign_father
								}
							}
							scope:spouse = {
								had_sex_with_effect = {
									CHARACTER = scope:foreign_father
									PREGNANCY_CHANCE = pregnancy_chance
								}
							}
						}
						15 = { #Incest pregnancy
							trigger = {
								scope:spouse = {
									is_female = yes
									NOT = { has_trait = chaste }
									might_cheat_on_every_partner_trigger = yes
									any_close_family_member = { learning_medicine_2023_random_family_member_trigger = yes }
								}
							}
							scope:spouse = {
								random_close_family_member = {
									limit = { learning_medicine_2023_random_family_member_trigger = yes }
									save_scope_as = incest_father
								}
								had_sex_with_effect = { #Use effect because we want possibility of suspicion
									CHARACTER = scope:incest_father
									PREGNANCY_CHANCE = 100
								}
							}
						}
						30 = { #Unexpected trait
							scope:woman = {
								add_character_flag = {
									flag = medicine_learning_fertility_treamtent_unexpected_trait
									years = 1
								}
								make_pregnant = {
									father = scope:man
								}
								# added to make sure the pregnancy can actually take effect, if it occurs
								event_pregnancy_effect = yes
							}
						}
						45 = { #Twins
							scope:woman = {
								make_pregnant = {
									father = scope:man
									number_of_children = 2
								}
								# added to make sure the pregnancy can actually take effect, if it occurs
								event_pregnancy_effect = yes
							}
						}
					}
				}
				else = { #Just regular pregnancy roll
					random = {
						chance = 50
						scope:woman = {
							had_sex_with_effect = {
								CHARACTER = scope:man
								PREGNANCY_CHANCE = pregnancy_chance
							}
						}
					}
				}
			}

			location = { save_scope_as = location }
		}
	}

	option = {
		name = learning_medicine.2023.a

		add_character_modifier = {
			modifier = very_successful_fertility_treatment
			years = 10
		}
		reverse_add_opinion = {
			modifier = romance_opinion
			target = scope:spouse
			opinion = 15
		}
		scope:spouse = {
			add_character_modifier = {
				modifier = very_successful_fertility_treatment
				years = 10
			}
		}
	}
}

