namespace = fantasia_event

###Set up game flags###
character_event = {
	id = fantasia_event.0001
	hide_window = yes

	is_triggered_only = yes
	
	# trigger = {
		# NOT = { has_global_flag = fand_set_up_flags }
	# }

	immediate = {
		set_global_flag = fand_set_up_flags
		if = {
			limit = {
				OR = {
					has_game_rule = {
						name = magical_age
						value = off
					}
					has_game_rule = {
						name = magical_age
						value = historical
					}
				}
			}
			set_global_flag = magical_age_not_restored
		}
		if = {
			limit = {
				has_game_rule = {
					name = magical_age
					value = restored
				}
			}
			clr_global_flag = magical_age_not_restored
		}
		if = {
			limit = {
				has_global_flag = game_start_magic_end
			}
			clr_global_flag = game_start_magic_end
			set_global_flag = game_start_charlemagne
		}
		if = {
			limit = { start_date < 769.1.1 }
			set_global_flag = special_drakkodin_already_spawned
		}
	}
}

###Remove non-elven mages if magical age not restored###
character_event = {
	id = fantasia_event.0002
	hide_window = yes

	is_triggered_only = yes
	
	trigger = {
		NOT = { has_global_flag = fand_set_up_mages }
	}

	immediate = {
		set_global_flag = fand_set_up_mages
		if = {
			limit = {
				has_game_rule = {
					name = magical_age
					value = off
				}
			}
			any_character = {
				limit = {
					OR = {
						trait = wizard
						trait = sorcerer
						trait = apprentice_wizard
						trait = apprentice_sorcerer
					}
					NOR = {
						culture_group = elven
						culture_group = undead
					}
					ai = yes
				}
				remove_trait = wizard
				remove_trait = sorcerer
				remove_trait = apprentice_wizard
				remove_trait = apprentice_sorcerer
				leave_society = yes
			}
		}
		if = {
			limit = {
				has_game_rule = {
					name = magical_age
					value = historical
				}
			}
			any_character = {
				limit = {
					OR = {
						trait = wizard
						trait = sorcerer
						trait = apprentice_wizard
						trait = apprentice_sorcerer
					}
					NOR = {
						culture_group = elven
						culture_group = undead
					}
					ai = yes
				}
				remove_trait = wizard
				remove_trait = sorcerer
				remove_trait = apprentice_wizard
				remove_trait = apprentice_sorcerer
				leave_society = yes
			}
		}
	}
}

###Set up witchhunters and vampires###
character_event = {
	id = fantasia_event.0003
	hide_window = yes

	is_triggered_only = yes
	
	trigger = {
		NOT = { has_global_flag = fand_set_up_vamps }
	}

	immediate = {
		set_global_flag = fand_set_up_vamps
		if = {
			limit = {
				has_game_rule = {
					name = supernatural_events
					value = unrestricted
				}
			}
			any_character = {
				limit = { any_demesne_title = { title = d_dawnguard_company } }
				if = {
					limit = {
						NOT = { society_member_of = witchhunters }
					}
					join_society = witchhunters
					society_rank_up = { society = witchhunters rank = 3 }
				}
				if = {
					limit = {
						NOT = { trait = monster_hunter }
					}
					add_trait = monster_hunter
				}
				any_realm_character = {
					limit = {
						ai = yes
						NOT = { society_member_of = witchhunters }
					}
					join_society = witchhunters
					if = {
						limit = {
							NOT = { trait = monster_hunter }
						}
						add_trait = monster_hunter
					}
				}
			}
		}
	
		###Remove witchhunters and vampires if magical age not restored###
		if = {
			limit = {
				NOT = {
					has_game_rule = {
						name = supernatural_events
						value = unrestricted
					}
				}
			}
			#Witchhunters
			any_character = {
				limit = {
					OR = {
						trait = monster_hunter
						society_member_of = witchhunters
					}
				}
				remove_trait = monster_hunter
				leave_society = yes
			}
			activate_title = { title = d_dawnguard_company status = no }
			#Undead and werewolves
			vampire = {
				limit = { ai = yes }
				remove_trait = vampire
			}
			werewolf = {
				limit = { ai = yes }
				remove_trait = werewolf
			}
			any_character = {
				limit = {
					culture_group = undead
					ai = yes
				}
				death = { death_reason = death_missing }
			}
		}
	}
}

###Reset dawnguard company every new captian###
character_event = {
	id = fantasia_event.0004
	hide_window = yes

	is_triggered_only = yes

	trigger = {
		any_demesne_title = { title = d_dawnguard_company }
	}
	
	immediate = {
		if = {
			limit = {
				NOT = { society_member_of = witchhunters }
			}
			join_society = witchhunters
			society_rank_up = { society = witchhunters rank = 3 }
		}
		if = {
			limit = {
				NOT = { trait = monster_hunter }
			}
			add_trait = monster_hunter
		}
		any_realm_character = {
			limit = {
				ai = yes
				NOT = { society_member_of = witchhunters }
			}
			join_society = witchhunters
			if = {
				limit = {
					NOT = { trait = monster_hunter }
				}
				add_trait = monster_hunter
			}
		}
	}
}

