﻿pca_war_declarer_needs_hook_on_top_liege = {
	top_liege != this
	liege != top_liege
	top_liege != scope:recipient
	NAND = {
		government_has_mechanic = administrative
		liege = { government_has_mechanic = administrative }
	}
	NOT = { has_game_rule = pca_lax_vassal_war_law }
	top_liege = {
		OR = {
			has_realm_law_flag = vassal_all_wars_banned
			pca_tribal_vassal_all_wars_banned_trigger = yes
			pca_mandala_vassal_all_wars_banned_trigger = yes
			AND = {
				has_game_rule = pca_strict_vassal_war_law
				this = scope:recipient.top_liege
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
			AND = {
				NOT = { has_game_rule = pca_strict_vassal_war_law } # has_game_rule = pca_medium_vassal_war_law
				this = scope:recipient.liege
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
		}
	}
}

pca_war_declarer_needs_hook_on_liege_of_liege = {
	top_liege != this
	liege.liege ?= { save_temporary_scope_as = pca_liege_of_liege }
	scope:pca_liege_of_liege != top_liege
	scope:pca_liege_of_liege != scope:recipient
	NAND = {
		government_has_mechanic = administrative
		liege = { government_has_mechanic = administrative }
	}
	NOT = { has_game_rule = pca_lax_vassal_war_law }
	scope:pca_liege_of_liege = {
		OR = {
			has_realm_law_flag = vassal_all_wars_banned
			pca_tribal_vassal_all_wars_banned_trigger = yes
			pca_mandala_vassal_all_wars_banned_trigger = yes
			AND = {
				has_game_rule = pca_strict_vassal_war_law
				scope:recipient = { any_liege_or_above = { this = scope:pca_liege_of_liege } }
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
			AND = {
				NOT = { has_game_rule = pca_strict_vassal_war_law } # has_game_rule = pca_medium_vassal_war_law
				this = scope:recipient.liege
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
		}
	}
}

pca_war_declarer_needs_hook_on_liege_under_top_liege = {
	top_liege != this
	liege.liege.liege ?= { save_temporary_scope_as = pca_liege_under_top_liege }
	scope:pca_liege_under_top_liege != top_liege
	scope:pca_liege_under_top_liege != scope:recipient
	NAND = {
		government_has_mechanic = administrative
		liege = { government_has_mechanic = administrative }
	}
	NOT = { has_game_rule = pca_lax_vassal_war_law }
	scope:pca_liege_under_top_liege = {
		OR = {
			has_realm_law_flag = vassal_all_wars_banned
			pca_tribal_vassal_all_wars_banned_trigger = yes
			pca_mandala_vassal_all_wars_banned_trigger = yes
			AND = {
				has_game_rule = pca_strict_vassal_war_law
				scope:recipient = { any_liege_or_above = { this = scope:pca_liege_under_top_liege } }
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
			AND = {
				NOT = { has_game_rule = pca_strict_vassal_war_law } # has_game_rule = pca_medium_vassal_war_law
				this = scope:recipient.liege
				OR = {
					has_realm_law_flag = vassal_internal_wars_banned
					pca_tribal_vassal_internal_wars_banned_trigger = yes
					pca_mandala_vassal_internal_wars_banned_trigger = yes
				}
			}
		}
	}
}

pca_mandala_game_rule_trigger = {
	OR = {
		has_game_rule = pca_vassal_war_law_government_mandala
		has_game_rule = pca_vassal_war_law_government_mandala_tribal
	}
}

pca_mandala_vassal_internal_wars_banned_trigger = {
	pca_tribal_game_rule_trigger = yes
	has_realm_law = mandala_decree_reverence
}

pca_mandala_vassal_all_wars_banned_trigger = {
	pca_tribal_game_rule_trigger = yes
	has_realm_law = mandala_decree_prosperity
}

pca_tribal_game_rule_trigger = {
	OR = {
		has_game_rule = pca_vassal_war_law_government_tribal
		has_game_rule = pca_vassal_war_law_government_mandala_tribal
	}
}

pca_tribal_vassal_internal_wars_banned_trigger = {
	pca_tribal_game_rule_trigger = yes
	has_realm_law = tribal_authority_2
}

pca_tribal_vassal_all_wars_banned_trigger = {
	pca_tribal_game_rule_trigger = yes
	has_realm_law = tribal_authority_3
}

pca_has_proper_hook_on_character = {
	OR = {
		AND = {
			has_game_rule = pca_vassal_hook_requirement_usable
			has_usable_hook = $CHARACTER$
		}
		AND = {
			NOT = { has_game_rule = pca_vassal_hook_requirement_usable }
			has_strong_hook = $CHARACTER$
		}
	}
}

pca_has_proper_hook_on_liege = {
	OR = {
		AND = {
			has_game_rule = pca_vassal_hook_requirement_strong
			has_strong_hook = liege
		}
		AND = {
			NOT = { has_game_rule = pca_vassal_hook_requirement_strong }
			has_usable_hook = liege
		}
	}
}