# FROM is the decision taker
# ROOT is the targeted character
targetted_decisions = {
	
	# Charm character via Court Mage
	have_court_mage_cast_charm_spell = {
		only_playable = yes
		
		filter = all
		ai_target_filter = realm
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
			ai = yes # To keep AI from using it against a player
			job_mage = {
				NOT = { character = FROM } # Can't charm oneself
			}
		}
		
		allow = {
			FROM = {
				job_mage = { NOT = { has_character_modifier = drained } }
			}
			NOT = {
				has_opinion_modifier = { who = FROM modifier = opinion_spell_charmed }
			}
		}
		
		effect = {
			custom_tooltip = { text = spell_charm_tooltip }
			hidden_tooltip = { 
				job_mage = { character_event = { id = spell.42 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.1 FROM = { has_job_title = job_mage } }
			modifier = { factor = 0.01 war = yes }
			
			# Rank
			modifier = { factor = 2.0 FROM = { liege = { character = ROOT } } }
			modifier = { factor = 1.5 higher_tier_than = duke }
			modifier = { factor = 1.5 higher_tier_than = king }
			modifier = { factor = 1.5 higher_tier_than = FROM }
			# Traits
			modifier = { factor = 2.0 FROM = { trait = mystic } }
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Opinion
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = 0 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -25 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -50 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -75 } } }
		}
	}

	# Charm character
	cast_charm_spell = {
		filter = all
		ai_target_filter = realm
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			can_cast_spell_trigger = yes
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
			ai = yes # To keep AI from using it against a player
		}
		
		allow = {
			FROM = { NOT = { has_character_modifier = drained } }
			NOT = {
				has_opinion_modifier = { who = FROM modifier = opinion_spell_charmed }
			}
		}
		
		effect = {
			custom_tooltip = { text = spell_charm_tooltip }
			hidden_tooltip = { 
				FROM = { character_event = { id = spell.41 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 FROM = { has_job_title = job_mage } }
			modifier = { factor = 0.01 war = yes }
			
			# Rank
			modifier = { factor = 2.0 FROM = { liege = { character = ROOT } } }
			modifier = { factor = 1.5 higher_tier_than = duke }
			modifier = { factor = 1.5 higher_tier_than = king }
			modifier = { factor = 1.5 higher_tier_than = FROM }
			# Traits
			modifier = { factor = 2.0 FROM = { trait = mystic } }
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Opinion
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = 0 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -25 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -50 } } }
			modifier = { factor = 2.0 NOT = { opinion = { who = FROM value = -75 } } }
		}
	}
	
	# Heal oneself via Court Mage
	have_court_mage_cast_heal_spell_self = {
		only_playable = yes
		
		filter = self
		ai_target_filter = self
		is_high_prio = yes
		diplomacy_icon = GFX_magic_decision

		potential = {
			NOT = { culture = wilderness }
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		
		allow = {
			FROM = { 
				job_mage = { NOT = { has_character_modifier = drained } }
			}
			can_be_healed_by_magic_trigger = yes
		}
		
		effect = {
			custom_tooltip = { text = spell_heal_tooltip }
			hidden_tooltip = { 
				job_mage = { character_event = { id = spell.2 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			
			# On self
			modifier = { 
				factor = 4 
				NOT = { health = 2 }
			}
			modifier = { 
				factor = 3
				NOT = { health = 3 }
			}
			modifier = { 
				factor = 2
				NOT = { health = 4 }
			}
			modifier = { 
				factor = 5
				OR = {
					trait = blinded
					trait = infirm
				}	
			}
		}
	}

	# Heal another character via Court Mage
	have_court_mage_cast_heal_spell = {
		only_playable = yes
		
		filter = all
		ai_target_filter = home_court
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
		}
		
		allow = {
			FROM = {
				job_mage = { NOT = { has_character_modifier = drained } }
			}
			can_be_healed_by_magic_trigger = yes
		}
		
		effect = {
			custom_tooltip = { text = spell_heal_tooltip }
			hidden_tooltip = { 
				job_mage = { character_event = { id = spell.2 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			
			# Traits
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Family
			modifier = { factor = 5.0 dynasty = FROM }
			modifier = { factor = 10.0 spouse = { character = FROM } }
			modifier = { factor = 10.0 father = { character = FROM } }
			modifier = { factor = 10.0 mother = { character = FROM } }
			modifier = { factor = 10.0 any_lover = { character = FROM } }
			# Opinion
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 25 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 50 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 75 } }
			modifier = { factor = 0 NOT = { reverse_opinion = { who = FROM value = 0 } } }
		}
	}
	
	# Heal oneself
	cast_heal_spell_self = {
		filter = self
		ai_target_filter = self
		diplomacy_icon = GFX_magic_decision
		
		is_high_prio = yes

		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		
		allow = {
			FROM = { NOT = { has_character_modifier = drained } }
			can_be_healed_by_magic_trigger = yes
		}
		
		effect = {
			custom_tooltip = { text = spell_heal_tooltip }
			hidden_tooltip = { 
				FROM = { character_event = { id = spell.1 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.1 FROM = { has_job_title = job_mage } }
			modifier = { factor = 0.01 war = yes }
			
			# On self
			modifier = { 
				factor = 4 
				NOT = { health = 2 }
			}
			modifier = { 
				factor = 3
				NOT = { health = 3 }
			}
			modifier = { 
				factor = 2
				NOT = { health = 4 }
			}
			modifier = { 
				factor = 5
				OR = {
					trait = blinded
					trait = infirm
				}	
			}
		}
	}
	
	# Heal another character
	cast_heal_spell = {
		filter = all
		ai_target_filter = court
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			can_cast_spell_trigger = yes
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
		}
		
		allow = {
			FROM = { NOT = { has_character_modifier = drained } }
			can_be_healed_by_magic_trigger = yes
		}
		
		effect = {
			custom_tooltip = { text = spell_heal_tooltip }
			hidden_tooltip = { 
				FROM = { character_event = { id = spell.1 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 FROM = { has_job_title = job_mage } }
			modifier = { factor = 0.01 war = yes }
			
			# Target is the liege
			modifier = {
				factor = 10
				FROM = {
					liege = {
						character = ROOT
					}
				}
			}
			
			# Low health
			modifier = { 
				factor = 4 
				NOT = { health = 2 }
			}
			modifier = { 
				factor = 3
				NOT = { health = 3 }
			}
			modifier = { 
				factor = 2
				NOT = { health = 4 }
			}
			modifier = { 
				factor = 5
				OR = {
					trait = blinded
					trait = infirm
				}	
			}
			
			# Traits
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Family
			modifier = { factor = 5.0 dynasty = FROM }
			modifier = { factor = 10.0 spouse = { character = FROM } }
			modifier = { factor = 10.0 father = { character = FROM } }
			modifier = { factor = 10.0 mother = { character = FROM } }
			modifier = { factor = 10.0 any_lover = { character = FROM } }
			# Opinion
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 25 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 50 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 75 } }
			modifier = { factor = 0 NOT = { reverse_opinion = { who = FROM value = 0 } } }
		}
	}
	
	# Protect oneself via Court Mage
	have_court_mage_cast_protect_spell_self = {
		only_playable = yes
		
		filter = self
		ai_target_filter = self
		diplomacy_icon = GFX_magic_decision
		
		potential = {
			NOT = { culture = wilderness }
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		
		allow = {
			FROM = { 
				job_mage = { NOT = { has_character_modifier = drained } }
			}
			NOT = { has_character_modifier = protection_spell }
		}
		
		effect = {
			custom_tooltip = { text = spell_protection_tooltip }
			hidden_tooltip = { 
				job_mage = { character_event = { id = spell.32 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			
			# On self
			modifier = { 
				factor = 2
				trait = craven
			}
			modifier = { 
				factor = 0.5
				trait = brave
			}
		}
	}
	
	# Protect another character via Court Mage
	have_court_mage_cast_protect_spell = {
		only_playable = yes
		
		filter = all
		ai_target_filter = home_court
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
		}
		
		allow = {
			FROM = {
				job_mage = { NOT = { has_character_modifier = drained } }
			}
			NOT = { has_character_modifier = protection_spell }
		}
		
		effect = {
			custom_tooltip = { text = spell_protection_tooltip }
			hidden_tooltip = { 
				job_mage = { character_event = { id = spell.32 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			
			# Traits
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Family
			modifier = { factor = 5.0 dynasty = FROM }
			modifier = { factor = 10.0 spouse = { character = FROM } }
			modifier = { factor = 10.0 father = { character = FROM } }
			modifier = { factor = 10.0 mother = { character = FROM } }
			modifier = { factor = 10.0 any_lover = { character = FROM } }
			# Opinion
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 25 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 50 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 75 } }
			modifier = { factor = 0 NOT = { reverse_opinion = { who = FROM value = 0 } } }
		}
	}
	
	# Protect oneself
	cast_protect_spell_self = {
		filter = self
		ai_target_filter = self
		diplomacy_icon = GFX_magic_decision
		
		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		
		allow = {
			FROM = { NOT = { has_character_modifier = drained } }
			NOT = { has_character_modifier = protection_spell }
		}
		
		effect = {
			custom_tooltip = { text = spell_protection_tooltip }
			hidden_tooltip = { 
				FROM = { character_event = { id = spell.31 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			modifier = { factor = 0.01 FROM = { has_job_title = job_mage } }
			
			# On self
			modifier = { 
				factor = 2
				character = FROM
				trait = craven
			}
			modifier = { 
				factor = 0.5
				character = FROM
				trait = brave
			}
		}
	}
	
	# Protect another character
	cast_protect_spell = {
		filter = all
		ai_target_filter = court
		diplomacy_icon = GFX_magic_decision
		
		from_potential = {
			can_cast_spell_trigger = yes
		}
		
		potential = {
			NOT = { culture = wilderness }
			is_within_diplo_range = FROM
		}
		
		allow = {
			FROM = { NOT = { has_character_modifier = drained } }
			NOT = { has_character_modifier = protection_spell }
		}
		
		effect = {
			custom_tooltip = { text = spell_protection_tooltip }
			hidden_tooltip = { 
				FROM = { character_event = { id = spell.31 } }
			}
		}
		
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.1 }
			modifier = { factor = 0.01 war = yes }
			modifier = { factor = 0.01 FROM = { has_job_title = job_mage } }
			
			# Traits
			modifier = { factor = 2.0 FROM = { trait = kind } }
			modifier = { factor = 2.0 FROM = { trait = gregarious } }
			modifier = { factor = 2.0 FROM = { trait = charitable } }
			# Family
			modifier = { factor = 5.0 dynasty = FROM }
			modifier = { factor = 10.0 spouse = { character = FROM } }
			modifier = { factor = 10.0 father = { character = FROM } }
			modifier = { factor = 10.0 mother = { character = FROM } }
			modifier = { factor = 10.0 any_lover = { character = FROM } }
			# Opinion
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 25 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 50 } }
			modifier = { factor = 2.0 reverse_opinion = { who = FROM value = 75 } }
			modifier = { factor = 0 NOT = { reverse_opinion = { who = FROM value = 0 } } }
		}
	}
}


decisions = {
	spell_glamour = {
		is_high_prio = yes
		
		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		allow = {
			NOT = { has_character_modifier = drained }
			OR = {
				NOT = { has_fair_trait_trigger = yes }
				trait = harelip
				trait = hunchback
				trait = lisp
				trait = stutter
				trait = ugly
				trait = dwarf
				trait = uncouth
			}
		}
		effect = {
			custom_tooltip = { text = spell_glamour_tooltip }
			hidden_tooltip = { character_event = { id = spell.10 } }
		}
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.01 }
			modifier = { factor = 0.01 has_job_title = job_mage }
			modifier = { factor = 2 trait = proud }
			modifier = { factor = 2 trait = envious }
			modifier = { factor = 0.01 is_female = no }
			modifier = { factor = 2 culture_group = northern_group }
			modifier = { factor = 0.01 location = { county = { de_jure_liege_or_above = e_nilfgaard } } }
			modifier = { factor = 0 war = yes }
		}
	}
	
	spell_foresight_court_mage = {
		potential = {
			NOT = { culture = wilderness }
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		allow = {
			job_mage = {
				NOT = { has_character_modifier = drained }
			}
		}
		effect = {
			custom_tooltip = { text = spell_foresight_tooltip }
			hidden_tooltip = { character_event = { id = spell.20 } }
		}
		ai_will_do = {
			factor = 0
		}
	}
	
	spell_foresight = {
		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		allow = {
			NOT = { has_character_modifier = drained }
		}
		effect = {
			custom_tooltip = { text = spell_foresight_tooltip }
			hidden_tooltip = { character_event = { id = spell.21 } }
		}
		ai_will_do = {
			factor = 0
		}
	}

	spell_siege_court_mage = {
		potential = {
			NOT = { culture = wilderness }
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		allow = {
			job_mage = {
				NOT = { has_character_modifier = drained }
				OR = {
					siege = { is_attacker = yes } # The caster of spell needs to be a commander
					hidden_tooltip = { # AI can cast the spell if court mage isn't commander but ROOT is
						ROOT = {
							ai = yes
							siege = { is_attacker = yes }
						}
					}
				}
			}
		}
		effect = {
			custom_tooltip = { text = spell_siege_tooltip }
			hidden_tooltip = {
				random_list = { # Flavor variations
					1 = { character_event = { id = spell.100 } } # Meteors
					1 = { character_event = { id = spell.110 } } # Fire
					1 = { character_event = { id = spell.120 } } # Earthquake
					1 = { character_event = { id = spell.130 } } # Storm
					1 = { character_event = { id = spell.140 } } # Ice
				}
			}
		}
		ai_will_do = {
			factor = 1
			modifier = { factor = 10 war = yes }
		}
	}
	
	spell_siege = {
		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		allow = {
			NOT = { has_character_modifier = drained }
			siege = { is_attacker = yes } # The caster of spell needs to be a commander
		}
		effect = {
			custom_tooltip = { text = spell_siege_tooltip }
			hidden_tooltip = {
				random_list = { # Flavor variations
					1 = { character_event = { id = spell.101 } } # Meteors
					1 = { character_event = { id = spell.111 } } # Fire
					1 = { character_event = { id = spell.121 } } # Earthquake
					1 = { character_event = { id = spell.131 } } # Storm
					1 = { character_event = { id = spell.141 } } # Ice
				}
			}
		}
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.01 has_job_title = job_mage }
			modifier = { factor = 10 war = yes }
		}
	}
	
	spell_battle_court_mage = {
		potential = {
			NOT = { culture = wilderness }
			job_mage = {
				can_cast_spell_trigger = yes
			}
		}
		allow = {
			job_mage = {
				NOT = { has_character_modifier = drained }
				OR = {
					in_battle = yes # The caster of spell needs to be a commander
					hidden_tooltip = { # AI can cast the spell if court mage isn't commander but ROOT is
						ROOT = {
							ai = yes
							in_battle = yes
						}
					}
				}
				OR = {
					AND = {
						is_ruler = yes
						war = yes
						any_playable_ruler = {
							war_with = ROOT
							OR = {
								AND = {
									OR = {
										at_location = PREV
										AND = {
											ROOT = { ai = yes }
											at_location = ROOT
										}
									}
									prisoner = no
									in_command = yes
								}
								any_realm_lord = {
									OR = {
										at_location = PREVPREV
										AND = {
											ROOT = { ai = yes }
											at_location = ROOT
										}
									}
									prisoner = no
									in_command = yes
								}
								any_courtier = {
									OR = {
										at_location = PREVPREV
										AND = {
											ROOT = { ai = yes }
											at_location = ROOT
										}
									}
									prisoner = no
									in_command = yes
								}
							}
						}
					}
					AND = {
						war = no
						any_liege = {
							any_playable_ruler = {
								war_with = PREV
								OR = {
									AND = {
										OR = {
											at_location = PREVPREV
											AND = {
												ROOT = { ai = yes }
												at_location = ROOT
											}
										}
										prisoner = no
										in_command = yes
									}
									any_realm_lord = {
										OR = {
											at_location = PREVPREVPREV
											AND = {
												ROOT = { ai = yes }
												at_location = ROOT
											}
										}
										prisoner = no
										in_command = yes
									}
									any_courtier = {
										OR = {
											at_location = PREVPREVPREV
											AND = {
												ROOT = { ai = yes }
												at_location = ROOT
											}
										}
										prisoner = no
										in_command = yes
									}
								}
							}
						}
					}
					any_independent_ruler = {
						mercenary = yes
						OR = {
							at_location = PREV
							AND = {
								ROOT = { ai = yes }
								at_location = ROOT
							}
						}
						in_command = yes
						prisoner = no
					}
				}
			}
		}
		effect = {
			custom_tooltip = { text = spell_battle_tooltip }
			hidden_tooltip = {
				random_list = { # Flavor variations
					1 = { character_event = { id = spell.200 } } # Meteors
					1 = { character_event = { id = spell.210 } } # Fire
					1 = { character_event = { id = spell.220 } } # Earthquake
					1 = { character_event = { id = spell.230 } } # Storm
					1 = { character_event = { id = spell.240 } } # Ice
				}
			}
		}
		ai_will_do = {
			factor = 1
			modifier = { factor = 10 war = yes }
		}
	}
	
	spell_battle = {
		potential = {
			NOT = { culture = wilderness }
			can_cast_spell_trigger = yes
		}
		allow = {
			NOT = { has_character_modifier = drained }
			in_battle = yes # The caster of spell needs to be a commander
			OR = {
				AND = {
					is_ruler = yes
					war = yes
					any_playable_ruler = {
						war_with = ROOT
						OR = {
							AND = {
								at_location = ROOT
								prisoner = no
								in_command = yes
							}
							any_realm_lord = {
								at_location = ROOT
								prisoner = no
								in_command = yes
							}
							any_courtier = {
								at_location = ROOT
								prisoner = no
								in_command = yes
							}
						}
					}
				}
				AND = {
					war = no
					any_liege = {
						any_playable_ruler = {
							war_with = PREV
							OR = {
								AND = {
									at_location = ROOT
									prisoner = no
									in_command = yes
								}
								any_realm_lord = {
									at_location = ROOT
									prisoner = no
									in_command = yes
								}
								any_courtier = {
									at_location = ROOT
									prisoner = no
									in_command = yes
								}
							}
						}
					}
				}
				any_independent_ruler = {
					mercenary = yes
					at_location = ROOT
					in_command = yes
					prisoner = no
				}
			}
		}
		effect = {
			custom_tooltip = { text = spell_battle_tooltip }
			hidden_tooltip = {
				random_list = { # Flavor variations
					1 = { character_event = { id = spell.201 } } # Meteors
					1 = { character_event = { id = spell.211 } } # Fire
					1 = { character_event = { id = spell.221 } } # Earthquake
					1 = { character_event = { id = spell.231 } } # Storm
					1 = { character_event = { id = spell.241 } } # Ice
				}
			}
		}
		ai_will_do = {
			factor = 1
			modifier = { factor = 0.01 has_job_title = job_mage }
			modifier = { factor = 10 war = yes }
		}
	}
}