###Give supernatural creatures immortal trait###
character_event = {
	id = fantasia_event.0005
	hide_window = yes
	
	trigger = {
		OR = {
			culture_group = undead
			trait = vampire
			trait = werewolf
		}
		immortal = no
	}
	
	mean_time_to_happen = { days = 1 }
	
	immediate = { add_trait = immortal }
}

###Set up human/undead traits###
character_event = {
	id = fantasia_event.0006
	hide_window = yes
	
	is_triggered_only = yes
	
	trigger = {
		is_alive = yes
		NOR = {
			trait = human_trait
			trait = undead_trait
		}
		NOR = {
			trait = elf_trait
			trait = dragon_trait
			trait = drakken_trait
			trait = ork_trait
			trait = half_blood_elf
			trait = half_blood_dragon
			trait = half_blood_drakken
			trait = half_blood_ork
		}
		NOR = {
			graphical_culture = etherealelvengfx
			graphical_culture = etherealdrakkengfx
			graphical_culture = highelvengfx
			graphical_culture = darkelvengfx
			graphical_culture = forestelvengfx
			graphical_culture = dragongfx
			graphical_culture = drakkengfx
			graphical_culture = orkgfx
		}
	}
	
	immediate = {
		if = {
			limit = {
				OR = {
					graphical_culture = draugrgfx
					graphical_culture = mummygfx
				}
			}
			add_trait = undead_trait
		}
		else = { add_trait = human_trait }
	}
}

###Remove human trait on death###
character_event = {
	id = fantasia_event.0007
	hide_window = yes
	
	is_triggered_only = yes
	
	trigger = { ROOT = { trait = human_trait } }
	
	immediate = { ROOT = { remove_trait = human_trait } }
}

