﻿namespace = agotma_event

#######################
### DRAGON SICKNESS ###
#######################

# Dragon Sickness
agotma_event.0010 = {
	hidden = yes

	trigger = {
		OR = {
			has_game_rule = agotma_dragon_sickness_enabled
			has_game_rule = agotma_dragon_sickness_enabled_risky
			has_game_rule = agotma_dragon_sickness_enabled_extreme
		}
		any_living_dragon = {
			count > 0
			NOT = { has_character_flag = agotma_dragon_sickness_immunity }
		}
	}

	immediate = {
		every_living_dragon = {
			limit = {
				is_alive = yes
				NOT = { has_character_flag = agotma_dragon_sickness_immunity }
			}
			trigger_event = {
				id = agotma_event.0011
				days = { 1 180 }
			}
		}
		#Decline Period
		if = {
			limit = {
				any_in_global_list = {
					variable = living_dragons
					count >= agot_dragon_cull_limit
				}
				OR = {
					has_game_rule = agotma_dragon_sickness_enabled_risky
					has_game_rule = agotma_dragon_sickness_enabled_extreme
				}
			}
			if = {
				limit = {
					has_game_rule = agotma_dragon_sickness_enabled_risky
					NOT = { agotma_dragon_decline_period_active = yes }
				}
				agotma_dragon_decline_period_effect = yes
			}
			else_if = {
				limit = {
					has_game_rule = agotma_dragon_sickness_enabled_extreme
					agotma_dragon_decline_period_active = yes
				}
				agotma_dragon_decline_period_perma_effect = yes
			}
		}
	}
}

