﻿#For use with HornedMythicalCreature / call this effect (set_up_horned_mythical_creature_effect = yes) in the line before creating the artifact 
#Use this in the artifact's name/description in the loc-file [ROOT.Char.Custom('HornedMythicalCreature')]
#Remember to clear the var:horned_mythical_creature in your after = { ... }
set_up_horned_mythical_creature_effect = {
	random_list = {
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:tarasque
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:indrik
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:ophiotaurus
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:monocerus
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:centicore
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:erchitu
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:hadhayosh
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:bulgu
			}
		}
		50 = {
			set_variable = {
				name = horned_mythical_creature
				value = flag:catoblepas
			}
		}
		5 = {
			trigger = { 
				location = { geographical_region = custom_iceland }
			}
			set_variable = {
				name = horned_mythical_creature
				value = flag:keewakw
			}
		}

	}
}

#For use with RegionalMythicalCreature / call this effect (set_up_regional_mythical_creature_effect = yes) in the line before creating the artifact 
#Use this in the artifact's name/description in the loc-file [ROOT.Char.Custom('RegionalMythicalCreature')] /and/ [ROOT.Char.Custom('RegionalMythicalCreatureLower')]
#Remember to clear the var:regional_mythical_creature_trinket in your after = { ... }
set_up_regional_mythical_creature_effect = {
	if = {
		#Britannia
		limit = {
			location = { geographical_region = world_europe_west_britannia }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:water_leper
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:fomorian
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:fachan
				}
			}
		}
	}
	else_if = {
		#West Europe
		limit = {
			location = { geographical_region = world_europe_west }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:cockatrice
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:lou_carcolh
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:myrmecoleon
				}
			}
		}
	}
	else_if = {
		#North Europe
		limit = {
			location = { geographical_region = world_europe_north }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:antero_vipunen
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:tjelvar
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:fin
				}
			}
			50 = {
				trigger = {
					location = { geographical_region = custom_gotland }
				}
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:bysn
				}
			}
			50 = {
				trigger = {
					location = { geographical_region = custom_gotland }
				}
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:disma
				}
			}
		}
	}
	else_if = {
		#South Europe
		limit = {
			location = { geographical_region = world_europe_south }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:basilisk
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:lhombri
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:argus_panoptes
				}
			}
		}
	}
	else_if = {
		#East Europe
		limit = {
			location = { geographical_region = world_europe_east }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:baba_yaga
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:psoglav
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:sirin
				}
			}
		}
	}
	else_if = {
		#West Africa
		limit = {
			location = { geographical_region = world_africa_west }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:mami_wata
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:dodo
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:utelif
				}
			}
		}
	}
	else_if = {
		#East Africa
		limit = {
			location = { geographical_region = world_africa_east }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:liqimsa
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:bulgu
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:opimachus
				}
			}
		}
	}
	else_if = {
		#Middle East
		limit = {
			location = { geographical_region = world_middle_east }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:manticore
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:behemoth
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:humbaba
				}
			}
		}
	}
	else_if = {
		#India
		limit = {
			location = { geographical_region = world_india }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:makara
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:yali
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:rakshasha
				}
			}
		}
	}
	else_if = {
		#East Asia
		limit = {
			location = {
				OR = {
					geographical_region = world_tibet 
					geographical_region = world_asia_china
					geographical_region = world_asia_japan
					geographical_region = world_asia_korea
					geographical_region = world_asia_southeast
					}
				}
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:manaul
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:bashee
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:camphruch
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:qilin
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:tengu
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:naga
				}
			}
		}
	}
	else_if = {
		#West Steppe
		limit = {
			location = { geographical_region = world_steppe_west }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:aptah_baga #Legendary two-headed frog (from Sakha)
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:xullyukuns #Supernatural water spirit (from Sakha)
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:zilant #Dragon/wyvern-like creature
				}
			}
		}
	}
	else_if = {
		#East Steppe
		limit = {
			location = { geographical_region = world_steppe_east }
			NOT = { exists = var:regional_mythical_creature_trinket }
		}
		random_list = {
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:yelbeghen #Seven-headed giant/dragon
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:tepegoz #Fleshy giant-like cyclops
				}
			}
			50 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:archura #Deceitful forest demon
				}
			}
		}
	}
	#Fallback
	else = {
		random_list = {
			100 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:dragon
				}
			}
			5 = {
				set_variable = {
					name = regional_mythical_creature_trinket
					value = flag:cipactli
				}
			}
		}
	}	
}