###Set up non-human traits###
character_event = {
	id = fantasia_event.0008
	hide_window = yes
	
	is_triggered_only = yes
	
	trigger = {
		is_alive = yes
		NOR = {
			trait = human_trait
			trait = elf_trait
			trait = dragon_trait
			trait = drakken_trait
			trait = ork_trait
			trait = half_blood_elf
			trait = half_blood_dragon
			trait = half_blood_drakken
			trait = half_blood_ork
		}
		OR = {
			graphical_culture = etherealelvengfx
			graphical_culture = etherealdrakkengfx
			graphical_culture = highelvengfx
			graphical_culture = darkelvengfx
			graphical_culture = forestelvengfx
			graphical_culture = dragongfx
			graphical_culture = drakkengfx
			graphical_culture = orkgfx
		}
	}
	
	immediate = {
		#Elves
		if = {
			limit = {
				OR = {
					culture_group = elven
					graphical_culture = etherealelvengfx
					graphical_culture = highelvengfx
					graphical_culture = darkelvengfx
					graphical_culture = forestelvengfx
				}
			}
			if = {
				limit = {
					culture = high_elven
					NOR = {
						graphical_culture = etherealelvengfx
						graphical_culture = highelvengfx
						graphical_culture = darkelvengfx
						graphical_culture = forestelvengfx
					}
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_highelf_first_generation
			}
			else_if = {
				limit = {
					culture = dark_elven
					NOR = {
						graphical_culture = etherealelvengfx
						graphical_culture = highelvengfx
						graphical_culture = darkelvengfx
						graphical_culture = forestelvengfx
					}
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_darkelf_first_generation
			}
			else_if = {
				limit = {
					culture = forest_elven
					NOR = {
						graphical_culture = etherealelvengfx
						graphical_culture = highelvengfx
						graphical_culture = darkelvengfx
						graphical_culture = forestelvengfx
					}
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_forestelf_first_generation
			}
			else_if = {
				limit = {
					NOT = { culture_group = elven }
					OR = {
						graphical_culture = etherealelvengfx
						graphical_culture = highelvengfx
					}
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_highelf_first_generation
			}
			else_if = {
				limit = {
					NOT = { culture_group = elven }
					graphical_culture = darkelvengfx
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_darkelf_first_generation
			}
			else_if = {
				limit = {
					NOT = { culture_group = elven }
					graphical_culture = forestelvengfx
				}
				add_trait = half_blood_elf
				set_character_flag = half_blood_forestelf_first_generation
			}
			else = { add_trait = elf_trait }
		}
		#Dragons
		if = {
			limit = {
				NOT = { has_alternate_start_parameter = { key = special_culture value = animal_kingdoms } }
				OR = {
					culture = dragon_fantasy
					graphical_culture = dragongfx
				}
			}
			if = {
				limit = {
					culture = dragon_fantasy
					NOT = { graphical_culture = dragongfx }
				}
				add_trait = half_blood_dragon
				set_character_flag = half_blood_dragon_first_generation
			}
			else_if = {
				limit = {
					NOT = { culture = dragon_fantasy }
					graphical_culture = dragongfx
				}
				add_trait = half_blood_dragon
				set_character_flag = half_blood_dragon_first_generation
			}
			else = { add_trait = dragon_trait }
		}
		#Drakken
		if = {
			limit = {
				OR = {
					culture = drakken
					culture = wrym
					culture = lern
					graphical_culture = etherealdrakkengfx
					graphical_culture = drakkengfx
				}
			}
			if = {
				limit = {
					OR = {
						culture = drakken
						culture = wrym
						culture = lern
					}
					NOR = {
						graphical_culture = etherealdrakkengfx
						graphical_culture = drakkengfx
					}
				}
				add_trait = half_blood_drakken
				set_character_flag = half_blood_drakken_first_generation
			}
			else_if = {
				limit = {
					NOR = {
						culture = drakken
						culture = wrym
						culture = lern
					}
					OR = {
						graphical_culture = etherealdrakkengfx
						graphical_culture = drakkengfx
					}
				}
				add_trait = half_blood_drakken
				set_character_flag = half_blood_drakken_first_generation
			}
			else = { add_trait = drakken_trait }
		}
		#Orks
		if = {
			limit = {
				OR = {
					culture_group = ork
					graphical_culture = orkgfx
				}
			}
			if = {
				limit = {
					culture_group = ork
					NOT = { graphical_culture = orkgfx }
				}
				add_trait = half_blood_ork
				set_character_flag = half_blood_ork_first_generation
			}
			else_if = {
				limit = {
					NOT = { culture_group = ork }
					graphical_culture = orkgfx
				}
				add_trait = half_blood_ork
				set_character_flag = half_blood_ork_first_generation
			}
			else = { add_trait = ork_trait }
		}
	}
}

###Remove magic techs from non-magic kingdoms###
character_event = {
	id = fantasia_event.0009
	hide_window = yes

	is_triggered_only = yes
	
	trigger = {
		top_liege = {
			OR = {
				has_law = status_of_magic_0
				has_law = status_of_magic_1
			}
		}
		any_demesne_title = {
			OR = {
				TECH_MAGICAL_TROOPS = 1
				TECH_MAGIC_CONSTRUCTION = 1
				TECH_MAGICAL_CUSTOMS = 1
			}
		}
	}

	immediate = {
		any_demesne_title = { change_tech = { technology = TECH_MAGICAL_TROOPS value = -10 } }
		any_demesne_title = { change_tech = { technology = TECH_MAGIC_CONSTRUCTION value = -10 } }
		any_demesne_title = { change_tech = { technology = TECH_MAGICAL_CUSTOMS value = -10 } }
	}
}

###Set up magic laws###
character_event = {
	id = fantasia_event.0010
	hide_window = yes

	is_triggered_only = yes
	
	trigger = { is_ruler = yes }

	immediate = {
		if = {
			limit = { religion = taoist }
			primary_title = { add_law = status_of_magic_2 }
		}
		else_if = {
			limit = {
				OR = {
					any_demesne_title = { title = d_bohemia }
					any_demesne_title = { title = d_plzen }
				}
				religion_group = pagan_group
				NOR = {
					culture_group = elven
					culture_group = draconian
					culture_group = ork
					culture_group = undead
				}
			}
			primary_title = { add_law = status_of_magic_3 }
		}
		else_if = {
			limit = {
				religion_group = pagan_group
				NOR = {
					culture_group = elven
					culture_group = draconian
					culture_group = ork
					culture_group = undead
				}
			}
			random_list = {
				60 = { primary_title = { add_law = status_of_magic_2 } }
				30 = { primary_title = { add_law = status_of_magic_3 } }
				10 = { primary_title = { add_law = status_of_magic_1 } }
			}
		}
		else_if = {
			limit = {
				OR = {
					trait = vampire
					trait = werewolf
				}
			}
			random_list = {
				35 = { primary_title = { add_law = status_of_magic_2 } }
				60 = { primary_title = { add_law = status_of_magic_3 } }
				5 = { primary_title = { add_law = status_of_magic_1 } }
			}
		}
		else_if = {
			limit = {
				OR = {
					culture_group = elven
					culture_group = draconian
					culture_group = ork
					culture_group = undead
				}
			}
			random_list = {
				55 = { primary_title = { add_law = status_of_magic_3 } }
				45 = { primary_title = { add_law = status_of_magic_4 } }
			}
		}
		else = {
			random_list = {
				75 = { primary_title = { add_law = status_of_magic_0 } }
				25 = { primary_title = { add_law = status_of_magic_1 } }
			}
		}
	}
}
}