# Assign Sickness Traits
agotma_event.0011 = {
	type = character_event

	hidden = yes

	trigger = {
		is_alive = yes
		NOT = { has_character_flag = agotma_dragon_sickness_immunity }
	}

	immediate = {
		save_scope_value_as = {
			name = half_cull
			value = {
				value = agot_dragon_cull_limit
				multiply = 0.5
			}
		}
		save_scope_value_as = {
			name = three_fourth_cull
			value = {
				value = agot_dragon_cull_limit
				multiply = 0.75
			}
		}

		# Young Dragon
		if = {
			limit = {
				age <= 10
				NOT = { has_trait = agotma_sickly_dragon }
				NOT = { has_trait = agotma_poor_appetite_dragon }
			}
			random_list = {
				950 = { # Nothing happens
					modifier = {
						agotma_dragon_decline_period_trigger = yes
						add = agotma_weight_decline_period_value
					}
				}
				14 = { # Becomes sick for a short time
					random_list = {
						1 = {
							add_trait = agotma_sickly_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 12 }
							}
						}
						1 = {
							add_trait = agotma_sickly_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 24 }
							}
						}
						1 = {
							add_trait = agotma_sickly_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 36 }
							}

							# Modifiers
							modifier = {
								add = 1
								OR = {
									any_in_global_list = {
										variable = living_dragons
										count > scope:half_cull
									}
									agotma_dragon_decline_period_trigger = yes
								}
							}
							modifier = {
								add = 1
								any_in_global_list = {
									variable = living_dragons
									count > agot_dragon_cull_limit
								}
							}
						}
						0 = {
							add_trait = agotma_sickly_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 48 }
							}

							# Modifiers
							modifier = {
								add = 1
								OR = {
									any_in_global_list = {
										variable = living_dragons
										count > scope:half_cull
									}
									agotma_dragon_decline_period_trigger = yes
								}
							}
							modifier = {
								add = 2
								any_in_global_list = {
									variable = living_dragons
									count > agot_dragon_cull_limit
								}
							}
						}
					}

					# Modifiers
					modifier = {
						add = agotma_weight_half_normal
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_normal
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
				}
				1 = { # Becomes permanently sick and eventually dies
					add_trait = agotma_sickly_dragon
					create_story = agotma_dragon_sickness_story

					# Modifiers
					modifier = {
						add = agotma_weight_half_deadly
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_deadly
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
				}
			}
		}
		# Old Dragon
		else_if = {
			limit = {
				age >= 100
				NOT = { has_trait = agotma_ill_dragon }
				NOT = { has_trait = agotma_poor_appetite_dragon }
			}
			random_list = {
				950 = { # Nothing happens
					modifier = {
						agotma_dragon_decline_period_trigger = yes
						add = agotma_weight_decline_period_value
					}
				}
				14 = { # Becomes sick for a short time
					random_list = {
						1 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 12 }
							}
						}
						2 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 24 }
							}
						}
						3 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 36 }
							}
						}
					}

					# Modifiers
					modifier = {
						add = agotma_weight_half_normal
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_normal
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
					modifier = {
						add = agotma_weight_full_deadly_old
						AND = {
							any_in_global_list = {
								variable = living_dragons
								count > agot_dragon_cull_limit
							}
							age > 120
						}
					}
				}
				1 = { # Becomes permanently sick and eventually dies
					add_trait = agotma_ill_dragon
					create_story = agotma_dragon_sickness_story

					# Modifiers
					modifier = {
						add = agotma_weight_half_deadly
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_deadly
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
					modifier = {
						add = agotma_weight_full_deadly_old
						AND = {
							any_in_global_list = {
								variable = living_dragons
								count > agot_dragon_cull_limit
							}
							age > 120
						}
					}
				}
			}
		}
		# Decline Period
		else_if = {
			limit = {
				age > 10
				age < 100
				agotma_dragon_decline_period_trigger = yes
				NOT = { has_trait = agotma_ill_dragon }
				NOT = { has_trait = agotma_poor_appetite_dragon }
			}
			random_list = {
				950 = { # Nothing happens
					modifier = {
						agotma_dragon_decline_period_trigger = yes
						add = agotma_weight_decline_period_value
					}
				}
				14 = { # Becomes sick for a short time
					random_list = {
						1 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 12 }
							}
						}
						2 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 24 }
							}
						}
						3 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 36 }
							}
						}
						4 = {
							add_trait = agotma_ill_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 48 }
							}
						}
					}

					# Modifiers
					modifier = {
						add = agotma_weight_half_normal
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_normal
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
					modifier = {
						add = agotma_weight_full_deadly_old
						AND = {
							any_in_global_list = {
								variable = living_dragons
								count > agot_dragon_cull_limit
							}
							age > 120
						}
					}
				}
				1 = { # Becomes permanently sick and eventually dies
					add_trait = agotma_ill_dragon
					create_story = agotma_dragon_sickness_story

					# Modifiers
					modifier = {
						add = agotma_weight_half_deadly
						OR = {
							any_in_global_list = {
								variable = living_dragons
								count > scope:half_cull
							}
							agotma_dragon_decline_period_trigger = yes
						}
					}
					modifier = {
						add = agotma_weight_full_deadly
						any_in_global_list = {
							variable = living_dragons
							count > agot_dragon_cull_limit
						}
					}
					modifier = {
						add = agotma_weight_full_deadly_old
						AND = {
							any_in_global_list = {
								variable = living_dragons
								count > agot_dragon_cull_limit
							}
							age > 120
						}
					}
				}
			}
		}
		# Adult Dragon
		else_if = {
			limit = {
				NOT = { has_trait = agotma_poor_appetite_dragon }
			}
			random_list = {
				96 = { # Nothing happens
					if = {
						limit = { NOT = { has_character_flag = agotma_dragon_sickness_immunity } }
						if = {
							limit = { agotma_dragon_decline_period_trigger = yes }
							add_character_flag = {
								flag = agotma_dragon_sickness_immunity
								months = 3
							}
						}
						else = {
							add_character_flag = {
								flag = agotma_dragon_sickness_immunity
								years = 5
							}
						}
					}
				}
				4 = { # Becomes sick for a short time
					# Modifiers
					modifier = {
						add = agotma_weight_no_feed
						any_in_global_list = {
							variable = living_dragons
							count > scope:three_fourth_cull
						}
					}
					modifier = {
						add = -4
						OR = {
							has_trait = agotma_sickly_dragon
							has_trait = agotma_ill_dragon
						}
					}
					random_list = {
						1 = {
							add_trait = agotma_poor_appetite_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 12 }
							}
						}
						2 = {
							add_trait = agotma_poor_appetite_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 24 }
							}
						}
						3 = {
							add_trait = agotma_poor_appetite_dragon
							create_story = agotma_dragon_sickness_story
							trigger_event = {
								id = agotma_event.0012
								months = { 6 36 }
							}
						}
					}
				}
			}
		}
	}
}

