# bid_for_independence
# depose_liege - disabled
# overthrow_ruler
# overthrow_ruler_no_calls
# weaken_vassal_plot

bid_for_independence = {
	name = CB_NAME_INDEPENDENCE
	war_name = WAR_NAME_INDEPENDENCE
	sprite = 12
	truce_days = 3650
	sort_priority = 1500

	is_permanent = yes
	is_independence = yes
	can_ask_to_join_war = no

	can_use_gui = {
		check_if_crusader_trigger = yes
	}

	can_use = {
		# Attacker
		ROOT = {
			de_facto_liege = FROM
		#	higher_real_tier_than = BARON
			mercenary = no

		#	OR = {
		#		ai = yes
		#		is_feudal = yes
		#		is_tribal = yes
		#		higher_real_tier_than = COUNT
		#	}

			trigger_if = {
				limit = { is_nomadic = yes }

				clan_opinion = {
					who = FROM
					value <= 0
				}
			}
		}

		# Defender
		FROM = {
			in_revolt = no

			NOT = { # isn't attacking liege with one of these CBs
				any_war = {
					attacker = {
						character = PREVPREV
					}

					OR = {
						using_cb = bid_for_independence
						using_cb = depose_liege
					}
				}
			}

			any_demesne_title = {
				NOT = { lower_real_tier_than = ROOT }
				temporary = no
			}

			# No above liege is revolting
			liege_before_war = {
				in_revolt = no

				liege_before_war = {
					in_revolt = no
				}
			}

			# No independence factions in merchant republics
			trigger_if = {
				limit = { is_merchant_republic = yes }
				liege = { is_merchant_republic = no }
			}
		}
	}

	is_valid = {
		# Attacker
		ROOT = {
			liege_before_war = {
				character = FROM
			}
		}

		# Defender
		FROM = {
			in_revolt = no

			any_demesne_title = {
				NOT = { lower_tier_than = ROOT }
				temporary = no
			}

			# No above liege is revolting
			liege_before_war = {
				in_revolt = no

				liege_before_war = {
					in_revolt = no
				}
			}

			# No independence factions in merchant republics
			trigger_if = {
				limit = { is_merchant_republic = yes }
				liege = { is_merchant_republic = no }
			}
		}
	}

	on_add = {
		fire_haruspicy_event_effect = yes
		anger_china_effect = yes
	}

	on_success = {
		log = "[Root.GetBestName] (ID: [Root.GetID]) succeeded with [Root.GetHerHis] bid for independence against [From.GetBestName] (ID: [From.GetID])"

		attacker = {
			show_scope_change = no

			defender = {
				show_scope_change = no

				if = {
					limit = { independent = yes }

					attacker = {
						show_scope_change = no

						set_defacto_liege = ROOT

						# CK2Plus
						pf_liege_change_effect = yes
					}

					# Weakly held territories may declare independence
					hidden_effect = {
						any_vassal = {
							character_event = {
								id = Plus.430
								days = 3
							}
						}
					}
				}
				else_if = {
					limit = { in_revolt = yes }

					liege_before_war = { # attacker becomes vassal of defender's liege
						show_scope_change = no

						attacker = {
							show_scope_change = no

							set_defacto_liege = PREV

							# CK2Plus
							pf_liege_change_effect = yes
						}
					}
				}
				else = {
					liege = { # attacker becomes vassal of defender's liege
						show_scope_change = no

						attacker = {
							show_scope_change = no

							set_defacto_liege = PREV
						}
					}
				}
			}

			prestige = 100
			participation_scaled_prestige = 100

			hidden_effect = {
			#	any_demesne_title = {
			#		add_pressed_claim = defender
			#	}

				set_character_flag = ai_flag_never_transfer
			}
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }
			hidden_effect = { participation_scaled_prestige = 100 }
		}

		defender = {
			show_scope_change = no

			any_demesne_title = {
				if = {
					limit = { can_destroy_title_trigger = yes }

					custom_tooltip = {
						text = TITLE_ENDANGERED_NO_NAME
						set_title_flag = destroy_title
					}
				}

				title_reduce_CA_effect = yes
				title_reduce_TO_effect = yes
			}

			hidden_effect = {
				# Destroy primary title if it has been reduced too much
				if = {
					limit = {
						primary_title = {
							has_title_flag = destroy_title
						}
					}

					character_event = {
						id = Plus.1620
						days = 4
					}
				}

				# CK2Plus
				opinion = {
					name = opinion_independent
					who = attacker
					years = 50
				}
			}
		}

		hidden_effect = {
			check_if_reconquista_finished_effect = yes

			defender = {
				landless_pope_effect = yes
			}
		}
	}

	on_fail = {
		attacker = {
			show_scope_change = no

			prestige = -50
			participation_scaled_prestige = -50
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }
			hidden_effect = { participation_scaled_prestige = -50 }
		}
	}

	on_reverse_demand = {
		attacker = {
			show_scope_change = no

			prestige = -100
			imprison = defender
			participation_scaled_prestige = -100
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }
			hidden_effect = { participation_scaled_prestige = -100 }
		}

		defender = {
			show_scope_change = no

			prestige = 50
		}
	}

	on_attacker_leader_death = {
		any_defender = {
			letter_event = { id = 251 } # Our enemy has died, the war has ended
		}

		end_war = invalid
	}

	attacker_ai_victory_worth = {
		factor = -1 # always accept
	}

	attacker_ai_defeat_worth = {
		factor = 150
	}

	defender_ai_victory_worth = {
		factor = -1 # always accept
	}

	defender_ai_defeat_worth = {
		factor = 100
	}
}

