﻿# Triggers as a result of the Independence Faction demand
# Note: Wars for Independence started by individual characters is a separate CB
independence_faction_war = {
	group = civil_war
	ai_only_against_liege = yes
	allowed_for_character = {
		scope:attacker = {
			is_leading_faction_type = independence_faction
		}
	}

	allowed_against_character = {
		scope:attacker = {
			liege = scope:defender
		}
	}

	target_de_jure_regions_above = yes

	valid_to_start = {

	}

	on_declaration = {
		#on_declared_war = yes
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { # Desc for only one player attacker
					scope:attacker = {
						is_local_player = yes
						joined_faction = {
							any_faction_member = {
								count = 1
							}
						}
					}
				}
				desc = independence_war_victory_desc_local_player_attacker_alone
			}
			triggered_desc = { # Desc for only one attacker, player defender
				trigger = {
					scope:defender = {
						is_local_player = yes
					}
					scope:attacker = {
						joined_faction = {
							any_faction_member = {
								count = 1
							}
						}
					}
				}
				desc = independence_war_victory_desc_local_player_defender_attacker_alone
			}
			triggered_desc = { # Desc for player attacker
				trigger = {
					scope:attacker.joined_faction = {
						any_faction_member = { is_local_player = yes }
					}
				}
				desc = independence_war_victory_desc_local_player_attacker
			}
			triggered_desc = { # Desc for player defender
				trigger = { scope:defender = { is_local_player = yes } }
				desc = independence_war_victory_desc_local_player_defender
			}
			desc = independence_war_victory_desc # Desc for a third party involved
		}
	}

	on_victory = {
		create_title_and_vassal_change = change
		scope:change = {
			set_title_and_vassal_change_type = independency
		}

		scope:attacker.joined_faction = {
			every_faction_member = {
				change_liege_or_become_independent = {
					CHANGE = scope:change
					VASSAL = this
				}

				hidden_effect = {
					set_variable = {
						name = independence_war_former_liege
						value = scope:defender
					}
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				}
			}
		}

		scope:attacker = {
			add_prestige = medium_prestige_value
		}

		scope:defender = {
			add_prestige = {
				value = medium_prestige_value
				multiply = -1
			}
			if = {
				limit = { has_realm_law = crown_authority_1 }
				add_realm_law = crown_authority_0
			}
			if = {
				limit = { has_realm_law = crown_authority_2 }
				add_realm_law = crown_authority_1
			}
			if = {
				limit = { has_realm_law = crown_authority_3 }
				add_realm_law = crown_authority_2
			}
		}

		resolve_title_and_vassal_change = scope:change
	
	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = independence_war_white_peace_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker.joined_faction = {
						any_faction_member = { is_local_player = yes }
					}
				}
				desc = independence_war_white_peace_attacker_desc
			}
			desc = independence_war_white_peace_desc
		}
		desc = independence_war_white_peace_end_desc
	}

	on_white_peace = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = white_peace
				}
				joined_faction = {
					add_faction_discontent = -200
				}
			}
		}

		scope:defender = {
			add_character_flag = {
				flag = recent_independence_faction_war
				years = independence_war_white_peace_cooldown
			}
			add_prestige = minor_prestige_value
		}

		on_white_peace_faction_revolt_war = yes
	}

	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = independence_defeat_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker.joined_faction = {
						any_faction_member = { is_local_player = yes }
					}
				}
				desc = independence_defeat_attacker_desc
			}
			desc = independence_war_defeat_desc
		}
		desc = independence_defeat_end_desc
	}

	on_defeat = {
		scope:defender = {
			add_character_flag = {
				flag = recent_independence_faction_war
				years = independence_war_defeat_cooldown
			}
			add_dread = medium_dread_gain
			# Prestige for Defender
			add_prestige = medium_prestige_value
			add_achievement_flag = { FLAG = achievement_know_your_place_flag }
		}

		on_lost_faction_revolt_war = yes
	}

	on_invalidated_desc = msg_invalidate_war_title

	check_defender_inheritance_validity = no

	on_primary_attacker_death = inherit_faction
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "INDEPENDENCE_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