# Remove Sickness Traits
agotma_event.0012 = {
	type = character_event

	hidden = yes

	trigger = { is_alive = yes }

	immediate = {
		save_scope_as = agotma_dragon

		if = {
			limit = {
				OR = {
					has_character_flag = agotma_sickly_dragon_flag
					has_character_flag = agotma_ill_dragon_flag
				}
			}
			if = {
				limit = { agotma_dragon_decline_period_trigger = yes }
				add_character_flag = {
					flag = agotma_dragon_sickness_immunity
					years = { 1 5 }
				}
			}
			else = {
				add_character_flag = {
					flag = agotma_dragon_sickness_immunity
					years = { 10 20 }
				}
			}
		}
		else = {
			random = {
				chance = 50
				if = {
					limit = { agotma_dragon_decline_period_trigger = yes }
					add_character_flag = {
						flag = agotma_dragon_sickness_immunity
						years = { 1 5 }
					}
				}
				else = {
					add_character_flag = {
						flag = agotma_dragon_sickness_immunity
						years = { 10 20 }
					}
				}
			}
		}

		if = {
			limit = {
				any_relation = {
					type = agot_dragon
					NOT = { is_ai = yes }
				}
			}
			random_relation = {
				type = agot_dragon
				limit = { NOT = { is_ai = yes } }
				trigger_event = agotma_event.0014
			}
		}
		else = {
			if = {
				limit = { has_trait = agotma_sickly_dragon }
				remove_trait = agotma_sickly_dragon
			}
			else_if = {
				limit = { has_trait = agotma_ill_dragon }
				remove_trait = agotma_ill_dragon
			}
			else_if = {
				limit = { has_trait = agotma_poor_appetite_dragon }
				remove_trait = agotma_poor_appetite_dragon
			}
			if = {
				limit = { has_character_flag = agotma_sickly_dragon_flag }
				remove_character_flag = agotma_sickly_dragon_flag
			}
			else_if = {
				limit = { has_character_flag = agotma_ill_dragon_flag }
				remove_character_flag = agotma_ill_dragon_flag
			}
			else_if = {
				limit = { has_character_flag = agotma_poor_appetite_dragon_flag }
				remove_character_flag = agotma_poor_appetite_dragon_flag
			}
		}
	}
}

agotma_event.0013 = {
	type = character_event
	theme = dragon

	title = {
		desc = {
			first_valid = {
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
					desc = agotma_event.0013.t.sickly
				}
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
					desc = agotma_event.0013.t.ill
				}
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
					desc = agotma_event.0013.t.poor_appetite
				}
			}
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
				desc = agotma_event.0013.desc.sickly
			}
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
				desc = agotma_event.0013.desc.ill
			}
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
				desc = agotma_event.0013.desc.poor_appetite
			}
		}
	}

	right_portrait = {
		character = scope:dragon_owner
		animation = worry
	}
	lower_center_portrait = {
		character = scope:agotma_dragon
		camera = camera_dragon_head
	}

	immediate = {
		save_scope_as = dragon_owner
		if = {
			limit = { scope:agotma_dragon = { has_trait = agotma_sickly_dragon } }
			scope:agotma_dragon = { add_character_flag = agotma_sickly_dragon_flag }
			scope:agotma_dragon = { add_trait_force_tooltip = agotma_sickly_dragon }
		}
		else_if = {
			limit = { scope:agotma_dragon = { has_trait = agotma_ill_dragon } }
			scope:agotma_dragon = { add_character_flag = agotma_ill_dragon_flag }
			scope:agotma_dragon = { add_trait_force_tooltip = agotma_ill_dragon }
		}
		else_if = {
			limit = { scope:agotma_dragon = { has_trait = agotma_poor_appetite_dragon } }
			scope:agotma_dragon = { add_character_flag = agotma_poor_appetite_dragon_flag }
			scope:agotma_dragon = { add_trait_force_tooltip = agotma_poor_appetite_dragon }
		}
	}

	option {
		name = agotma_event.0013.a

	}
}