depose_liege = {
	name = CB_NAME_DEPOSE_LIEGE
	war_name = WAR_NAME_DEPOSE_LIEGE
	sprite = 12
	truce_days = 3650

	is_permanent = no # Set to yes if re-enabled
	can_call_vassals = no
	major_revolt = no

	can_use_gui = {
		check_if_crusader_trigger = yes
	}

	can_use = {
		always = no # v2.21 - Disabled - not working well

		# Attacker
		ROOT = {
			de_facto_liege = FROM
		}

		# Defender
		FROM = {
			is_feudal = yes

			primary_title = {
				is_vice_royalty = no
			}

			NOT = {
				any_war = {
					OR = {
						AND = { # Cannot depose liege when our liege is currently involved in such a war
							attacker = {
								character = PREVPREV
							}

							OR = {
								using_cb = bid_for_independence
								using_cb = depose_liege
							}
						}

						AND = { # Cannot depose liege if someone else is already deposing liege
							defender = {
								character = PREVPREV
							}

							using_cb = depose_liege
						}
					}
				}
			}
		}
	}

	is_valid = {
		# Attacker
		ROOT = {
			liege_before_war = {
				character = FROM
			}
		}

		# Defender
		FROM = {
			any_demesne_title = {
				NOT = { lower_tier_than = ROOT }
				temporary = no
			}

			in_revolt = no

			liege_before_war = {
				in_revolt = no

				liege_before_war = {
					in_revolt = no
				}
			}
		}
	}

	on_add = {
		fire_haruspicy_event_effect = yes
		anger_china_effect = yes
	}

	on_success = {
		attacker = {
			show_scope_change = no

			participation_scaled_prestige = 250
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }
			hidden_effect = { participation_scaled_prestige = 250 }
		}

		defender = {
			show_scope_change = no

			prestige = -500

			if = { # lower crown authority
				limit = { NOT = { has_dlc = "Conclave" } }

				any_demesne_title = { # All titles
					limit = { is_crown_law_title = yes }

					set_title_flag = non_manual_law_change # No prestige loss

					trigger_switch = {
						on_trigger = has_law

						crown_authority_1 = { add_law = crown_authority_0 }
						crown_authority_2 = { add_law = crown_authority_1 }
						crown_authority_3 = { add_law = crown_authority_2 }
						crown_authority_4 = { add_law = crown_authority_3 }
					}

					clr_title_flag = non_manual_law_change # No prestige loss
				}
			}

			abdicate_to_most_liked_by = attacker
		}

		hidden_effect = {
			check_if_reconquista_finished_effect = yes

			defender = {
				landless_pope_effect = yes
			}
		}
	}

	on_fail = {
		attacker = {
			show_scope_change = no

			prestige = -100
		}
	}

	on_reverse_demand = {
		attacker = {
			show_scope_change = no

			prestige = -200
			imprison = defender
		}

		any_defender = {
			limit = { NOT = { character = defender } }
			hidden_effect = { participation_scaled_prestige = 50 }
		}

		defender = {
			show_scope_change = no

			participation_scaled_prestige = 50

			hidden_effect = {
				if = {
					limit = {
						NOT = {
							has_opinion_modifier = { # Allow free revocation of a title
								name = opinion_traitor
								who = attacker
							}
						}
					}

					opinion = {
						name = opinion_traitor
						who = attacker
					}
				}
			}
		}
	}

	attacker_ai_victory_worth = {
		factor = -1 # always accept
	}

	attacker_ai_defeat_worth = {
		factor = 150
	}

	defender_ai_victory_worth = {
		factor = -1 # always accept
	}

	defender_ai_defeat_worth = {
		factor = 100
	}
}

