﻿namespace = epidemic_events

epidemic_events.2001 = { #defender trying to status quo the vassal war cuz he's sick
	type = character_event
	title = epidemic_events.2001.t
	desc = epidemic_events.2001.desc
	theme = plague
	left_portrait = {
		character = root
		animation = thinking
	}
	right_portrait = {
		character = scope:pleading_vassal
		animation = beg
	}
	lower_right_portrait = {
		character = scope:attacking_vassal
	}
	override_background = {
		reference = army_camp
	}
	override_effect_2d = {
		reference = fog
	}	
	cooldown = { years = 30 }

	trigger = {
		is_available_adult = yes
		any_vassal = {
			is_ai = yes
			is_at_war = yes
			any_character_war = {
				primary_attacker = {
					is_vassal_of = root
					is_ai = yes
				}
				is_defender = prev
				attacker_war_score > 30
			}
			realm_has_any_epidemic = { SIZE = 3 INTENSITY = minor }
			current_gold_value > minor_gold_value
		}
	}

	immediate = {
		random_vassal = {
			limit = {
				is_ai = yes
				is_at_war = yes
				any_character_war = {
					primary_attacker = {
						is_vassal_of = root
						is_ai = yes
					}
					is_defender = prev
					attacker_war_score > 30
				}
				realm_has_any_epidemic = { SIZE = 2 INTENSITY = minor }
				current_gold_value > minor_gold_value				
			}
			save_scope_as = pleading_vassal
			get_random_realm_epidemic = { INTENSITY = minor }
			random_character_war = {
				limit = {
					primary_attacker = {
						is_vassal_of = root
						is_ai = yes
					}
					is_defender = prev
					attacker_war_score > 30
				}
				save_scope_as = vassal_war
			}
		}
		scope:vassal_war = {
			primary_attacker = {
				save_scope_as = attacking_vassal
			}
		}
		set_variable = {
			name = gold_transfer_value
			value = scope:pleading_vassal.current_gold_value
		}
		scope:pleading_vassal = {
			pay_short_term_gold = {
				target = root
				gold = current_gold_value
			}
			hidden_effect = {
				if = {
					limit = {
						NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
					}
					random = {
						chance = 25
						infect_with_epidemic = scope:epidemic_scope
					}
				}
			}
		}
	}

	option = { #send a royal order for white peace
		name = epidemic_events.2001.c

		duel = {
			skill = diplomacy
			target = scope:attacking_vassal

			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 1
				}
				send_interface_toast = {
					title = epidemic_events.2001.c.success
					left_icon = scope:pleading_vassal
					right_icon = scope:attacking_vassal
					scope:vassal_war = {
						end_war = white_peace
					}
					add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_gain }
					scope:pleading_vassal = {
						add_opinion = {
							modifier = thankful_opinion
							opinion = 30
							target = root
						}
					}						
				}
			}

			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
				}
				send_interface_toast = {
					title = epidemic_events.2001.c.failure
					left_icon = scope:pleading_vassal
					right_icon = scope:attacking_vassal		
					scope:pleading_vassal = {
						add_opinion = {
							modifier = disappointed_opinion
							opinion = -25
							target = root
						}
					}
					custom_tooltip = epidemic_events.2001.danger
				}
				hidden_effect = {
					random = {
						chance = 10
						trigger_event = {
							months = 4
							id = epidemic_events.2002
						}
					}
				}
			}
		}

		stress_impact = {
			greedy = medium_stress_gain
			compassionate = medium_stress_loss
			just = medium_stress_loss
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = low_chance_impact_positive_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
			}
		}
	}

	option = { #imprison the other guy from traveling to you during a pandemic and wash whatever he touched
		name = epidemic_events.2001.b
		flavor = epidemic_events.2001.b.desc

		imprison = {
			target = scope:pleading_vassal
			type = dungeon
		}

		scope:pleading_vassal = {
			add_opinion = {
				modifier = angry_opinion
				opinion = -40
				target = root
			}
		}
		custom_tooltip = epidemic_events.2001.danger
		hidden_effect = {
			random = {
				chance = 10
				trigger_event = {
					months = 4
					id = epidemic_events.2002
				}
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = low_chance_impact_positive_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
			}
		}

		stress_impact = {
			compassionate = medium_stress_gain
			just = medium_stress_gain
			paranoid = major_stress_loss
		}
	}

	option = { #pay money to end war
		name = epidemic_events.2001.a

		scope:vassal_war = {
			end_war = white_peace
		}
		pay_treasury_or_gold = {
			target = scope:attacking_vassal
			value = {
				value = root.var:gold_transfer_value
				multiply = 0.5
			}
		}

		scope:pleading_vassal = {
			add_opinion = {
				modifier = thankful_opinion
				opinion = 30
				target = root
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = low_chance_impact_negative_ai_value
				ai_compassion = low_chance_impact_positive_ai_value
			}
		}

		stress_impact = {
			greedy = medium_stress_gain
			compassionate = medium_stress_loss
		}


	}

	after = {
		hidden_effect = {
			if = {
				limit = {
					scope:pleading_vassal = {
						has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
						is_imprisoned = no
					}
				}
				random_list = {
					60 = {
						random_courtier = {
							limit = {
								NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
							}
							save_scope_as = infected_courtier
						}
						send_interface_toast = {
							title = epidemic_events.2001.epidemic_spread.t
							left_icon = scope:pleading_vassal
							right_icon = scope:infected_courtier
							scope:infected_courtier = {
								infect_with_epidemic = scope:epidemic_scope
							}
						}
					}
					20 = {
						if = {
							limit = {
								NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
							}
						}
						random_courtier = {
							limit = {
								NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
							}
							save_scope_as = first_infected_courtier
						}
						random_courtier = {
							limit = {
								NOT = {
									has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
									scope:first_infected_courtier = this
								}
							}
							save_scope_as = second_infected_courtier
						}
						send_interface_toast = {
							title = epidemic_events.2001.epidemic_spread.t
							left_icon = scope:second_infected_courtier
							right_icon = scope:first_infected_courtier
							scope:first_infected_courtier = {
								infect_with_epidemic = scope:epidemic_scope
							}
							scope:second_infected_courtier = {
								infect_with_epidemic = scope:epidemic_scope
							}
						}
					}
				}
			}
		}
	}
}

