﻿pca_war_declarer_needs_hook_on_top_liege = {
	scope:actor = {
		top_liege != this
		liege != top_liege
		top_liege != scope:recipient
		NAND = {
			government_allows = administrative
			liege = { government_allows = 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 = {
	scope:actor = {
		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_allows = administrative
			liege = { government_allows = 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 = {
	scope:actor = {
		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_allows = administrative
			liege = { government_allows = 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
		}
	}
}