overthrow_ruler = {
	name = CB_NAME_OVERTHROWRULER
	war_name = WAR_NAME_OVERTHROWRULER
	sprite = 12
	truce_days = 3650

	is_revolt_cb = yes
	can_call_vassals = yes
	attacker_can_call_allies = no
	major_revolt = yes
	is_tyranny_cb = yes

	can_use_gui = {
		check_if_crusader_trigger = yes
	}

	can_use = {
		# Attacker
		ROOT = {
			de_facto_liege = FROM
		}

		# Defender
		FROM = {
			primary_title = {
				is_vice_royalty = no
			}
		}
	}

	is_valid = {
		# Attacker
		ROOT = {
			liege_before_war = {
				character = FROM
			}
		}

		# Defender
		FROM = {
			any_demesne_title = {
				NOT = { lower_tier_than = ROOT }
				temporary = no
			}
		}
	}

	on_add = {
		fire_haruspicy_event_effect = yes
		anger_china_effect = yes
	}

	on_success = {
		attacker = {
			show_scope_change = no

			participation_scaled_prestige = 250

			primary_title = {
				show_scope_change = no

				add_pressed_claim = FROM
			}

			hidden_effect = {
				opinion = {
					name = overthrown_ruler
					who = FROM
				}

				reverse_opinion = {
					name = overthrew_me
					who = FROM
				}
			}
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }

			hidden_effect = {
				participation_scaled_prestige = 250

				opinion = {
					name = overthrown_ruler
					who = FROM
				}

				reverse_opinion = {
					name = overthrew_me
					who = FROM
				}
			}
		}

		defender = {
			show_scope_change = no

			prestige = -500

			remove_opinion = {
				name = declared_war
				who = attacker
			}

			any_demesne_title = {
				if = {
					limit = { can_destroy_title_trigger = yes }

					custom_tooltip = {
						text = TITLE_ENDANGERED_NO_NAME
						set_title_flag = destroy_title
					}
				}

				title_reduce_CA_effect = yes
				title_reduce_TO_effect = yes
			}

			hidden_effect = {
				# Destroy primary title if it has been reduced too much
				if = {
					limit = {
						primary_title = {
							has_title_flag = destroy_title
						}
					}

					current_heir = {
						character_event = {
							id = Plus.1620
							days = 4
						}
					}
				}
			}

			abdicate = yes
		}

		hidden_effect = {
			check_if_reconquista_finished_effect = yes

			defender = {
				landless_pope_effect = yes
			}
		}
	}

	on_fail = {
		attacker = {
			show_scope_change = no

			prestige = -100
		}

		defender = {
			show_scope_change = no

			remove_opinion = {
				name = declared_war
				who = attacker
			}
		}
	}

	on_reverse_demand = {
		attacker = {
			show_scope_change = no

			prestige = -200
			imprison = defender
		}

		any_attacker = {
			limit = { vassal_of = defender }

			hidden_effect = {
				imprison = defender
				disband_event_forces = faction_revolters

				add_character_modifier = {
					name = faction_council_power_ultimatum_timer
					years = 10
					hidden = yes
				}
			}
		}

		defender = {
			show_scope_change = no

			participation_scaled_prestige = 50

		#	hidden_effect = {
		#		if = {
		#			limit = {
		#				NOT = {
		#					has_opinion_modifier = { # Allow free revocation of a title
		#						name = opinion_traitor
		#						who = attacker
		#					}
		#				}
		#			}
		#
		#			opinion = {
		#				name = opinion_traitor
		#				who = attacker
		#			}
		#		}
		#	}
		}

		any_defender = {
			limit = { NOT = { character = defender } }
			hidden_effect = { participation_scaled_prestige = 50 }
		}
	}

	attacker_ai_victory_worth = {
		factor = -1 # always accept
	}

	attacker_ai_defeat_worth = {
		factor = 100
	}

	on_defender_leader_death = {
		any_attacker = {
			letter_event = { id = 251 } # Our enemy has died, the war has ended
		}

		end_war = invalid
	}

	defender_ai_victory_worth = {
		factor = -1 # always accept
	}

	defender_ai_defeat_worth = {
		factor = 100
	}
}