# Triggers as a result of the Liberty Faction demand
liberty_faction_war = {
	group = civil_war
	ai_only_against_liege = yes
	allowed_for_character = {
		scope:attacker = {
			is_leading_faction_type = liberty_faction
		}
	}

	allowed_against_character = {
		scope:attacker = {
			liege = scope:defender
		}
	}

	target_de_jure_regions_above = yes

	valid_to_start = {
	}

	on_declaration = {
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = liberty_war_victory_defender_desc
			}
			desc = liberty_war_victory_desc
		}
		desc = liberty_war_victory_end_desc
	}

	on_victory = {
		scope:defender = {
			if = {
				limit = { has_realm_law = crown_authority_1 }
				add_realm_law = crown_authority_0
			}
			if = {
				limit = { has_realm_law = crown_authority_2 }
				add_realm_law = crown_authority_1
			}
			if = {
				limit = { has_realm_law = crown_authority_3 }
				add_realm_law = crown_authority_2
			}
			add_prestige = -500

			every_war_enemy = {
				if = {
					limit = {
						can_add_hook = {
							type = favor_hook
							target = prev
						}
					}
					add_hook = {
						target = prev
						type = favor_hook
					}
				}
			}

			add_character_flag = {
				flag = recent_liberty_faction_war
				years = liberty_war_victory_cooldown
			}
		}

		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = victory
				}
				joined_faction = {
					add_faction_discontent = -200
					destroy_faction = yes
				}
			}
		}

	
	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = liberty_war_white_peace_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker.joined_faction = {
						any_faction_member = { is_local_player = yes }
					}
				}
				desc = liberty_war_white_peace_attacker_desc
			}
			desc = liberty_war_white_peace_desc
		}
		desc = liberty_war_white_peace_end_desc
	}

	on_white_peace = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = white_peace
				}
				joined_faction = {
					add_faction_discontent = -200
				}
			}
		}
		scope:defender = {
			add_character_flag = {
				flag = recent_liberty_faction_war
				years = liberty_war_white_peace_cooldown
			}
		}
		on_white_peace_faction_revolt_war = yes
	}

	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = liberty_war_defeat_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker.joined_faction = {
						any_faction_member = { is_local_player = yes }
					}
				}
				desc = liberty_war_defeat_attacker_desc
			}
			desc = liberty_war_defeat_desc
		}
		desc = liberty_war_defeat_end_desc
	}

	on_defeat = {
		scope:defender = {
			add_character_flag = {
				flag = recent_liberty_faction_war
				years = liberty_war_defeat_cooldown
			}
			add_dread = medium_dread_gain
			add_achievement_flag = { FLAG = achievement_know_your_place_flag }
		}
		on_lost_faction_revolt_war = yes
	}

	on_invalidated_desc = msg_invalidate_war_title

	check_attacker_inheritance_validity = no

	on_primary_attacker_death = inherit_faction
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "LIBERTY_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

