﻿independence_faction = {
	casus_belli = independence_faction_war
	
	short_effect_desc = independence_faction_short_effect_desc

	sort_order = 2

	is_shown = {
		NAND = {
			tgp_is_ceremonial_liege_trigger = yes
			tgp_is_ceremonial_regent_trigger = no
		}
	}

	discontent_progress = {
		base = 0

		common_discontent_progress_modifier = yes
	}

	power_threshold = {
		base = 80

		modifier = {
			add = 20
			faction_target = {
				has_perk = hard_rule_perk
			}
			desc = "FACTION_POWER_HARD_RULE"
		}

		dynamic_power_threshold_scripted_modifier = {
			FACTION_TYPE1 = claimant_faction
			FACTION_TYPE2 = liberty_faction
			FACTION_TYPE3 = populist_faction
		}
	}	
	
	demand = {
		save_scope_as = faction

		faction_leader = {
			save_scope_as = faction_leader
		}

		faction_target = {
			save_scope_as = faction_target
		}

		# Let the human players in the faction know that the demand will be sent
		every_faction_member = {
			limit = {
				is_ai = no
				this != scope:faction.faction_leader
			}
			trigger_event = faction_demand.0005
		}

		# Send the actual demand in 5 days
		faction_target = {
			trigger_event = {
				id = faction_demand.0001
				days = 5
			}
		}
	}

	ai_demand_chance = {
		base = 0

		# 40% base chance at minimum power (80%), increasing linearly
		compare_modifier = {
			value = faction_power
			multiplier = 0.5
		}

		# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
		compare_modifier = {
			trigger = {	faction_power > 110 }
			value = faction_power
			multiplier = 1
		}

		modifier = {
			add = 100
			faction_target = {
				is_at_war = yes # Independence Factions are opportunistic bastards!
			}
		}

		modifier = {
			add = -1000
			faction_target = {
				involved_activity ?= {
					has_activity_type = activity_coronation
					activity_host = prev
				}
			}
		}
	}

	ai_create_score = {
		base = -175 # Base reluctance value we must overcome to start an Independence Faction.

		############
		# BLOCKERS #
		common_create_faction_blockers = {
			FACTION_TARGET = scope:target
			FLAG = recent_independence_faction_war
		}

		independence_faction_create_blockers  = {
			FACTION_TARGET = scope:target
		}

		#######################
		# Standard AI Weights #

		common_faction_modifiers = {
			FACTION_TARGET = scope:target
			OPINION_MULTIPLIER = -0.4
			MAX_OPINION = 100
			POWER = 0
			THRESHOLD = 80
		}

		independence_faction_modifiers = {
			FACTION_TARGET = scope:target
		}

		#House Hostility from Armenian tradition
	    modifier = {
			desc = "FACTION_REASON_HOUSE_HOSTILITY"

			scope:target.house ?= {
				this != root.house
			}
			culture = { has_cultural_parameter = house_hostility_more_common }

			factor = 1.25
	    }

	    # EP3 - Grand Ambitions Story Cycle
	    modifier = {
	    	desc = "EP3_GRAND_AMBITIONS_STORY"
	    	any_owned_story = {
	    		type = grand_ambitions_story_cycle
	    		var:target_char ?= scope:target
	    	}
	    	factor = 1.5
	    }
		# TGP Dynastic Cycle in Instability phase
		modifier = {
			desc = "FACTION_REASON_DYNASTIC_CYCLE_INSTABILITY"
			add = 25
			scope:target = {
				top_participant_group:dynastic_cycle ?= {
					has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
				}
			}
		}

		modifier = {
			scope:target = { has_character_modifier = disbelieved_mandala_modifier }
			add = 15
			desc = is_disbelieved_mandala
		}
	}

	ai_join_score = {
		base = -150 # Base reluctance value we must overcome to join an Independence Faction.

		############
		# BLOCKERS #

		common_join_faction_blockers = {
			FACTION_TARGET = scope:faction.faction_target
		}

		#######################
		# Standard AI Weights #

		common_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			OPINION_MULTIPLIER = -0.4
			MAX_OPINION = 100
			POWER = scope:faction.faction_power
			THRESHOLD = scope:faction.faction_power_threshold
		}

		independence_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
		}

		# Small multiplier for my neighbors already in the Faction
		modifier = {
			desc = "FACTION_REASON_NEIGHBORS"

			scope:faction = {
				any_faction_member = { #suppress the description printout if factor is 1
					any_neighboring_realm_same_rank_owner = {
						this = root
					}
				}
			}

			factor = {
				value = 1
				scope:faction = {
			    	every_faction_member = {
			    		if = {
			    			limit = {
				    			any_neighboring_realm_same_rank_owner = {
				    				this = root
				    			}
							}
			    			add = 0.25
			    		}		
			    	}
		    	}
	    	}
	    }

	    modifier = {
			desc = "FACTION_REASON_POWERFUL_VASSAL"
	    	factor = 2
			is_powerful_vassal_of = scope:faction.faction_target
	    }

	    struggle_faction_modifiers = yes

	    #House Hostility from Armenian tradition
	    modifier = {
			desc = "FACTION_REASON_HOUSE_HOSTILITY"

			scope:faction.faction_target.house ?= {
				this != root.house
			}
			culture = { has_cultural_parameter = house_hostility_more_common }

			factor = 1.25
	    }
		#EP3 admin legitimacy event
		modifier = {
			desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
			add = 25
			scope:faction = {
				any_faction_member = {
					has_character_flag = low_legitimacy_admin_factions_flag
				}
			}
		}
		# TGP Dynastic Cycle in Instability phase
		modifier = {
			desc = "FACTION_REASON_DYNASTIC_CYCLE_INSTABILITY"
			add = 25
			scope:faction.faction_target = {
				top_participant_group:dynastic_cycle ?= {
					has_participant_group_parameter = dynastic_cycle_external_tributaries_vassals_increased_independence_desire
				}
			}
		}
	}

	is_character_valid = {
		common_character_validity_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
		has_valid_faction_members_trigger = yes
	}

	can_character_create_ui = {
		base_faction_trigger = { FACTION_TYPE = independence_faction }

		common_can_character_create_trigger = {
			FACTION_TARGET = scope:target
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes

		liege = {
			top_liege = this
		}
		
		trigger_if = {
			limit = {
				faith.religion = religion:islam_religion
				liege = { has_title = title:d_sunni }
				title:d_sunni = {
					has_variable = dar_al_islam
				}
			}
			liege = {
				NOT = {
					has_title = title:d_sunni
				}
			}
		}
		
		#PROPPA CONFEDERATION VASSALS
		trigger_if = {
			limit = {
				liege = {
					is_confederation_member = yes
				}
			}
			#Confederations block most faction types
			custom_tooltip = {
				text = confederaton_blocks_faction
				NOR = {
					government_has_flag = government_is_nomadic
					government_has_flag = government_is_tribal
				}
			}
		}
		# The emperor does not want to leave his empire
		tgp_is_ceremonial_liege_trigger = no
		# Ministers cannot join this faction
		custom_description = {
			text = target_is_a_minister_desc
			subject = this
			tgp_is_any_minister = no
		}
	}

	can_character_create = {
		common_can_character_create_trigger = {
			FACTION_TARGET = scope:target
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes
		
		liege = {
			top_liege = this
		}

		custom_description = {
			text = character_blocked_from_joining # will never be displayed but without it, errors are triggered
			OR = {
		        is_ai = no
		        culture != scope:target.culture
		        faith != scope:target.faith
		        NOT = {
		            scope:target = {
		                is_rightful_liege_of = root
		            }
		        }
		        any_sub_realm_county = {
		            percent <= 0.5
		            save_temporary_scope_as = current_county
		            scope:target.primary_title = {
		                any_in_de_jure_hierarchy = { this = scope:current_county }
		            }
		        }
				government_has_flag = government_is_nomadic
	    	}
		}
		
		trigger_if = {
			limit = {
				faith.religion = religion:islam_religion
				liege = { has_title = title:d_sunni }
				title:d_sunni = {
					has_variable = dar_al_islam
				}
			}
			liege = {
				NOT = {
					has_title = title:d_sunni
				}
			}
		}
		
		#PROPPA CONFEDERATION VASSALS
		trigger_if = {
			limit = {
				liege = {
					is_confederation_member = yes
				}
			}
			#Confederations block most faction types
			custom_tooltip = {
				text = confederaton_blocks_faction
				NOR = {
					government_has_flag = government_is_nomadic
					government_has_flag = government_is_tribal
				}
			}
		}
		# The emperor does not want to leave his empire
		tgp_is_ceremonial_liege_trigger = no
		# Ministers cannot join this faction
		custom_description = {
			text = target_is_a_minister_desc
			subject = this
			tgp_is_any_minister = no
		}
	}

	can_character_join = {
		common_can_character_join_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
		
		trigger_if = {
			limit = {
				faith.religion = religion:islam_religion
				liege = { has_title = title:d_sunni }
				title:d_sunni = {
					has_variable = dar_al_islam
				}
			}
			liege = {
				NOT = {
					has_title = title:d_sunni
				}
			}
		}
		
		#PROPPA CONFEDERATION VASSALS
		trigger_if = {
			limit = {
				liege = {
					is_confederation_member = yes
				}
			}
			#Confederations block most faction types
			custom_tooltip = {
				text = confederaton_blocks_faction
				NOR = {
					government_has_flag = government_is_nomadic
					government_has_flag = government_is_tribal
				}
			}
		}
		# The emperor does not want to leave his empire
		tgp_is_ceremonial_liege_trigger = no
		# Ministers cannot join this faction
		custom_description = {
			text = target_is_a_minister_desc
			subject = this
			tgp_is_any_minister = no
		}
	}

	can_character_become_leader = {
		can_become_leader_of_faction_trigger = yes
	}

	on_creation = {
		save_scope_as = faction
		tgp_bloc_members_join_faction_effect = yes
		if = {
			limit = {
				any_player = {
					has_government = landless_adventurer_government
					is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
					OR = {
						has_contact = scope:faction.faction_leader
						NOT = { has_contact = scope:faction.faction_target }
					}
					any_character_task_contract = {
						task_contract_type = laamp_join_faction_contract
						count <= 3
					}
					can_create_task_contract = {
						type_name = laamp_join_faction_contract
						employer = scope:faction.faction_leader
					}
					save_temporary_scope_as = player_laamp
				}
			}
			scope:player_laamp = {
				create_task_contract = {
					task_contract_type = laamp_join_faction_contract
					task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
					location = scope:faction.faction_leader.primary_title.title_province
					task_contract_employer = scope:faction.faction_leader
					target = scope:faction.faction_target
				}
			}
		}
	}

	county_allow_join = no
	county_allow_create = no
}

liberty_faction = {
	casus_belli = liberty_faction_war

	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					faction_target = { government_has_flag = government_is_administrative }
				}
				desc = liberty_faction_desc_admin
			}
			triggered_desc = {
				trigger = {
					faction_target = { government_has_flag = government_is_tribal }
				}
				desc = liberty_faction_desc_tribal
			}
			triggered_desc = {
				trigger = {
					faction_target = { government_has_flag = government_is_feudal }
				}
				desc = liberty_faction_desc_feudal
			}
			desc = liberty_faction_desc
		}
	}

	short_effect_desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					faction_target = { government_has_flag = government_is_administrative }
				}
				desc = liberty_faction_short_effect_desc_admin
			}
			triggered_desc = {
				trigger = {
					faction_target = { government_has_flag = government_is_tribal }
				}
				desc = liberty_faction_short_effect_desc_tribal
			}
			desc = liberty_faction_short_effect_desc
		}
	}

	sort_order = 4

	is_shown = {
		NAND = {
			tgp_is_ceremonial_liege_trigger = yes
			tgp_is_ceremonial_regent_trigger = no
		}
	}

	discontent_progress = {
		base = 0

		common_discontent_progress_modifier = yes
	}

	power_threshold = {
		base = 80

		modifier = {
			add = 20
			faction_target = {
				has_perk = hard_rule_perk
			}
			desc = "FACTION_POWER_HARD_RULE"
		}

		#Lower the threshold depending on the state of other factions
		dynamic_power_threshold_scripted_modifier = {
			FACTION_TYPE1 = claimant_faction
			FACTION_TYPE2 = independence_faction
			FACTION_TYPE3 = populist_faction
		}
	}

	demand = {
		save_scope_as = faction

		faction_leader = {
			save_scope_as = faction_leader
		}

		faction_target = {
			save_scope_as = faction_target
		}

		# Let the human players in the faction know that the demand will be sent
		every_faction_member = {
			limit = {
				is_ai = no
				this != scope:faction.faction_leader
			}
			trigger_event = faction_demand.0105
		}

		# Send the actual demand in 5 days
		faction_target = {
			trigger_event = {
				id = faction_demand.0101
				days = 5
			}
		}
	}

	ai_demand_chance = {
		base = 0

		# 30% base chance at minimum power (80%), increasing linearly
		compare_modifier = {
			value = faction_power
			multiplier = 0.375
		}

		# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
		compare_modifier = {
			trigger = {	faction_power > 110 }
			value = faction_power
			multiplier = 0.75
		}

		# Less likely if already in a war with an external ruler - the Liberty Faction is pretty sporting
		modifier = {
			add = -75
			faction_target = {
				any_war_enemy = {
					NOT = {
						target_is_liege_or_above = root.faction_target
					}
				}
			}
		}

		modifier = {
			add = -1000
			faction_target = {
				involved_activity ?= {
					has_activity_type = activity_coronation
					activity_host = prev
				}
			}
		}
	}

	on_war_start = {
		every_faction_member = {
			limit = {
				has_variable = gathered_support_for_faction
				var:gathered_support_for_faction = root
			}
			spawn_army = {
				name = gathered_support_for_faction_army
				levies = {
					value = this.massive_influence_value
					multiply = 3
				}
				men_at_arms = {
					type = light_footmen
					stacks = 2
				}
				location = this.location
				war = root.faction_war
				inheritable = yes
			}
		}
	}

	is_character_valid = {
		common_character_validity_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
		has_valid_faction_members_trigger = yes
	}

	can_character_create_ui = {
		base_faction_trigger = { FACTION_TYPE = liberty_faction }

		common_can_character_create_trigger = {
			FACTION_TARGET = scope:target
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes

		trigger_if = {
			limit = { scope:target = { realm_law_use_imperial_bureaucracy = yes } }
			custom_description = {
				text = has_lowest_imperial_bureaucracy
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = imperial_bureaucracy_1
						has_realm_law = imperial_bureaucracy_2
						has_realm_law = imperial_bureaucracy_3
					}
				}
			}
		}
		trigger_else_if = {
			limit = { scope:target = { government_has_flag = government_is_tribal } }
			custom_description = {
				text = has_lowest_tribal_authority
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = tribal_authority_1
						has_realm_law = tribal_authority_2
						has_realm_law = tribal_authority_3
					}
				}
			}
		}
		trigger_else_if = {
			limit = { scope:target = { realm_law_use_celestial_bureaucracy = yes } }
			custom_description = {
				text = has_lowest_celestial_bureaucracy
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = celestial_bureaucracy_1
						has_realm_law = celestial_bureaucracy_2
						has_realm_law = celestial_bureaucracy_3
					}
				}
			}
		}
		trigger_else_if = {
			limit = { scope:target = { realm_law_use_meritocratic_bureaucracy = yes } }
			custom_description = {
				text = has_lowest_meritocratic_bureaucracy
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = meritocratic_bureaucracy_1
						has_realm_law = meritocratic_bureaucracy_2
						has_realm_law = meritocratic_bureaucracy_3
					}
				}
			}
		}
		trigger_else_if = {
			limit = { scope:target = { realm_law_use_japanese_bureaucracy = yes } }
			custom_description = {
				text = has_lowest_japanese_bureaucracy
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = japanese_bureaucracy_1
						has_realm_law = japanese_bureaucracy_2
						has_realm_law = japanese_bureaucracy_3
					}
				}
			}
		}
		trigger_else = {
			custom_description = {
				text = has_lowest_crown_authority
				subject = scope:target
				scope:target = {
					OR = {
						has_realm_law = crown_authority_1
						has_realm_law = crown_authority_2
						has_realm_law = crown_authority_3
					}
				}
			}
		}
		
		trigger_if = {
			limit = {
				scope:target = { government_has_flag = government_is_administrative }
			}
			scope:target = {
				top_liege = this
			}
		}
	}

	can_character_create = {
		common_can_character_create_trigger = {
			FACTION_TARGET = scope:target
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes

		has_valid_realm_laws_for_liberty_faction_trigger = {
			TARGET = scope:target
		}
		
		trigger_if = {
			limit = {
				scope:target = { government_allows = administrative }
			}
			scope:target = {
				top_liege = this
			}
		}
	}

	can_character_join = {
		common_can_character_join_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
		OR = {
			is_ai = no
			has_valid_realm_laws_for_liberty_faction_trigger = {
				TARGET = scope:faction.faction_target
			}
		}
		
		trigger_if = {
			limit = {
				scope:faction.faction_target = { government_allows = administrative }
			}
			scope:faction.faction_target = {
				top_liege = this
			}
		}
	}

	can_character_become_leader = {
		can_become_leader_of_faction_trigger = yes
	}

	ai_create_score = {
		base = 0 # Join Weight is set primarily based on what Crown Laws a realm has.

		############
		# BLOCKERS #
		############
		common_create_faction_blockers = {
			FACTION_TARGET = scope:target
			FLAG = recent_liberty_faction_war
		}

		#######################
		# Standard AI Weights #
		#
		# Modifiers for Liberty Factions are inherently small.
		# This is because Liberty is the 'Default Faction' that vassals are join if they don't want/can't join any other faction.
		# 'Base Join Weight' depends on the current Crown Authority level.
		common_faction_modifiers = {
			FACTION_TARGET = scope:target
			OPINION_MULTIPLIER = -1
			MAX_OPINION = 0
			POWER = 0
			THRESHOLD = 80
		}

		liberty_faction_modifiers = {
			FACTION_TARGET = scope:target
		}
		#House Hostility from Armenian tradition
	    modifier = {
			desc = "FACTION_REASON_HOUSE_HOSTILITY"

			scope:target.house ?= {
				this != root.house
			}
			culture = { has_cultural_parameter = house_hostility_more_common }

			factor = 1.25
	    }		
	}

	ai_join_score = {
		base = 0 # Join Weight is set primarily based on what Crown Laws a realm has.

		############
		# BLOCKERS #
		common_join_faction_blockers = {
			FACTION_TARGET = scope:faction.faction_target
		}
		
		#######################
		# Standard AI Weights #
		#AI
		# Modifiers for Liberty Factions are inherently small.
		# This is because Liberty is the 'Default Faction' that vassals are join if they don't want/can't join any other faction.
		common_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			OPINION_MULTIPLIER = -1
			MAX_OPINION = 0
			POWER = scope:faction.faction_power
			THRESHOLD = scope:faction.faction_power_threshold
		}

		liberty_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
		}

		struggle_faction_modifiers = yes

		#House Hostility from Armenian tradition
	    modifier = {
			desc = "FACTION_REASON_HOUSE_HOSTILITY"

			scope:faction.faction_target.house ?= {
				this != root.house
			}
			culture = { has_cultural_parameter = house_hostility_more_common }

			factor = 1.25
	    }
		#EP3 admin legitimacy event
		modifier = {
			desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
			add = 25
			scope:faction = {
				any_faction_member = {
					has_character_flag = low_legitimacy_admin_factions_flag
				}
			}
		}
	}

	on_creation = {
		save_scope_as = faction
		tgp_bloc_members_join_faction_effect = yes
		if = {
			limit = {
				any_player = {
					has_government = landless_adventurer_government
					is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
					OR = {
						has_contact = scope:faction.faction_leader
						NOT = { has_contact = scope:faction.faction_target }
					}
					any_character_task_contract = {
						task_contract_type = laamp_join_faction_contract
						count <= 3
					}
					can_create_task_contract = {
						type_name = laamp_join_faction_contract
						employer = scope:faction.faction_leader
					}
					save_temporary_scope_as = player_laamp
				}
			}
			scope:player_laamp = {
				create_task_contract = {
					task_contract_type = laamp_join_faction_contract
					task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
					location = scope:faction.faction_leader.primary_title.title_province
					task_contract_employer = scope:faction.faction_leader
					target = scope:faction.faction_target
				}
			}
		}
	}

	county_allow_join = no
	county_allow_create = no
}

