﻿# Rota Fortunae — triggers. Character scope unless stated otherwise.

# A sovereign realm the mod follows: independent, landed, duke tier or higher.
rf_is_realm_trigger = {
	is_alive = yes
	is_independent_ruler = yes
	is_landed = yes
	highest_held_title_tier >= tier_duchy
	NOT = { government_has_flag = government_is_landless_adventurer }
	exists = primary_title
}

rf_wheel_enabled_trigger = {
	NOT = { has_game_rule = rf_wheel_off }
}

rf_coalitions_enabled_trigger = {
	NOT = { has_game_rule = rf_coalitions_off }
}

rf_has_realm_state_trigger = {
	exists = primary_title.var:rf_fortune
}

rf_is_coalition_member_trigger = {
	exists = primary_title.var:rf_coalition_against
}

rf_has_coalition_against_trigger = {
	primary_title = { has_variable_list = rf_coalition }
	primary_title = { any_in_list = { variable = rf_coalition exists = holder } }
}

# Member of the coalition aimed at $THREAT$.
rf_in_coalition_against_trigger = {
	exists = primary_title.var:rf_coalition_against
	primary_title.var:rf_coalition_against = $THREAT$.primary_title
}

# This ruler may currently become the target of a coalition.
rf_can_be_coalition_target_trigger = {
	rf_coalitions_enabled_trigger = yes
	rf_is_realm_trigger = yes
	rf_menace_value >= 50
	NOT = { exists = primary_title.var:rf_coalition_cooldown }
	trigger_if = {
		limit = { has_game_rule = rf_coalitions_ai_only }
		is_ai = yes
	}
}

# This ruler may join a coalition against $THREAT$.
rf_can_join_coalition_against_trigger = {
	rf_is_realm_trigger = yes
	this != $THREAT$
	NOT = { exists = primary_title.var:rf_coalition_against }
	NOT = { is_allied_to = $THREAT$ }
	NOT = { is_tributary_of = $THREAT$ }
	NOT = { $THREAT$ = { is_tributary_of = prev } }
	NOT = { exists = primary_title.var:rf_coalition_against_refused }
	# Friends do not band together against friends.
	NOT = { has_relation_friend = $THREAT$ }
	NOT = { has_relation_best_friend = $THREAT$ }
	NOT = { has_relation_lover = $THREAT$ }
	NOT = { has_relation_soulmate = $THREAT$ }
	NOT = { opinion = { target = $THREAT$ value >= 60 } }
	$THREAT$ = { rf_can_be_coalition_target_trigger = yes }
}

# This realm lies within reach of $THREAT$: a land neighbour, a capital within one France
# (650 map pixels), or, once the threat reaches 60 menace, a kingdom or empire whose capital
# lies within one Holy Roman Empire (850 map pixels). Distant realms never care.
rf_in_coalition_range_trigger = {
	exists = capital_province
	exists = $THREAT$.capital_province
	OR = {
		any_neighboring_top_liege_realm_owner = { this = $THREAT$ }
		capital_province = {
			squared_distance = { target = $THREAT$.capital_province value <= squared_distance_large }
		}
		AND = {
			highest_held_title_tier >= tier_kingdom
			$THREAT$ = { rf_menace_value >= 60 }
			capital_province = {
				squared_distance = { target = $THREAT$.capital_province value <= squared_distance_huge }
			}
		}
	}
}

# Character scope = coalition target: ready for a coalition war.
rf_coalition_war_ready_trigger = {
	rf_menace_value >= 75
	rf_coalition_size_value >= 2
	rf_coalition_ratio_value >= 90
	NOT = { exists = primary_title.var:rf_coalition_war }
	NOT = { exists = primary_title.var:rf_coalition_cooldown }
}

rf_has_phase_modifier_trigger = {
	OR = {
		has_character_modifier = rf_regnabo_gentle
		has_character_modifier = rf_regnabo_normal
		has_character_modifier = rf_regnabo_harsh
		has_character_modifier = rf_regno_gentle
		has_character_modifier = rf_regno_normal
		has_character_modifier = rf_regno_harsh
		has_character_modifier = rf_regnavi_gentle
		has_character_modifier = rf_regnavi_normal
		has_character_modifier = rf_regnavi_harsh
		has_character_modifier = rf_sine_regno_gentle
		has_character_modifier = rf_sine_regno_normal
		has_character_modifier = rf_sine_regno_harsh
	}
}