populist_war = {
	group = civil_war
	ai_only_against_liege = yes
	target_titles = claim
	allowed_for_character =	{
		scope:attacker = {
			is_leading_faction_type = populist_faction
		}
	}

	allowed_against_character = {
		any_in_list = {
			list = target_titles
			OR = {
				NOT = { exists = holder }
				holder = scope:defender
			}
		}
	}

	target_de_jure_regions_above = yes
	target_top_liege_if_outside_realm = no

	valid_to_start = {
	}

	should_invalidate = {
		NOT = {
			scope:attacker = {
				has_variable = rebel_leader_peasants
				exists = joined_faction
				joined_faction = var:rebel_leader_peasants
			}
		}
	}

	on_declaration = {
		#on_declared_war = yes
	}

	on_victory_desc = {
		desc = populist_war_victory_desc
	}

	on_victory = {
		scope:defender = {
			add_prestige_level = -1
		}
		random_in_list = {
			list = target_titles
			save_scope_as = target_title
		}

		scope:attacker = {
			remove_variable = rebel_leader_peasants
			joined_faction = {
				every_faction_member = {
					# Everyone involved gets a 5-year truce.
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				}
			}
		}

		successful_popular_revolt_outcome_effect = {
			FACTION_LEADER = scope:attacker
			TARGET_TITLE = scope:target_title
			SOURCE_GOVERNMENT = scope:defender
		}

	}

	on_white_peace_desc = {
		desc = populist_war_white_peace_desc
	}

	on_white_peace = {
		on_white_peace_faction_revolt_war = yes
		hidden_effect = {
			scope:attacker = {
				# Destroy the populist faction
				if = {
					limit = {
						exists = joined_faction
					}
					joined_faction = {
						destroy_faction = yes
					}
				}

				# Destroy or clean-up flags on faction leader
				if = {
					limit = {
						has_character_flag = peasant_faction_random_peasant
					}
					death = {
						death_reason = death_vanished
					}
				}
				else = {
					remove_variable = rebel_leader_peasants
					add_truce_both_ways = {
						character = scope:defender
						days = 1825
						war = root.war
						result = victory
					}
				}
			}
		}
	}


	on_defeat_desc = {
		desc = populist_war_defeat_desc
	}

	on_defeat = {
		scope:attacker = {
			joined_faction = {
				every_faction_county_member = {
					custom = peasant_faction_every_county
					add_county_modifier = {
						modifier = county_increased_opinion_modifier
						years = 10
					}
				}
			}
			add_character_flag = peasant_revolt_do_not_kill
			remove_variable = rebel_leader_peasants
		}
		on_lost_faction_revolt_war = yes # Imprison all faction members, including the faction leader.
		hidden_effect = {
			scope:attacker = {
				if = {
					limit = { exists = joined_faction }
					joined_faction = {
						destroy_faction = yes # Destroy the faction if it wasn't already destroyed automatically.
					}
				}
			}
		}
		scope:defender = {
			add_dread = medium_dread_gain
			add_achievement_flag = { FLAG = achievement_know_your_place_flag }
		}
	}

	on_invalidated_desc = msg_invalidate_war_title

	on_primary_attacker_death = invalidate
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "POPULIST_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

# Triggers as a result of a Claimant Faction demand being refused
claimant_faction_war = {
	group = civil_war
	ai_only_against_liege = no
	target_titles = claim
	allowed_for_character =	{
		scope:attacker = {
			is_leading_faction_type = claimant_faction
		}
	}

	allowed_against_character = {
		exists = scope:attacker.joined_faction
		scope:attacker.joined_faction = {
			special_title.holder = scope:defender
		}
	}

	target_de_jure_regions_above = yes

	valid_to_start = {}

	should_invalidate = {
		OR = {
			NOT = { exists = scope:attacker.joined_faction }
			NOT = {
				scope:attacker.joined_faction = {
					exists = special_character
					special_character = { is_alive = yes }
					has_special_title = yes
				}
			}
			scope:attacker.joined_faction.special_character = scope:attacker.joined_faction.special_title.holder
		}
	}

	on_invalidated_desc = msg_invalidate_war_title

	on_declaration = {
		#on_declared_war = yes
	}

	on_victory_desc = {
		desc = claimant_faction_war_victory_desc
	}

	on_victory = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = victory
				}
			}
		}

		on_claimant_faction_war_win_common = {
			TARGET_TITLES = target_titles
			ATTACKER = scope:attacker
			DEFENDER = scope:defender
			CLAIMANT = scope:attacker.joined_faction.special_character
			#ATTACKER_PRESTIGE = 10
			#DEFENDER_PRESTIGE = -10
		}

	}

	on_white_peace_desc = {
		desc = claimant_faction_war_white_peace_desc
	}

	on_white_peace = {
		on_white_peace_faction_revolt_war = yes

		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = white_peace
				}
				if = {
					limit = { exists = joined_faction }
					joined_faction = {
						destroy_faction = yes # Destroy the faction if it wasn't already destroyed automatically.
					}
				}
			}
		}
	}

	on_defeat_desc = {
		desc = claimant_faction_war_defeat_desc
	}

	on_defeat = {
		on_lost_faction_revolt_war = yes

		scope:defender = {
			add_dread = medium_dread_gain
			add_achievement_flag = { FLAG = achievement_know_your_place_flag }
		}
	}

	check_attacker_inheritance_validity = no

	on_primary_attacker_death = inherit_faction
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "CLAIMANT_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 50
	max_defender_score_from_battles = 100

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