overthrow_ruler_no_calls = {
	name = CB_NAME_OVERTHROWRULER_NC
	war_name = WAR_NAME_OVERTHROWRULER_NC
	sprite = 12
	truce_days = 3650

	is_revolt_cb = yes
	can_call_vassals = no
	can_ask_to_join_war = no

	can_use_gui = {
		check_if_crusader_trigger = yes
	}

	can_use = {
		# Attacker
		ROOT = {
			de_facto_liege = FROM
		}

		# Defender
		FROM = {
			primary_title = {
				is_vice_royalty = no
			}
		}
	}

	is_valid = {
		# Attacker
		ROOT = {
			liege_before_war = { character = FROM }
			lower_real_tier_than = FROM
		}
	}

	on_add = {
		fire_haruspicy_event_effect = yes
		anger_china_effect = yes
	}

	on_success = {
		log = "[Root.GetBestName] (ID: [Root.GetID]) succeeded with their overthrow_ruler_no_calls CB against [From.GetBestName] (ID: [From.GetID])"

		attacker = {
			show_scope_change = no

			participation_scaled_prestige = 250

			primary_title = {
				show_scope_change = no

				add_pressed_claim = defender
			}
		}

		hidden_effect = {
			any_attacker = {
				if = {
					limit = { NOT = { character = ROOT } }
					participation_scaled_prestige = 250
				}

				opinion = {
					name = overthrown_ruler
					who = FROM
				}

				reverse_opinion = {
					name = overthrew_me
					who = FROM
				}
			}
		}

		defender = {
			show_scope_change = no

			prestige = -500

			remove_opinion = {
				name = declared_war
				who = attacker
			}

			any_demesne_title = {
				if = {
					limit = { can_destroy_title_trigger = yes }

					custom_tooltip = {
						text = TITLE_ENDANGERED_NO_NAME
						set_title_flag = destroy_title
					}
				}

				title_reduce_CA_effect = yes
				title_reduce_TO_effect = yes
			}

			# Destroy primary title if it has been reduced too much
			if = {
				limit = {
					primary_title = {
						has_title_flag = destroy_title
					}
				}

				current_heir = {
					character_event = {
						id = Plus.1620
						days = 4
					}
				}
			}

			abdicate = yes
		}

		hidden_effect = {
			check_if_reconquista_finished_effect = yes

			defender = {
				landless_pope_effect = yes
			}
		}
	}

	on_fail = {
		attacker = {
			show_scope_change = no

			prestige = -100
		}

		defender = {
			show_scope_change = no

			remove_opinion = {
				name = declared_war
				who = attacker
			}
		}
	}

	on_reverse_demand = {
		attacker = {
			show_scope_change = no

			prestige = -200
			imprison = defender
		}

		defender = {
			show_scope_change = no

			participation_scaled_prestige = 50
		}

		any_defender = {
			limit = { NOT = { character = defender } }
			hidden_effect = { participation_scaled_prestige = 50 }
		}
	}

	attacker_ai_victory_worth = {
		factor = -1 # always accept
	}

	attacker_ai_defeat_worth = {
		factor = 100
	}

	defender_ai_victory_worth = {
		factor = -1 # always accept
	}

	defender_ai_defeat_worth = {
		factor = 100
	}
}

