N3OW/common/scripted_triggers/04_ep2_tournament_triggers.txt

537 lines
13 KiB
Text

chariot_race_trigger = {
involved_activity.activity_host.culture = {
OR = {
AND = {
has_cultural_tradition = tradition_ep3_roman_ceremonies
NOT = { has_cultural_era_or_later = culture_era_late_medieval }
}
this = culture:roman
}
}
}
activity_is_valid_tournament_contestant_training_decision = {
is_alive = yes
is_adult = yes
is_imprisoned = no
# Exclude clergy who don't fight
trigger_if = {
limit = { is_clergy = yes }
faith = { has_doctrine_parameter = clergy_can_fight }
}
}
activity_is_competing_trigger = {
activity_is_valid_tournament_contestant = yes
is_in_guest_subset = { name = contestant }
exists = var:progress_to_victory # Ensure they have a PtV as a valid contestant
}
activity_is_valid_tournament_contestant = {
exists = involved_activity
involved_activity = { has_activity_type = activity_tournament }
is_alive = yes
is_adult = yes
is_imprisoned = no
# Exclude clergy who don't fight
trigger_if = {
limit = { is_clergy = yes }
OR = {
faith = { has_doctrine_parameter = clergy_can_fight }
culture = { has_cultural_parameter = culture_clergy_can_fight }
}
}
# Has not opted out
NOR = {
has_character_flag = tournament_not_competing
is_in_guest_subset = { name = spectator }
}
trigger_if = {
limit = {
involved_activity = {
NOR = {
has_current_phase = tournament_phase_horse_race
has_current_phase = tournament_phase_board_game
has_current_phase = tournament_phase_recital
}
}
}
# Only martial sex competes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = involved_activity.activity_host }
NOR = {
has_trait = wounded_2
has_trait = wounded_3
}
}
# Mulan is clever enough not to reveal themselves
trigger_if = {
limit = {
involved_activity = { has_current_phase = tournament_phase_wrestling }
}
NOT = { has_character_modifier = ignores_gender_army_rules }
}
NOT = {
has_trait = incapable
}
trigger_if = {
limit = {
NOT = {
involved_activity = { has_current_phase = tournament_phase_horse_race }
}
}
NOR = {
has_trait = blind
has_trait = infirm
}
}
trigger_if = { # Blind and maimed people don't do archery
limit = {
NOT = {
involved_activity = { has_current_phase = tournament_phase_archery }
}
}
NOR = {
has_trait = blind
has_trait = maimed
}
}
}
activity_tournament_contest_non_martial_gender_allowed = {
involved_activity ?= {
OR = {
has_current_phase = tournament_phase_horse_race
has_current_phase = tournament_phase_board_game
has_current_phase = tournament_phase_recital
}
}
}
activity_tournament_contest_martial_gender_only = {
involved_activity ?= {
OR = {
has_current_phase = tournament_phase_duel
has_current_phase = tournament_phase_wrestling
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_archery
has_current_phase = tournament_phase_joust
}
}
}
activity_has_reason_to_cheer_character_trigger = {
exists = $CHAR$
OR = {
this = $CHAR$
AND = {
opinion = {
target = $CHAR$
value >= 25
}
OR = {
is_close_family_of = $CHAR$
is_consort_of = $CHAR$
has_any_good_relationship_with_character_trigger = { CHARACTER = $CHAR$ }
}
}
}
}
activity_has_reason_to_anger_character_trigger = {
exists = $CHAR$
NOT = { this = $CHAR$ }
opinion = {
target = $CHAR$
value < 25
}
has_any_bad_relationship_with_character_trigger = { CHARACTER = $CHAR$ }
}
tournament_contest_wager_trigger = {
AND = {
has_current_phase = tournament_phase_$CONTEST$
NOT = {
any_guest_subset = {
name = winner
phase = tournament_phase_$CONTEST$
}
}
}
any_guest_subset_current_phase = {
name = qualified
count >= 3
}
trigger_if = {
limit = { exists = var:contest_versus_progress }
var:contest_versus_progress <= 3
}
}
activity_tournament_armor_trigger = {
involved_activity ?= { has_activity_type = activity_tournament }
OR = {
AND = {
is_in_guest_subset = { name = qualified }
involved_activity = {
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_duel
has_current_phase = tournament_phase_joust
}
}
}
AND = {
has_character_modifier = ignores_gender_army_rules
is_in_guest_subset = { name = qualified }
}
}
}
activity_tournament_shirtless_trigger = {
involved_activity ?= {
has_activity_type = activity_tournament
has_current_phase = tournament_phase_wrestling
}
is_in_guest_subset = { name = qualified }
}
activity_tournament_valid_winner_trigger = {
is_alive = yes
exists = var:contest_aptitude
exists = var:progress_to_victory
}
activity_adult_available_or_attending_same_activity_trigger = {
is_adult = yes
OR = {
is_available = yes
AND = {
exists = involved_activity
involved_activity = scope:activity
}
}
}
activity_tournament_versus_contest_trigger = {
OR = {
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_wrestling
has_current_phase = tournament_phase_duel
has_current_phase = tournament_phase_board_game
}
}
activity_tournament_team_contest_trigger = {
scope:activity = { has_current_phase = tournament_phase_melee }
}
activity_tournament_turn_contest_trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_archery
has_current_phase = tournament_phase_recital
}
}
}
activity_tournament_mind_contest_trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_recital
has_current_phase = tournament_phase_board_game
}
}
}
activity_tournament_prowess_contest_trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_duel
has_current_phase = tournament_phase_wrestling
}
}
}
activity_tournament_armor_contest_trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_duel
}
}
}
activity_tournament_horse_contest_trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_horse_race
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_melee
}
}
}
activity_tournament_race_contest_trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
activity_tournament_same_team_trigger = {
scope:activity = {
OR = {
AND = {
any_guest_subset = {
name = team_alpha
this = $FIRST$
}
any_guest_subset = {
name = team_alpha
this = $SECOND$
}
}
AND = {
any_guest_subset = {
name = team_beta
this = $FIRST$
}
any_guest_subset = {
name = team_beta
this = $SECOND$
}
}
}
}
}
tournament_character_any_contest_winner_trigger = {
involved_activity = {
any_guest_subset = {
name = winner
this = $CHAR$
phase = tournament_phase_$CONTEST$
}
}
}
contest_versus_player_vs_ai_trigger = {
calc_true_if = {
amount = 1
scope:versus_matchee = { is_ai = no }
scope:versus_matcher = { is_ai = no }
}
calc_true_if = {
amount = 1
scope:versus_matchee = { is_ai = yes }
scope:versus_matcher = { is_ai = yes }
}
NOR = {
scope:versus_matchee = { has_character_flag = resigned_contest_flag }
scope:versus_matcher = { has_character_flag = resigned_contest_flag }
}
}
contest_event_general_contestant_valid_trigger = {
is_alive = yes
exists = var:contest_aptitude
exists = var:progress_to_victory
is_ai = yes
NOT = { this = root }
}
has_ongoing_grand_activity_trigger = {
trigger_if = {
limit = { exists = involved_activity }
involved_activity = {
OR = {
has_activity_type = activity_tournament
has_activity_type = activity_tour
has_activity_type = activity_wedding
}
}
}
trigger_else = {
always = no
}
}
is_grand_activity_trigger = {
OR = {
has_activity_type = activity_tournament
has_activity_type = activity_tour
has_activity_type = activity_wedding
}
}
tournament_contest_event_trigger = {
is_ai = no
is_in_guest_subset = { name = qualified }
exists = var:progress_to_victory
NOT = { has_character_flag = busy_in_contest_event }
}
tournament_contest_versus_event_trigger = {
is_ai = no
exists = var:progress_to_victory
is_in_guest_subset = { name = qualified }
NOT = { has_character_flag = resigned_contest_flag }
save_temporary_scope_as = versus_event_scope
# Only fire events if the bout has not been pre-decided
involved_activity = {
switch = {
trigger = has_current_phase
tournament_phase_joust = {
scope:versus_event_scope = {
switch = {
trigger = involved_activity.var:contest_versus_progress
0 = { exists = var:contest_qualified_match_joust.var:progress_to_victory }
1 = { exists = var:contest_semi_finalist_match_joust.var:progress_to_victory }
2 = { exists = var:contest_finalist_match_joust.var:progress_to_victory }
}
}
}
tournament_phase_duel = {
scope:versus_event_scope = {
switch = {
trigger = involved_activity.var:contest_versus_progress
0 = { exists = var:contest_qualified_match_duel.var:progress_to_victory }
1 = { exists = var:contest_semi_finalist_match_duel.var:progress_to_victory }
2 = { exists = var:contest_finalist_match_duel.var:progress_to_victory }
}
}
}
tournament_phase_wrestling = {
scope:versus_event_scope = {
switch = {
trigger = involved_activity.var:contest_versus_progress
0 = { exists = var:contest_qualified_match_wrestling.var:progress_to_victory }
1 = { exists = var:contest_semi_finalist_match_wrestling.var:progress_to_victory }
2 = { exists = var:contest_finalist_match_wrestling.var:progress_to_victory }
}
}
}
tournament_phase_board_game = {
scope:versus_event_scope = {
switch = {
trigger = involved_activity.var:contest_versus_progress
0 = { exists = var:contest_qualified_match_board_game.var:progress_to_victory }
1 = { exists = var:contest_semi_finalist_match_board_game.var:progress_to_victory }
2 = { exists = var:contest_finalist_match_board_game.var:progress_to_victory }
}
}
}
}
}
}
tournament_contest_can_compete_trigger = {
exists = var:progress_to_victory
NOT = {
is_in_guest_subset = { name = qualified }
}
activity_is_valid_tournament_contestant = yes
}
tournament_contest_can_compete_race_trigger = {
is_adult = yes
exists = var:progress_to_victory
OR = {
is_lowborn = no
AND = {
is_playable_character = yes
primary_title.tier >= tier_county
}
gold >= major_gold_value
}
NOT = {
is_in_guest_subset = { name = qualified }
}
}
contest_team_enemy_member_exists_trigger = {
scope:activity = {
OR = {
is_in_guest_subset = { name = team_alpha }
is_in_guest_subset = { name = team_beta }
}
trigger_if = {
limit = {
is_in_guest_subset = { name = team_alpha }
}
any_guest_subset_current_phase = {
name = team_beta
is_alive = yes
is_ai = yes
}
}
trigger_else = {
any_guest_subset_current_phase = {
name = team_alpha
is_alive = yes
is_ai = yes
}
}
}
}
tournament_pertinent_contestant_trigger = {
OR = {
root.var:contest_murder_attempt ?= this
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
is_consort_of = root
is_close_family_of = root
AND = {
has_court_position = champion_court_position
liege = root
}
is_knight_of = root
AND = {
exists = root.house
house ?= root.house
}
root.var:tournament_wager_target ?= this
}
}
tournament_is_knightly_entourage_character_trigger = {
is_knight = yes
is_playable_character = no
save_temporary_scope_as = char_temp
involved_activity = {
any_attending_character = { this = scope:char_temp.liege }
}
}
would_want_to_attend_tournament = {
trigger_if = {
limit = { is_playable_character = yes }
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_mercenary
government_has_flag = government_is_holy_order
}
}
trigger_else = { is_clergy = no }
OR = {
is_ai = no
has_trait = tourney_participant
has_trait = education_martial
has_trait = education_martial_prowess
has_trait = gregarious
has_trait = brave
prowess >= decent_skill_rating
has_court_position = champion_court_position
is_knight = yes
number_of_commander_traits >= 1
has_any_scripted_relation = scope:inviter
}
}
is_available_ai_adult_locale_person = { #to prevent bishops from being anything else than temple priests
is_available_ai_adult = yes
has_no_particular_noble_roots_trigger = yes
is_clergy = no
}