depose_war = {
	group = civil_war
	ai_only_against_liege = yes
	target_titles = none
	allowed_for_character = {
	}

	allowed_against_character = {
	}

	target_de_jure_regions_above = yes

	valid_to_start = {

	}

	on_declaration = {
		#on_declared_war = yes
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = depose_war_victory_desc_defender
			}
			desc = depose_war_victory_desc
		}
	}

	on_victory = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = victory
				}
			}
		}

		scope:defender = {
			# If we win the rebellion, our liege loses any legal right to imprison us/banish us/revoke our titles.
			consume_all_criminal_reasons_effect = {
				LIEGE = scope:defender
				CRIMINAL = scope:attacker
			}

			# Then our liege is deposed (but the imprisonment loss remains true for their heir).
			depose_effect = yes  ###Imperial mod
		}


	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = depose_war_white_peace_desc_defender
			}
			desc = depose_war_white_peace_desc
		}
	}

	on_white_peace = {
		on_white_peace_faction_revolt_war = yes
	}

	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = depose_war_defeat_desc_defender
			}
			desc = depose_war_defeat_desc
		}
	}

	on_defeat = {
		on_lost_faction_revolt_war = yes
		scope:defender = {
			add_dread = medium_dread_gain
		}
	}
	
	on_invalidated_desc = msg_invalidate_war_title

	check_attacker_inheritance_validity = no

	on_primary_attacker_death = inherit_faction
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "DEPOSE_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	attacker_score_from_occupation_scale = 50
	defender_score_from_occupation_scale = 50
	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 100

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

refused_liege_demand_war = {
	group = civil_war
	ai_only_against_liege = yes
	allowed_for_character = {
		scope:attacker = {
			is_leading_faction_type = liberty_faction
		}
	}

	allowed_against_character = {
		scope:attacker = {
			liege = scope:defender
		}
	}

	target_de_jure_regions_above = yes

	valid_to_start = {
	}

	should_invalidate = {
		scope:attacker = {
			NOT = { liege = scope:defender }
		}
	}

	on_declaration = {
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = refused_liege_demand_war_victory_desc_defender
			}
			desc = refused_liege_demand_war_victory_desc
		}
	}

	on_victory = {
		scope:defender = {
			if = {
				limit = { has_realm_law = crown_authority_1 }
				add_realm_law = crown_authority_0
			}
			if = {
				limit = { has_realm_law = crown_authority_2 }
				add_realm_law = crown_authority_1
			}
			if = {
				limit = { has_realm_law = crown_authority_3 }
				add_realm_law = crown_authority_2
			}

			add_character_flag = {
				flag = recent_liberty_faction_war
				years = 5
			}

			# If we win the rebellion, our liege loses any legal right to imprison us/banish us/revoke our titles.
			consume_all_criminal_reasons_effect = {
				LIEGE = scope:defender
				CRIMINAL = scope:attacker
			}

			add_prestige = -500

			# Then our liege is deposed (but the imprisonment loss remains true for their heir).
			depose_effect = yes  ###Imperial mod
		}

		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = victory
				}
			}
		}

	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = refused_liege_demand_war_white_peace_desc_defender
			}
			desc = refused_liege_demand_war_white_peace_desc
		}
	}

	on_white_peace = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = white_peace
				}
			}
		}
		on_white_peace_request_revolt_war = yes
	}

	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = refused_liege_demand_war_defeat_desc_defender
			}
			desc = refused_liege_demand_war_defeat_desc
		}
	}

	on_defeat = {
		scope:defender = {
			add_character_flag = {
				flag = recent_liberty_faction_war
				years = 10
			}
			add_dread = medium_dread_gain
		}
		on_lost_request_revolt_war = yes
	}

	on_invalidated_desc = msg_invalidate_war_title

	check_attacker_inheritance_validity = no

	on_primary_attacker_death = invalidate
	on_primary_defender_death = inherit

	transfer_behavior = transfer

	attacker_allies_inherit = yes
	defender_allies_inherit = yes

	war_name = "DEPOSE_WAR_NAME"

	interface_priority = 80

	use_de_jure_wargoal_only = yes

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}