claimant_faction = {
	casus_belli = claimant_faction_war

	short_effect_desc = claimant_faction_short_effect_desc

	sort_order = 1

	show_special_title = yes
	name = FACTION_CLAMAINT_DYNAMIC_NAME

	character_interaction = create_claimant_faction_against_interaction

	claimant = yes

	is_shown = {
		NAND = {
			tgp_is_ceremonial_liege_trigger = yes
			tgp_is_ceremonial_regent_trigger = no
		}
	}

	discontent_progress = {
		base = 0

		common_discontent_progress_modifier = yes
	}

	power_threshold = {
		base = 80

		modifier = {
			add = 20 
			faction_target = {
				has_perk = hard_rule_perk
			}
			desc = "FACTION_POWER_HARD_RULE"
		} 

		#Lower the threshold depending on the state of other factions
		dynamic_power_threshold_scripted_modifier = {
			FACTION_TYPE1 = liberty_faction
			FACTION_TYPE2 = independence_faction
			FACTION_TYPE3 = populist_faction
		}
	}

	is_valid = { # If the FACTION itself is valid
		# see also invalidate_claimant_factions_on_death_effect for what happens when the claimant dies
		
		trigger_if = {
			limit = {
				OR = {
					exists = special_character
					exists = faction_war
				}
			}
			special_title.holder ?= faction_target
			special_title.holder ?= { tgp_is_ceremonial_regent_trigger = no }
			OR = {
				special_character ?= {
					is_alive = yes
					#has_claim_on = root.special_title
					NOR = { 
						has_trait = incapable
						this = root.faction_target
					}
					# Under Byzantine law, a ruler must be unblemished
					trigger_if = {
						limit = {
							root.special_title.holder.culture ?= { has_cultural_parameter = physical_disfigurement_blocks_inheritance }
						}
						custom_description = {
							text = "byzantine_claimant_is_disfigured"
							object = this
							valid_for_byz_succession_trigger = yes
						}
					}
					trigger_if = { #If they're imprisoned by the faction target they can only be so for five years before invalidating
						limit = {
							is_imprisoned_by = root.faction_target
						}
						time_in_prison_type = {
							years < 5
						}
					}
					# Ministers cannot be claimants unless we are targeting h_china
					trigger_if = {
						limit = {
							OR = {
								has_title = title:e_minister_chancellor
								has_title = title:e_minister_censor
								has_title = title:e_minister_grand_marshal
								has_title = title:e_minister_of_personnel
								has_title = title:e_minister_of_revenue
								has_title = title:e_minister_of_rites
								has_title = title:e_minister_of_war
								has_title = title:e_minister_of_justice
								has_title = title:e_minister_of_works
							}
						}
						custom_description = {
							text = target_is_a_minister_desc
							subject = this
							root.special_title = { this = title:h_china }
						}
					}
				}
				exists = faction_war
			}
		}
	}

	demand = { # The effect of pressing demand
		save_scope_as = faction

		faction_leader = {
			save_scope_as = faction_leader
		}

		faction_target = {
			save_scope_as = faction_target
		}

		special_character = {
			save_scope_as = faction_claimant
		}

		special_title = {
			save_scope_as = faction_targeted_title
		}

		# Let the human players in the faction know that the demand will be sent
		every_faction_member = {
			limit = {
				is_ai = no
				this != scope:faction.faction_leader
			}
			trigger_event = faction_demand.2005
		}

		# Send the actual demand in 5 days
		faction_target = {
			trigger_event = {
				id = faction_demand.2001
				days = 5
			}
		}
	}

	ai_demand_chance = {
		base = 0

		#Won't send ultimatum if the claimant is imprisoned by the faction-target!
		modifier = {
			add = -500
			faction_target = {
				any_prisoner = {
					this = root.special_character
				}
			}
		}

		# Won't start a war is the Realm is fighting against a Dissolution faction or Independent factions: you want to get the best realm possible. Better wait a bit longer
		modifier = {
			add = -1000
			faction_target = {
				any_character_war = {
					OR = {
						using_cb = independence_faction_war
						using_cb = independence_war
						using_cb = nation_fracturing_faction_war
					}
				}
			}
		}

		# 40% base chance at minimum power (80%), increasing linearly
		compare_modifier = {
			value = faction_power
			multiplier = 0.5
		}

		# Once the faction has a good chance to win (10% stronger than liege) demand chance increases much more rapidly.
		compare_modifier = {
			trigger = {	faction_power > 110 }
			value = faction_power
			multiplier = 1
		}

		# Less likely if already in a war with an external ruler
		modifier = {
			add = -50
			faction_target = {
				any_war_enemy = {
					NOT = {
						target_is_liege_or_above = root.faction_target
					}
				}
			}
		}

		modifier = {
			add = -1000
			faction_target = {
				involved_activity ?= {
					has_activity_type = activity_coronation
					activity_host = prev
				}
			}
		}
	}

	on_war_start = {
		every_faction_member = {
			limit = {
				has_variable = gathered_support_for_faction
				var:gathered_support_for_faction = root
			}
			spawn_army = {
				name = gathered_support_for_faction_army
				levies = {
					value = this.massive_influence_value
					multiply = 3
				}
				men_at_arms = {
					type = light_footmen
					stacks = 2
				}
				location = this.location
				war = root.faction_war
				inheritable = yes
			}
		}
	}

	is_character_valid = { # Is the character valid to stay in the faction? This is also checked when creating it...
		common_character_validity_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
		
		trigger_if = {
			limit = {
				government_allows = administrative
			}
			scope:faction.faction_target ?= {
				OR = {
					top_liege ?= this
					NOT = { government_allows = administrative }
				}
			}
		}
		
		# TGP - Use Coup against Kampaku instead
		trigger_if = {
			limit = {
				scope:faction.faction_target ?= top_liege
			}
			scope:faction.faction_target ?= {
				tgp_is_ceremonial_regent_trigger = no
			}
		}
		has_valid_faction_members_trigger = yes
	}

	can_character_create_ui = {
		is_character_interaction_valid = {
			recipient = scope:target
			interaction = create_claimant_faction_against_interaction
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes
		# TGP - Use Coup against Kampaku instead
		custom_tooltip = {
			text = cannot_create_claimant_faction_against_kampaku_tooltip
			scope:target = {
				# TGP - Use Coup against Kampaku instead
				tgp_is_ceremonial_regent_trigger = no
			}
		}
	}

	can_character_create = { # If a character is allowed to create the faction. The 'is_character_valid' block is also checked in conjunction with this when creating a faction.

		common_can_character_create_trigger = {
			FACTION_TARGET = scope:target
		}
		# Bloc Cohesion requirement
		japan_faction_cohesion_trigger = yes

		# TGP - Use Coup against Kampaku instead
		trigger_if = {
			limit = {
				exists = joined_faction
				joined_faction.special_title.holder ?= {
					this = scope:target
				}
			}
			joined_faction.special_title.holder ?= {
				tgp_is_ceremonial_regent_trigger = no
			}
		}
		# TGP - Use Coup against Kampaku instead
		trigger_else_if = {
			limit = {
				has_variable = claiming_title
				var:claiming_title.holder ?= {
					this = scope:target
				}
			}
			var:claiming_title.holder ?= {
				tgp_is_ceremonial_regent_trigger = no
			}
		}
		trigger_else = {
			always = no
		}
	}

	can_character_join = { # Can a character join an existing faction?
		common_can_character_join_trigger = {
			FACTION_TARGET = scope:faction.faction_target
		}
	}

	can_character_become_leader = {
		can_become_leader_of_faction_trigger = yes
	}

	ai_create_score = { # How likely is an AI to create a faction?
		base = -25

		####
		# BLOCKERS
		####
		common_create_faction_blockers = {
			FACTION_TARGET = scope:target
			FLAG = none
		}

		claimant_faction_blockers = {
			FACTION_TARGET = scope:target
			FACTION_CLAIMANT = scope:claimant
		}

		####
		# AI modifiers
		####
		common_faction_modifiers = {
			FACTION_TARGET = scope:target
			OPINION_MULTIPLIER = -1.5
			MAX_OPINION = 150
			POWER = 0
			THRESHOLD = 80
		}

		claimant_faction_modifiers = {
			FACTION_TARGET = scope:target
			FACTION_CLAIMANT = scope:claimant
			FACTION_TITLE = scope:title
		}

		admin_faction_modifiers = {
			FACTION_TARGET = scope:target
			FACTION_TYPE = claimant_faction
		}

		admin_claimant_faction_modifiers = {
			FACTION_TARGET = scope:target
			FACTION_CLAIMANT = scope:claimant
		}
	}

	ai_join_score = { # How likely is an AI to join an existing faction?
		base = -25

		common_join_faction_blockers = {
			FACTION_TARGET = scope:faction.faction_target
		}

		claimant_faction_blockers = {
			FACTION_TARGET = scope:faction.faction_target 
			FACTION_CLAIMANT = scope:faction.special_character 
		}

		common_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			OPINION_MULTIPLIER = -1
			MAX_OPINION = 100
			POWER = scope:faction.faction_power
			THRESHOLD = scope:faction.faction_power_threshold
		}

		claimant_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			FACTION_CLAIMANT = scope:faction.special_character
			FACTION_TITLE = scope:faction.special_title
		}

		admin_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			FACTION_TYPE = claimant_faction
		}		

		admin_claimant_faction_modifiers = {
			FACTION_TARGET = scope:faction.faction_target
			FACTION_CLAIMANT = scope:faction.special_character
		}

		# Faction 'Stacking' Factors, attempts to cluster AI rulers into several powerful factions instead of many weak ones.
		join_faction_stacking_modifiers = yes
		
		modifier = { # CE1 Divine Mandate perk
			desc = "FACTION_REASON_LEGITIMACY_LEGACY_4"
			liege.dynasty = { has_dynasty_perk = ce1_legitimacy_legacy_4 }
			add = -10
		}
		
		struggle_faction_modifiers = yes
		
		#EP3 admin legitimacy event
		modifier = {
			desc = "FACTION_REASON_LOW_LEGITIMACY_CHALLENGER"
			add = 25
			scope:faction = {
				any_faction_member = {
					has_character_flag = low_legitimacy_admin_factions_flag
				}
			}
		}

		#EP3 King of England disgruntled vassals/life threatened modifiers
		modifier = {
			desc = "FACTION_REASON_CLAIMANT_DISGRUNTLED_VASSALS"
			add = 25
			liege = {
				has_character_modifier = ep3_disgruntled_vassals_modifier
			}
		}
		modifier = {
			desc = "FACTION_REASON_CLAIMANT_DISGRUNTLED_VASSALS"
			add = 25
			liege = {
				has_character_modifier = ep3_life_threatened_modifier
			}
		}
	}

	is_county_valid = {
		scope:faction.faction_target = holder
	}

	can_county_join = {
		# Counties can only join if the De Jure belong to the title being claimed.
		exists = scope:faction.special_title
		target_is_de_jure_liege_or_above = scope:faction.special_title
	}

	county_join_score =  {
		base = -80 # Needs to be less than the weight set in 00_populist_faction.txt, or counties will never join a claimant faction over a populist faction.

		# Up to +3 join score per negative opinion (+80 at -27 opinion) if different culture. 
		compare_modifier = {
			desc = "FACTION_REASON_CLAIMANT_COUNTY_SHARED_CULTURE"
			trigger = {
				scope:faction.faction_target.culture != this.title_province.culture
				scope:faction.special_character.culture = this.title_province.culture 
			}
			value = county_opinion
			multiplier = -2.0
		}
		compare_modifier = {
			desc = "FACTION_REASON_CLAIMANT_COUNTY_SHARED_HERITAGE"
			trigger = {
				NOT = { this.title_province.culture = { has_same_culture_heritage = scope:faction.faction_target.culture } }
				this.title_province.culture = { has_same_culture_heritage = scope:faction.special_character.culture }
			}
			value = county_opinion
			multiplier = -2.0
		}

		# If we have better relations with the claimant's faith than our current liege's, gain up to +5 join score per negative opinion (at Righteous) down to +1 join score per negative opinion (at Hostile).
		compare_modifier = {
			desc = "FACTION_REASON_LIKE_CLAIMANT_FAITH"
			trigger = {
				faith = {
					faith_hostility_level_comparison = {
						scope:faction.faction_target.faith > scope:faction.special_character.faith
					}
				}
			}
			value = county_opinion
			multiplier = {
				value = 0.0
				if = {
					limit = {
						faith = {
							faith_hostility_level = {
								target = scope:faction.special_character.faith
								value = faith_hostile_level
							}
						}
					}
					value = -1.0 # Hostile
				}
				else_if = {
					limit = {
						faith = {
							faith_hostility_level = {
								target = scope:faction.special_character.faith
								value = faith_astray_level
							}
						}
					}
					value = -3.0 # Astray
				}
				else = {
					value = -5.0 # Righteous
				}
			}
		}

		legalism_virtue_and_sin_modifier = {
			TARGET = scope:faction.faction_target
			SCORE_PER_TRAIT = 50 # Worth ~12 opinion per virtue.
		}

		# Greatly reduced chance for a character's capital county to form a faction against them (extra -25 opinion needed).
		modifier = {
			desc = "FACTION_REASON_CAPITAL_COUNTY"
			add = -200
			this.title_province = scope:faction.faction_target.capital_province
		}
		
		# More likely to support adult claimants when a child is on the throne.
		modifier = {
			desc = "FACTION_REASON_ADULT_CLAIMANT_CHILD_RULER"
			add = 10
			exists = scope:faction.faction_target
			exists = scope:faction.special_character
			scope:faction.faction_target = { is_adult = no }
			scope:faction.special_character = { is_adult = yes }
		}

		# Peasants perfer magnanimous rulers over harsh or cruel ones.
		compare_modifier = {
			desc = "FACTION_REASON_CLAIMANT_KINDNESS"
			factor = {
				# Gets a value between 0 (max greedy/dishonorable/vengeful/cruel) and 800 (max honorable/compassionate/generous/forgiving).
				value = 400
				add = scope:faction.special_character.ai_honor
				add = scope:faction.special_character.ai_compassion
				subtract = scope:faction.special_character.ai_greed
				subtract = scope:faction.special_character.ai_vengefulness

				# Converts the personality score into a percentage between 0% (will never support) and 100% (really wants to support)
				divide = 800 
			}

			# How big the factor is for supporting this claimant over other factions at max support. 
			multiplier = 2
		}
	}

	on_creation = {
		save_scope_as = faction
		tgp_bloc_members_join_faction_effect = yes
		if = {
			limit = {
				any_player = {
					has_government = landless_adventurer_government
					is_within_diplo_range = { CHARACTER = scope:faction.faction_target }
					OR = {
						has_contact = scope:faction.faction_leader
						has_contact = scope:faction.special_character
						NOT = { has_contact = scope:faction.faction_target }
					}
					any_character_task_contract = {
						task_contract_type = laamp_join_faction_contract
						count <= 3
					}
					can_create_task_contract = {
						type_name = laamp_join_faction_contract
						employer = scope:faction.faction_leader
					}
					save_temporary_scope_as = player_laamp
				}
			}
			scope:player_laamp = {
				create_task_contract = {
					task_contract_type = laamp_join_faction_contract
					task_contract_tier = scope:faction.faction_leader.task_contract_tier_value
					location = scope:faction.faction_leader.primary_title.title_province
					task_contract_employer = scope:faction.faction_leader
					target = scope:faction.faction_target
				}
			}
		}
	}

	county_allow_join = yes
	county_allow_create = no
	county_power = county_levies_to_raise

	character_allow_create = yes

	character_allow_join = yes

	multiple_targeting = yes

	special_character_title = "FACTIONS_WINDOW_CLAIMANT"

	ignore_soft_block = yes
}