epidemic_events.2002 = {
	type = character_event
	title = epidemic_events.2002.t
	desc = epidemic_events.2002.desc
	theme = plague

	left_portrait = {
		character = root
		animation = stress
	}
	lower_left_portrait = scope:attacking_vassal
	lower_right_portrait = scope:pleading_vassal

	trigger = {
		exists = scope:epidemic_scope
		exists = scope:vassal_war
		is_ai = no
	}

	override_background = {
		reference = battlefield
	}
	override_effect_2d = {
		reference = fog
	}

	immediate = {
		if = {
			limit = {
				scope:epidemic_scope = {
					outbreak_intensity = minor
				}
			}
			scope:epidemic_scope = {
				set_epidemic_outbreak_intensity = major
			}
		}
		else = {
			scope:epidemic_scope = {
				set_epidemic_outbreak_intensity = apocalyptic
			}
		}
		add_legitimacy = miniscule_legitimacy_loss
	}

	option = {
		name = epidemic_events.2002.a
		stress_impact = {
			base = minor_stress_gain
		}
	}

}

epidemic_events.2003 = { #maa are dying from war
	type = character_event
	title = epidemic_events.2003.t
	desc = epidemic_events.2003.desc
	theme = plague

	left_portrait = {
		character = root
		animation = stress 
	}

	right_portrait = {
		character = scope:marshal
		animation = marshal_shield
	}

	override_background = {
		reference = army_camp
	}

	override_effect_2d = {
		reference = flies
	}

	cooldown = { years = 8 } 

	trigger = {
		is_available_adult = yes
		any_held_county = {
			any_county_province = {
				has_stationed_regiment = yes
				any_province_epidemic = {
					intensity >= minor
				}
			}
			save_temporary_scope_as = first_county
		}
		any_held_county = {
			this != scope:first_county
			any_county_province = {
				has_stationed_regiment = yes
				any_province_epidemic = {
					intensity >= minor
				}
			}
		}

		exists = cp:councillor_marshal
	}
	immediate = {
		random_held_county = {
			limit = {
				any_county_province = {
					has_stationed_regiment = yes
					any_province_epidemic = {
						intensity >= minor
					}
				}
			}
			random_county_province = {
				limit = {
					has_stationed_regiment = yes
					any_province_epidemic = {
						intensity >= minor
					}
				}
				save_scope_as = first_epidemic_province
				random_province_epidemic = {
					save_scope_as = epidemic_scope
				}
			}
			save_scope_as = first_epidemic_county
		}
		random_held_county = {
			limit = {
				this != scope:first_epidemic_county
				any_county_province = {
					has_stationed_regiment = yes
					any_province_epidemic = {
						intensity >= minor
					}
				}
			}
			random_county_province = {
				limit = {
					has_stationed_regiment = yes
					any_province_epidemic = {
						intensity >= minor
					}
				}
				save_scope_as = second_epidemic_province
			}
		}
		cp:councillor_marshal = { save_scope_as = marshal }
	}

	option = { #pay more to get more recruits
		name = epidemic_events.2003.a
		
		every_maa_regiment = { 
			change_maa_troops_count = {
				value = {
					value = this.maa_current_troops_count
					multiply = -0.25
				}
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = low_chance_impact_negative_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
			}
		}

		stress_impact = {
			greedy = medium_stress_gain
			ambitious = medium_stress_loss
		}
	}

	option = { #dont care, press peasants as maa
		name = epidemic_events.2003.b
		
		scope:first_epidemic_province = {
			add_province_modifier = {
				modifier = epidemic_pressed_levies
				years = 5
			}
		}
		
		scope:second_epidemic_province = {
			add_province_modifier = {
				modifier = epidemic_pressed_levies
				years = 5
			}
		}
		
		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = low_chance_impact_positive_ai_value
				ai_compassion = low_chance_impact_negative_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
			}
		}

		stress_impact = {
			just = medium_stress_gain
		}
	}

	option = { #close the barracks!
		name = epidemic_events.2003.c
		
		scope:first_epidemic_province = {
			add_province_modifier = {
				modifier = epidemic_closed_barracks
				years = 5
			}
		}
		
		scope:second_epidemic_province = {
			add_province_modifier = {
				modifier = epidemic_closed_barracks
				years = 5
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = low_chance_impact_positive_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
			}
		}

		stress_impact = {
			paranoid = medium_stress_loss
		}
	}
}