independence_war = {
	group = independence

	allowed_for_character = {
		scope:attacker = {
			is_ai = no
		}
	}

	allowed_against_character = {
		scope:attacker = {
			liege = scope:defender
		}
	}
	
	cost = {
		piety = {
			value = 0
			if = { # Attacking your HoF is impious
				limit = {
					exists = scope:attacker.faith.religious_head
					scope:attacker.faith.religious_head = scope:defender
				}
				if = {
					limit = {
						scope:attacker.faith = {
							has_doctrine = doctrine_spiritual_head
						}
					}
					add = {
						value = massive_piety_value
						desc = CB_ATTACKER_HOF
					}
				}
				else = {
					add = {
						value = medium_piety_value
						desc = CB_ATTACKER_HOF
					}
				}
			}
			if = {
				limit = {
					scope:attacker.faith = scope:defender.faith
					scope:defender = {
						has_government = theocracy_government
					}
				}
				add = {
					value = medium_piety_value
					desc = CB_ATTACKER_THEOCRACY
				}
			}
		}
		prestige = {
			value = 500
			if = {
				limit = {
					scope:attacker = {
						has_government = tribal_government
					}
				}
				multiply = {
					value = 0.5
					desc = CB_TRIBAL_COST
				}
			}

			#Innovation Prestige Discounts
			if = {
				limit = {
					scope:attacker = {
						culture = {
							has_innovation = innovation_chronicle_writing
							has_innovation = innovation_land_grants
							has_innovation = innovation_rightful_ownership
						}
					}
				}
				multiply = {
					value = 0.7
					desc = CB_ATTACKER_INNOVATIONS
				}
			}
			else_if = {
				limit = {
					scope:attacker = {
						culture = {
							OR = {
								has_innovation = innovation_chronicle_writing
								has_innovation = innovation_land_grants
							}
							OR = {
								has_innovation = innovation_land_grants
								has_innovation = innovation_rightful_ownership
							}
							OR = {
								has_innovation = innovation_chronicle_writing
								has_innovation = innovation_rightful_ownership
							}
						}
					}
				}
				multiply = {
					value = 0.8
					desc = CB_ATTACKER_INNOVATIONS
				}
			}
			else_if = {
				limit = {
					scope:attacker = {
						culture = {
							OR = {
								has_innovation = innovation_chronicle_writing
								has_innovation = innovation_land_grants
								has_innovation = innovation_rightful_ownership
							}
						}
					}
				}
				multiply = {
					value = 0.9
					desc = CB_ATTACKER_INNOVATIONS
				}
			}

			# Bellum Justum Perk
			if = {
				limit = {
					scope:attacker = {
						has_perk = bellum_justum_perk
					}
				}
				multiply = {
					add = bellum_justum_discount_percentage
					divide = 100
					desc = CB_ATTACKER_BELLUM_JUSTUM
				}
			}

			# Dynasty Warfare Perk
			if = {
				limit = {
					scope:attacker = {
						has_dynasty = yes
						dynasty = {
							has_dynasty_perk = warfare_legacy_2
						}
					}
				}
				multiply = {
					value = warfare_legacy_2_discount
					desc = CB_ATTACKER_DYNASTY_WARFARE
				}
			}

			# Vassal contract in-realm cost reduction
			if = {
				limit = {
					scope:attacker = {
						is_independent_ruler = no
						vassal_contract_has_flag = vassal_contract_war_override
						liege = scope:defender.liege
					}
				}
				multiply = {
					value = war_declaration_rights_allowed_cost_reduction
					desc = "CB_ATTACKER_VASSAL_CONTRACT"
				}
			}
			
			if = {
				limit = {
					has_game_rule = no_cost_casus_belli_costs
				}
				multiply = {
					value = 0
					desc = CB_GAME_RULE_NO_COST
				}
			}
		}
	}

	on_declaration = {
		on_declared_war = yes
	}

	on_victory_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { # Desc for only one player attacker
					scope:attacker = {
						is_local_player = yes
					}
				}
				desc = independence_war_victory_desc_local_player_attacker_alone
			}
			triggered_desc = { # Desc for only one attacker, player defender
				trigger = {
					scope:defender = {
						is_local_player = yes
					}
				}
				desc = player_independence_war_victory_desc_local_player_defender_attacker_alone
			}
			desc = independence_war_victory_desc_local_player_attacker_alone # Desc for a third party involved
		}
	}

	on_victory = {
		scope:attacker = {
			add_character_flag = ai_should_not_transfer
		}
		create_title_and_vassal_change = change
		scope:change = {
			set_title_and_vassal_change_type = independency
		}

		scope:attacker = {
			change_liege_or_become_independent = {
				CHANGE = scope:change
				VASSAL = this
			}

			hidden_effect = {
				set_variable = {
					name = independence_war_former_liege
					value = scope:defender
				}
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = victory
				}
			}
		}

		resolve_title_and_vassal_change = scope:change
	
	}

	on_white_peace_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = player_independence_war_white_peace_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker = {
						is_local_player = yes
					}
				}
				desc = player_independence_war_white_peace_attacker_desc
			}
			desc = player_independence_war_white_peace_desc
		}
	}

	on_white_peace = {
		hidden_effect = {
			scope:attacker = {
				add_truce_both_ways = {
					character = scope:defender
					days = 1825
					war = root.war
					result = white_peace
				}
			}
		}

		scope:defender = {
			add_prestige = minor_prestige_value
		}
	}

	on_defeat_desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:defender = { is_local_player = yes } }
				desc = player_independence_defeat_defender_desc
			}
			triggered_desc = {
				trigger = {
					scope:attacker = {
						is_local_player = yes
					}
				}
				desc = player_independence_defeat_attacker_desc
			}
			desc = player_independence_war_defeat_desc
		}
	}

	on_defeat = {
		scope:defender = {
			add_dread = medium_dread_gain
			# Prestige for Defender
			add_prestige = medium_prestige_value
		}
		
		scope:attacker = {
			hard_imprison_character_effect = {
				TARGET = this
				IMPRISONER = scope:defender
			}
			scope:defender = {
				add_opinion = {
					target = prev
					modifier = vassal_lost_or_wp_faction_revolt_war
				}
			}
		}
	}

	on_invalidated_desc = msg_invalidate_war_title

	check_defender_inheritance_validity = no

	on_primary_attacker_death = inherit
	on_primary_defender_death = inherit
	
	attacker_allies_inherit = yes
	defender_allies_inherit = yes

	transfer_behavior = transfer

	attacker_allies_inherit = no
	defender_allies_inherit = yes

	war_name = "INDEPENDENCE_WAR_NAME"

	interface_priority = 120

	attacker_wargoal_percentage = 0.8

	max_attacker_score_from_battles = 100
	max_defender_score_from_battles = 50

	max_ai_diplo_distance_to_title = 500
	min_ai_score = 100
}