# TODO: Turn into major revolt, allow for allies to be called in?
weaken_vassal_plot = {
	name = CB_NAME_WEAKEN_VASSAL
	war_name = WAR_NAME_WEAKEN_VASSAL
	sprite = 3
	truce_days = 3650

	hostile_against_others = yes
	press_claim = yes
	can_call_allies = no
	can_ask_to_join_war = no

	can_use_gui = {
		check_if_crusader_trigger = yes
	}

	can_use_title = {
		holder_scope = {
			OR = {
				character = FROM
				is_vassal_or_below_of = FROM
			}
		}
	}

	is_valid_title = {
		holder_scope = {
			OR = {
				character = FROM
				is_vassal_or_below_of = FROM
			}
		}
	}

	on_add = {
		fire_haruspicy_event_effect = yes
		anger_china_effect = yes
	}

	on_success = {
		attacker = {
			show_scope_change = no

			participation_scaled_prestige = 100
			set_character_flag = weaken_vassal
			plot_succeeds = yes
		}

		any_attacker = {
			limit = { NOT = { character = attacker } }
			hidden_effect = { participation_scaled_prestige = 100 }
		}
	}

	on_success_title = {
		# CK2Plus
		title_reduce_CA_effect = yes
		title_reduce_TO_effect = yes

		defender = {
			show_scope_change = no

			random_vassal = { # give title to a count vassal who holds a title that is de jure part of contested title
				show_scope_change = no

				limit = {
					real_tier = COUNT

					any_demesne_title = {
						real_tier = COUNT
						de_jure_liege = PREVPREVPREV
					}

					# CK2Plus
					is_primary_heir = no
				}

				usurp_title = PREVPREV
			}
		}
	}

	on_fail = {
		attacker = {
			show_scope_change = no

			prestige = -100
			cancel_plot = plot_weaken_fellow_vassal
		}

		defender = {
			show_scope_change = no

			participation_scaled_prestige = 50
		}

		any_defender = {
			limit = { NOT = { character = defender } }
			hidden_effect = { participation_scaled_prestige = 50 }
		}
	}

	on_invalidation = {
		attacker = {
			show_scope_change = no

			cancel_plot = plot_weaken_fellow_vassal
		}
	}

	on_reverse_demand = {
		attacker = {
			show_scope_change = no

			prestige = -200
			imprison = defender
			cancel_plot = plot_weaken_fellow_vassal
		}

		defender = {
			show_scope_change = no

			participation_scaled_prestige = 100
		}

		any_defender = {
			limit = { NOT = { character = defender } }
			hidden_effect = { participation_scaled_prestige = 100 }
		}
	}

	on_attacker_leader_death = {
		any_defender = {
			letter_event = { id = 251 } # Our enemy has died, the war has ended
		}

		end_war = invalid
	}

	attacker_ai_victory_worth = {
		factor = -1 # always accept
	}

	attacker_ai_defeat_worth = {
		factor = 100
	}

	defender_ai_victory_worth = {
		factor = -1 # always accept
	}

	defender_ai_defeat_worth = {
		factor = 100
	}
}