epidemic_events.2004 = { #Medicinal Jar creation event
	hidden = yes

	trigger = {
		is_available_adult = yes
		court_position:court_physician_court_position ?= {
			is_available_ai_adult = yes
			culture != root.culture
			NOT = {
				has_character_flag = physician_medicinal_jar
			}
		}
		realm_has_any_nearby_epidemic = { SIZE = 4 INTENSITY = minor }
	}

	cooldown = { years = 160 }

	immediate = {
		court_position:court_physician_court_position = {
			save_scope_as = physician
		} 
		scope:physician = {
			create_artifact = {
				name = medicine_jar
				description = medicine_jar_desc
				type = miscellaneous
				visuals = glazed_jar
				modifier = artifact_epidemic_resistance_1_modifier
				modifier = artifact_learning_lifestyle_xp_2_modifier
				save_scope_as = medicine_jar
				quality = 50
			}
			add_character_flag = physician_medicinal_jar
		}
		
		if = {
			limit = {
				scope:physician = {
					can_equip_artifact = scope:medicine_jar
				}
			}
			scope:medicine_jar = {
				equip_artifact_to_owner = yes
			}
			get_random_nearby_realm_epidemic = { INTENSITY = minor }
			trigger_event = {
				days = { 3 7 }
				id = epidemic_events.2005
			}
		}
	}
	
}

epidemic_events.2005 = { #Glass jar artifact
	type = character_event
	title = epidemic_events.2005.t
	desc = epidemic_events.2005.desc
	theme = plague

	left_portrait = {
		character = root
		animation = personality_rational
	}

	right_portrait = {
		character = scope:physician
		animation = physician
	}

	artifact = {
		target = scope:medicine_jar
		position = lower_center_portrait
	}

	override_background = {
		reference = physicians_study
	}
	
	trigger = {
		scope:physician = { is_alive = yes }
	}

	option = { #politely ask the physisican to part with the jar
		name = epidemic_events.2005.a
		duel = {
			skill = diplomacy
			target = scope:physician

			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 1
				}
				send_interface_toast = {
					title = epidemic_events.2005.a.success
					left_icon = scope:physician
					scope:medicine_jar = {
						set_owner = root
					}
				}
			}
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
				}
				send_interface_toast = {
					title = epidemic_events.2005.a.failure
					left_icon = scope:physician
					scope:medicine_jar = {
						add_artifact_modifier = artifact_physician_aptitude_1_modifier
					}						
				}
			}
		}

		stress_impact = {
			craven = minor_stress_loss
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_rationality = low_chance_impact_negative_ai_value
			}
		}


	}

	option = { #violently grab the jar from physician
		name = epidemic_events.2005.b

		scope:physician = {
			add_opinion = {
				modifier = fp3_stole_from_me
				opinion = -25
				target = root
			}
			progress_towards_rival_effect = {
				REASON = rival_stole_artifact
				CHARACTER = root
				OPINION = 0
			}
		}

		scope:medicine_jar = {
			set_owner = root
		}
		
		stress_impact = {
			temperate = medium_stress_gain
			just = medium_stress_gain
			paranoid = medium_stress_loss
			wrathful = medium_stress_loss
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_greed = low_chance_impact_positive_ai_value
				ai_energy = low_chance_impact_positive_ai_value
				ai_rationality = low_chance_impact_negative_ai_value
			}
		}
	}

	option = { #let phycisian keep his precious jar
		name = epidemic_events.2005.c
		scope:medicine_jar = {
			add_artifact_modifier = artifact_physician_aptitude_1_modifier
		}

		stress_impact = {
			temperate = medium_stress_loss
			just = medium_stress_loss
			trusting = medium_stress_loss
		}

		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_compassion = low_chance_impact_positive_ai_value
				ai_rationality = low_chance_impact_positive_ai_value
				ai_greed = low_chance_impact_negative_ai_value
			}
		}
	}

}

