# Faction tags need to start with 'faction_'

# Supported types:
# liege_titles, liege_titles_w_claimant, character

# The succession law factions have hard coded elements to ensure that the correct heir is shown in Plot and 
# Faction interfaces and that AI faction members vote for laws in accordance with the faction goal.
# The valid tags correspond to the law name: faction_succ_seniority, faction_succ_primogeniture, etc.
# (faction_succ_ultimogeniture is fully supported by the code, but not currently implemented)

###############
# FACTIONS
###############

# Discontent Patrician can try to force an election
faction_force_election = {
	type = liege_titles
	
	warning_level = 0.7 # At this level of faction power we give player an alert. Set to 0 for no alerts.

	cancel_on_leader_death = yes # The faction will not automatically continue under a new leader

	# Plotter scope
	potential = {
		has_dlc = "Conclave"
		is_ruler = yes
		independent = no
		is_patrician = yes
		is_merchant_republic = no

		is_adult = yes
		prisoner = no
		is_incapable = no

		NOT = {
			has_opinion_modifier = {
				modifier = opinion_coerced_into_leaving_faction
				who = liege
			}
		}

		is_voter = yes
		liege = {
			is_merchant_republic = yes
			OR = {
				is_council_content = no
				has_law = war_voting_power_0
			}
			NOT = {
				any_demesne_title = {
					temporary = yes
				}
			}
		}
	}
	
	# Target scope
	allow = {
		is_primary_holder_title = yes

		holder_scope = {
			NOT = { has_character_modifier = modifier_doge_newly_elected }
		}
	}
	
	# Faction member scope (ROOT = joiner, FROM = target)
	allow_join = {
		ROOT = {
			is_ruler = yes
			independent = no
			is_adult = yes
			prisoner = no
			is_incapable = no

			NOT = {
				has_opinion_modifier = {
					modifier = opinion_coerced_into_leaving_faction
					who = liege
				}
			}

			liege = { 
				OR = {
					is_council_content = no
					has_law = war_voting_power_0
				}
			}
		}
	}		
	
	# AI creation weight
	chance = {
		factor = 1

		modifier = {
			factor = 0
			FROM = {
				OR = {
					leads_faction = faction_claimant
					in_faction = faction_claimant 
				}
			}
		}	
		
		modifier = {
			factor = 0
			FROM = {
				OR = {
					prisoner = yes
					has_character_modifier = in_seclusion
				}
			}
		}
		
		modifier = {
			factor = 0
			holder_scope = {
				any_spouse = { character = FROM }
			}
		}
		
		modifier = {
			factor = 0
			FROM = { preparing_invasion = yes }
		}
		
		modifier = {
			factor = 0
			FROM = {
				trigger_if = {
					limit = {
						OR = {
							trait = deceitful
							trait = ambitious
						}
					}					
					opinion = { who = liege value >= 20 }
				}
				trigger_else = {
					opinion = { who = liege value >= 0 }
				}
			}
		}
		modifier = {
			factor = 0
			FROM = {
				NOR = {
					has_opinion_modifier = { who = liege modifier = opinion_evil_tyrant }
					has_opinion_modifier = { who = liege modifier = opinion_tyrant }
					has_opinion_modifier = { who = liege modifier = opinion_murdered_fellow_patrician_councillor }
					has_opinion_modifier = { who = liege modifier = attempted_murder }
					has_opinion_modifier = { who = liege modifier = opinion_feuding_family }
					is_rival = liege
				}
			}
		}
		modifier = {
			factor = 0
			FROM = {
				is_friend = liege
			}
		}

		# much higher chance if a patrician stands to win next election
		modifier = {
			factor = 10.0
			current_heir = {
				from_ruler_dynasty = no
				character = FROM
			}
		}

		modifier = {
			factor = 0.5
			holder_scope = {
				any_owned_bloodline = {
					has_bloodline_flag = bloodline_less_factions
					bloodline_is_active_for = PREV
				}
			}
		}
		modifier = {
			factor = 0.2
			FROM = { pacifist = yes }
		}		

		modifier = {
			factor = 1.5
			FROM = { opinion = { who = LIEGE value < -25 } }
		}
		modifier = {
			factor = 2.0
			FROM = { opinion = { who = LIEGE value < -50 } }
		}
		modifier = {
			factor = 4.0
			FROM = { opinion = { who = LIEGE value < -75 } }
		}
		modifier = {
			factor = 0.01
			FROM = { trait = content }
		}
		modifier = {
			factor = 0.01
			FROM = { trait = imbecile }
		}
		modifier = {
			factor = 0.1
			FROM = { trait = inbred }
		}
		modifier = {
			factor = 0.1
			FROM = { trait = craven }
		}
		modifier = {
			factor = 0.2
			FROM = { 
				OR = {
					trait = slow
					trait = dull
				}
			}
		}
		modifier = {
			factor = 0.5
			FROM = { trait = kind }
		}
		modifier = {
			factor = 0.5
			FROM = { trait = charitable }
		}
		modifier = {
			factor = 0.5
			FROM = { trait = honest }
		}
		modifier = {
			factor = 0.75
			FROM = { trait = humble }
		}
		modifier = {
			factor = 0.75
			FROM = { trait = just }
		}
		modifier = {
			factor = 1.5
			FROM = { trait = proud }
		}
		modifier = {
			factor = 1.5
			FROM = { trait = brave }
		}
		modifier = {
			factor = 1.5
			FROM = { trait = arbitrary }
		}
		modifier = {
			factor = 2.0
			FROM = { trait = envious }
		}
		modifier = {
			factor = 2.0
			FROM = { trait = greedy }
		}
		modifier = {
			factor = 2.0
			FROM = { trait = impaler }
		}
		modifier = {
			factor = 2.0
			FROM = { trait = deceitful }
		}
		modifier = {
			factor = 4.0
			FROM = { trait = ambitious }
		}
	}
	
	# AI membership weight: ROOT is the prospective member. FROM is the faction leader. FROMFROM is the target title or character.
	membership = {
		factor = 1

		modifier = {
			factor = 0
			OR = {
				leads_faction = faction_claimant
				in_faction = faction_claimant 
			}
		}
		
		modifier = {
			factor = 0
			OR = {
				prisoner = yes
				trait = incapable
				is_adult = no
				is_ruler = no
				preparing_invasion = yes
			}
		}

		modifier = {
			factor = 0
			opinion = { who = FROMFROM value = 0 }
		}
		
		modifier = {
			factor = 0
			opinion = { who = FROM value < -40 }
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		
		modifier = {
			factor = 0
			has_opinion_modifier = {
				who = LIEGE
				modifier = opinion_coerced_into_leaving_faction
			}
		}

		modifier = {
			factor = 0
			opinion = { who = LIEGE value >= -20 }
			is_voter = no
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}

		modifier = {
			factor = 0
			opinion = { who = LIEGE value >= 0 }
			is_voter = yes
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}

		modifier = {
			factor = 0
			NOR = {
				has_opinion_modifier = { who = liege modifier = opinion_evil_tyrant }
				has_opinion_modifier = { who = liege modifier = opinion_tyrant }
				has_opinion_modifier = { who = liege modifier = opinion_murdered_fellow_patrician_councillor }
				has_opinion_modifier = { who = liege modifier = attempted_murder }
				has_opinion_modifier = { who = liege modifier = opinion_feuding_family }
				is_rival = liege
			}
		}
		modifier = {
			factor = 0
			is_friend = liege
		}

		# patricians are much more likely to join
		modifier = {
			factor = 10.0
			is_patrician = yes
		}
		# much higher chance if a patrician stands to win next election
		modifier = {
			factor = 10.0
			liege = {
				current_heir = {
					from_ruler_dynasty = no
					character = ROOT
				}
			}
		}

		modifier = {
			factor = 1000
			has_opinion_modifier = {
				who = FROM
				modifier = opinion_coerced_into_joining_faction
			}
		}
		

		modifier = {
			factor = 0.5
			ROOT = {  
				liege = { 
					any_owned_bloodline = { has_bloodline_flag = bloodline_less_factions }
				}
			}
		}

		modifier = {
			factor = 0.2
			pacifist = yes
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		
		modifier = {
			factor = 1.5
			opinion = { who = LIEGE value < -10 }
		}
		modifier = {
			factor = 2.0
			opinion = { who = LIEGE value < -50 }
		}
		modifier = {
			factor = 4.0
			opinion = { who = LIEGE value < -75 }
		}
		
		modifier = {
			factor = 0.01
			trait = content
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		modifier = {
			factor = 0.01
			trait = imbecile
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		modifier = {
			factor = 0.1
			trait = inbred
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		modifier = {
			factor = 0.1
			trait = craven
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		modifier = {
			factor = 0.2
			OR = {
				trait = slow
				trait = dull
			}
			NOT = {	
				has_opinion_modifier = {
					who = FROM
					modifier = opinion_coerced_into_joining_faction
				}
			}
		}
		modifier = {
			factor = 0.5
			trait = kind
		}
		modifier = {
			factor = 0.5
			trait = charitable
		}
		modifier = {
			factor = 0.5
			trait = honest
		}
		modifier = {
			factor = 0.75
			trait = humble
		}
		modifier = {
			factor = 0.75
			trait = just
		}
		modifier = {
			factor = 1.5
			trait = proud
		}
		modifier = {
			factor = 1.5
			trait = brave
		}
		modifier = {
			factor = 1.5
			trait = arbitrary
		}
		modifier = {
			factor = 2.0
			trait = envious
		}
		modifier = {
			factor = 2.0
			trait = greedy
		}
		modifier = {
			factor = 2.0
			trait = impaler
		}
		modifier = {
			factor = 2.0
			trait = deceitful
		}
		modifier = {
			factor = 4.0
			trait = ambitious
		}
	}
	
	success = {
		holder_scope = {
			FROM = {
				has_opinion_modifier = { who = PREV modifier = opinion_abdicated }
			}
		}
	}
	
	abort = {
	}
	
	abort_effect = {
	}
	
	effect = {
		FROM = {
			any_faction_backer = {
				faction = faction_force_election 
				reverse_opinion = {
					modifier = opinion_grateful
					who = FROM
					years = 5
				}
			}
		}
	}
}