select_local_farm_animal_effect = {
	random_list = {
		50 = {
			set_variable = {
				name = local_farm_animal
				value = flag:goat
			}
		}
		50 = {
			set_variable = {
				name = local_farm_animal
				value = flag:chicken
			}
		}
		50 = {
			modifier = {
				factor = 0
				faith = { religion_tag = hinduism_religion }
			}
			set_variable = {
				name = local_farm_animal
				value = flag:cow
			}
		}
		50 = {
			set_variable = {
				name = local_farm_animal
				value = flag:sheep
			}
		}
		50 = {
			modifier = {
				factor = 0
				faith = {
					OR = {
						religion_tag = islam_religion
						religion_tag = judaism_religion
					}
				}
			}
			set_variable = {
				name = local_farm_animal
				value = flag:pig
			}
		}
		50 = {
			modifier = {
				factor = 0
				location = {
					NOR = {
						geographical_region = world_tibet
						geographical_region = world_asia_china
						geographical_region = world_asia_korea
						geographical_region = world_asia_southeast
						geographical_region = ghw_region_mongolia
					}
				}
			}
			set_variable = {
				name = local_farm_animal
				value = flag:yak
			}
		}
	}
}

# Plague effect, get a regionally appropriate faith for people to scapegoat
select_scapegoat_faith_effect = {
	random_list = {
		100 = { # Courtier in your realm with hostile faith
			trigger = {
				any_courtier_or_guest = {
					save_temporary_scope_as = courtier_to_check
					root.faith = {
						faith_hostility_level = {
							target = scope:courtier_to_check.faith
							value >= faith_hostile_level
						}
					}
				}
			}
			random_courtier_or_guest = {
				limit = {
					save_temporary_scope_as = courtier_to_check
					root.faith = {
						faith_hostility_level = {
							target = scope:courtier_to_check.faith
							value >= faith_hostile_level
						}
					}
				}
				faith = { save_scope_as = faith_to_blame }
			}
		}
		100 = { # Vassal in your realm with hostile faith
			trigger = {
				top_liege ?= {
					any_vassal_or_below = {
						save_temporary_scope_as = courtier_to_check
						root.faith = {
							faith_hostility_level = {
								target = scope:courtier_to_check.faith
								value >= faith_hostile_level
							}
						}
					}
				}
			}
			top_liege = {
				random_vassal_or_below = {
					limit = {
						save_temporary_scope_as = courtier_to_check
						root.faith = {
							faith_hostility_level = {
								target = scope:courtier_to_check.faith
								value >= faith_hostile_level
							}
						}
					}
					faith = { save_scope_as = faith_to_blame }
				}
			}
		}
		100 = { # Neighbouring hostile faith
			trigger = {
				any_neighboring_and_across_water_top_liege_realm_owner = {
					any_sub_realm_county = {
						save_temporary_scope_as = county_to_check
						root.faith = {
							faith_hostility_level = {
								target = scope:county_to_check.faith
								value >= faith_hostile_level
							}
						}
					}
				}
			}
			random_neighboring_and_across_water_top_liege_realm_owner = {
				limit = {
					any_sub_realm_county = {
						save_temporary_scope_as = county_to_check
						root.faith = {
							faith_hostility_level = {
								target = scope:county_to_check.faith
								value >= faith_hostile_level
							}
						}
					}
				}
				random_sub_realm_county = {
					limit = {
						save_temporary_scope_as = county_to_check
						root.faith = {
							faith_hostility_level = {
								target = scope:county_to_check.faith
								value >= faith_hostile_level
							}
						}
					}
					faith = { save_scope_as = faith_to_blame }
				}
			}
		}
		10 = { # Regional, fallback
			random_list = {
				1000 = { # Judaism
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_europe
								geographical_region = world_asia_minor
								geographical_region = world_middle_east
								geographical_region = world_africa_east
								geographical_region = world_africa_north
							}
						}
						# Jewish faiths shouldn't blame themselves
						NOT = { root.faith.religion = religion:judaism_religion }
						# Account for Syncretics and the like
						root.faith = {
							NOT = { has_doctrine_parameter = jewish_syncretic_actor_opinion_active }
						}
					}
					religion:judaism_religion = {
						random_faith = {
							limit = {
								NOR = { # Regional faiths should be excluded
									this = faith:malabarism
									this = faith:kabarism
								}
							}
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # Islam
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_middle_east # This would only apply for non-Islamic middle-easterners
								geographical_region = world_india
								geographical_region = world_africa
								geographical_region = world_steppe
								geographical_region = world_asia_minor
								geographical_region = world_europe_west_iberia
								geographical_region = world_africa_east
								geographical_region = world_africa_north
								geographical_region = world_asia_china
								geographical_region = world_asia_southeast
							}
						}
						NOT = { root.faith.religion = religion:islam_religion }
						root.faith = {
							NOT = { has_doctrine_parameter = islamic_syncretic_actor_opinion_active }
						}
					}
					religion:islam_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # Christianity
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_europe
								geographical_region = world_india
								geographical_region = world_steppe
								geographical_region = world_asia_minor
								geographical_region = world_tibet
								geographical_region = world_middle_east
								geographical_region = world_africa_east
								geographical_region = world_africa_north
								geographical_region = world_asia_china
							}
						}
						NOT = { root.faith.religion = religion:christianity_religion }
						root.faith = {
							NOT = { has_doctrine_parameter = christian_syncretic_actor_opinion_active }
						}
					}
					religion:christianity_religion = {
						if = { # Exclude Eastern Christians for Europe
							limit = {
								root = {
									capital_province = {
										OR = {
											geographical_region = world_europe
											geographical_region = world_asia_minor
										}
									}
								}
							}
							random_faith = {
								limit = {
									NOT = { has_doctrine_parameter = eastern_syncretic_actor_opinion_active }
								}
								save_scope_as = faith_to_blame
							}
						}
						else = { # Exclude non-Eastern Christians for Asia
							random_faith = {
								limit = {
									has_doctrine_parameter = eastern_syncretic_actor_opinion_active
								}
								save_scope_as = faith_to_blame
							}
						}
					}
				}
				1000 = { # Jainism
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_india
								geographical_region = world_burma
								geographical_region = world_asia_china
								geographical_region = world_asia_korea
								geographical_region = world_asia_southeast
							}
						}
						NOT = { root.faith.religion = religion:jainism_religion }
					}
					religion:jainism_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # Zoroastrianism
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_india
								geographical_region = world_middle_east_persia
								geographical_region = world_asia_china
								geographical_region = world_asia_southeast
							}
						}
						NOT = { root.faith.religion = religion:zoroastrianism_religion }
					}
					religion:zoroastrianism_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # Buddhism (Non-Buddhist Tibetans)
					trigger = {
						capital_province ?= {
							OR = {
								geographical_region = world_tibet
								geographical_region = world_burma # In case Burma ceases to be Buddhist
								geographical_region = world_asia_china # for non buddhist chinese et al
								geographical_region = world_asia_japan
								geographical_region = world_asia_korea
								geographical_region = world_asia_southeast
							}
						}
						NOT = { root.faith.religion = religion:buddhism_religion }
					}
					religion:buddhism_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # Bon (Non-Bon Tibetans)
					trigger = {
						capital_province ?= {
							geographical_region = world_tibet
							geographical_region = world_asia_china
						}
						NOT = { root.faith.religion = religion:bon_religion }
					}
					religion:bon_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # West African paganism
					trigger = {
						capital_province ?= {
							geographical_region = world_africa_west
						}
						NOT = { root.faith.religion = religion:west_african_religion }
					}
					religion:west_african_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # West African paganism
					trigger = {
						capital_province ?= {
							geographical_region = world_africa_west
						}
						NOT = { root.faith.religion = religion:west_african_bori_religion }
					}
					religion:west_african_bori_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # West African paganism
					trigger = {
						capital_province ?= {
							geographical_region = world_africa_west
						}
						NOT = { root.faith.religion = religion:west_african_orisha_religion }
					}
					religion:west_african_orisha_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1000 = { # West African paganism
					trigger = {
						capital_province ?= {
							geographical_region = world_africa_west
						}
						NOT = { root.faith.religion = religion:west_african_roog_religion }
					}
					religion:west_african_roog_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
				1 = { # Generic Paganism, fallback
					trigger = {
						NOT = { root.faith.religion = religion:paganism_religion }
					}
					religion:paganism_religion = {
						random_faith = {
							save_scope_as = faith_to_blame
						}
					}
				}
			}
		}
	}
}