agotma_event.0014 = {
	type = character_event
	theme = dragon

	title = {
		desc = {
			first_valid = {
				triggered_desc = {
					trigger = { scope:agotma_dragon = { NOT = { is_alive = yes } } }
					desc = agotma_event.0014.t.dead
				}
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
					desc = agotma_event.0014.t.sickly
				}
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
					desc = agotma_event.0014.t.ill
				}
				triggered_desc = {
					trigger = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
					desc = agotma_event.0014.t.poor_appetite
				}
			}
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:agotma_dragon = { NOT = { is_alive = yes } } }
				desc = agotma_event.0014.desc.dead
			}
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
				desc = agotma_event.0014.desc.sickly
			}
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
				desc = agotma_event.0014.desc.ill
			}
			triggered_desc = {
				trigger = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
				desc = agotma_event.0014.desc.poor_appetite
			}
		}
	}

	right_portrait = {
		character = scope:dragon_owner
		triggered_animation = {
			trigger = { scope:agotma_dragon = { NOT = { is_alive = yes } } }
			animation = grief
		}
		triggered_animation = {
			trigger = { scope:agotma_dragon = { is_alive = yes } }
			animation = happiness
		}
	}
	lower_center_portrait = {
		character = scope:agotma_dragon
		camera = camera_dragon_head
	}

	immediate = {
		save_scope_as = dragon_owner
		if = {
			limit = { scope:agotma_dragon = { is_alive = yes } }
			if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
				scope:agotma_dragon = { remove_trait = agotma_sickly_dragon }
			}
			else_if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
				scope:agotma_dragon = { remove_trait = agotma_ill_dragon }
			}
			else_if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
				scope:agotma_dragon = { remove_trait = agotma_poor_appetite_dragon }
			}
		}
		else = {
			show_as_tooltip = {
				scope:agotma_dragon = {
					death = { death_reason = death_natural_causes }
				}
			}
		}
	}

	option {
		name = {
			text = {
				first_valid = {
					triggered_desc = {
						trigger = { scope:agotma_dragon = { is_alive = yes } }
						desc = agotma_event.0014.a
					}
					triggered_desc = {
						trigger = { scope:agotma_dragon = { NOT = { is_alive = yes } } }
						desc = agotma_event.0014.a.dead
					}
				}
			}
		}

		if = {
			limit = { scope:agotma_dragon = { is_alive = yes } }
			if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_sickly_dragon_flag } }
				scope:agotma_dragon = { remove_character_flag = agotma_sickly_dragon_flag }
			}
			else_if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_ill_dragon_flag } }
				scope:agotma_dragon = { remove_character_flag = agotma_ill_dragon_flag }
			}
			else_if = {
				limit = { scope:agotma_dragon = { has_character_flag = agotma_poor_appetite_dragon_flag } }
				scope:agotma_dragon = { remove_character_flag = agotma_poor_appetite_dragon_flag }
			}
		}
	}
}

######################
### AGE OF DRAGONS ###
######################

#AGE OF DRAGONS OVER
agotma_event.0020 = {
	window = agot_dragon_character_event
	type = character_event
	title = agotma_event.0020.t
	desc = agotma_event.0020.desc

	theme = dragon

	override_background = {
		reference = agotma_dragons_dead
	}

	trigger = { agot_is_any_dragon_alive = no }

	option = {
		name = agotma_event.0020.a
	}
}

#AGE OF DRAGONS OVER
agotma_event.0021 = {
	window = agot_dragon_character_event
	type = character_event
	title = agotma_event.0021.t
	desc = agotma_event.0021.desc

	theme = dragon

	right_portrait = {
		character = scope:first_dragon
		animation = dragon_main
		camera = camera_dragon_event_standing

		#Add this so dragon fits within event window
		outfit_tags = { linear_camera_zoom }
	}

	trigger = {
		agot_is_any_dragon_alive = yes
	}

	immediate = {
		ordered_in_global_list = {
			variable = living_dragons
			limit = { is_alive = yes }
			order_by = age
			save_scope_as = first_dragon
		}
	}

	option = {
		name = agotma_event.0021.a
	}
}




# agotma_event.9999 = {
# 	type = character_event
# 	title = agotma_event.9999.t
# 	orphan = yes

# 	theme = war

# 	desc = {
# 		desc = agotma_event.9999.desc
# 	}

# 	override_background = {
# 		reference = army_camp
# 	}

# 	right_portrait = {
# 		character = root
# 		animation = anger
# 	}

# 	immediate = {}

# 	option {
# 		name = agotma_event.9999

# 		if = {
# 			limit = { agotma_dragon_decline_period_active = yes }
# 			add_prestige = 1
# 		}
# 	}

# }