﻿# Pilgrims and Preachers - triggers for the Camp Retreat activity (ppr_activity_camp_retreat)

# Character scope: the camp has a purpose that allows a retreat.
ppr_camp_retreat_purpose_trigger = {
	OR = {
		has_realm_law = camp_purpose_scholars
		has_realm_law = ppr_camp_purpose_pilgrims
	}
}

# Activity scope: purpose recorded when the retreat started (on_start).
ppr_camp_retreat_scholars_trigger = {
	exists = var:ppr_retreat_purpose
	var:ppr_retreat_purpose = flag:scholars
}
ppr_camp_retreat_pilgrims_trigger = {
	exists = var:ppr_retreat_purpose
	var:ppr_retreat_purpose = flag:pilgrims
}

# Activity scope: Rule of Life and length options.
ppr_camp_retreat_strict_rule_trigger = {
	has_activity_option = {
		category = ppr_camp_retreat_option_rule
		option = ppr_camp_retreat_rule_strict
	}
}
ppr_camp_retreat_long_trigger = {
	has_activity_option = {
		category = ppr_camp_retreat_option_length
		option = ppr_camp_retreat_length_long
	}
}

# Activity scope: is this week of the retreat phase one where a mid-retreat event fires?
# Short retreat (4 weeks): weeks 1 and 3. Long retreat (10 weeks): weeks 2, 4, 6 and 8.
ppr_camp_retreat_mid_event_week_trigger = {
	exists = var:ppr_retreat_week
	trigger_if = {
		limit = { ppr_camp_retreat_long_trigger = yes }
		OR = {
			var:ppr_retreat_week = 2
			var:ppr_retreat_week = 4
			var:ppr_retreat_week = 6
			var:ppr_retreat_week = 8
		}
	}
	trigger_else = {
		OR = {
			var:ppr_retreat_week = 1
			var:ppr_retreat_week = 3
		}
	}
}

# Character scope (root = host): common gate for the retreat events.
ppr_camp_retreat_event_host_trigger = {
	involved_activity ?= {
		has_activity_type = ppr_activity_camp_retreat
		activity_host = root
	}
}

# Character scope: a follower attending the retreat who can take part in an event.
# Use inside involved_activity of the host's events (root = host).
ppr_camp_retreat_attending_follower_trigger = {
	this != root
	is_ai = yes
	is_adult = yes
	is_alive = yes
	is_imprisoned = no
	location = root.location
}

# Character scope (root = host): the abbot or guardian saved on arrival is still around.
ppr_camp_retreat_abbot_available_trigger = {
	involved_activity ?= {
		exists = var:ppr_retreat_abbot
		var:ppr_retreat_abbot = {
			is_alive = yes
			is_imprisoned = no
		}
	}
}