epidemic_events.2006 = { #Dancing plague
	type = character_event
	title = epidemic_events.2006.t
	desc = epidemic_events.2006.desc
	theme = plague
	override_background = courtyard
	override_effect_2d = { reference = flies }

	left_portrait = {
		character = root
		animation = stress
	}

	right_portrait = {
		character = scope:dance_victim
		animation = dancing_plague
	}

	trigger = {
		is_available_adult = yes
		OR = {
			is_ai = no
			this = top_liege
		}
		capital_province = {
			any_province_epidemic = {
				#epidemic_type = epidemic_type:ergotism
				intensity < apocalyptic
			}
		}
		NOT = {
			has_character_flag = had_event_dancing_plague
		}
	}

	weight_multiplier = {
		base = 1
		modifier = { #Since a big outbreak occurred in Aachen 1374
			add = 9
			capital_province = {
				county = title:c_aachen
			}
			current_date >= 1370.1.1
			current_date <= 1380.1.1
		}
		modifier = { #Since an outbreak occurred in Erfurt 1247
			add = 9
			capital_province = {
				duchy = title:d_thuringia
			}
			current_date >= 1240.1.1
			current_date <= 1250.1.1
		}
		modifier = { #Since an outbreak occurred in Kolbigk 1021
			add = 9
			capital_province = {
				geographical_region = ghw_region_saxony
			}
			current_date >= 1020.1.1
			current_date <= 1030.1.1
			
		}
		modifier = {  #Since it historically occurred in Europe
			add = 1
			capital_province = {
				geographical_region = world_europe
			}			
		}
		
	}
 
	immediate = {
		capital_province = {
			random_province_epidemic = {
				limit = {
					epidemic_type = epidemic_type:ergotism
					outbreak_intensity < apocalyptic
				}
				save_scope_as = dancing_plague
			}
		}
		create_character = {
			template = servant_character
			dynasty = none
			location = root.capital_province
			save_scope_as = dance_victim
		}
		hidden_effect = {
			scope:dance_victim = {
				add_trait = ergotism
			}
		}

		scope:dancing_plague = {
			set_epidemic_outbreak_intensity = apocalyptic
		}

		add_character_flag = had_event_dancing_plague
	}

	option = { #let's join the paaartey
		trigger = {
			has_trait = eccentric
		}
		name = epidemic_events.2006.a
		add_character_modifier = {
			modifier = ce1_gone_dancing
			years = 2
		}
		
		hidden_effect = {
			random = {
				chance = 10
				trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
			}
		}
		
		stress_impact = {
			eccentric = medium_stress_loss
		}

		ai_chance = {
			base = 100
		}

	}

	option = { #slay the demon!
		trigger = {
			has_trait = zealous
		}
		name = epidemic_events.2006.d
		add_piety = minor_piety_gain

		scope:dance_victim = {
			death = {
				death_reason = death_murder
				killer = root
			}
		}

		stress_impact = {
			zealous = medium_stress_loss
		}

		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_compassion = low_chance_impact_negative_ai_value
				ai_zeal = low_chance_impact_positive_ai_value
			}
		}
	}

	option = { #eh, every dance stops eventually, right?
		name = epidemic_events.2006.b
		
		capital_county = {
			add_county_modifier = {
				modifier = dance_plague_modifier
				years = 4
			}
		}

		stress_impact = {
			compassionate = minor_stress_gain
		}
		
		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_compassion = low_chance_impact_negative_ai_value
			}
		}
	}

	option = { #tie them down! allieviate their pains somehow
		name = epidemic_events.2006.c
		
		hidden_effect = {
			random = {
				chance = 10
				trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
			}
		}

		stress_impact = {
			lustful = medium_stress_loss
			compassionate = medium_stress_loss
		}
		
		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_compassion = low_chance_impact_positive_ai_value
			}
		}
	}
}
