N3OW/N3OW/events/activities/tournaments/tournament_events.txt
2025-12-05 22:36:07 +00:00

16155 lines
348 KiB
Text

namespace = tournament_events
#######################################
#######################################
### ACTIVITY - 0001-0999 ###
#######################################
#######################################
##################################################
# Tournament Arrival
# by Nick Meredith
# 0050
##################################################
tournament_events.0050 = { # Start
type = activity_event
title = tournament_events.0050.t
desc = {
desc = tournament_events.0050.desc
first_valid = {
triggered_desc = {
trigger = {
has_activity_intent = murder_attendee_intent
}
desc = tournament_events.0050.murder
}
triggered_desc = {
trigger = {
has_activity_intent = woo_attendee_intent
}
desc = tournament_events.0050.seduce
}
triggered_desc = {
trigger = {
has_activity_intent = befriend_attendee_intent
}
desc = tournament_events.0050.befriend
}
triggered_desc = {
trigger = {
has_activity_intent = win_contest_intent
}
desc = tournament_events.0050.win
}
triggered_desc = {
trigger = {
has_activity_intent = recruit_knights_intent
}
desc = tournament_events.0050.recruit
}
triggered_desc = {
trigger = {
NOR = {
has_activity_intent = murder_attendee_intent
has_activity_intent = befriend_attendee_intent
has_activity_intent = win_contest_intent
has_activity_intent = recruit_knights_intent
has_activity_intent = woo_attendee_intent
}
}
desc = tournament_events.0050.relax
}
}
}
theme = tournament_grounds
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
trigger = {
scope:host != root
}
character = scope:host
animation = ecstasy
}
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
exists = scope:host
exists = scope:activity
is_participant_in_activity = scope:activity
NOT = { has_activity_state = travel }
}
immediate = {
if = {
limit = { exists = intent_target }
intent_target = { save_scope_as = starting_intent }
}
}
option = { # Option A
name = tournament_events.0050.a
add_character_flag = arrived_at_tournament_flag
}
}
##################################################
# Tournament Opening
# by Joe Parkin
# 0100
##################################################
tournament_events.0100 = { # Start
type = activity_event
title = tournament_events.0100.t
desc = {
desc = tournament_events.0100.desc
first_valid = {
triggered_desc = {
trigger = { this = scope:host }
desc = tournament_events.0100.host
}
triggered_desc = {
trigger = { activity_is_valid_tournament_contestant = yes }
desc = tournament_events.0100.contestant
}
desc = tournament_events.0100.spectator
}
triggered_desc = {
trigger = { activity_is_valid_tournament_contestant = yes }
desc = tournament_events.0100.closing
}
}
theme = tournament_grounds
left_portrait = {
character = root
}
cooldown = { months = 1 }
trigger = {
#Standard checks.
exists = scope:host
exists = scope:activity
is_participant_in_activity = scope:activity
is_ai = no
NOT = { has_activity_state = travel }
}
option = { # Option A
name = tournament_events.0100.a
}
}
scripted_effect tournament_arrival_prestige_tier_effect = {
if = {
limit = {
any_in_list = {
variable = new_prestige_arrival
highest_held_title_tier = tier_$TIER$
}
}
random_in_list = {
variable = new_prestige_arrival
limit = { highest_held_title_tier = tier_$TIER$ }
save_scope_as = example_$TIER$
}
set_variable = {
name = prestige_arrival_$TIER$
value = {
root = {
every_in_list = {
variable = new_prestige_arrival
limit = { highest_held_title_tier = tier_$TIER$ }
add = 1
}
}
}
}
}
}
tournament_events.0200 = { # Prestige Arrival maintenance
type = character_event
hidden = yes
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
#Standard checks.
scope:host = this
has_character_flag = prestige_arrival_toast
any_in_list = { variable = new_prestige_arrival }
}
immediate = {
# Count number of arrivals from each tier
tournament_arrival_prestige_tier_effect = { TIER = duchy }
tournament_arrival_prestige_tier_effect = { TIER = kingdom }
tournament_arrival_prestige_tier_effect = { TIER = empire }
# Save two scopes for toast
ordered_in_list = {
variable = new_prestige_arrival
order_by = highest_held_title_tier
max = 2
check_range_bounds = no
if = {
limit = {
NOT = { exists = scope:tournament_arrival_1 }
}
save_scope_as = tournament_arrival_1
}
else = { save_scope_as = tournament_arrival_2 }
}
# Send toast
send_interface_toast = {
type = toast_tournament_arrival_prestige
title = tournament_arrival_prestige_toast
if = {
limit = {
exists = var:prestige_arrival_duchy
exists = var:prestige_arrival_kingdom
exists = var:prestige_arrival_empire
}
custom_tooltip = tournament_arrival_prestige_dukes_kingdom_empire
}
else_if = {
limit = {
exists = var:prestige_arrival_duchy
exists = var:prestige_arrival_kingdom
}
custom_tooltip = tournament_arrival_prestige_dukes_kingdom
}
else_if = {
limit = {
exists = var:prestige_arrival_duchy
exists = var:prestige_arrival_empire
}
custom_tooltip = tournament_arrival_prestige_dukes_empire
}
else_if = {
limit = {
exists = var:prestige_arrival_kingdom
exists = var:prestige_arrival_empire
}
custom_tooltip = tournament_arrival_prestige_kingdom_empire
}
else_if = {
limit = { exists = var:prestige_arrival_empire }
custom_tooltip = tournament_arrival_prestige_empire
}
else_if = {
limit = { exists = var:prestige_arrival_kingdom }
custom_tooltip = tournament_arrival_prestige_kingdom
}
else = { custom_tooltip = tournament_arrival_prestige_duchy }
left_icon = scope:tournament_arrival_1
right_icon = scope:tournament_arrival_2
add_prestige = {
value = {
value = 0
if = {
limit = { exists = var:prestige_arrival_duchy }
add = {
value = 10 # per Duke
multiply = var:prestige_arrival_duchy
}
}
if = {
limit = { exists = var:prestige_arrival_kingdom }
add = {
value = 50 # per King
multiply = var:prestige_arrival_kingdom
}
}
if = {
limit = { exists = var:prestige_arrival_empire }
add = {
value = 100 # per Emperor
multiply = var:prestige_arrival_empire
}
}
}
}
}
remove_character_flag = prestige_arrival_toast
clear_variable_list = new_prestige_arrival
remove_variable = prestige_arrival_duchy
remove_variable = prestige_arrival_kingdom
remove_variable = prestige_arrival_empire
}
}
tournament_events.0700 = { # AI Accidental Death
type = character_event
hidden = yes
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
is_ai = yes
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = root
}
trigger_if = {
limit = { exists = var:accident_death_count }
var:accident_death_count < 3
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = 0
subtract = prowess
}
}
modifier = {
factor = 0.5
is_landed = yes
}
# Reduce chance proportionally for each previous accident
modifier = {
exists = scope:activity.var:accident_death_count
factor = {
value = 1
divide = scope:activity.var:accident_death_count
}
}
}
immediate = {
save_scope_as = accident_victim
# Chance for there to be a specific culprit
random = {
chance = 50
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = {
is_ai = yes
this != root
}
weight = {
base = 1
modifier = { add = prowess }
modifier = {
factor = 0.5
is_landed = yes
}
activity_tournament_violent_modifier = yes
}
save_scope_as = accident_killer
}
}
}
tournament_accidental_death_effect = yes
}
}
tournament_events.0701 = { # AI Accidental Death ping
type = activity_event
title = tournament_events.0701.t
desc = tournament_events.0701.desc
theme = tournament_contest
left_portrait = {
character = scope:accident_victim
animation = pain
}
right_portrait = {
trigger = { exists = scope:accident_killer }
character = scope:accident_killer
triggered_animation = {
trigger = { has_trait = callous }
animation = stress
}
triggered_animation = {
trigger = {
NOT = { has_trait = callous }
}
animation = sadness
}
}
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
}
immediate = {
show_as_tooltip = {
if = {
limit = { exists = scope:accident_killer }
scope:accident_victim = {
death = {
death_reason = death_contest_melee_accident
killer = scope:accident_killer
}
}
}
else = {
scope:accident_victim = {
death = { death_reason = death_contest_melee_accident }
}
}
}
scope:accident_victim = {
add_character_flag = wear_armor
}
scope:accident_killer = {
add_character_flag = wear_armor
}
}
option = { # Option A
name = tournament_events.0701.a
}
after = {
scope:accident_victim = {
remove_character_flag = wear_armor
}
scope:accident_killer = {
remove_character_flag = wear_armor
}
}
}
tournament_events.0800 = { # No Longer Valid Contestant
type = activity_event
title = tournament_events.0800.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
has_trait_rank = {
trait = wounded
rank >= 2
}
}
desc = tournament_events.0800.wounded
}
triggered_desc = {
trigger = { has_contagious_deadly_disease_trigger = yes }
desc = tournament_events.0800.disease
}
triggered_desc = {
trigger = { health < fine_health }
desc = tournament_events.0800.health
}
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait_rank = {
trait = wounded
rank >= 2
}
}
animation = pain
}
triggered_animation = {
trigger = { has_trait = incapable }
animation = worry
}
triggered_animation = {
trigger = {
OR = {
health < fine_health
has_contagious_deadly_disease_trigger = yes
}
}
animation = sick
}
}
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
is_alive = yes
exists = var:contest_aptitude
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
activity_is_valid_tournament_contestant = no
NOT = { has_character_flag = tournament_not_competing }
save_temporary_scope_as = withdrawer_temp
NOT = {
scope:activity = {
any_guest_subset_current_phase = {
name = contestant
this = scope:withdrawer_temp
}
}
}
}
immediate = {
save_scope_as = contest_withdrawal
}
option = { # Success
name = tournament_events.0800.a
remove_variable = contest_aptitude
scope:activity = {
add_activity_log_entry = {
key = tournament_contest_withdrawal_log
tags = { contest bad }
score = 10
character = scope:contest_withdrawal
custom_description = {
text = tournament_contest_withdraw_tt
subject = scope:contest_withdrawal
}
}
}
}
option = {
name = tournament_events.0800.b
}
after = {
scope:activity = {
every_attending_character = {
limit = {
is_ai = no
OR = {
has_any_scripted_relation = scope:contest_withdrawal
is_close_family_of = scope:contest_withdrawal
is_consort_of = scope:contest_withdrawal
scope:host = scope:contest_withdrawal
trigger_if = {
limit = { exists = intent_target }
intent_target = scope:contest_withdrawal
}
}
}
trigger_event = tournament_events.0801
}
}
}
}
tournament_events.0801 = { # No Longer Valid Contestant Ping
type = activity_event
title = tournament_events.0801.t
desc = {
desc = tournament_events.0801.desc
first_valid = {
triggered_desc = {
trigger = {
scope:contest_withdrawal = {
has_trait_rank = {
trait = wounded
rank >= 2
}
}
}
desc = tournament_events.0801.wounded
}
triggered_desc = {
trigger = {
scope:contest_withdrawal = { has_contagious_deadly_disease_trigger = yes }
}
desc = tournament_events.0801.disease
}
triggered_desc = {
trigger = {
scope:contest_withdrawal = { health < fine_health }
}
desc = tournament_events.0801.health
}
}
}
theme = tournament_grounds
left_portrait = {
character = scope:contest_withdrawal
triggered_animation = {
trigger = {
has_trait_rank = {
trait = wounded
rank >= 2
}
}
animation = pain
}
triggered_animation = {
trigger = { has_trait = incapable }
animation = worry
}
triggered_animation = {
trigger = {
OR = {
health < fine_health
has_contagious_deadly_disease_trigger = yes
}
}
animation = sick
}
}
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this != scope:contest_withdrawal
}
immediate = {
custom_description = {
text = tournament_contest_withdraw_tt
subject = scope:contest_withdrawal
}
}
option = { # Success
name = tournament_events.0801.a
}
}
tournament_events.0999 = { # Debug Bin
type = activity_event
title = LOREM_IPSUM_TITLE
desc = debug_tournament_population_count_tt
theme = realm
orphan = yes
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
# To stop errors
OR = {
var:contest_type ?= flag:tournament_phase_duel
var:contest_type ?= flag:tournament_phase_joust
var:contest_type ?= flag:tournament_phase_melee
var:contest_type ?= flag:tournament_phase_wrestling
var:contest_type ?= flag:tournament_phase_board_game
var:contest_type ?= flag:tournament_phase_recital
var:contest_type ?= flag:tournament_phase_archery
var:contest_type ?= flag:tournament_phase_horse_race
}
}
immediate = {
involved_activity = {
save_scope_as = activity
activity_host = { save_scope_as = host }
}
}
option = {
name = LOREM_IPSUM_TITLE
}
}
##################################################
# Tournament Close
# by Nick Meredith
# 0150
##################################################
# Tournament Ends
tournament_events.0150 = {
type = activity_event
title = tournament_events.0150.t
desc = {
desc = tournament_events.0150.desc
triggered_desc = {
trigger = { exists = scope:melee_winner }
desc ={
first_valid = {
triggered_desc = {
trigger = { this = scope:melee_winner }
desc = tournament_events.0150.melee_self
}
desc = tournament_events.0150.melee
}
}
}
triggered_desc = {
trigger = { exists = scope:archery_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:archery_winner }
desc = tournament_events.0150.archery_self
}
desc = tournament_events.0150.archery
}
}
}
triggered_desc = {
trigger = { exists = scope:horse_race_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:horse_race_winner }
desc = tournament_events.0150.horse_race_self
}
desc = tournament_events.0150.horse_race
}
}
}
triggered_desc = {
trigger = { exists = scope:recital_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:recital_winner }
desc = tournament_events.0150.recital_self
}
desc = tournament_events.0150.recital
}
}
}
triggered_desc = {
trigger = { exists = scope:joust_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:joust_winner }
desc = tournament_events.0150.joust_self
}
desc = tournament_events.0150.joust
}
}
}
triggered_desc = {
trigger = { exists = scope:wrestling_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:wrestling_winner }
desc = tournament_events.0150.wrestling_self
}
desc = tournament_events.0150.wrestling
}
}
}
triggered_desc = {
trigger = { exists = scope:duel_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:duel_winner }
desc = tournament_events.0150.duel_self
}
desc = tournament_events.0150.duel
}
}
}
triggered_desc = {
trigger = { exists = scope:board_game_winner }
desc = {
first_valid = {
triggered_desc = {
trigger = { this = scope:board_game_winner }
desc = tournament_events.0150.board_game_self
}
desc = tournament_events.0150.board_game
}
}
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:finishing_intent
has_completed_activity_intent = { type = murder_attendee_intent target = scope:finishing_intent }
}
desc = tournament_events.0150.murdersuccess
}
triggered_desc = {
trigger = { has_activity_intent = murder_attendee_intent }
desc = tournament_events.0150.murderfailure
}
triggered_desc = {
trigger = {
exists = scope:finishing_intent
has_completed_activity_intent = { type = woo_attendee_intent target = scope:finishing_intent }
}
desc = tournament_events.0150.seducesuccess
}
triggered_desc = {
trigger = { has_activity_intent = woo_attendee_intent }
desc = tournament_events.0150.seducefailure
}
triggered_desc = {
trigger = {
exists = scope:finishing_intent
has_completed_activity_intent = { type = befriend_attendee_intent target = scope:finishing_intent }
}
desc = tournament_events.0150.seducesuccess
}
triggered_desc = {
trigger = { has_activity_intent = befriend_attendee_intent }
desc = tournament_events.0150.befriendfailure
}
triggered_desc = {
trigger = {
has_activity_intent = win_contest_intent
scope:activity = {
any_guest_subset = {
name = winner
this = root
}
}
}
desc = tournament_events.0150.winsuccess
}
triggered_desc = { #CE1 legend seed drop
trigger = {
has_activity_intent = win_contest_intent
scope:activity = {
any_guest_subset = {
name = winner
this = root
}
}
AND = {
has_variable = tournaments_won_count
var:tournaments_won_count = 3
}
}
desc = tournament_events.0150.legendseeddrop
}
triggered_desc = {
trigger = { has_activity_intent = win_contest_intent }
desc = tournament_events.0150.winfailure
}
triggered_desc = {
trigger = {
has_completed_activity_intent = { type = recruit_knights_intent }
}
desc = tournament_events.0150.knightsuccess
}
triggered_desc = {
trigger = { has_activity_intent = recruit_knights_intent }
desc = tournament_events.0150.knightfailure
}
}
desc = tournament_events.0150.end
}
theme = tournament_grounds
left_portrait = {
character = scope:host
animation = war_over_win
}
right_portrait = {
character = root
trigger = {
this != scope:host
}
}
artifact = {
position = lower_left_portrait
target = scope:contest_prize_1
}
artifact = {
position = lower_center_portrait
target = scope:contest_prize_2
}
artifact = {
position = lower_right_portrait
target = scope:contest_prize_3
}
immediate = {
# Save intent target for loc
if = {
limit = { exists = intent_target }
intent_target = { save_scope_as = finishing_intent }
}
if = {
limit = {
exists = scope:activity.special_guest:special_guest_champion
}
scope:activity.special_guest:special_guest_champion = {
save_scope_as = tournament_champion
}
}
tournament_disburse_contest_prize_tooltip_effect = yes
show_as_tooltip = {
scope:host = { disburse_tournament_activity_rewards = yes }
}
disburse_xp_and_liege_prestige_effect = yes
if = { # Add Spectator modifier if did not compete
limit = {
scope:activity = {
NOT = {
any_guest_subset = {
name = qualified
this = root
}
}
}
}
add_character_modifier = { modifier = tournament_contest_spectator_modifier years = 5 }
}
if = { #win tracker for legend seeds
limit = {
has_activity_intent = win_contest_intent
scope:activity = {
any_guest_subset = {
name = winner
this = root
}
}
}
if = {
limit = {
has_variable = tournaments_won_count
}
change_variable = {
name = tournaments_won_count
add = 1
}
}
else = {
set_variable = {
name = tournaments_won_count
value = 1
}
}
}
if = { #CE1 legend seed drop
limit = {
has_variable = tournaments_won_count
var:tournaments_won_count = 3
NOT = { has_character_flag = tournament_won_legend }
has_dlc_feature = legends
NOT = { has_game_rule = historical_legends_only }
}
create_legend_seed = {
type = heroic
quality = famed
chronicle = tournament_won
properties = {
winner = root
location = root.location
}
}
add_character_flag = tournament_won_legend
}
# We change your extra cool thing to be a Tournament Win
if = {
limit = {
has_legend_chapter_trigger = { CHAPTER = extra_deed }
NOT = {
promoted_legend = { has_legend_chronicle = tournament_won }
}
NOT = {
promoted_legend ?= {
has_legend_chapter = {
name = extra_deed
localization_key = legend_chapter_extra_deed_recent_tournament
}
}
}
}
random = {
chance = 50
send_interface_toast = {
title = legend_chapter_change_toast
left_icon = root
promoted_legend = {
set_legend_chapter = {
name = extra_deed
localization_key = legend_chapter_extra_deed_recent_tournament
}
}
}
}
}
# LEGITIMACY GAIN FOR GRAND ACTIVITY PARTICIPATION - TOURNAMENT
grand_activity_participation_legitimacy_effect = yes
}
option = { #Celebrate the end
name = tournament_events.0150.a
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.5
ai_greed = 1
}
}
}
option = { #Give a speech
name = tournament_events.0150.b
trigger = {
this = scope:activity.activity_host
}
duel = {
skill = diplomacy
value = medium_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
min = -49
}
desc = tournament_events.0150.b.success
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.0150.b.success
left_icon = root
add_prestige = minor_prestige_gain
every_vassal_or_below = {
vassal_stance = courtly
limit = {
is_participant_in_activity = scope:activity
}
custom = every_participating_courtly_vassal
add_opinion = {
modifier = impressed_opinion
target = root
opinion = 15
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2
min = -49
}
desc = tournament_events.0150.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.0150.b.failure
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_honor = 1
}
}
}
option = { #Give your champion a bonus
name = tournament_events.0150.c
trigger = {
exists = scope:tournament_champion
scope:tournament_champion.liege = this
OR = {
scope:melee_winner ?= scope:tournament_champion
scope:archery_winner ?= scope:tournament_champion
scope:horse_race_winner ?= scope:tournament_champion
scope:recital_winner ?= scope:tournament_champion
scope:joust_winner ?= scope:tournament_champion
scope:wrestling_winner ?= scope:tournament_champion
scope:duel_winner ?= scope:tournament_champion
scope:board_game_winner ?= scope:tournament_champion
}
}
pay_short_term_gold = {
target = scope:tournament_champion
gold = minor_gold_value
}
reverse_add_opinion = {
target = scope:tournament_champion
modifier = respect_opinion
opinion = 40
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_greed = -1
ai_honor = 0.5
}
}
}
after = {
# Marriage prize event
if = {
limit = { this = scope:host }
trigger_event = {
id = tournament_events.0160
days = 3
}
}
}
}
# Container for end of tournament effects so they can be run on a delay
tournament_events.0151 = {
type = character_event
hidden = yes
immediate = {
# Save winner scopes for loc
tournament_save_contest_winner_scopes_effect = yes
# Create log entry and hand out rewards
scope:activity = {
add_activity_log_entry = {
key = tournament_complete_log
character = scope:host
score = 100
show_in_conclusion = yes
#Effect
scope:host = { disburse_tournament_activity_rewards = yes }
}
# Hand out prize artifacts
scope:host = { tournament_disburse_contest_prize_effect = yes }
every_attending_character = {
# Trigger summary event
trigger_event = tournament_events.0150
}
}
}
}
##################################################
# Marriage Prize Follow Up
# by Joe Parkin
# 0160
##################################################
scripted_effect tournament_marriage_prize_effect = {
save_scope_as = marriage_winner
scope:host = {
send_interface_toast = {
type = toast_tournament_marriage_prize
title = tournament_marriage_prize_toast
left_icon = scope:marriage_prize
right_icon = scope:marriage_winner
scope:marriage_winner = {
if = {
limit = {
OR = {
is_adult = no
scope:marriage_prize = { is_adult = no }
}
}
create_betrothal = scope:marriage_prize
}
else = { marry = scope:marriage_prize }
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 10
}
}
if = {
limit = {
scope:host != scope:marriage_winner
}
scope:host = { add_prestige = medium_prestige_gain }
}
}
}
if = {
limit = {
scope:host != scope:marriage_winner
}
every_in_list = {
list = bachelors
limit = {
NOR = {
this = scope:marriage_winner
this = scope:host
}
}
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
}
scope:host = {
if = {
limit = { is_in_list = bachelors }
stress_impact = {
arbitrary = minor_stress_impact_gain
greedy = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
}
}
}
else = {
every_in_list = {
list = bachelors
limit = {
this != scope:host
}
add_opinion = {
target = root
modifier = angry_opinion
opinion = -20
}
}
scope:host = {
if = {
limit = { exists = scope:bachelor_2 }
stress_impact = {
just = minor_stress_impact_gain
generous = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
}
}
}
}
scripted_effect tournament_marriage_prize_winner_scope_effect = {
if = {
limit = {
scope:$CONTEST$_winner ?= { can_marry_character_trigger = { CHARACTER = scope:marriage_prize } }
}
scope:$CONTEST$_winner = { add_to_list = bachelors }
}
}
tournament_events.0160 = {
type = activity_event
title = tournament_events.0160.t
desc = {
desc = tournament_events.0160.desc
first_valid = {
triggered_desc = { # Host is only option
trigger = {
any_in_list = { list = bachelors count = 1 }
any_in_list = { list = bachelors this = root }
}
desc = contest_events_closing_marriage_valid_host_only
}
triggered_desc = { # Host is one among options
trigger = {
any_in_list = { list = bachelors count > 1 }
any_in_list = { list = bachelors this = root }
}
desc = contest_events_closing_marriage_host
}
triggered_desc = { # 3 options
trigger = {
any_in_list = { list = bachelors count = 3 }
}
desc = contest_events_closing_marriage_three
}
triggered_desc = { # 2 options
trigger = {
any_in_list = { list = bachelors count = 2 }
}
desc = contest_events_closing_marriage_two
}
triggered_desc = { # 1 option
trigger = {
any_in_list = { list = bachelors count = 1 }
}
desc = contest_events_closing_marriage_one
}
desc = contest_events_closing_marriage_none # No options
}
triggered_desc = {
trigger = {
any_in_list = {
list = bachelors
this != root
}
}
desc = contest_events_closing_marriage_valid
}
}
theme = tournament_grounds
left_portrait = {
character = scope:host
animation = thinking
}
right_portrait = {
character = scope:marriage_prize
animation = war_over_win
}
lower_left_portrait = scope:bachelor_1
lower_center_portrait = scope:bachelor_2
lower_right_portrait = scope:bachelor_3
trigger = {
scope:activity.var:tournament_marriage_prize ?= {
is_alive = yes
NOT = { has_trait_with_flag = can_not_marry }
trigger_if = {
limit = { exists = primary_title }
NOR = {
# Block Mercenaries from marrying or showing up in marriage interactions
primary_title = { is_mercenary_company = yes }
}
NOR = {
is_leading_faction_type = peasant_faction
is_leading_faction_type = populist_faction
}
}
trigger_if = {
limit = { is_clergy = yes }
faith = { has_doctrine_parameter = clergy_can_marry }
}
}
}
immediate = {
scope:activity.var:tournament_marriage_prize = { save_scope_as = marriage_prize }
tournament_marriage_prize_winner_scope_effect = { CONTEST = joust }
tournament_marriage_prize_winner_scope_effect = { CONTEST = wrestling }
tournament_marriage_prize_winner_scope_effect = { CONTEST = duel }
tournament_marriage_prize_winner_scope_effect = { CONTEST = board_game }
tournament_marriage_prize_winner_scope_effect = { CONTEST = recital }
tournament_marriage_prize_winner_scope_effect = { CONTEST = archery }
tournament_marriage_prize_winner_scope_effect = { CONTEST = horse_race }
while = {
limit = {
any_in_list = { list = bachelors }
AND = {
any_in_list = {
list = bachelors
NOR = {
scope:bachelor_1 ?= this
scope:bachelor_2 ?= this
scope:bachelor_3 ?= this
}
}
NOT = { exists = scope:bachelor_3 }
}
}
random_in_list = {
list = bachelors
limit = {
this = scope:host
NOR = {
scope:bachelor_1 ?= this
scope:bachelor_2 ?= this
scope:bachelor_3 ?= this
}
}
alternative_limit = {
is_landed = yes
is_lowborn = no
NOR = {
scope:bachelor_1 ?= this
scope:bachelor_2 ?= this
scope:bachelor_3 ?= this
}
}
alternative_limit = {
NOR = {
scope:bachelor_1 ?= this
scope:bachelor_2 ?= this
scope:bachelor_3 ?= this
}
}
weight = {
base = 1
modifier = { add = highest_held_title_tier }
}
if = {
limit = { NOT = { exists = scope:bachelor_1 } }
save_scope_as = bachelor_1
}
else_if = {
limit = { NOT = { exists = scope:bachelor_2 } }
save_scope_as = bachelor_2
}
else = { save_scope_as = bachelor_3 }
}
}
}
option = { # Award to self
name = tournament_events.0160.a
trigger = { scope:bachelor_1 ?= this }
tournament_marriage_prize_effect = yes
ai_chance = {
base = 75
modifier = {
OR = {
has_relation_crush = scope:marriage_prize
has_relation_lover = scope:marriage_prize
}
add = 100
}
opinion_modifier = {
opinion_target = scope:marriage_prize
multiplier = 0.5
}
ai_value_modifier = {
ai_boldness = 1
ai_greed = 0.5
ai_honor = -1
}
}
}
option = { # Award to 1st
name = tournament_events.0160.b
trigger = {
exists = scope:bachelor_1
NOT = { is_in_list = bachelors }
}
scope:bachelor_1 = { tournament_marriage_prize_effect = yes }
ai_chance = {
base = 75
opinion_modifier = {
opinion_target = scope:bachelor_1
multiplier = 0.5
}
ai_value_modifier = {
ai_honor = 0.5
}
}
}
option = { # Award to 2nd
name = tournament_events.0160.c
trigger = { exists = scope:bachelor_2 }
scope:bachelor_2 = { tournament_marriage_prize_effect = yes }
ai_chance = {
base = 75
opinion_modifier = {
opinion_target = scope:bachelor_2
multiplier = 0.5
}
ai_value_modifier = {
ai_honor = 0.5
}
}
}
option = { # Award to 3rd
name = tournament_events.0160.d
trigger = { exists = scope:bachelor_3 }
scope:bachelor_3 = { tournament_marriage_prize_effect = yes }
ai_chance = {
base = 75
opinion_modifier = {
opinion_target = scope:bachelor_3
multiplier = 0.5
}
ai_value_modifier = {
ai_honor = 0.5
}
}
}
option = { # Change mind and renege
name = tournament_events.0160.e
trigger = {
any_in_list = {
list = bachelors
this != root
}
}
add_prestige = medium_prestige_loss
every_in_list = {
list = bachelors
add_opinion = {
target = scope:host
modifier = tournament_reneged_marriage_prize_opinion
opinion = -20
}
}
stress_impact = {
just = minor_stress_impact_gain
honest = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = -1
ai_boldness = 0.5
}
}
}
option = { # Refuse as only suitor
name = tournament_events.0160.f
trigger = {
any_in_list = { list = bachelors this = root }
any_in_list = { list = bachelors count = 1 }
}
add_prestige = minor_prestige_gain
stress_impact = {
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 0.5
ai_compassion = 0.5
ai_boldness = -0.5
}
}
}
option = { # No suitors
name = tournament_events.0160.g
trigger = {
NOT = {
any_in_list = { list = bachelors }
}
}
}
after = {
scope:activity = {
every_attending_character = {
limit = {
this != scope:host
}
trigger_event = tournament_events.0161
}
}
}
}
tournament_events.0161 = {
type = activity_event
title = tournament_events.0160.t
desc = {
desc = tournament_events.0161.desc
first_valid = { # Marriage prize outcomes
triggered_desc = {
trigger = {
scope:marriage_winner ?= scope:host
scope:marriage_winner ?= { is_spouse_of = scope:marriage_prize }
}
desc = contest_events_closing_marriage_wedding_host
}
triggered_desc = {
trigger = {
scope:marriage_winner ?= scope:host
scope:marriage_winner = { is_betrothed = yes }
scope:marriage_prize = { is_betrothed = yes }
}
desc = contest_events_closing_marriage_betrothal_host
}
triggered_desc = {
trigger = {
scope:marriage_winner ?= { is_betrothed = yes }
scope:marriage_prize = { is_betrothed = yes }
}
desc = contest_events_closing_marriage_betrothal
}
triggered_desc = {
trigger = {
scope:marriage_winner ?= { is_spouse_of = scope:marriage_prize }
}
desc = contest_events_closing_marriage_wedding
}
triggered_desc = {
trigger = {
any_in_list = {
list = bachelors
has_opinion_modifier = {
target = scope:host
modifier = tournament_reneged_marriage_prize_opinion
}
}
}
desc = contest_events_closing_marriage_reneged_winner
}
triggered_desc = {
trigger = {
NOT = {
any_in_list = { list = bachelors }
}
}
desc = contest_events_closing_marriage_invalid
}
desc = contest_events_closing_marriage_host_refused
}
}
theme = realm
override_background = {
reference = army_camp
}
left_portrait = {
character = root
triggered_animation = {
trigger = { this = scope:marriage_winner }
animation = happiness
}
animation = thinking
}
right_portrait = {
character = scope:marriage_prize
animation = war_over_win
}
trigger = { is_ai = no }
immediate = {
show_as_tooltip = {
scope:marriage_winner = {
if = {
limit = {
OR = {
is_adult = no
scope:marriage_prize = { is_adult = no }
}
}
create_betrothal = scope:marriage_prize
}
else = { marry = scope:marriage_prize }
}
}
}
option = {
name = tournament_events.0161.a
trigger = { scope:marriage_winner ?= this }
}
option = {
name = tournament_events.0161.b
trigger = {
any_in_list = {
list = bachelors
has_opinion_modifier = {
target = scope:host
modifier = tournament_reneged_marriage_prize_opinion
}
}
}
}
option = {
name = tournament_events.0161.c
trigger = {
NOT = {
any_in_list = { list = bachelors }
}
}
}
}
###################################
###################################
### FLAVOR - 1000-2999 ###
###################################
###################################
##################################################
# Place Your Bets
# by Joe Parkin
# 1000
##################################################
tournament_events.1000 = { # Select wager
type = activity_event
title = tournament_events.1000.t
desc = {
desc = tournament_events.1000.desc
first_valid = {
triggered_desc = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
desc = tournament_events.1000.horse_race
}
desc = tournament_events.1000.fallback
}
}
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:wager_portrait
trigger = { exists = scope:wager_portrait }
}
lower_right_portrait = {
character = scope:wager_underdog_contestant
trigger = {
exists = scope:wager_underdog_contestant
root != scope:wager_underdog_contestant
}
}
lower_left_portrait = {
character = scope:wager_top_contestant
trigger = {
root != scope:wager_top_contestant
}
}
cooldown = { months = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
}
immediate = {
save_scope_as = wagerer
scope:activity = { tournament_generate_wager_scope_effect = yes }
if = {
limit = { exists = scope:wager_flavor_contestant }
scope:wager_flavor_contestant = { save_scope_as = wager_portrait }
}
else_if = {
limit = { exists = scope:wager_champion_contestant }
scope:wager_champion_contestant = { save_scope_as = wager_portrait }
}
else_if = {
limit = { exists = scope:mysterious_stranger }
scope:mysterious_stranger = { save_scope_as = wager_portrait }
}
else_if = {
limit = { exists = scope:wager_second_contestant }
scope:wager_second_contestant = { save_scope_as = wager_portrait }
}
if = {
limit = { exists = var:contest_aptitude }
tournament_horse_race_fetch_horse_effect = yes
}
}
option = { # Bet on self
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
root = scope:wager_top_contestant
}
text = tournament_events.1000.a.best_horse
}
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
root != scope:wager_top_contestant
}
text = tournament_events.1000.a.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.a
}
trigger = {
exists = var:contest_aptitude
exists = var:progress_to_victory_score
scope:activity = {
any_guest_subset = {
name = qualified
this = root
}
}
}
tournament_place_wager_effect = { CONTENDER = root }
tournament_contest_maysir_effect = yes
stress_impact = {
humble = medium_stress_impact_gain
greedy = minor_stress_impact_gain
profligate = minor_stress_impact_loss
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_boldness = 1
ai_honor = -0.5
}
modifier = {
has_trait = arrogant
factor = 2
}
}
}
option = { # Bet on favorite
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.1000.b.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.b
}
trigger = {
this != scope:wager_top_contestant
}
highlight_portrait = scope:wager_top_contestant
tournament_place_wager_effect = { CONTENDER = scope:wager_top_contestant }
tournament_bet_on_other_stress_effect = yes
tournament_contest_maysir_effect = yes
ai_chance = {
base = 20
activity_tournament_wager_ai_option_modifier = { TARGET = scope:wager_top_contestant }
}
}
option = { # Bet on second favorite
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.1000.c.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.c
}
trigger = {
exists = scope:wager_second_contestant
this != scope:wager_second_contestant
}
highlight_portrait = scope:wager_second_contestant
tournament_place_wager_effect = { CONTENDER = scope:wager_second_contestant }
tournament_contest_maysir_effect = yes
tournament_bet_on_other_stress_effect = yes
ai_chance = {
base = 10
activity_tournament_wager_ai_option_modifier = { TARGET = scope:wager_second_contestant }
}
}
option = { # Bet on champion
name = tournament_events.1000.d
trigger = {
exists = scope:wager_champion_contestant
this != scope:wager_champion_contestant
}
highlight_portrait = scope:wager_champion_contestant
tournament_place_wager_effect = { CONTENDER = scope:wager_champion_contestant }
tournament_contest_maysir_effect = yes
tournament_bet_on_other_stress_effect = yes
ai_chance = {
base = 10
activity_tournament_wager_ai_option_modifier = { TARGET = scope:wager_champion_contestant }
}
}
option = { # Bet on underdog
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.1000.e.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.e
}
trigger = {
exists = scope:wager_underdog_contestant
this != scope:wager_underdog_contestant
}
highlight_portrait = scope:wager_underdog_contestant
tournament_place_wager_effect = { CONTENDER = scope:wager_underdog_contestant }
tournament_contest_maysir_effect = yes
tournament_bet_on_other_stress_effect = yes
ai_chance = {
base = 10
activity_tournament_wager_ai_option_modifier = { TARGET = scope:wager_underdog_contestant }
}
}
option = { # Bet on flavor
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.1000.f.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.f
}
trigger = {
exists = scope:wager_flavor_contestant
this != scope:wager_flavor_contestant
}
highlight_portrait = scope:wager_flavor_contestant
tournament_place_wager_effect = { CONTENDER = scope:wager_flavor_contestant }
tournament_contest_maysir_effect = yes
tournament_bet_on_other_stress_effect = yes
ai_chance = {
base = 10
activity_tournament_wager_ai_option_modifier = { TARGET = scope:wager_flavor_contestant }
}
}
option = { # Bet on mysterious stranger
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.1000.g.horse
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.1000.g
}
trigger = {
exists = scope:mysterious_stranger
this != scope:mysterious_stranger
scope:mysterious_stranger = {
trigger_if = {
limit = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
has_character_flag = horse_race_mysterious_stranger
}
trigger_else = {
NOT = { has_character_flag = horse_race_mysterious_stranger }
}
}
}
highlight_portrait = scope:mysterious_stranger
tournament_place_wager_effect = { CONTENDER = scope:mysterious_stranger }
tournament_contest_maysir_effect = yes
tournament_bet_on_other_stress_effect = yes
ai_chance = {
base = 10
activity_tournament_wager_ai_option_modifier = { TARGET = scope:mysterious_stranger }
}
}
option = { # Don't bet
name = tournament_events.1000.h
if = {
limit = {
religion = religion:islam_religion
scope:activity = {
NOR = {
has_current_phase = tournament_phase_archery
has_current_phase = tournament_phase_horse_race
}
}
}
stress_impact = {
cynical = minor_stress_impact_gain
}
}
if = {
limit = { exists = var:contest_aptitude }
stress_impact = {
arrogant = medium_stress_impact_gain
}
}
stress_impact = {
base = miniscule_stress_impact_gain
greedy = minor_stress_impact_gain
brave = minor_stress_impact_gain
profligate = medium_stress_impact_loss
fickle = minor_stress_impact_loss
arbitrary = minor_stress_impact_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = -1
ai_energy = -1
}
modifier = {
has_trait = craven
factor = 2
}
}
}
}
##################################################
# Pas d'armes
# by Joe Parkin
# 1100-1151
##################################################
scripted_trigger tournament_pas_darmes_era_trigger = {
scope:host = {
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
}
}
culture = { has_cultural_era_or_later = culture_era_early_medieval }
}
scripted_trigger tournament_pas_darmes_instigator_trigger = {
is_landed = no
is_lowborn = no
NOR = {
has_trait = humble
has_trait = craven
}
activity_is_valid_tournament_contestant = yes
tournament_pas_darmes_era_trigger = yes
this != scope:activity.special_guest:special_guest_champion
}
tournament_events.1100 = { # Start - Alone
type = activity_event
title = tournament_events.1100.t
desc = tournament_events.1100.desc
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = marshal
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
tournament_pas_darmes_era_trigger = yes
scope:activity = {
NOT = {
any_in_list = { variable = pas_darmes_instigators }
}
any_attending_character = {
tournament_pas_darmes_instigator_trigger = yes
scope:host != this
}
}
}
weight_multiplier = {
base = 1
tournament_pas_darmes_culture_tradition_modifier = yes
}
immediate = {
scope:activity = {
random_attending_character = {
limit = { tournament_pas_darmes_instigator_trigger = yes }
weight = {
base = 0
activity_tournament_pas_darmes_modifier = yes
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = pas_darmes_instigator
add_prestige = minor_prestige_value
set_variable = {
name = pas_darmes_victories
value = 0
}
try_to_create_recurring_character_effect = { CHARACTER = root }
}
add_to_variable_list = {
name = pas_darmes_instigators
target = scope:pas_darmes_instigator
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
}
option = { # Encourage
name = tournament_events.1100.a
scope:pas_darmes_instigator = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
stress_impact = {
arbitrary = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = 0.5
ai_honor = 0.5
}
}
}
option = { # Seduction
name = tournament_events.1100.c
trigger = {
is_attracted_to_gender_of = scope:pas_darmes_instigator
can_start_scheme = {
type = seduce
target_character = scope:pas_darmes_instigator
}
}
start_scheme = {
type = seduce
target_character = scope:pas_darmes_instigator
}
random_scheme ={
type = seduce
limit = {
scheme_target_character = scope:pas_darmes_instigator
}
add_scheme_modifier = { type = tournament_pas_darmes_seduce_modifier }
}
stress_impact = {
lustful = minor_stress_impact_loss
chaste = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_sociability = 1
ai_energy = 1
}
}
}
option = { # Forbid
name = tournament_events.1100.d
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_pas_darmes_forbidden_opinion
opinion = -10
}
add_prestige = medium_prestige_loss
custom_tooltip = tournament_pas_darmes_forbidden_tt
stress_impact = {
brave = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 1
ai_sociability = -1
ai_energy = -1
}
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
}
}
scripted_trigger tournament_exotic_pas_darmes_county_trigger = {
NOT = {
culture = { has_same_culture_heritage = scope:host.culture }
}
tournament_pas_darmes_era_trigger = yes
holder = { in_diplomatic_range = scope:host }
}
tournament_events.1101 = { # Start - Exotic
type = activity_event
title = tournament_events.1101.t
desc = tournament_events.1101.desc
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = marshal
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
scope:activity = {
any_attending_character = {
count < 240 #Max is 250, leaving some space for stragglers
}
}
#Standard checks.
tournament_pas_darmes_era_trigger = yes
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
}
NOT = {
scope:activity = {
any_in_list = { variable = pas_darmes_instigators }
}
}
any_empire = {
NOT = {
any_title_to_title_neighboring_and_across_water_empire = { this = root.primary_title.empire }
}
any_de_jure_county = { tournament_exotic_pas_darmes_county_trigger = yes }
}
scope:host = this
}
weight_multiplier = {
base = 1
tournament_pas_darmes_culture_tradition_modifier = yes
}
immediate = {
random_empire = {
limit = {
NOT = {
any_title_to_title_neighboring_and_across_water_empire = { this = root.primary_title.empire }
}
any_de_jure_county = { tournament_exotic_pas_darmes_county_trigger = yes }
}
save_scope_as = exotic_empire
random_de_jure_county = {
limit = { tournament_exotic_pas_darmes_county_trigger = yes }
weight = {
base = 1
modifier = {
factor = 10
holder = {
OR = {
government_has_flag = government_is_feudal
government_has_flag = government_is_clan
}
}
}
tournament_pas_darmes_culture_tradition_modifier = yes
}
save_scope_as = exotic_origin
}
}
create_character = {
template = tournament_foot_character
location = scope:activity.activity_location
culture = scope:exotic_origin.culture
faith = scope:exotic_origin.faith
dynasty = generate
save_scope_as = pas_darmes_instigator
}
scope:host = { add_courtier = scope:pas_darmes_instigator }
scope:pas_darmes_instigator = {
set_variable = {
name = pas_darmes_victories
value = 0
}
hidden_effect = { add_trait = adventurer }
try_to_create_recurring_character_effect = { CHARACTER = root }
}
scope:activity = {
add_to_variable_list = {
name = pas_darmes_instigators
target = scope:pas_darmes_instigator
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
}
option = { # Allow
name = tournament_events.1101.a
add_character_modifier = {
modifier = tournament_allow_foreign_pas_darmes_modifier
years = 5
}
scope:pas_darmes_instigator = {
hidden_effect = {
add_to_activity = scope:activity
}
}
culture = {
change_cultural_acceptance = {
target = scope:pas_darmes_instigator.culture
value = minor_cultural_acceptance_gain
desc = cultural_acceptance_accepted_contestant
}
}
scope:pas_darmes_instigator = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
stress_impact = {
arbitrary = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = 0.5
ai_honor = 0.5
}
}
}
option = { # Disallow
name = tournament_events.1101.b
every_knight = {
custom = custom.every_knight
add_opinion = {
target = root
modifier = tournament_ejected_interloper_opinion
opinion = 5
}
}
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_ejected_opinion
opinion = -10
}
add_prestige = minor_prestige_loss
culture = {
change_cultural_acceptance = {
target = scope:pas_darmes_instigator.culture
value = minor_cultural_acceptance_loss
desc = cultural_acceptance_expelled_contestant
}
}
scope:pas_darmes_instigator = { move_to_pool_at = scope:exotic_origin.title_province }
stress_impact = {
just = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
ai_sociability = -0.5
ai_honor = -0.5
}
}
}
option = { # You're impressed
name = tournament_events.1101.c
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
scope:pas_darmes_instigator = {
accolade_minor_glory_gain_with_checks_effect = yes
}
stress_impact = {
craven = medium_stress_impact_gain
callous = medium_stress_impact_gain
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 25
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = callous
has_trait = lazy
}
}
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
}
}
tournament_events.1102 = { # Start - Band
type = activity_event
title = tournament_events.1102.t
desc = tournament_events.1102.desc
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = marshal
}
right_portrait = {
character = scope:pas_darmes_2
animation = throne_room_one_handed_passive_1
trigger = { exists = scope:pas_darmes_2 }
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
scope:activity = {
any_attending_character = {
count < 240 #Max is 250, leaving some space for stragglers
}
}
#Standard checks.
tournament_pas_darmes_era_trigger = yes
this = scope:host
NOT = {
scope:activity = {
any_in_list = { variable = pas_darmes_instigators }
}
}
scope:activity = {
any_attending_character = {
tournament_pas_darmes_instigator_trigger = yes
save_temporary_scope_as = band_leader_temp
}
any_attending_character = {
this != scope:band_leader_temp
tournament_pas_darmes_instigator_trigger = yes
OR = {
has_relation_friend = scope:band_leader_temp
can_set_relation_friend_trigger = { CHARACTER = scope:band_leader_temp }
}
OR = {
culture = scope:band_leader_temp.culture
faith = scope:band_leader_temp.faith
liege = scope:band_leader_temp.liege
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:band_leader_temp }
}
}
}
}
weight_multiplier = {
base = 1
tournament_pas_darmes_culture_tradition_modifier = yes
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
tournament_pas_darmes_instigator_trigger = yes
save_temporary_scope_as = band_leader_temp
scope:activity = {
any_attending_character = {
this != scope:band_leader_temp
tournament_pas_darmes_instigator_trigger = yes
OR = {
has_relation_friend = scope:band_leader_temp
can_set_relation_friend_trigger = { CHARACTER = scope:band_leader_temp }
}
OR = {
culture = scope:band_leader_temp.culture
faith = scope:band_leader_temp.faith
liege = scope:band_leader_temp.liege
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:band_leader_temp }
}
}
}
}
weight = {
base = 1
activity_tournament_pas_darmes_modifier = yes
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = pas_darmes_instigator
add_prestige = minor_prestige_value
set_variable = {
name = pas_darmes_victories
value = 0
}
try_to_create_recurring_character_effect = { CHARACTER = root }
scope:activity = {
add_to_variable_list = {
name = pas_darmes_instigators
target = scope:pas_darmes_instigator
}
}
}
random_attending_character = {
limit = {
this != scope:pas_darmes_instigator
tournament_pas_darmes_instigator_trigger = yes
OR = {
has_relation_friend = scope:pas_darmes_instigator
can_set_relation_friend_trigger = { CHARACTER = scope:pas_darmes_instigator }
}
OR = {
culture = scope:pas_darmes_instigator.culture
faith = scope:pas_darmes_instigator.faith
liege = scope:pas_darmes_instigator.liege
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:pas_darmes_instigator }
}
}
weight = {
base = 1
activity_tournament_pas_darmes_modifier = yes
}
save_scope_as = pas_darmes_2
add_prestige = minor_prestige_value
scope:activity = {
add_to_variable_list = {
name = pas_darmes_instigators
target = scope:pas_darmes_2
}
}
set_variable = {
name = pas_darmes_victories
value = 0
}
hidden_effect = {
progress_towards_friend_effect = {
REASON = friend_pas_darmes_band
CHARACTER = scope:pas_darmes_instigator
OPINION = default_friend_opinion
}
}
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
scope:pas_darmes_2 = {
add_character_flag = wear_armor
}
}
option = { # Oh?
name = tournament_events.1102.a
custom_tooltip = tournament_events.1102.a.tt
scope:pas_darmes_instigator = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
scope:pas_darmes_2 = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
stress_impact = {
arbitrary = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = 0.5
ai_honor = 0.5
}
}
}
option = { # Forbid it
name = tournament_events.1102.b
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_pas_darmes_forbidden_opinion
opinion = -10
}
reverse_add_opinion = {
target = scope:pas_darmes_2
modifier = tournament_pas_darmes_forbidden_opinion
opinion = -10
}
add_prestige = medium_prestige_loss
custom_tooltip = tournament_pas_darmes_forbidden_tt
scope:activity = { clear_variable_list = pas_darmes_instigators }
stress_impact = {
brave = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
stress_impact = {
just = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
ai_sociability = -0.5
ai_honor = -0.5
}
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
scope:pas_darmes_2 = {
remove_character_flag = wear_armor
}
}
}
tournament_events.1110 = { # Bout - AI Travel
type = character_event
hidden = yes
cooldown = { years = 5 }
trigger = {
#Standard checks.
is_adult = yes
is_clergy = no
is_healthy = yes
OR = {
is_landed = no
is_lowborn = yes
primary_title.tier < tier_county
}
OR = {
is_knight = yes
AND = {
NOT = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:activity.activity_host }
}
trigger_if = {
limit = { exists = primary_spouse.involved_activity }
primary_spouse.involved_activity != root.involved_activity
}
}
}
scope:activity = {
any_in_list = {
variable = pas_darmes_instigators
activity_is_valid_tournament_contestant = yes
NOR = {
this = root
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
is_close_or_extended_family_of = root
is_vassal_of = root
is_consort_of = root
}
}
NOT = { has_variable = tournament_1110_cooldown }
}
}
immediate = {
scope:activity = {
set_variable = {
name = tournament_1110_cooldown
months = 1
}
activity_location = { save_scope_as = location }
random_in_list = {
variable = pas_darmes_instigators
limit = {
activity_is_valid_tournament_contestant = yes
NOR = {
this = root
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
is_close_or_extended_family_of = root
is_vassal_of = root
is_consort_of = root
}
}
save_scope_as = pas_darmes_instigator
}
}
save_scope_as = pas_darmes_victim
if = {
limit = { is_knight = yes }
random_list = {
1 = {
modifier = { add = prowess }
modifier = {
has_trait = brave
add = 5
}
modifier = {
has_trait = arrogant
add = 3
}
modifier = {
has_trait = ambitious
add = 3
}
modifier = {
has_trait = wrathful
add = 3
}
modifier = {
has_trait = vengeful
add = 3
}
modifier = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:pas_darmes_instigator }
add = 3
}
duel = {
target = scope:pas_darmes_instigator
skill = prowess
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
min = -49
}
add_prestige = medium_prestige_value
scope:pas_darmes_instigator = {
add_prestige = minor_prestige_loss
random_list = {
10 = {}
5 = {
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
1 = {
death = {
death_reason = death_tournament_pas_darmes_defend
killer = scope:pas_darmes_victim
}
}
}
if = {
limit = {
OR = {
is_alive = no
activity_is_valid_tournament_contestant = no
}
}
scope:activity = {
every_attending_character = {
limit = { is_ai = no }
trigger_event = tournament_events.1120
}
}
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_pas_darmes_spurs_lost_log
tags = { pas_darmes bad }
score = 10
character = scope:pas_darmes_instigator
target = scope:pas_darmes_victim
# Effects
scope:pas_darmes_instigator = {
if = {
limit = { is_alive = yes }
add_prestige = medium_prestige_value
accolade_minor_glory_gain_with_checks_effect = yes
}
}
scope:pas_darmes_victim = {
add_prestige = minor_prestige_loss
random_list = {
10 = {}
5 = {
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
1 = {
death = {
death_reason = death_tournament_pas_darmes_defend
killer = scope:pas_darmes_victim
}
}
}
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
}
}
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2
min = -49
}
create_artifact_pas_darmes_spurs_effect = {
WINNER = scope:pas_darmes_instigator
LOSER = scope:pas_darmes_victim
}
add_personal_artifact_claim = scope:newly_created_artifact
add_prestige = minor_prestige_loss
random_list = {
10 = {}
5 = {
increase_wounds_effect = { REASON = tournament_pas_darmes_challenge }
}
1 = {
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
}
scope:pas_darmes_instigator = {
add_prestige = minor_prestige_value
change_variable = {
name = pas_darmes_victories
add = 1
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_pas_darmes_spurs_won_log
score = 25
tags = { pas_darmes good }
character = scope:pas_darmes_instigator
target = scope:pas_darmes_victim
# Effect
scope:pas_darmes_instigator = { add_prestige = minor_prestige_value }
scope:pas_darmes_instigator = {
accolade_minor_glory_gain_with_checks_effect = yes
}
scope:pas_darmes_victim = {
random_list = {
10 = {}
5 = {
increase_wounds_effect = { REASON = tournament_pas_darmes_challenge }
}
1 = {
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
}
if = {
limit = { is_alive = yes }
add_prestige = minor_prestige_loss
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
}
}
}
}
scope:pas_darmes_victim = {
if = {
limit = {
is_alive = yes
scope:pas_darmes_instigator = { is_alive = yes }
}
random = {
chance = 50
progress_towards_rival_effect = {
REASON = rival_challenged_pas_darmes
CHARACTER = scope:pas_darmes_instigator
OPINION = 0
}
}
}
}
}
10 = {
modifier = {
has_trait = craven
add = -5
}
modifier = {
has_trait = humble
add = -3
}
modifier = {
has_trait = content
add = -3
}
modifier = {
has_trait = calm
add = -3
}
modifier = {
has_trait = forgiving
add = -3
}
modifier = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:pas_darmes_instigator }
add = 3
}
scope:activity = {
add_activity_log_entry = {
key = tournament_pas_darmes_refused_log
score = 25
tags = { pas_darmes bad }
character = scope:pas_darmes_instigator
target = scope:pas_darmes_victim
# Effects
scope:pas_darmes_victim = { add_prestige = medium_prestige_loss }
scope:pas_darmes_victim = {
accolade_minor_glory_loss_with_checks_effect = yes
}
}
}
}
}
}
else_if = {
limit = {
NOT = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:activity.activity_host }
}
}
create_artifact_pas_darmes_token_effect = {
OWNER = scope:pas_darmes_victim
WINNER = scope:pas_darmes_instigator
}
if = {
limit = { is_married = yes }
every_spouse = { add_to_list = pas_darmes_ping_list }
}
if = {
limit = {
any_parent = { is_alive = yes }
}
every_parent = { add_to_list = pas_darmes_ping_list }
}
if = {
limit = {
any_child = {
is_alive = yes
is_adult = yes
}
}
every_child = { add_to_list = pas_darmes_ping_list }
}
if = {
limit = {
any_relation = { type = lover }
}
every_relation = {
type = lover
add_to_list = pas_darmes_ping_list
}
}
if = {
limit = {
any_relation = { type = friend }
}
every_relation = {
type = friend
add_to_list = pas_darmes_ping_list
}
}
every_in_list = {
list = pas_darmes_ping_list
custom = pas_darmes_token_claim_tt
if = {
limit = {
OR = {
is_spouse_of = scope:pas_darmes_victim
is_parent_of = scope:pas_darmes_victim
is_child_of = scope:pas_darmes_victim
}
}
add_personal_artifact_claim = scope:newly_created_artifact
}
trigger_event = tournament_events.1130
}
scope:activity = {
add_activity_log_entry = {
key = tournament_pas_darmes_token_taken_log
score = 25
tags = { pas_darmes bad }
character = scope:pas_darmes_instigator
target = scope:pas_darmes_victim
# Effects
scope:pas_darmes_victim = { add_personal_artifact_claim = scope:newly_created_artifact }
}
}
}
}
}
tournament_events.1120 = { # Challenger Injured/Invalid Ping
type = activity_event
title = tournament_events.1120.t
desc = tournament_events.1120.desc
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = loss_1
}
right_portrait = {
character = scope:pas_darmes_victim
animation = war_over_win
trigger = { exists = scope:pas_darmes_victim }
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
}
immediate = {
show_as_tooltip = {
scope:pas_darmes_instigator = {
if = {
limit = { is_alive = no }
if = {
limit = { exists = killer }
death = {
death_reason = death_tournament_pas_darmes_defend
killer = scope:pas_darmes_instigator.killer
}
}
else = {
death = { death_reason = death_tournament_pas_darmes_defend }
}
}
else = {
if = {
limit = { has_trait = wounded_2 }
add_trait_force_tooltip = wounded_2
}
else_if = {
limit = { has_trait = wounded_3 }
add_trait_force_tooltip = wounded_3
}
}
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
scope:pas_darmes_victim = {
add_character_flag = wear_armor
}
}
option = { # Oh no
name = {
trigger = {
scope:pas_darmes_victim = { is_alive = no }
}
text = tournament_events.1120.a.dead
}
name = {
trigger = {
scope:pas_darmes_victim = { is_alive = yes }
}
text = tournament_events.1120.a
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
scope:pas_darmes_victim = {
remove_character_flag = wear_armor
}
}
}
tournament_events.1130 = { # Keepsake claim ping
type = letter_event
opening = tournament_events.1130.opening
desc = {
desc = tournament_events.1130.desc
}
sender = scope:pas_darmes_victim
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
is_ai = no
}
immediate = {
show_as_tooltip = {
if = {
limit = { has_personal_artifact_claim = scope:newly_created_artifact }
add_personal_artifact_claim = scope:newly_created_artifact
}
}
}
option = { # Oh?
name = tournament_events.1130.a
}
}
tournament_events.1140 = { # Host Challenge - Start
type = activity_event
title = tournament_events.1140.t
desc = {
desc = tournament_events.1140.desc
first_valid = {
triggered_desc = {
trigger = {
scope:pas_darmes_instigator = { martial >= medium_skill_rating }
}
desc = tournament_events.1140.skilled
}
desc = tournament_events.1140.unskilled
}
first_valid = {
triggered_desc = {
trigger = {
scope:pas_darmes_instigator = { has_trait = wounded }
}
desc = tournament_events.1140.wounded
}
desc = tournament_events.1140.fallback
}
}
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = happiness
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
activity_is_valid_tournament_contestant = yes
scope:activity = {
any_in_list = {
variable = pas_darmes_instigators
count >= 1
activity_is_valid_tournament_contestant = yes
NOR = {
is_close_family_of = root
is_spouse_of = root
liege ?= root
}
NOT = {
any_character_artifact = {
save_temporary_scope_as = artifact_temp
root = { has_personal_artifact_claim = scope:artifact_temp }
}
}
}
}
}
immediate = {
scope:activity = {
activity_location = { save_scope_as = location }
random_in_list = {
variable = pas_darmes_instigators
limit = {
activity_is_valid_tournament_contestant = yes
NOR = {
is_close_family_of = root
is_spouse_of = root
liege ?= root
}
}
save_scope_as = pas_darmes_instigator
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
random_neighboring_and_across_water_top_liege_realm = { save_scope_as = border_realm }
}
option = { # Come at me
name = {
trigger = {
scope:pas_darmes_instigator = {
NOT = { has_trait = wounded }
}
}
text = tournament_events.1140.a
}
name = {
trigger = {
scope:pas_darmes_instigator = { has_trait = wounded }
}
text = tournament_events.1140.a.wounded
}
trigger = {
NOT = { exists = scope:claimed_artifact }
}
show_as_tooltip = {
if = {
limit = {
scope:pas_darmes_instigator = { has_trait = wounded }
}
add_prestige = minor_prestige_gain
}
else = { add_prestige = medium_prestige_gain }
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_host_pas_darmes_opinion
opinion = 10
}
}
duel = {
skill = prowess
target = scope:pas_darmes_instigator
25 = {
desc = tournament_events.1140.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
scope:pas_darmes_instigator = {
show_as_tooltip = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_defend
killer = root
}
}
}
}
save_scope_as = pas_darmes_win
}
25 = {
desc = tournament_events.1140.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
show_as_tooltip = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
}
}
}
trigger_event = tournament_events.1141
stress_impact = {
arbitrary = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_rationality = -1
ai_boldness = 1
ai_sociability = 0.5
ai_honor = 0.5
}
}
}
option = { # Together, we will rule the galaxy
name = tournament_events.1140.b
trigger = {
scope:pas_darmes_instigator.liege != root
}
duel = {
skill = diplomacy
value = medium_skill_rating
10 = {
desc = tournament_events.1140.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
modifier = {
add = 2
exists = scope:pas_darmes_instigator.liege
primary_title.tier > scope:pas_darmes_instigator.liege.primary_title.tier
}
modifier = {
add = 2
NOT = { exists = scope:pas_darmes_instigator.liege }
}
pay_short_term_gold = {
target = scope:pas_darmes_instigator
gold = minor_gold_value
}
add_courtier = scope:pas_darmes_instigator
if = {
limit = {
exists = scope:pas_darmes_instigator.liege
this != scope:pas_darmes_instigator.liege
}
reverse_add_opinion = {
modifier = tournament_stole_knight_opinion
target = scope:pas_darmes_instigator.liege
opinion = -10
}
}
}
15 = {
desc = tournament_events.1140.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_rationality = 0.5
ai_greed = -1
ai_sociability = 1
}
}
}
option = { # That's enough
name = tournament_events.1140.c
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
}
add_prestige = minor_prestige_loss
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_pas_darmes_forbidden_opinion
opinion = -10
}
custom_tooltip = tournament_pas_darmes_forbidden_tt
scope:activity = { clear_variable_list = pas_darmes_instigators }
stress_impact = {
brave = medium_stress_impact_gain
just = medium_stress_impact_gain
eccentric = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = -0.5
ai_boldness = -0.5
ai_sociability = -0.5
}
}
}
option = { # Well done
name = tournament_events.1140.d
custom_tooltip = tournament_events.1102.a.tt
scope:pas_darmes_instigator = {
accolade_minor_glory_gain_with_checks_effect = yes
}
stress_impact = {
craven = medium_stress_impact_gain
shy = medium_stress_impact_gain
eccentric = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = 0.5
ai_boldness = 0.5
ai_sociability = 0.5
}
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
}
}
tournament_events.1141 = { # Host Challenge - Outcome
type = activity_event
title = tournament_events.1141.t
desc = {
desc = tournament_events.1141.desc
first_valid = {
triggered_desc = {
trigger = { exists = scope:pas_darmes_win }
desc = tournament_events.1141.win
}
desc = tournament_events.1141.lose
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:pas_darmes_win
scope:pas_darmes_instigator = { is_alive = no }
}
desc = tournament_events.1141.kill_them
}
triggered_desc = {
trigger = { exists = scope:pas_darmes_win }
desc = tournament_events.1141.beat_them
}
triggered_desc = {
trigger = { is_alive = no }
desc = tournament_events.1141.kill_me
}
desc = tournament_events.1141.beat_me
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:pas_darmes_win }
animation = jockey_lance_tilted
}
triggered_animation = {
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
animation = loss_1
}
}
right_portrait = {
character = scope:pas_darmes_instigator
triggered_animation = {
trigger = { exists = scope:pas_darmes_win }
animation = loss_1
}
triggered_animation = {
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
animation = jockey_lance_tilted
}
}
artifact = {
target = scope:newly_created_artifact
position = lower_right_portrait
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = bp1_crossroads_inn
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
}
immediate = {
if = {
limit = { exists = scope:pas_darmes_win }
create_artifact_pas_darmes_spurs_effect = {
WINNER = scope:host
LOSER = scope:pas_darmes_instigator
}
scope:pas_darmes_instigator = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
hidden_effect = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_defend
killer = root
}
}
}
save_scope_as = pas_darmes_victim
scope:pas_darmes_instigator = { add_personal_artifact_claim = scope:newly_created_artifact }
}
else = {
scope:pas_darmes_instigator = {
create_artifact_pas_darmes_spurs_effect = {
WINNER = scope:pas_darmes_instigator
LOSER = scope:host
}
accolade_minor_glory_gain_with_checks_effect = yes
hidden_effect = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_challenge }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
}
}
}
show_as_tooltip = {
if = {
limit = { is_alive = no }
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
else_if = {
limit = { has_character_flag = agency_wound }
switch = {
trigger = has_trait
wounded_1 = { add_trait_force_tooltip = wounded_1 }
wounded_2 = { add_trait_force_tooltip = wounded_2 }
wounded_3 = { add_trait_force_tooltip = wounded_3 }
}
}
}
scope:pas_darmes_instigator = {
show_as_tooltip = {
if = {
limit = { is_alive = no }
death = {
death_reason = death_tournament_pas_darmes_defend
killer = root
}
}
else_if = {
limit = { has_character_flag = agency_wound }
switch = {
trigger = has_trait
wounded_1 = { add_trait_force_tooltip = wounded_1 }
wounded_2 = { add_trait_force_tooltip = wounded_2 }
wounded_3 = { add_trait_force_tooltip = wounded_3 }
}
}
}
}
if = {
limit = {
is_alive = yes
scope:pas_darmes_instigator = {
OR = {
has_trait = wounded_2
has_trait = wounded_3
}
}
}
add_prestige = minor_prestige_gain
}
else_if = {
limit = { is_alive = yes }
add_prestige = medium_prestige_gain
}
if = {
limit = {
is_alive = yes
scope:pas_darmes_instigator = { is_alive = yes }
}
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_host_pas_darmes_opinion
opinion = 10
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
add_character_flag = wear_armor
}
option = { #
name = {
text = tournament_events.1141.a
trigger = { is_alive = yes }
}
name = {
text = tournament_events.1141.a.death
trigger = { is_alive = no }
}
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
if = {
limit = { is_alive = yes }
add_personal_artifact_claim = scope:newly_created_artifact
}
else_if = {
limit = {
primary_heir != scope:pas_darmes_instigator
}
primary_heir = { add_personal_artifact_claim = scope:newly_created_artifact }
}
}
option = { #
name = {
text = tournament_events.1141.b
trigger = {
scope:pas_darmes_instigator = { is_alive = yes }
}
}
name = {
text = tournament_events.1141.b.death
trigger = {
scope:pas_darmes_instigator = { is_alive = no }
}
}
trigger = { exists = scope:pas_darmes_win }
scope:pas_darmes_instigator = { add_personal_artifact_claim = scope:newly_created_artifact }
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
remove_character_flag = wear_armor
}
}
##################################################
# Restoring Honor
# by Joe Parkin
# 1150-1151
##################################################
tournament_events.1150 = { # Keepsake Claim Challenge - Start
type = activity_event
title = tournament_events.1150.t
desc = {
desc = tournament_events.1150.desc
first_valid = {
triggered_desc = {
trigger = {
scope:pas_darmes_instigator = { martial >= medium_skill_rating }
}
desc = tournament_events.1150.skilled
}
desc = tournament_events.1150.unskilled
}
first_valid = {
triggered_desc = {
trigger = {
scope:pas_darmes_instigator = { has_trait = wounded }
}
desc = tournament_events.1150.wounded
}
desc = tournament_events.1150.fallback
}
}
theme = tournament_grounds
left_portrait = {
character = scope:pas_darmes_instigator
animation = happiness
}
artifact = {
target = scope:claimed_artifact
position = lower_right_portrait
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
activity_is_valid_tournament_contestant = yes
scope:activity = {
any_in_list = {
variable = pas_darmes_instigators
count >= 1
activity_is_valid_tournament_contestant = yes
any_character_artifact = {
artifact_type = pas_darmes_token
save_temporary_scope_as = artifact_temp
root = { has_personal_artifact_claim = scope:artifact_temp }
}
NOT = {
any_character_artifact = {
save_temporary_scope_as = artifact_temp
root = { has_personal_artifact_claim = scope:artifact_temp }
}
}
}
}
}
immediate = {
scope:activity = {
random_in_list = {
variable = pas_darmes_instigators
limit = {
activity_is_valid_tournament_contestant = yes
NOR = {
is_close_family_of = root
is_spouse_of = root
liege ?= root
}
}
save_scope_as = pas_darmes_instigator
}
}
random_neighboring_and_across_water_top_liege_realm = { save_scope_as = border_realm }
every_claimed_artifact = {
limit = {
artifact_owner = scope:pas_darmes_instigator
artifact_type = pas_darmes_token
}
add_to_list = pas_darmes_reclaims
}
random_in_list = {
list = pas_darmes_reclaims
save_scope_as = claimed_artifact
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
}
option = { # Come at me
name = {
trigger = {
scope:pas_darmes_instigator = {
NOT = { has_trait = wounded }
}
}
text = tournament_events.1150.a
}
name = {
trigger = {
scope:pas_darmes_instigator = { has_trait = wounded }
}
text = tournament_events.1150.a.wounded
}
if = {
limit = {
scope:pas_darmes_instigator = {
OR = {
has_trait = wounded_2
has_trait = wounded_3
}
}
}
add_prestige = minor_prestige_gain
}
else = { add_prestige = medium_prestige_gain }
duel = {
skill = prowess
target = scope:pas_darmes_instigator
25 = {
desc = tournament_events.1150.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
every_in_list = {
list = pas_darmes_reclaims
set_owner = root
}
scope:pas_darmes_instigator = {
show_as_tooltip = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_defend
killer = root
}
}
}
}
save_scope_as = pas_darmes_win
}
25 = {
desc = tournament_events.1150.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
every_in_list = {
list = pas_darmes_reclaims
save_scope_as = claimed_artifact
root = { remove_personal_artifact_claim = scope:claimed_artifact }
var:token_owner = {
if = {
limit = {
this != root
}
add_opinion = {
target = root
modifier = tournament_failed_pas_darmes_reclaim_opinion
opinion = -10
}
}
}
}
show_as_tooltip = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
}
}
}
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_host_pas_darmes_opinion
opinion = 10
}
trigger_event = tournament_events.1151
stress_impact = {
craven = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.5
ai_boldness = 1
ai_energy = 1
}
}
}
option = { # Keep your trinket
name = tournament_events.1150.b
add_prestige = medium_prestige_loss
every_in_list = {
list = pas_darmes_reclaims
var:token_owner = {
if = {
limit = {
this != root
}
add_opinion = {
target = root
modifier = tournament_failed_pas_darmes_reclaim_opinion
opinion = -10
}
}
}
}
stress_impact = {
brave = medium_stress_impact_gain
just = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -0.5
ai_boldness = -1
ai_energy = -1
}
}
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
}
}
tournament_events.1151 = { # Keepsake Claim Challenge - Outcome
type = activity_event
title = tournament_events.1150.t
desc = {
desc = tournament_events.1141.desc
first_valid = {
triggered_desc = {
trigger = { exists = scope:pas_darmes_win }
desc = tournament_events.1141.win
}
desc = tournament_events.1141.lose
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:pas_darmes_win
scope:pas_darmes_instigator = { is_alive = no }
}
desc = tournament_events.1141.kill_them
}
triggered_desc = {
trigger = { exists = scope:pas_darmes_win }
desc = tournament_events.1141.beat_them
}
triggered_desc = {
trigger = { is_alive = no }
desc = tournament_events.1141.kill_me
}
desc = tournament_events.1141.beat_me
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:pas_darmes_win }
animation = war_over_win
}
triggered_animation = {
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
animation = loss_1
}
}
right_portrait = {
character = scope:pas_darmes_instigator
triggered_animation = {
trigger = { exists = scope:pas_darmes_win }
animation = loss_1
}
triggered_animation = {
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
animation = war_over_win
}
}
artifact = {
target = scope:claimed_artifact
position = lower_right_portrait
}
override_background = {
trigger = {
scope:activity.activity_location = { geographical_region = graphical_western }
}
reference = terrain_travel
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
}
immediate = {
if = {
limit = { exists = scope:pas_darmes_win }
every_in_list = {
list = pas_darmes_reclaims
set_owner = root
}
scope:pas_darmes_instigator = {
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_defend }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_defend
killer = root
}
}
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
else = {
scope:pas_darmes_instigator = {
accolade_minor_glory_gain_with_checks_effect = yes
}
random = {
chance = 25
increase_wounds_effect = { REASON = tournament_pas_darmes_challenge }
}
random = {
chance = 5
death = {
death_reason = death_tournament_pas_darmes_challenge
killer = scope:pas_darmes_instigator
}
}
every_in_list = {
list = pas_darmes_reclaims
save_scope_as = claimed_artifact
root = { remove_personal_artifact_claim = scope:claimed_artifact }
}
}
if = {
limit = {
scope:pas_darmes_instigator = { is_alive = yes }
}
reverse_add_opinion = {
target = scope:pas_darmes_instigator
modifier = tournament_host_pas_darmes_opinion
opinion = 10
}
}
scope:pas_darmes_instigator = {
add_character_flag = wear_armor
}
add_character_flag = wear_armor
}
option = { #
name = {
text = tournament_events.1141.a
trigger = { is_alive = yes }
}
name = {
text = tournament_events.1141.a.death
trigger = { is_alive = no }
}
trigger = {
NOT = { exists = scope:pas_darmes_win }
}
}
option = { #
name = {
text = tournament_events.1141.b
trigger = {
scope:pas_darmes_instigator = { is_alive = yes }
}
}
name = {
text = tournament_events.1141.b.death
trigger = {
scope:pas_darmes_instigator = { is_alive = no }
}
}
trigger = { exists = scope:pas_darmes_win }
}
after = {
scope:pas_darmes_instigator = {
remove_character_flag = wear_armor
}
remove_character_flag = wear_armor
}
}
##################################################
# Religious Reproach
# by Joe Parkin
# 1200
##################################################
tournament_events.1200 = {
type = activity_event
title = tournament_events.1200.t
desc = tournament_events.1200.desc
theme = tournament_grounds
left_portrait = {
character = scope:angry_clergy
animation = chaplain
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
is_adult = yes
faith = {
NOR = {
has_doctrine = tenet_warmonger
has_doctrine = tenet_unrelenting_faith
trait_is_virtue = arrogant
}
}
OR = {
AND = {
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = { activity_adult_available_or_attending_same_activity_trigger = yes }
}
any_vassal = {
government_has_flag = government_is_theocracy
faith = root.faith
activity_adult_available_or_attending_same_activity_trigger = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
faith = { has_doctrine = tenet_pacifism }
}
}
immediate = {
random_list = {
10 = {
trigger = {
exists = cp:councillor_court_chaplain
activity_adult_available_or_attending_same_activity_trigger = yes
}
cp:councillor_court_chaplain = {
save_scope_as = angry_clergy
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
10 = {
trigger = {
any_vassal = {
government_has_flag = government_is_theocracy
faith = root.faith
activity_adult_available_or_attending_same_activity_trigger = yes
}
}
ordered_vassal = {
limit = {
government_has_flag = government_is_theocracy
faith = root.faith
activity_adult_available_or_attending_same_activity_trigger = yes
}
order_by = primary_title.tier
save_scope_as = angry_clergy
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
}
option = { # Soldiers need practice
name = tournament_events.1200.a
skill = martial
trigger = { martial >= medium_skill_rating }
duel = {
skill = martial
target = scope:angry_clergy
60 = {
desc = tournament_events.1200.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 1.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1200.a.success
left_icon = scope:angry_clergy
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_convinced_priest_opinion
opinion = 5
}
add_piety = minor_piety_value
}
}
40 = {
desc = tournament_events.1200.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -1.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1200.a.failure
left_icon = scope:angry_clergy
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_unconvinced_priest_opinion
opinion = -10
}
add_piety = medium_piety_loss
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
fickle = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 1
ai_sociability = 1
ai_zeal = -1
ai_energy = 1
}
}
}
option = { # Let me persuade you
name = tournament_events.1200.b
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
random_list = {
10 = {
modifier = {
add = {
value = diplomacy
divide = 2
}
}
modifier = {
scope:angry_clergy = { has_trait = arrogant }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = greedy }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = fickle }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = arbitrary }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = ambitious }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = gregarious }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = cynical }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = gluttonous }
add = 5
}
desc = tournament_events.1200.b.success
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1200.b.success
left_icon = scope:angry_clergy
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_convinced_priest_opinion
opinion = 5
}
}
}
10 = {
modifier = {
scope:angry_clergy = { has_trait = humble }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = stubborn }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = content }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = shy }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = zealous }
add = 5
}
modifier = {
scope:angry_clergy = { has_trait = temperate }
add = 5
}
desc = tournament_events.1200.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1200.b.failure
left_icon = scope:angry_clergy
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_unconvinced_priest_opinion
opinion = -10
}
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
lazy = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = -0.5
ai_zeal = -0.5
ai_energy = -0.5
}
}
}
option = { # I won't compete
name = tournament_events.1200.c
trigger = {
is_adult = yes
NOT = { has_character_flag = tournament_not_competing }
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
is_healthy = yes
NOT = { has_activity_intent = win_contest_intent }
}
show_as_unavailable = { has_activity_intent = win_contest_intent }
add_piety = medium_piety_value
add_character_flag = tournament_not_competing
custom_tooltip = tournament_not_competing_tt
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_not_competing_opinion
opinion = 10
}
stress_impact = {
cynical = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_sociability = -1
ai_zeal = 1
}
}
}
option = { # Oh give it a rest
name = tournament_events.1200.d
add_prestige = miniscule_prestige_value
reverse_add_opinion = {
target = scope:angry_clergy
modifier = tournament_dismissed_priest_opinion
opinion = -10
}
stress_impact = {
zealous = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = 1
ai_sociability = 1
ai_zeal = -1
}
}
}
}
##################################################
# Rags to Maile
# by Joe Parkin
# 1230
##################################################
tournament_events.1230 = {
type = activity_event
title = tournament_events.1230.t
desc = tournament_events.1230.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:battle_peasant
animation = throne_room_bow_1
}
lower_right_portrait = { character = scope:old_holder }
cooldown = { years = 10 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
scope:activity = {
NOR = {
has_current_phase = tournament_phase_recital
has_current_phase = tournament_phase_board_game
has_current_phase = tournament_phase_horse_race
}
}
this = scope:host
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
}
immediate = {
scope:activity = {
random_attending_character = {
culture = { save_scope_as = attending_culture }
}
}
scope:attending_culture = {
random_culture_county = {
faith = { save_scope_as = attending_faith }
}
}
create_character = {
template = tournament_foot_character
location = scope:activity.activity_location
culture = scope:attending_culture
faith = scope:attending_faith
dynasty = none
save_scope_as = battle_peasant
}
if = {
limit = { employs_court_position = champion_court_position }
random_court_position_holder = {
type = champion_court_position
save_scope_as = old_holder
}
}
}
option = { # Make champion
name = tournament_events.1230.a
trigger = {
has_royal_court = yes
OR = {
can_employ_court_position_type = champion_court_position
employs_court_position = champion_court_position
}
}
remove_treasury_or_gold = {
value = minor_treasury_or_gold_value
max = 20
}
hidden_effect = { add_courtier = scope:battle_peasant }
scope:battle_peasant = {
hidden_effect = {
add_to_activity = scope:activity
}
add_character_modifier = {
modifier = tournament_battle_peasant_modifier
years = 10
}
try_to_create_recurring_character_effect = { CHARACTER = root }
}
if = {
limit = { exists = scope:old_holder }
reverse_add_opinion = {
modifier = tournament_replaced_champion_opinion
target = scope:old_holder
opinion = -20
}
scope:activity = {
add_activity_log_entry = {
key = tournament_champion_battle_peasant_log
character = root
target = scope:battle_peasant
#Effect
root = {
replace_court_position = {
recipient = scope:battle_peasant
holder = scope:old_holder
court_position = champion_court_position
}
}
}
}
stress_impact = {
just = minor_stress_impact_gain
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = tournament_champion_battle_peasant_log
character = root
target = scope:battle_peasant
#Effect
root = {
court_position_grant_effect = {
EMPLOYER = root
POS = champion
CANDIDATE = scope:battle_peasant
}
}
}
}
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:battle_peasant
opinion = 20
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tournament_battle_peasant_county_modifier
years = 10
}
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_compassion = 1.5
ai_greed = -1.5
}
}
}
option = { # Recruit
name = tournament_events.1230.b
trigger = {
number_of_knights < max_number_of_knights
scope:battle_peasant = {
can_be_knight_trigger = { ARMY_OWNER = root }
}
}
every_knight = {
custom = custom.every_knight
add_opinion = {
modifier = tournament_elevated_peasant_knight_opinion
target = root
opinion = -10
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_recruited_battle_peasant_log
character = root
target = scope:battle_peasant
#Effect
root = {
remove_treasury_or_gold = {
value = minor_treasury_or_gold_value
max = 20
}
}
}
}
scope:battle_peasant = {
hidden_effect = {
set_employer = root
set_knight_status = force
add_to_activity = scope:activity
scope:activity = {
add_to_guest_subset = {
name = contestant
target = scope:battle_peasant
}
}
}
custom_tooltip = tournament_events.1230.b.tt
custom_tooltip = tournament_events.1230.c.tt
add_character_modifier = {
modifier = tournament_battle_peasant_modifier
years = 10
}
try_to_create_recurring_character_effect = { CHARACTER = root }
}
hidden_effect = { current_travel_plan = { add_companion = scope:battle_peasant } }
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:battle_peasant
opinion = 10
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tournament_battle_peasant_county_modifier
years = 10
}
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = 1
ai_greed = -1
}
}
}
option = { # Sponsor
name = tournament_events.1230.c
scope:activity = {
add_activity_log_entry = {
key = tournament_sponsored_battle_peasant_log
character = root
target = scope:battle_peasant
#Effect
root = {
remove_short_term_gold = {
value = tiny_gold_value
max = 10
}
}
}
}
hidden_effect = { add_courtier = scope:battle_peasant }
scope:battle_peasant = {
hidden_effect = {
add_to_activity = scope:activity
scope:activity = {
add_to_guest_subset = {
name = contestant
target = scope:battle_peasant
}
}
}
custom_tooltip = tournament_events.1230.c.tt
try_to_create_recurring_character_effect = { CHARACTER = root }
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:battle_peasant
opinion = 5
}
stress_impact = {
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 20
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = -0.5
}
}
}
option = { # Do nothing
name = tournament_events.1230.d
custom_tooltip = tournament_events.1230.d.tt
if = {
limit = { activity_is_competing_trigger = yes } activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
hidden_effect = {
scope:battle_peasant = {
death = { death_reason = death_disappearance }
}
}
stress_impact = {
humble = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
generous = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 20
ai_value_modifier = {
ai_boldness = 1
ai_rationality = -1
ai_compassion = -1
ai_greed = 1
}
}
}
}
##################################################
# Worth Fighting For
# by Joe Parkin
# 1240
##################################################
scripted_trigger tournament_1240_prize_child_trigger = {
liege = root
is_landed = no
age >= 12
is_betrothed = no
is_married = no
NOT = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
}
scripted_effect tournament_1240_prize_child_effect = {
save_scope_as = marriage_prize
if = {
limit = {
mother ?= root
father = {
is_alive = yes
liege = root
}
}
father = { add_to_list = prize_child_parents }
}
if = {
limit = {
mother ?= {
is_alive = yes
liege = root
}
}
mother = { add_to_list = prize_child_parents }
}
if = {
limit = { is_adult = no }
custom_tooltip = tournament_events.1240.betrothal_tt
}
else = { custom_tooltip = tournament_events.1240.marry_tt }
add_opinion = {
modifier = tournament_marriage_prize_opinion
target = root
opinion = -10
}
if = {
limit = {
any_in_list = { list = prize_child_parents }
}
every_in_list = {
list = prize_child_parents
add_opinion = {
modifier = tournament_marriage_prize_parent_opinion
target = root
opinion = -15
}
}
}
scope:activity = {
set_variable = {
name = tournament_marriage_prize
value = scope:marriage_prize
}
}
}
tournament_events.1240 = {
type = activity_event
title = tournament_events.1240.t
desc = tournament_events.1240.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = worry
}
lower_right_portrait = { character = scope:prize_child_1 }
lower_center_portrait = { character = scope:prize_child_2 }
lower_left_portrait = { character = scope:prize_child_3 }
cooldown = { years = 10 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
OR = {
any_child = { tournament_1240_prize_child_trigger = yes }
AND = {
this = house.house_head
any_courtier_or_guest = {
house = root.house
tournament_1240_prize_child_trigger = yes
}
}
}
# Only if we have at least 1 non-team phase
scope:activity = {
OR = {
has_phase = tournament_phase_joust
has_phase = tournament_phase_recital
has_phase = tournament_phase_wrestling
has_phase = tournament_phase_duel
has_phase = tournament_phase_board_game
has_phase = tournament_phase_archery
has_phase = tournament_phase_horse_race
}
}
}
immediate = {
every_child = {
limit = { tournament_1240_prize_child_trigger = yes }
add_to_list = marriage_prize_list
}
if = {
limit = { this = this.house.house_head }
every_courtier_or_guest = {
limit = {
house = root.house
tournament_1240_prize_child_trigger = yes
NOT = {
any_spouse = {
count >= 1
even_if_dead = yes
}
}
age <= 35
}
add_to_list = marriage_prize_list
}
}
hidden_effect = {
while = {
count = 3
ordered_in_list = {
list = marriage_prize_list
limit = {
NAND = {
exists = scope:prize_child_1
this = scope:prize_child_1
}
NAND = {
exists = scope:prize_child_2
this = scope:prize_child_2
}
}
order_by = age
if = {
limit = {
NOT = { exists = scope:prize_child_1 }
}
save_scope_as = prize_child_1
}
else_if = {
limit = {
NOT = { exists = scope:prize_child_2 }
}
save_scope_as = prize_child_2
}
else = { save_scope_as = prize_child_3 }
}
}
}
}
option = { # First child
name = tournament_events.1240.a
scope:prize_child_1 = { tournament_1240_prize_child_effect = yes }
stress_impact = {
greedy = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_boldness = 1
ai_sociability = 1
ai_rationality = -1
ai_compassion = -1
ai_honor = -1
}
}
}
option = { # Second child
name = tournament_events.1240.b
trigger = { exists = scope:prize_child_2 }
scope:prize_child_2 = { tournament_1240_prize_child_effect = yes }
stress_impact = {
greedy = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_boldness = 1
ai_sociability = 1
ai_rationality = -1
ai_compassion = -1
ai_honor = -1
}
}
}
option = { # Third child
name = tournament_events.1240.c
trigger = { exists = scope:prize_child_3 }
scope:prize_child_3 = { tournament_1240_prize_child_effect = yes }
stress_impact = {
greedy = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -1
ai_sociability = -1
ai_rationality = 1
ai_honor = 1
ai_compassion = 1
}
}
}
option = { # No
name = tournament_events.1240.d
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
stress_impact = {
generous = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -1
ai_sociability = -1
ai_rationality = 1
ai_honor = 1
ai_compassion = 1
}
}
}
}
##################################################
# Token of Favor
# by Joe Parkin
# 1250-1251
##################################################
scripted_trigger tournament_events_1250_favor_trigger = {
is_participant_in_activity = root.involved_activity
activity_is_valid_tournament_contestant = yes
NAND = {
exists = scope:favor_recipient_1
this = scope:favor_recipient_1
}
NAND = {
exists = scope:favor_recipient_2
this = scope:favor_recipient_2
}
NAND = {
exists = scope:favor_recipient_3
this = scope:favor_recipient_3
}
NOT = {
any_character_artifact = {
artifact_type = tournament_favor
creator = root
}
}
NOT = {
is_target_in_variable_list = {
name = tournament_favor_offers
target = root
}
}
}
scripted_effect tournament_events_1250_scope_effect = {
if = {
limit = {
NOT = { exists = scope:favor_recipient_1 }
}
save_scope_as = favor_recipient_1
}
else_if = {
limit = {
NOT = { exists = scope:favor_recipient_2 }
}
save_scope_as = favor_recipient_2
}
else_if = {
limit = {
NOT = { exists = scope:favor_recipient_3 }
}
save_scope_as = favor_recipient_3
}
}
scripted_effect tournament_favor_gift_effect = {
save_scope_as = favor_recipient
add_to_variable_list = {
name = tournament_favor_offers
target = scope:favor_giver
}
if = {
limit = {
is_scheming_against = { target = scope:favor_recipient }
}
random_scheme = {
limit = { scheme_target_character = scope:favor_recipient }
save_scope_as = favor_scheme
}
}
custom_tooltip = tournament_events.1251.favor_tt
custom_tooltip = tournament_events.1250.favor_tt
show_as_tooltip = {
random_list = {
10 = {
show_chance = no
desc = tournament_favor_accepted_desc
custom_tooltip = tournament_events_equip_favor_tt
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:favor_giver
modifier = tournament_received_favor_opinion
opinion = 10
}
}
if = {
limit = { exists = scope:favor_scheme }
scope:favor_scheme = {
add_scheme_modifier = { type = tournament_favor_scheme_modifier }
}
}
}
10 = {
show_chance = no
desc = tournament_favor_rejected_desc
custom_tooltip = tournament_events_destroy_favor_tt
if = {
limit = { exists = scope:favor_scheme }
scope:favor_scheme = {
add_scheme_modifier = { type = tournament_favor_rejected_scheme_modifier }
}
}
}
}
}
trigger_event = {
id = tournament_events.1251
days = { 3 5 }
}
}
tournament_events.1250 = {
type = activity_event
title = tournament_events.1250.t
desc = tournament_events.1250.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = flirtation_left
}
lower_right_portrait = { character = scope:favor_recipient_1 }
lower_center_portrait = { character = scope:favor_recipient_2 }
lower_left_portrait = { character = scope:favor_recipient_3 }
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
OR = {
any_relation = {
type = lover
save_temporary_scope_as = favor_recipient_temp
}
AND = {
has_activity_intent = woo_attendee_intent
intent_target = { save_temporary_scope_as = favor_recipient_temp }
}
any_scheme = {
type = seduce
scheme_target_character = { save_temporary_scope_as = favor_recipient_temp }
}
any_scheme = {
type = courting
scheme_target_character = { save_temporary_scope_as = favor_recipient_temp }
}
}
scope:favor_recipient_temp = { tournament_events_1250_favor_trigger = yes }
}
immediate = {
save_scope_as = favor_giver
hidden_effect = {
while = {
limit = {
OR = {
any_relation = {
type = lover
tournament_events_1250_favor_trigger = yes
}
AND = {
has_activity_intent = woo_attendee_intent
intent_target = { tournament_events_1250_favor_trigger = yes }
}
any_scheme = {
type = seduce
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
any_scheme = {
type = courting
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
}
NAND = {
exists = scope:favor_recipient_1
exists = scope:favor_recipient_2
exists = scope:favor_recipient_3
}
}
random_list = {
10 = {
trigger = {
any_relation = {
type = lover
tournament_events_1250_favor_trigger = yes
}
}
random_relation = {
type = lover
limit = { tournament_events_1250_favor_trigger = yes }
tournament_events_1250_scope_effect = yes
}
}
10 = {
trigger = {
has_activity_intent = woo_attendee_intent
intent_target = { tournament_events_1250_favor_trigger = yes }
}
intent_target = { tournament_events_1250_scope_effect = yes }
}
10 = {
trigger = {
any_scheme = {
type = seduce
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
}
random_scheme = {
type = seduce
limit = {
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
scheme_target_character = { tournament_events_1250_scope_effect = yes }
}
}
10 = {
trigger = {
any_scheme = {
type = courting
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
}
random_scheme = {
type = courting
limit = {
scheme_target_character = { tournament_events_1250_favor_trigger = yes }
}
scheme_target_character = { tournament_events_1250_scope_effect = yes }
}
}
}
}
}
}
option = { # 1st
name = tournament_events.1250.a
trigger = {
exists = scope:favor_recipient_1
root != scope:favor_recipient_1
}
scope:favor_recipient_1 = { tournament_favor_gift_effect = yes }
if = {
limit = {
scope:favor_recipient_1 = {
is_acclaimed = yes
}
scope:favor_recipient_1.accolade = {
is_accolade_active = yes
}
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:favor_recipient_1.accolade = {
add_glory = major_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_1.accolade = {
add_glory = medium_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_1.accolade = {
add_glory = minimal_glory_gain
}
}
}
ai_chance = {
base = 10
modifier = {
factor = 1.5
scope:favor_recipient_1 = { is_ai = no }
}
opinion_modifier = {
opinion_target = scope:favor_recipient_1
multiplier = 1
}
}
}
option = { # 2nd
name = tournament_events.1250.b
trigger = { exists = scope:favor_recipient_2 }
scope:favor_recipient_2 = { tournament_favor_gift_effect = yes }
if = {
limit = {
scope:favor_recipient_2 = {
is_acclaimed = yes
}
scope:favor_recipient_2.accolade = {
is_accolade_active = yes
}
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:favor_recipient_2.accolade = {
add_glory = major_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_2.accolade = {
add_glory = medium_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_2.accolade = {
add_glory = minimal_glory_gain
}
}
}
ai_chance = {
base = 10
modifier = {
factor = 1.5
scope:favor_recipient_2 = { is_ai = no }
}
opinion_modifier = {
opinion_target = scope:favor_recipient_2
multiplier = 1
}
}
}
option = { # 3rd
name = tournament_events.1250.c
trigger = { exists = scope:favor_recipient_3 }
scope:favor_recipient_3 = { tournament_favor_gift_effect = yes }
if = {
limit = {
scope:favor_recipient_2 = {
is_acclaimed = yes
}
scope:favor_recipient_2.accolade = {
is_accolade_active = yes
}
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:favor_recipient_2.accolade = {
add_glory = major_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_2.accolade = {
add_glory = medium_glory_gain
}
}
else_if = {
limit = {
highest_held_title_tier >= tier_county
}
scope:favor_recipient_2.accolade = {
add_glory = minimal_glory_gain
}
}
}
ai_chance = {
base = 10
modifier = {
factor = 1.5
scope:favor_recipient_3 = { is_ai = no }
}
opinion_modifier = {
opinion_target = scope:favor_recipient_3
multiplier = 1
}
}
}
option = { # Nah
name = tournament_events.1250.d
ai_chance = {
base = 0
}
}
}
tournament_events.1251 = {
type = activity_event
title = tournament_events.1251.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
AND = {
is_male = yes
faith = {
NOT = { has_doctrine_parameter = adultery_male_accepted }
}
}
AND = {
is_female = yes
faith = {
NOT = { has_doctrine_parameter = adultery_female_accepted }
}
}
}
NOT = { is_consort_of = scope:favor_giver }
OR = {
is_married = yes
scope:favor_giver = { is_married = yes }
}
}
desc = tournament_events.1251.discrete
}
desc = tournament_events.1251.open
}
first_valid = {
triggered_desc = {
trigger = {
any_character_artifact = {
count > 2
artifact_type = tournament_favor
}
}
desc = tournament_events.1251.many
}
triggered_desc = {
trigger = {
any_character_artifact = {
count = 2
artifact_type = tournament_favor
}
}
desc = tournament_events.1251.two
}
desc = tournament_events.1251.one
}
}
theme = tournament_grounds
override_background = {
trigger = {
OR = {
AND = {
is_male = yes
faith = {
NOT = { has_doctrine_parameter = adultery_male_accepted }
}
}
AND = {
is_female = yes
faith = {
NOT = { has_doctrine_parameter = adultery_female_accepted }
}
}
}
NOT = { is_consort_of = scope:favor_giver }
OR = {
is_married = yes
scope:favor_giver = { is_married = yes }
}
}
reference = alley_day
}
left_portrait = {
character = root
animation = war_over_win
}
right_portrait = {
character = scope:favor_giver
animation = flirtation
}
artifact = {
target = scope:newly_created_artifact
position = lower_right_portrait
}
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
exists = scope:favor_giver
exists = scope:favor_recipient
}
immediate = {
hidden_effect = {
create_artifact_tournament_favor_effect = {
OWNER = scope:favor_giver
RECIPIENT = scope:favor_recipient
}
}
}
option = { # Thank you
name = {
text = tournament_events.1251.a.spouse
trigger = { is_spouse_of = scope:favor_giver }
}
name = {
text = tournament_events.1251.a.consort
trigger = {
NOT = { is_spouse_of = scope:favor_giver }
is_consort_of = scope:favor_giver
}
}
name = {
text = tournament_events.1251.a.lover
trigger = { has_relation_lover = scope:favor_giver }
}
name = {
text = tournament_events.1251.a
trigger = {
NOR = {
is_spouse_of = scope:favor_giver
is_consort_of = scope:favor_giver
has_relation_lover = scope:favor_giver
}
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_favor_given_log
score = 25
tags = { favors good }
character = scope:favor_recipient
# Effects
show_as_tooltip = {
scope:newly_created_artifact = { set_owner = scope:favor_recipient }
}
}
}
custom_tooltip = tournament_events.1251.favor_tt
scope:favor_giver = {
send_interface_toast = {
type = event_toast_effect_good
title = tournament_favor_accepted_title
left_icon = scope:favor_recipient
right_icon = scope:newly_created_artifact
if = {
limit = {
scope:favor_recipient = { is_ai = yes }
}
scope:favor_recipient = {
add_opinion = {
target = scope:favor_giver
modifier = tournament_received_favor_opinion
opinion = 10
}
}
}
hidden_effect = {
if = {
limit = { exists = scope:favor_scheme }
scope:favor_scheme = {
add_scheme_modifier = { type = tournament_favor_scheme_modifier }
}
}
}
}
}
hidden_effect = {
scope:newly_created_artifact = { equip_artifact_to_owner_replace = yes }
}
}
option = { # Ew
name = tournament_events.1251.b
scope:favor_giver = {
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_favor_rejected_title
left_icon = scope:favor_recipient
scope:favor_recipient = { destroy_artifact = scope:newly_created_artifact }
hidden_effect = {
if = {
limit = { exists = scope:favor_scheme }
scope:favor_scheme = {
add_scheme_modifier = { type = tournament_favor_rejected_scheme_modifier }
}
}
}
}
}
reverse_add_opinion = {
target = scope:favor_giver
modifier = tournament_spurned_favor_opinion
opinion = -10
}
}
}
##################################################
# A Familiar Favor
# by Joe Parkin
# 1252-1253
##################################################
scripted_trigger tournament_familiar_favor_artifact_trigger = {
artifact_type = tournament_favor
trigger_if = {
limit = { exists = var:favor_giver }
var:favor_giver = {
OR = {
is_consort_of = root
has_relation_lover = root
}
}
}
trigger_else = { always = no }
}
tournament_events.1252 = {
type = activity_event
title = tournament_events.1252.t
desc = {
desc = tournament_events.1252.desc
}
theme = tournament_locale_camp
left_portrait = {
character = root
animation = worry
}
right_portrait = { character = scope:favor_giver }
lower_right_portrait = scope:favor_recipient
artifact = {
target = scope:favor_artifact
position = lower_center_portrait
}
cooldown = { years = 10 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.#
scope:activity = {
any_attending_character = {
this != root
OR = {
is_consort_of = root
has_relation_lover = root
}
save_temporary_scope_as = favor_giver_temp
}
any_attending_character = {
NOR = {
this = root
is_consort_of = root
has_relation_lover = root
}
any_equipped_character_artifact = { artifact_type = tournament_favor }
OR = {
is_consort_of = scope:favor_giver_temp
has_relation_lover = scope:favor_giver_temp
can_set_relation_lover_trigger = { CHARACTER = scope:favor_giver_temp }
}
save_temporary_scope_as = favor_recipient_temp
}
}
NOT = {
any_known_secret = {
secret_type = secret_lover
OR = {
secret_owner = scope:favor_giver_temp
secret_owner = scope:favor_recipient_temp
}
OR = {
secret_target = scope:favor_giver_temp
secret_target = scope:favor_recipient_temp
}
}
}
trigger_if = {
limit = {
scope:favor_giver_temp = { is_female = yes }
}
NOT = {
faith = { has_doctrine_parameter = adultery_female_accepted }
}
}
trigger_else = {
NOT = {
faith = { has_doctrine_parameter = adultery_male_accepted }
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 0.5
has_trait = dull
}
modifier = {
factor = 0.5
has_trait = intellect_bad
}
modifier = {
factor = 0.5
has_trait = trusting
}
modifier = {
add = 1
has_trait = paranoid
}
modifier = {
factor = 2
scope:activity = {
any_attending_character = {
NOR = {
this = root
is_consort_of = root
has_relation_lover = root
}
any_character_artifact = { tournament_familiar_favor_artifact_trigger = yes }
}
}
}
}
immediate = {
save_scope_as = favor_investigator
scope:activity = {
hidden_effect = {
random_list = {
# Actual suspicious favor
30 = {
trigger = {
any_attending_character = {
NOR = {
this = root
is_consort_of = root
has_relation_lover = root
}
any_equipped_character_artifact = { tournament_familiar_favor_artifact_trigger = yes }
}
}
random_attending_character = {
limit = {
NOR = {
this = root
is_consort_of = root
has_relation_lover = root
}
any_equipped_character_artifact = { tournament_familiar_favor_artifact_trigger = yes }
}
save_scope_as = favor_recipient
random_equipped_character_artifact = {
limit = { tournament_familiar_favor_artifact_trigger = yes }
save_scope_as = favor_artifact
var:favor_giver = { save_scope_as = favor_giver }
}
}
}
# Red herring favor
10 = {
random_attending_character = {
limit = {
NOR = {
this = root
is_consort_of = root
has_relation_lover = root
}
any_equipped_character_artifact = { artifact_type = tournament_favor }
}
save_scope_as = favor_recipient
random_equipped_character_artifact = {
limit = { artifact_type = tournament_favor }
save_scope_as = favor_artifact
}
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:favor_recipient
}
OR = {
is_consort_of = root
has_relation_lover = root
}
}
save_scope_as = favor_giver
}
}
}
}
}
}
option = { # Confront giver
name = tournament_events.1252.a
custom_tooltip = tournament_events.1252.a.tt
scope:favor_giver = {
trigger_event = {
id = tournament_events.1253
days = 1
}
}
stress_impact = {
trusting = medium_stress_impact_gain
calm = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = 0.5
ai_boldness = 0.5
}
}
}
option = { # No
name = tournament_events.1252.b
custom_tooltip = pregnancy.3001.b.tt
stress_impact = {
wrathful = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
}
}
}
}
tournament_events.1253 = {
type = activity_event
title = tournament_events.1253.t
desc = tournament_events.1253.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:favor_investigator
animation = anger
}
lower_right_portrait = scope:favor_recipient
artifact = {
target = scope:favor_artifact
position = lower_center_portrait
}
option = { #It is true!
name = tournament_events.1253.a
trigger = { this = scope:favor_artifact.var:favor_giver }
custom_tooltip = reveal_illegitimate_pregnancy_to_real_father_tt
stress_impact = {
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_honor = 1
ai_rationality = -1
}
}
scope:favor_investigator = { trigger_event = tournament_events.1254 } #The truth is revealed to them
}
option = { #Insist it is not true
name = tournament_events.1253.b
stress_impact = {
honest = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
ai_honor = -1
ai_rationality = 1
}
}
scope:favor_investigator = { trigger_event = tournament_events.1255 } #Denial
}
}
tournament_events.1254 = {
type = activity_event
title = tournament_events.1254.t
desc = tournament_events.1254.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:favor_giver
animation = sadness
}
lower_right_portrait = { character = scope:favor_recipient }
artifact = {
target = scope:favor_artifact
position = lower_center_portrait
}
immediate = {
progress_towards_rival_effect = {
REASON = rival_tournament_favor_jealousy
CHARACTER = scope:favor_recipient
OPINION = default_rival_opinion
}
}
option = { # Damn!
name = tournament_events.1254.a
custom_tooltip = pregnancy.3003.a.tt
}
option = {
name = tournament_events.1254.b
expose_lover_secret_or_run_consequence_effect = {
TARGET = scope:favor_giver
EXPOSER = root
}
}
}
tournament_events.1255 = {
type = activity_event
title = tournament_events.1255.t
desc = tournament_events.1255.desc
theme = pregnancy
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:favor_giver
animation = war_over_win
}
lower_right_portrait = { character = scope:favor_recipient }
artifact = {
target = scope:favor_artifact
position = lower_center_portrait
}
option = { #Are they really telling the truth?
name = tournament_events.1255.a
}
}
##################################################
# Keeping the Peace
# by Joe Parkin
# 1260
##################################################
scripted_effect tournament_events_1260_duel_effect = {
random_list = {
50 = {
min = 5
tournament_duelists_modifier = yes
modifier = {
add = 10
scope:duelist_1 = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:duelist_2 }
}
}
modifier = {
exists = scope:encourage_duel
add = 25
}
modifier = {
exists = scope:duelist_diplomacy
add = scope:duelist_diplomacy
}
hidden_effect = {
scope:duelist_1 = {
duel = {
skill = prowess
target = scope:duelist_2
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
save_scope_as = duel_winner
scope:duelist_2 = { save_scope_as = duel_loser }
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
save_scope_as = duel_loser
scope:duelist_2 = { save_scope_as = duel_winner }
}
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1260.duel_toast
left_icon = scope:duel_winner
right_icon = scope:duel_loser
scope:activity = {
if = {
limit = {
OR = {
exists = scope:admonish_duel
exists = scope:diplomacy_duel
}
}
add_activity_log_entry = {
key = tournament_failed_defuse_duel_log
tags = { bad }
score = 10
character = root
target = scope:duel_loser
# Effect
root = { add_prestige = minor_prestige_loss }
scope:duel_loser = {
increase_wounds_effect = { REASON = duel }
}
scope:duel_winner = {
accolade_minor_glory_gain_with_checks_effect = yes
}
scope:duel_loser = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
}
else = {
add_activity_log_entry = {
key = tournament_encouraged_duel_log
tags = { good }
score = 10
character = root
target = scope:duel_loser
# Effect
scope:duel_loser = {
increase_wounds_effect = { REASON = duel }
}
scope:duel_winner = {
accolade_medium_glory_gain_with_checks_effect = yes
}
scope:duel_loser = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
}
}
}
}
custom_tooltip = tournament_events.1260.duel_tt
}
50 = {
min = 5
modifier = {
exists = scope:admonish_duel
add = {
value = dread
multiply = 2
}
}
modifier = {
exists = scope:diplomacy_duel
add = {
value = scope:host.diplomacy
multiply = 2
}
}
custom_tooltip = tournament_events.1260.peace_toast
send_interface_toast = {
type = event_toast_effect_neutral
title = tournament_events.1260.peace_toast
left_icon = scope:duelist_1
right_icon = scope:duelist_2
scope:activity = {
add_activity_log_entry = {
key = tournament_defused_duel_log
tags = { good }
score = 10
character = root
# Effects
root = {
if = {
limit = {
OR = {
exists = scope:admonish_duel
exists = scope:diplomacy_duel
}
}
add_character_modifier = {
modifier = tournament_kept_the_peace_modifier
years = 10
}
}
}
}
}
}
}
}
scope:duelist_1 = {
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
tournament_events.1260 = {
type = activity_event
title = tournament_events.1260.t
desc = {
desc = tournament_events.1260.desc
first_valid = {
triggered_desc = {
trigger = {
scope:duelist_1 = { has_relation_rival = scope:duelist_2 }
}
desc = tournament_events.1260.rival
}
desc = tournament_events.1260.fallback
}
}
theme = tournament_locale_camp
left_portrait = {
character = scope:duelist_1
animation = anger
}
right_portrait = {
character = scope:duelist_2
animation = throne_room_one_handed_passive_1
}
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
scope:activity = {
any_attending_character = {
count >= 2
this != root
activity_is_valid_tournament_contestant = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
modifier = {
factor = 2
scope:activity = {
any_attending_character = {
this != root
activity_is_valid_tournament_contestant = yes
save_temporary_scope_as = duelist_temp
}
any_attending_character = {
NOR = {
this = root
this = scope:duelist_temp
}
activity_is_valid_tournament_contestant = yes
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:duelist_temp }
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
activity_is_valid_tournament_contestant = yes
save_temporary_scope_as = duelist_temp
}
weight = {
base = 25
modifier = {
add = 50
scope:activity = {
any_attending_character = {
NOR = {
this = root
this = scope:duelist_temp
}
activity_is_valid_tournament_contestant = yes
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:duelist_temp }
}
}
}
tournament_duelists_modifier = yes
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = duelist_1
add_to_list = duelists
}
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:duelist_1
}
activity_is_valid_tournament_contestant = yes
}
weight = {
base = 25
modifier = {
add = 50
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:duelist_1 }
# Don't weight up a recurring character here, so that we still try to find someone who has a problem with the recurring char.
}
tournament_duelists_modifier = yes
}
save_scope_as = duelist_2
add_to_list = duelists
set_signature_weapon_effect = yes
}
}
random_in_list = {
list = duelists
limit = { has_any_good_relationship_with_root_trigger = yes }
alternative_limit = { is_close_family_of = root }
alternative_limit = { is_consort_of = root }
alternative_limit = { is_vassal_of = root }
alternative_limit = { always = yes }
save_scope_as = preferred_duelist
}
random_in_list = {
list = duelists
limit = {
this != scope:preferred_duelist
}
save_scope_as = second_duelist
}
scope:duelist_1 = {
progress_towards_rival_effect = {
REASON = rival_tournament_duelist
CHARACTER = scope:duelist_2
OPINION = default_rival_opinion
}
}
scope:duelist_1 = {
add_character_flag = wear_armor
}
scope:duelist_2 = {
add_character_flag = wear_armor
}
}
option = { # Admonish
name = tournament_events.1260.a
every_in_list = {
list = duelists
add_opinion = {
target = root
modifier = tournament_admonished_duelist_opinion
opinion = -10
}
}
save_scope_as = admonish_duel
tournament_events_1260_duel_effect = yes
stress_impact = {
arbitrary = medium_stress_impact_gain
calm = medium_stress_impact_gain
patient = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_compassion = 1.5
ai_greed = -1.5
}
}
}
option = { # Defuse
name = tournament_events.1260.b
skill = diplomacy
save_scope_value_as = {
name = duelist_diplomacy
value = {
value = scope:duelist_1.diplomacy
add = scope:duelist_2.diplomacy
divide = 2
}
}
save_scope_as = diplomacy_duel
tournament_events_1260_duel_effect = yes
stress_impact = {
arbitrary = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
impatient = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = 1
ai_greed = -1
}
}
}
option = { # Expel them
name = tournament_events.1260.c
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
every_in_list = {
list = duelists
add_opinion = {
target = root
modifier = tournament_expelled_opinion
opinion = -15
}
remove_from_activity = scope:activity
}
stress_impact = {
just = medium_stress_impact_gain
calm = medium_stress_impact_gain
patient = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 20
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = -0.5
}
}
}
option = { # Encourage
name = tournament_events.1260.d
save_scope_as = encourage_duel
tournament_events_1260_duel_effect = yes
stress_impact = {
just = medium_stress_impact_gain
calm = medium_stress_impact_gain
patient = medium_stress_impact_gain
craven = medium_stress_impact_gain
shy = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 20
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = -0.5
}
}
}
after = {
scope:duelist_1 = {
remove_character_flag = wear_armor
}
scope:duelist_2 = {
remove_character_flag = wear_armor
}
}
}
##################################################
# Good Sport
# by Joe Parkin
# 1270
##################################################
scripted_trigger tournament_not_close_to_root_trigger = {
is_alive = yes
involved_activity = root.involved_activity
NOR = {
this = root
is_consort_of = root
is_close_family_of = root
has_relation_friend = root
has_relation_lover = root
}
}
scripted_trigger tournament_past_losing_versus_contestant_trigger = {
involved_activity = {
NOT = { has_current_phase = tournament_phase_$CONTEST$ }
trigger_if = {
limit = {
any_guest_subset = {
name = winner
tournament_not_close_to_root_trigger = yes
phase = tournament_phase_$CONTEST$
}
}
}
trigger_else = { always = no }
}
trigger_if = {
limit = { exists = var:contest_qualified_match_$CONTEST$ }
var:contest_qualified_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
trigger_else_if = {
limit = { exists = var:contest_semi_finalist_match_$CONTEST$ }
var:contest_semi_finalist_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
trigger_else_if = {
limit = { exists = var:contest_finalist_match_$CONTEST$ }
var:contest_finalist_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
trigger_else = { always = no }
}
scripted_trigger tournament_past_losing_contestant_trigger = {
scope:activity = {
NOT = { has_current_phase = tournament_phase_$CONTEST$ }
any_guest_subset = {
name = qualified
this = root
phase = tournament_phase_$CONTEST$
}
any_guest_subset = {
name = winner
NOR = {
this = root
is_consort_of = root
is_close_family_of = root
has_relation_friend = root
has_relation_lover = root
}
phase = tournament_phase_$CONTEST$
}
}
}
scripted_effect tournament_1270_versus_effect = {
if = {
limit = {
exists = var:contest_finalist_match_$CONTEST$
var:contest_finalist_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
var:contest_finalist_match_$CONTEST$ = { save_scope_as = congratulate_winner }
}
else_if = {
limit = {
exists = var:contest_semi_finalist_match_$CONTEST$
var:contest_semi_finalist_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
var:contest_semi_finalist_match_$CONTEST$ = { save_scope_as = congratulate_winner }
}
else_if = {
limit = {
exists = var:contest_qualified_match_$CONTEST$
var:contest_qualified_match_$CONTEST$ = { tournament_not_close_to_root_trigger = yes }
}
var:contest_qualified_match_$CONTEST$ = { save_scope_as = congratulate_winner }
}
else = {
random_guest_subset = {
name = winner
phase = tournament_phase_$CONTEST$
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
tournament_events.1270 = {
type = activity_event
title = tournament_events.1270.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:activity = {
any_guest_subset = {
name = winner
this = scope:congratulate_winner
}
}
}
desc = tournament_events.1270.winner
}
desc = tournament_events.1270.matcher
}
desc = tournament_events.1270.desc
}
theme = tournament_grounds
left_portrait = {
character = root
animation = war_over_tie
}
right_portrait = {
character = scope:congratulate_winner
animation = war_over_win
}
cooldown = { years = 5 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
has_activity_state = passive
OR = {
# VERSUS BOUT LOSSES
tournament_past_losing_versus_contestant_trigger = { CONTEST = joust }
tournament_past_losing_versus_contestant_trigger = { CONTEST = wrestling }
tournament_past_losing_versus_contestant_trigger = { CONTEST = duel }
tournament_past_losing_versus_contestant_trigger = { CONTEST = board_game }
# NON-TEAM CONTEST WINNERS
tournament_past_losing_contestant_trigger = { CONTEST = joust }
tournament_past_losing_contestant_trigger = { CONTEST = wrestling }
tournament_past_losing_contestant_trigger = { CONTEST = duel }
tournament_past_losing_contestant_trigger = { CONTEST = board_game }
tournament_past_losing_contestant_trigger = { CONTEST = archery }
tournament_past_losing_contestant_trigger = { CONTEST = recital }
tournament_past_losing_contestant_trigger = { CONTEST = horse_race }
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
OR = {
has_activity_intent = befriend_attendee_intent
has_activity_intent = woo_attendee_intent
}
scope:activity = {
any_guest_subset = {
name = winner
this = root.intent_target
}
}
}
}
immediate = {
random_list = {
10 = {
trigger = {
tournament_past_losing_versus_contestant_trigger = { CONTEST = joust }
}
tournament_1270_versus_effect = { CONTEST = joust }
}
10 = {
trigger = {
tournament_past_losing_versus_contestant_trigger = { CONTEST = wrestling }
}
tournament_1270_versus_effect = { CONTEST = wrestling }
}
10 = {
trigger = {
tournament_past_losing_versus_contestant_trigger = { CONTEST = duel }
}
tournament_1270_versus_effect = { CONTEST = duel }
}
10 = {
trigger = {
tournament_past_losing_versus_contestant_trigger = { CONTEST = board_game }
}
tournament_1270_versus_effect = { CONTEST = board_game }
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = joust }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_joust
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = wrestling }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_wrestling
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = duel }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_duel
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = board_game }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_board_game
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = archery }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_archery
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = recital }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_recital
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
50 = {
trigger = {
tournament_past_losing_contestant_trigger = { CONTEST = horse_race }
}
scope:activity = {
random_guest_subset = {
name = winner
phase = tournament_phase_horse_race
save_scope_as = congratulate_winner
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
}
}
option = { # Toast
name = tournament_events.1270.a
trigger = {
NOT = {
has_relation_rival = scope:congratulate_winner
}
}
scope:congratulate_winner = {
if = {
limit = { has_any_nickname = no }
random = {
chance = 33
root = {
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1270.nickname_toast
left_icon = scope:congragulate_winner
scope:congratulate_winner = { give_nickname = nick_the_champion }
}
}
}
}
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:congratulate_winner = {
accolade_medium_glory_gain_with_checks_effect = yes
}
}
else = {
scope:congratulate_winner = {
accolade_minor_glory_gain_with_checks_effect = yes
}
}
progress_towards_friend_effect = {
REASON = friend_toasted_contest_victory
CHARACTER = scope:congratulate_winner
OPINION = 0
}
reverse_add_opinion = {
target = scope:congratulate_winner
modifier = tournament_congratulate_toast_opinion
opinion = 20
}
stress_impact = {
arrogant = major_stress_impact_gain
callous = major_stress_impact_gain
shy = major_stress_impact_gain
}
if = {
limit = {
OR = {
has_activity_intent = win_contest_intent
has_relation_rival = scope:congratulate_winner
}
}
stress_impact = {
vengeful = major_stress_impact_gain
}
}
ai_chance = {
base = 10
modifier = {
add = 100
has_activity_intent = befriend_attendee_intent
intent_target = scope:congratulate_winner
}
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.25
}
}
}
option = { # Congratulate
name = tournament_events.1270.b
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:congratulate_winner = {
accolade_minor_glory_gain_with_checks_effect = yes
}
}
else = {
scope:congratulate_winner = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
}
reverse_add_opinion = {
target = scope:congratulate_winner
modifier = tournament_congratulate_opinion
opinion = 10
}
stress_impact = {
arrogant = medium_stress_impact_gain
callous = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
if = {
limit = {
OR = {
has_activity_intent = win_contest_intent
has_relation_rival = scope:congratulate_winner
}
}
stress_impact = {
vengeful = medium_stress_impact_gain
}
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:congratulate_winner
multiplier = 0.5
}
ai_value_modifier = {
ai_compassion = 1
ai_honor = 0.5
}
}
}
option = { # Vague
name = tournament_events.1270.c
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:congratulate_winner = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
reverse_add_opinion = {
target = scope:congratulate_winner
modifier = tournament_congratulate_vague_opinion
opinion = -10
}
stress_impact = {
humble = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_vengefulness = 0.5
ai_compassion = -0.5
}
modifier = {
has_relation_rival = scope:congratulate_winner
factor = 2
}
modifier = {
has_activity_intent = win_contest_intent
factor = 1.5
}
modifier = {
opinion = {
target = scope:congratulate_winner
value <= 0
}
add = 15
}
}
}
option = { # Walk away
name = tournament_events.1270.d
add_prestige = minor_prestige_loss
stress_impact = {
brave = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_boldness = -1
ai_honor = -0.5
}
opinion_modifier = {
opinion_target = scope:congratulate_winner
multiplier = 0.5
}
}
}
}
##################################################
# Sloppy Standards
# by Joe Parkin
# 1280
##################################################
tournament_events.1280 = {
type = activity_event
title = tournament_events.1280.t
desc = tournament_events.1280.desc
window = widget_activity_locale_fullscreen_event
theme = tournament_grounds
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:intercessor
animation = beg
}
lower_right_portrait = scope:collapse_victim
cooldown = { years = 2 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
this = scope:host
NOR = {
exists = dynasty.var:tournament_1280_cooldown
has_character_flag = tournament_host_disaster_cooldown
}
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
}
culture = { has_cultural_era_or_later = culture_era_high_medieval }
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
scope:activity = {
has_activity_option = {
category = tournament_option_accommodations
option = tournament_accommodations_bad
}
}
}
modifier = {
factor = 0.5
scope:activity = {
has_activity_option = {
category = tournament_option_accommodations
option = tournament_accommodations_good
}
}
}
modifier = {
factor = 2
scope:activity.activity_location = { has_building_or_higher = jousting_lists_01 }
}
modifier = {
add = {
value = scope:activity.activity_location.county.development_level
divide = 2
}
}
}
immediate = {
add_character_flag = {
flag = tournament_host_disaster_cooldown
years = 5
}
dynasty ?= {
set_variable = {
name = tournament_1280_cooldown
years = 75
}
}
scope:activity = {
random_attending_character = {
limit = {
is_adult = yes
OR = {
has_trait = compassionate
has_trait = patient
has_trait = humble
}
NOR = {
this = root
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
alternative_limit = {
is_adult = yes
NOR = {
this = root
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
weight = {
base = 1
modifier = { factor = ai_honor }
modifier = { factor = ai_compassion }
modifier = {
factor = {
value = ai_rationality
divide = 2
}
}
modifier = {
factor = {
value = 0
subtract = ai_boldness
}
}
modifier = {
factor = {
value = 0
subtract = ai_energy
}
}
modifier = {
factor = 10
exists = primary_spouse
this = root.primary_spouse
}
modifier = {
factor = 10
is_consort_of = root
}
modifier = {
factor = 10
is_powerful_vassal_of = root
}
modifier = {
factor = 10
is_clergy = yes
}
modifier = {
factor = 10
is_landed = yes
primary_title.title_province.duchy ?= scope:activity.activity_location.duchy
}
# Put this at the bottom to not mess up Joe's delicate factor work; weighted it up a bit more to actually try to drag in recurring characters.
activity_recurring_character_weight_modifier = { VALUE = 1000 }
}
save_scope_as = intercessor
try_to_create_recurring_character_effect = { CHARACTER = root }
}
hidden_effect = {
random = {
chance = 33
random_attending_character = {
limit = {
is_ai = yes
NOR = {
this = root
exists = var:contest_aptitude
is_close_or_extended_family_of = root
is_landed = yes
}
}
save_scope_as = collapse_victim
}
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_collapsed_stand_log
tags = { bad }
score = 50
character = scope:host
# Effect
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tournament_stands_collapsed_modifier
years = 5
}
}
}
}
}
if = {
limit = { exists = scope:collapse_victim }
scope:collapse_victim = {
death = { death_reason = death_tournament_stands_collapsed }
if = {
limit = {
any_close_family_member = { }
}
every_close_family_member = {
add_opinion = {
target = root
modifier = tournament_collapse_victim_family_opinion
opinion = -20
}
}
}
}
}
}
option = { # Execute workers
name = tournament_events.1280.a
add_dread = minor_dread_gain
add_character_modifier = {
modifier = tournament_executed_builders_modifier
years = 5
}
reverse_add_opinion = {
target = scope:intercessor
modifier = tournament_executed_workers_opinion
opinion = -20
}
stress_impact = {
compassionate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
calm = medium_stress_impact_gain
}
ai_chance = {
base = 10
opinion_modifier = {
opinion_target = scope:intercessor
multiplier = -0.5
}
ai_value_modifier = {
ai_compassion = -1
ai_boldness = 1
ai_vengefulness = 1
}
}
}
option = { # Compensate
name = tournament_events.1280.b
if = {
limit = {
faith = {
OR = {
trait_is_virtue = generous
trait_is_virtue = compassionate
}
}
}
add_piety = medium_piety_gain
}
remove_short_term_gold = medium_gold_value
add_character_modifier = {
modifier = tournament_compensated_stands_modifier
years = 5
}
reverse_add_opinion = {
target = scope:intercessor
modifier = tournament_compensated_victims_opinion
opinion = 20
}
scope:activity.activity_location.county = {
remove_county_modifier = tournament_stands_collapsed_modifier
add_county_modifier = {
modifier = tournament_stands_compensated_modifier
years = 5
}
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
callous = medium_stress_impact_gain
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:intercessor
multiplier = 1
}
ai_value_modifier = {
ai_compassion = 1
ai_honor = 1
ai_vengefulness = -0.5
}
}
}
option = { # Stay hand
name = tournament_events.1280.c
add_prestige = minor_prestige_loss
reverse_add_opinion = {
target = scope:intercessor
modifier = tournament_spared_workers_opinion
opinion = 10
}
stress_impact = {
arbitrary = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:intercessor
multiplier = 0.5
}
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.5
ai_vengefulness = -0.5
}
}
}
}
##################################################
# Unmanageable Miscreants
# by Joe Parkin
# 1290
##################################################
scripted_trigger tournament_squire_fire_holder_trigger = {
OR = {
any_held_title = {
OR = {
AND = {
tier = tier_county
this = scope:fire_holding.county
}
AND = {
tier = tier_barony
county = scope:fire_holding.county
}
}
}
AND = {
save_temporary_scope_as = lessee_temp
scope:fire_holding.barony.county = {
any_county_province = {
barony = {
lessee ?= scope:lessee_temp
}
}
}
}
}
}
tournament_events.1290 = {
type = activity_event
title = tournament_events.1290.t
desc = tournament_events.1290.desc
theme = tournament_grounds
override_background = { reference = burning_building }
left_portrait = {
character = root
animation = war_over_win
}
right_portrait = {
character = scope:fire_holder
animation = anger
}
cooldown = { years = 25 }
trigger = {
#Standard checks.
this = scope:host
NOR = {
exists = dynasty.var:tournament_1290_cooldown
has_character_flag = tournament_host_disaster_cooldown
}
scope:activity = {
activity_location = {
num_buildings >= 1
NOT = { has_holding_type = tribal_holding }
}
any_attending_character = {
this != root
is_adult = yes
is_participant_in_activity = scope:activity
}
# Stop this firing at the beginning of a tournament
num_past_phases >= 1
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = {
flag = tournament_host_disaster_cooldown
years = 5
}
save_scope_value_as = {
name = development_loss
value = {
integer_range = { min = -1 max = -1 }
}
}
dynasty = {
set_variable = {
name = tournament_1290_cooldown
years = 75
}
}
scope:activity = {
activity_location = {
save_scope_as = fire_holding
barony = {
if = {
limit = {
exists = holder
holder != root
}
holder = { add_to_list = fire_barons }
}
if = {
limit = {
exists = lessee
lessee != root
}
lessee = { add_to_list = fire_barons }
}
}
}
add_activity_log_entry = {
key = tournament_squire_fire_log
tags = { bad }
score = 25
character = root
# Effect
scope:activity.activity_location = {
destroy_random_building_variable_effect = yes
destroy_random_building_effect = yes
county = {
add_county_modifier = {
modifier = tournament_squire_riot_modifier
years = 5
}
}
}
}
}
every_councillor = {
limit = {
is_adult = yes
is_participant_in_activity = scope:activity
}
add_to_list = fire_barons
}
every_courtier = {
limit = {
is_adult = yes
is_participant_in_activity = scope:activity
}
add_to_list = fire_barons
}
random_in_list = {
list = fire_barons
limit = {
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
exists = primary_title.title_province
primary_title.title_province = scope:fire_holding
}
alternative_limit = {
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
tournament_squire_fire_holder_trigger = yes
}
alternative_limit = {
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
weight = {
base = 1
# Adding this at the top to not mess up Joe's delicate factor work too heavily.
activity_recurring_character_weight_modifier = { VALUE = 5 }
modifier = {
is_councillor = yes
factor = 10
}
modifier = { factor = ai_honor }
modifier = { factor = ai_compassion }
modifier = {
factor = {
value = ai_rationality
divide = 2
}
}
modifier = {
factor = {
value = 0
subtract = ai_boldness
}
}
modifier = {
factor = {
value = 0
subtract = ai_energy
}
}
modifier = {
factor = 10
is_consort_of = root
}
modifier = {
factor = 5
is_powerful_vassal_of = root
}
modifier = {
factor = 5
is_clergy = yes
}
modifier = {
factor = 2
OR = {
has_trait = compassionate
has_trait = humble
}
}
modifier = {
factor = 2
this = scope:activity.activity_location.county.holder
}
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = cynical
}
}
}
save_scope_as = fire_holder
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
option = { # Punish squires
name = tournament_events.1290.a
every_in_list = {
list = fire_barons
limit = { tournament_squire_fire_holder_trigger = yes }
add_opinion = {
target = root
modifier = tournament_punished_arsonists_opinion
opinion = 10
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_squire_fire_punished_log
tags = { bad }
score = 25
character = root
# Effect
root = {
add_dread = minor_dread_gain
add_character_modifier = {
modifier = tournament_punished_arsonists_modifier
years = 5
}
}
scope:fire_holding.county = {
add_county_modifier = {
modifier = recent_arson_modifier
years = 20
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
calm = medium_stress_impact_gain
}
ai_chance = {
base = 10
opinion_modifier = {
opinion_target = scope:fire_holder
multiplier = 0.5
}
ai_value_modifier = {
ai_compassion = -1
ai_vengefulness = 1
ai_boldness = 1
}
}
}
option = { # Donate building materials
name = tournament_events.1290.b
every_in_list = {
list = fire_barons
limit = { tournament_squire_fire_holder_trigger = yes }
add_opinion = {
target = root
modifier = tournament_donated_materials_opinion
opinion = 20
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_squire_fire_donate_log
tags = { bad }
score = 25
character = root
# Effect
root = { remove_short_term_gold = major_gold_value }
scope:fire_holding.county = {
add_county_modifier = {
modifier = arson_rebuilding_modifier
years = 20
}
}
}
}
stress_impact = {
arbitrary = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:fire_holder
multiplier = 1
}
modifier = {
factor = 0
short_term_gold < major_gold_value
}
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.5
ai_greed = -1
ai_vengefulness = -1
}
}
}
option = { # Oh well
name = tournament_events.1290.c
every_in_list = {
list = fire_barons
limit = { tournament_squire_fire_holder_trigger = yes }
add_opinion = {
target = root
modifier = tournament_fire_uncompensated_opinion
opinion = -10
}
}
scope:activity = {
add_activity_log_entry = {
key = tournament_squire_fire_dismiss_log
tags = { bad }
score = 25
character = root
root = {
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = tournament_coddled_arsonists_modifier
years = 5
}
}
scope:fire_holding.county = {
add_county_modifier = {
modifier = recent_arson_modifier
years = 20
}
}
}
}
stress_impact = {
improvident = medium_stress_impact_gain
generous = medium_stress_impact_gain
fickle = medium_stress_impact_gain
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:fire_holder
multiplier = -1
}
ai_value_modifier = {
ai_compassion = 1
ai_honor = 1
ai_greed = 0.5
ai_vengefulness = -0.5
}
}
}
}
#Aging knight takes a young one under his wing
#by Nick Meredith
tournament_events.1300 = {
type = activity_event
title = tournament_events.1300.t
desc = tournament_events.1300.desc
theme = martial
override_background = { reference = army_camp }
left_portrait = {
character = scope:old_knight
animation = personality_honorable
}
right_portrait = {
character = scope:young_knight
animation = admiration
}
lower_center_portrait = {
character = root
}
trigger = {
this = scope:host
any_knight = {
age >= 55
location = root.location
is_ai = yes
is_adult = yes
}
any_knight = {
age <= 30
location = root.location
is_ai = yes
is_adult = yes
has_trait = tourney_participant
}
}
immediate = {
random_knight = {
limit = {
age >= 55
location = root.location
is_ai = yes
is_adult = yes
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = old_knight
}
random_knight = {
limit = {
age <= 30
location = root.location
is_ai = yes
is_adult = yes
has_trait = tourney_participant
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = young_knight
}
}
# Encourage them
option = {
name = tournament_events.1300.a
scope:young_knight = {
accolade_medium_glory_gain_with_checks_effect = yes
random_list = {
1 = {
add_trait_xp = {
trait = tourney_participant
track = foot
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = bow
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = horse
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
progress_towards_friend_effect = {
REASON = friend_tournament_tutor
CHARACTER = scope:old_knight
OPINION = 20
}
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
}
scope:old_knight = {
accolade_minor_glory_gain_with_checks_effect = yes
}
stress_impact = {
compassionate = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
humble = miniscule_stress_impact_loss
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = callous
}
}
}
# Say that you'll tutor the young knight instead
option = {
name = tournament_events.1300.b
duel = {
skills = { martial diplomacy }
value = decent_skill_rating
50 = { #It works well
custom_tooltip = tournament_events.1300.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
scope:young_knight = {
hidden_effect = {
random_list = {
1 = {
add_trait_xp = {
trait = tourney_participant
track = foot
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = bow
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = horse
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
accolade_major_glory_gain_with_checks_effect = yes
}
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1300.b.success
left_icon = root
right_icon = scope:young_knight
progress_towards_friend_effect = {
REASON = friend_bonded_during_tournament
CHARACTER = scope:young_knight
OPINION = default_friend_opinion
}
}
}
50 = { #It doesn't go well
custom_tooltip = tournament_events.1300.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
hidden_effect = {
scope:young_knight = {
random_list = {
1 = {
add_trait_xp = {
trait = tourney_participant
track = foot
value = -5
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = bow
value = -5
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = horse
value = -5
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = wit
value = -5
}
}
}
accolade_medium_glory_loss_with_checks_effect = yes
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1300.b.failure
left_icon = root
right_icon = scope:young_knight
add_opinion = {
target = scope:young_knight
modifier = angry_opinion
opinion = -30
}
}
}
}
scope:young_knight = {
try_to_create_recurring_character_effect = { CHARACTER = root }
}
reverse_add_opinion = {
target = scope:old_knight
modifier = disappointed_opinion
opinion = -15
}
stress_impact = {
stubborn = miniscule_stress_impact_loss
fickle = medium_stress_impact_gain
arrogant = miniscule_stress_impact_loss
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = fickle
}
}
}
}
# Ask to be tutored by the old knight
option = {
name = tournament_events.1300.c
trigger = {
age <= 30 #Make sure you're young enough to be tutored like this
}
random_list = {
1 = {
add_trait_xp = {
trait = tourney_participant
track = foot
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = bow
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = horse
value = 10
}
}
1 = {
add_trait_xp = {
trait = tourney_participant
track = wit
value = 10
}
}
}
scope:young_knight = {
accolade_medium_glory_gain_with_checks_effect = yes
}
scope:young_knight = {
accolade_minor_glory_gain_with_checks_effect = yes
}
try_to_create_recurring_character_effect = { CHARACTER = scope:old_knight }
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
progress_towards_friend_effect = {
REASON = friend_tournament_tutor
CHARACTER = scope:old_knight
OPINION = 20
}
stress_impact = {
arrogant = major_stress_impact_gain
lazy = medium_stress_impact_gain
content = minor_stress_impact_gain
diligent = miniscule_stress_impact_loss
ambitious = miniscule_stress_impact_loss
humble = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = ambitious
}
}
}
}
}
#A famous knight turns up at your Tournament
#Alt. Title: Becks shows up at your kickabout
#by Nick Meredith
tournament_events.1310 = {
type = activity_event
title = tournament_events.1310.t
desc = tournament_events.1310.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:famous_knight
animation = personality_honorable
}
cooldown = { months = 2 }
trigger = {
this = scope:host
scope:activity = {
any_attending_character = {
this != root
is_adult = yes
is_healthy = yes
is_ai = yes
has_trait = tourney_participant
OR = {
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
}
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
is_adult = yes
is_healthy = yes
OR = {
has_trait_xp = {
trait = tourney_participant
track = foot
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = bow
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = horse
value >= 50
}
has_trait_xp = {
trait = tourney_participant
track = wit
value >= 50
}
}
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = famous_knight
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
scope:host = {
add_prestige = major_prestige_value
}
}
# Welcome them
option = {
name = tournament_events.1310.a
progress_towards_friend_effect = {
REASON = friend_tournament_famous
CHARACTER = scope:famous_knight
OPINION = default_friend_opinion
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:famous_knight = {
accolade_minor_glory_gain_with_checks_effect = yes
}
}
else = {
scope:famous_knight = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
}
add_character_modifier = {
modifier = tournament_star_struck_modifier
years = 15
}
stress_impact = {
compassionate = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
humble = miniscule_stress_impact_loss
arrogant = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = arrogant
}
}
}
}
# Learn from them
option = {
name = tournament_events.1310.b
trigger = { activity_is_competing_trigger = yes }
duel = {
skills = { diplomacy learning }
value = high_skill_rating
# Crit success.
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tournament_events.1310.b.critsuccess
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1310.b.critsuccess
left_icon = root
right_icon = scope:famous_knight
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
}
}
# Success.
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = tournament_events.1310.b.success
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1310.b.success
left_icon = root
right_icon = scope:famous_knight
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
}
# Failure.
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = tournament_events.1310.b.failure
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1310.b.failure
left_icon = root
right_icon = scope:famous_knight
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
}
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:famous_knight = {
accolade_minor_glory_gain_with_checks_effect = yes
}
}
else = {
scope:famous_knight = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
callous = miniscule_stress_impact_loss
humble = major_stress_impact_gain
arrogant = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = compassionate
}
}
}
}
# Ignore them
option = {
name = tournament_events.1310.c
progress_towards_rival_effect = {
REASON = rival_tournament_famous
CHARACTER = scope:famous_knight
OPINION = default_rival_opinion
}
add_character_modifier = {
modifier = tournament_grounded_modifier
years = 15
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:famous_knight = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
callous = miniscule_stress_impact_loss
humble = major_stress_impact_gain
arrogant = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = compassionate
}
}
}
}
}
#A herald forgets their knight's name
#Alt. Title: Becks shows up at your kickabout and you forget he's called Becks
#by Nick Meredith
tournament_events.1311 = {
type = activity_event
title = tournament_events.1311.t
desc = tournament_events.1311.desc
theme = martial
override_background = { reference = army_camp }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:knight_herald
animation = worry
}
lower_center_portrait = {
character = scope:forgotten_knight
}
cooldown = { years = 1 }
trigger = {
this = scope:host
scope:activity = {
any_attending_character = {
this != root
is_adult = yes
is_ai = yes
is_healthy = yes
is_participant_in_activity = scope:activity
is_knight = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = THIS }
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
this != root
is_adult = yes
is_ai = yes
is_healthy = yes
is_participant_in_activity = scope:activity
is_knight = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = THIS }
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = forgotten_knight
}
}
if = {
limit = {
any_pool_character = {
province = scope:activity.activity_location
is_available_ai_adult = yes
has_no_particular_noble_roots_trigger = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = THIS }
}
}
random_pool_character = {
province = involved_activity.activity_location
limit = {
is_available_ai_adult = yes
has_no_particular_noble_roots_trigger = yes
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = THIS }
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = knight_herald
}
}
else = {
create_character = {
template = servant_character
dynasty = none
location = scope:activity.activity_location
gender_female_chance = root_faith_dominant_gender_adjusted_female_chance
save_scope_as = knight_herald
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
}
# Offer them a replacement herald
option = {
name = tournament_events.1311.a
remove_short_term_gold = minor_gold_value
scope:forgotten_knight = {
add_character_modifier = {
modifier = tournament_well_proclaimed_modifier
years = 10
}
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
}
progress_towards_friend_effect = {
REASON = friend_tournament_herald_knight
CHARACTER = scope:forgotten_knight
OPINION = default_friend_opinion
}
progress_towards_rival_effect = {
REASON = rival_tournament_herald
CHARACTER = scope:knight_herald
OPINION = default_rival_opinion
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:forgotten_knight = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
}
hidden_effect = {
random_list = {
1 = {
try_to_create_recurring_character_effect = { CHARACTER = scope:forgotten_knight }
}
1 = {
try_to_create_recurring_character_effect = { CHARACTER = scope:knight_herald }
}
}
}
stress_impact = {
generous = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
gregarious = miniscule_stress_impact_loss
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
}
}
}
}
# Offer the herald a job
option = {
name = tournament_events.1311.b
add_courtier = scope:knight_herald
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = decrease_miniscule }
}
add_character_modifier = {
modifier = tournament_poorly_announced_modifier
years = 20
}
reverse_add_opinion = {
target = scope:forgotten_knight
modifier = relieved_opinion
opinion = 30
}
try_to_create_recurring_character_effect = { CHARACTER = scope:knight_herald }
custom_tooltip = tournament_events.1311.b.tt
hidden_effect = {
scope:activity = {
every_attending_character = {
limit = {
this != root
has_trait = compassionate
}
add_opinion = {
target = root
modifier = kindness_opinion
opinion = 25
}
}
}
}
stress_impact = {
base = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
humble = miniscule_stress_impact_loss
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = arrogant
}
}
}
# Laugh at them
option = {
name = tournament_events.1311.c
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
progress_towards_rival_effect = {
REASON = rival_tournament_herald_knight
CHARACTER = scope:forgotten_knight
OPINION = default_rival_opinion
}
try_to_create_recurring_character_effect = { CHARACTER = scope:forgotten_knight }
stress_impact = {
compassionate = medium_stress_impact_gain
callous = miniscule_stress_impact_loss
sadistic = miniscule_stress_impact_loss
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:forgotten_knight = {
accolade_minor_glory_loss_with_checks_effect = yes
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = compassionate
}
}
}
}
#A foreign knight wows the crowd
#Alt. Title: Becks is Brazilian somehow
#by Nick Meredith
tournament_events.1312 = {
type = activity_event
title = tournament_events.1312.t
desc = tournament_events.1312.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:foreign_knight
animation = marshal
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_attending_character = {
NOR = { #Not you, and also isn't of your culture OR the province's culture
this = root
culture = root.culture
culture = scope:activity.activity_location.culture
}
# Not employed as champion
NOR = {
liege.court_position:champion_court_position ?= this
has_relation_to = root
is_close_family_of = root
}
is_adult = yes
is_ai = yes
is_healthy = yes
is_participant_in_activity = scope:activity
is_landed = no
liege ?= { is_ai = yes }
save_temporary_scope_as = foreign_knight_temp
NOT = {
liege.primary_title ?= {
any_title_heir = { scope:foreign_knight_temp ?= this }
}
}
}
}
this = scope:host
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
NOR = { #Not you, and also isn't of your culture OR the province's culture
this = root
culture = root.culture
culture = scope:activity.activity_location.culture
}
# Not employed as champion
NOR = {
liege.court_position:champion_court_position ?= this
has_relation_to = root
is_close_family_of = root
}
is_adult = yes
is_ai = yes
is_healthy = yes
is_participant_in_activity = scope:activity
is_landed = no
liege ?= { is_ai = yes }
save_temporary_scope_as = foreign_knight_temp
NOT = {
liege.primary_title = {
any_title_heir = { this = scope:foreign_knight_temp }
}
}
}
weight = {
base = 1
modifier = {
factor = 2
is_lowborn = yes
}
modifier = {
factor = 5
NOT = {
culture = {
has_same_culture_heritage = scope:activity.activity_location.culture
}
}
}
modifier = {
factor = 3
NOT = {
culture = {
has_same_culture_heritage = root.culture
}
}
}
modifier = {
factor = 0.5
house = liege.house
}
modifier = {
factor = 0.5
has_any_good_relationship_with_character_trigger = { CHARACTER = liege }
}
modifier = {
factor = 0.5
is_close_family_of = liege
}
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = foreign_knight
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
scope:foreign_knight.liege = {
save_scope_as = foreign_knight_liege
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
}
# Try to recruit them
option = {
name = tournament_events.1312.a
duel = {
skill = diplomacy
value = high_skill_rating
50 = {
desc = tournament_events.1312.a.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
#Putting these outside the toast to reduce clutter
pay_short_term_gold = {
target = scope:foreign_knight
gold = minor_gold_value
}
add_courtier = scope:foreign_knight
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1312.a.success
left_icon = scope:foreign_knight
right_icon = scope:foreign_knight_liege
scope:foreign_knight = { set_knight_status = force }
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_miniscule }
}
reverse_add_opinion = {
target = scope:foreign_knight
modifier = pleased_opinion
opinion = 20
}
}
}
50 = {
desc = tournament_events.1312.a.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:foreign_knight = {
accolade_minor_glory_gain_with_checks_effect = yes
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1312.a.failure
left_icon = scope:foreign_knight
right_icon = scope:foreign_knight_liege
reverse_add_opinion = {
target = scope:foreign_knight_liege
modifier = angry_opinion
opinion = -35
}
}
}
}
stress_impact = {
generous = miniscule_stress_impact_loss
greedy = medium_stress_impact_gain
content = minor_stress_impact_gain
ambitious = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = content
has_trait = greedy
gold < medium_gold_value
}
}
}
}
# Impressed, befriend them
option = {
name = tournament_events.1312.b
progress_towards_friend_effect = {
REASON = friend_tournament_foreign_knight
CHARACTER = scope:foreign_knight
OPINION = default_friend_opinion
}
add_character_modifier = {
modifier = tournament_foreign_knight_modifier
years = 25
}
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:foreign_knight = {
accolade_minimal_glory_gain_with_checks_effect = yes
}
}
stress_impact = {
gregarious = miniscule_stress_impact_loss
shy = medium_stress_impact_gain
humble = miniscule_stress_impact_loss
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = shy
}
}
}
# Dismiss them
option = {
name = tournament_events.1312.c
if = {
limit = {
highest_held_title_tier >= tier_kingdom
}
scope:foreign_knight = {
accolade_minimal_glory_loss_with_checks_effect = yes
}
}
reverse_add_opinion = {
target = scope:foreign_knight
modifier = rejected_opinion
opinion = -30
}
stress_impact = {
gregarious = medium_stress_impact_gain
shy = miniscule_stress_impact_loss
humble = medium_stress_impact_gain
arrogant = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = gregarious
has_trait = humble
}
}
}
}
}
#The Red Coin
#by Nick Meredith
tournament_events.1320 = {
type = activity_event
title = tournament_events.1320.t
desc = tournament_events.1320.desc
theme = intrigue
left_portrait = {
character = root
animation = throne_room_conversation_4
}
right_portrait = {
character = scope:unusual_stranger
animation = scheme
outfit_tags = { western_stealth_hood }
}
cooldown = { years = 50 }
trigger = {
is_ai = no # Just so we don't have to worry about non-player characters getting this
}
immediate = {
scope:activity = {
random_attending_character = {
culture = { save_scope_as = attending_culture }
}
}
scope:attending_culture = {
random_culture_county = {
faith = { save_scope_as = attending_faith }
}
}
create_character = {
template = tournament_unusual_stranger
location = scope:activity.activity_location
culture = scope:attending_culture
faith = scope:attending_faith
dynasty = none
save_scope_as = unusual_stranger
}
}
# Accept their offer
option = {
name = tournament_events.1320.a
scope:unusual_stranger = {
pay_short_term_gold = {
target = root
gold = 1
}
add_character_flag = red_coin_origin
}
add_character_flag = red_coin_flag
scope:unusual_stranger = {
hidden_effect = {
add_gold = 70 #Ensure they have some gold to get by with for later events
add_to_activity = scope:activity
scope:activity = {
add_to_guest_subset = {
name = spectator
target = scope:unusual_stranger
}
}
}
}
hidden_effect = {
scope:activity = { # Add them to here to keep track of them
add_to_guest_subset = {
name = spectator
target = scope:unusual_stranger
}
}
}
stress_impact = {
paranoid = major_stress_impact_gain
impatient = medium_stress_impact_gain
trusting = miniscule_stress_impact_loss
patient = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = impatient
has_trait = paranoid
}
}
}
}
# Refuse their offer
option = {
name = tournament_events.1320.b
scope:unusual_stranger = {
silent_disappearance_effect = yes
}
stress_impact = {
paranoid = miniscule_stress_impact_loss
impatient = miniscule_stress_impact_loss
trusting = medium_stress_impact_gain
patient = medium_stress_impact_gain
eccentric = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = -0.5
ai_boldness = 1
}
}
}
}
#Coin Collection
tournament_events.1321 = {
type = activity_event
title = tournament_events.1321.t
desc = tournament_events.1321.desc
theme = intrigue
override_background = { reference = army_camp }
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:unusual_stranger
animation = happiness
outfit_tags = { western_stealth_hood }
}
trigger = {
has_character_flag = red_coin_flag
scope:activity = {
any_attending_character = {
has_character_flag = red_coin_origin
}
}
}
immediate = {
scope:activity.activity_location.county = {
save_scope_as = county
}
scope:activity = {
random_attending_character = {
limit = {
has_character_flag = red_coin_origin
}
save_scope_as = unusual_stranger
}
}
}
# How would you like a job?
option = {
name = tournament_events.1321.a
pay_short_term_gold = {
target = scope:unusual_stranger
gold = 1
}
add_courtier = scope:unusual_stranger
if = {
limit = {
NOT = {
exists = root.cp:councillor_spymaster
}
}
assign_councillor_type = {
type = councillor_spymaster
target = scope:unusual_stranger
}
}
else_if = {
limit = {
can_appoint_char_to_court_position = {
CHAR = scope:unusual_stranger
COURT_POS = keeper_of_swans_court_position
}
}
court_position_grant_effect = {
EMPLOYER = ROOT
CANDIDATE = scope:unusual_stranger
POS = keeper_of_swans
}
}
remove_character_flag = red_coin_flag
scope:unusual_stranger = {
remove_character_flag = red_coin_origin
}
stress_impact = {
paranoid = miniscule_stress_impact_loss
just = miniscule_stress_impact_loss
generous = minor_stress_impact_loss
deceitful = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.5
ai_boldness = -0.5
}
}
}
# Hand the coin back
option = {
name = tournament_events.1321.b
scope:unusual_stranger = {
pay_short_term_gold = {
target = root
gold = 49
}
}
remove_character_flag = red_coin_flag
scope:unusual_stranger = {
remove_character_flag = red_coin_origin
}
scope:unusual_stranger = {
silent_disappearance_effect = yes
}
stress_impact = {
paranoid = minor_stress_impact_loss #Because you're not beholden to them any more
trusting = miniscule_stress_impact_loss #Because your faith was proven right
generous = minor_stress_impact_loss
deceitful = minor_stress_impact_gain
stubborn = minor_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
ai_boldness = -1
}
}
}
# Refuse to hand the coin back
option = {
name = tournament_events.1321.c
flavor = tournament_events.1321.c.tt
trigger_event = tournament_events.1322
stress_impact = {
arbitrary = miniscule_stress_impact_loss
greedy = miniscule_stress_impact_loss
trusting = medium_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = -1
ai_boldness = 1
}
}
}
}
#Refusal aftermath
tournament_events.1322 = {
type = activity_event
title = tournament_events.1322.t
desc = tournament_events.1322.desc
theme = intrigue
override_background = { reference = army_camp }
left_portrait = {
character = root
animation = paranoia
}
right_portrait = {
character = scope:unusual_stranger
animation = rage
outfit_tags = { western_stealth_hood }
}
# Uh oh
option = {
name = tournament_events.1322.a
add_character_modifier = tournament_reckoning_modifier
reverse_add_opinion = {
target = scope:unusual_stranger
modifier = tournament_wronged_me_opinion
opinion = -80
}
stress_impact = {
base = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_rationality = 0.5
ai_boldness = -0.5
}
}
}
}
#Your heir is also competing
#by Nick Meredith
tournament_events.1330 = {
type = activity_event
title = tournament_events.1330.t
desc = tournament_events.1330.desc
theme = martial
override_background = { reference = army_camp }
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:heir
animation = beg
}
cooldown = { years = 1 }
trigger = {
this = scope:host
is_in_guest_subset = { name = contestant }
scope:activity = {
any_guest_subset_current_phase = {
name = contestant
is_primary_heir_of = root
}
OR = {
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_duel
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = contestant
limit = {
is_primary_heir_of = root
}
save_scope_as = heir
}
}
random_spouse = {
limit = {
is_parent_of = root.primary_heir
}
save_scope_as = spouse
}
}
# You are too precious to me!
option = {
name = tournament_events.1330.a
trigger = {
OR = {
diplomacy > 13
has_trait = compassionate
opinion = { target = root.primary_heir value >= 80 }
}
}
scope:heir = {
save_scope_as = resigner
custom_tooltip = tournament_not_competing_tt
add_character_flag = tournament_not_competing
}
scope:activity = {
remove_from_guest_subset = {
name = contestant
target = scope:heir
}
add_to_guest_subset = {
name = spectator
target = scope:heir
}
}
add_character_modifier = {
modifier = tournament_loving_parent_modifier
years = 15
}
reverse_add_opinion = {
target = scope:heir
modifier = honored_opinion
opinion = 20
}
stress_impact = {
honest = miniscule_stress_impact_loss
compassionate = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
deceitful = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 1
ai_vengefulness = -1
}
}
}
# I'm so proud!
option = {
name = tournament_events.1330.b
trigger = {
OR = {
has_trait = gallant
has_trait = brave
}
}
reverse_add_opinion = {
target = scope:heir
modifier = happy_opinion
opinion = 50
}
stress_impact = {
base = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = 1
ai_honor = 1
}
}
}
# I forbid this!
option = {
name = tournament_events.1330.c
scope:heir = {
save_scope_as = resigner
custom_tooltip = tournament_not_competing_tt
add_character_flag = tournament_not_competing
}
scope:activity = {
remove_from_guest_subset = {
name = contestant
target = scope:heir
}
add_to_guest_subset = {
name = spectator
target = scope:heir
}
}
reverse_add_opinion = {
target = scope:heir
modifier = rejected_opinion
opinion = -30
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
arbitrary = miniscule_stress_impact_loss
compassionate = minor_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = -1
ai_boldness = -0.5
}
}
}
# If you must
option = {
name = tournament_events.1330.d
trigger = { exists = scope:spouse }
reverse_add_opinion = {
target = scope:heir
modifier = pleased_opinion
opinion = 15
}
stress_impact = {
fickle = miniscule_stress_impact_loss
forgiving = miniscule_stress_impact_loss
vengeful = miniscule_stress_impact_gain
stubborn = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = 0.5
ai_boldness = 0.5
}
}
}
}
#Your dynast demands you withdraw
#by Nick Meredith
tournament_events.1331 = {
type = activity_event
title = tournament_events.1331.t
desc = tournament_events.1331.desc
theme = martial_authority_focus
override_background = { reference = army_camp }
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:dynast
animation = disapproval
}
cooldown = { years = 1 }
trigger = {
this = scope:host
dynasty.dynast ?= {
this != root
involved_activity = scope:activity
activity_is_competing_trigger = yes
}
}
immediate = {
dynasty.dynast = { save_scope_as = dynast }
scope:activity = {
random_guest_subset_current_phase = {
name = contestant
limit = { activity_is_competing_trigger = yes }
save_scope_as = heir
}
}
}
# Intimidate them
option = {
name = tournament_events.1331.a
trigger = {
NOR = {
AND = {
has_trait = kinslayer_1
faith = { has_doctrine_parameter = kinslaying_any_dynasty_member_crime }
}
AND = {
has_trait = kinslayer_2
faith = { has_doctrine_parameter = kinslaying_extended_family_crime }
}
AND = {
has_trait = kinslayer_3
faith = { has_doctrine_parameter = kinslaying_close_kin_crime }
}
}
dread > 50
}
scope:dynast = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_miniscule }
}
reverse_add_opinion = {
target = scope:dynast
modifier = scared_opinion
opinion = -35
}
stress_impact = {
sadistic = miniscule_stress_impact_loss
wrathful = miniscule_stress_impact_loss
brave = miniscule_stress_impact_loss
compassionate = minor_stress_impact_gain
calm = minor_stress_impact_gain
craven = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = -1
ai_vengefulness = 1
ai_honor = -0.5
}
}
}
# Maybe we can strike a deal?
option = {
name = tournament_events.1331.b
trigger = {
has_trait = family_first
}
if = {
limit = {
can_add_hook = {
target = scope:dynast
type = favor_hook
}
}
add_hook = {
target = scope:dynast
type = favor_hook
}
}
reverse_add_opinion = {
target = scope:dynast
modifier = relieved_opinion
opinion = 40
}
stress_impact = {
base = miniscule_stress_impact_loss
compassionate = miniscule_stress_impact_loss
just = miniscule_stress_impact_loss
callous = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 1
}
}
}
# Remember that time I Fredo'd that dude?
option = {
name = tournament_events.1331.c
trigger = {
OR = {
AND = {
has_trait = kinslayer_1
faith = { has_doctrine_parameter = kinslaying_any_dynasty_member_crime }
}
AND = {
has_trait = kinslayer_2
faith = { has_doctrine_parameter = kinslaying_extended_family_crime }
}
AND = {
has_trait = kinslayer_3
faith = { has_doctrine_parameter = kinslaying_close_kin_crime }
}
}
}
scope:dynast = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
add_dread = medium_dread_gain
reverse_add_opinion = {
target = scope:dynast
modifier = scared_opinion
opinion = -50
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
arbitrary = miniscule_stress_impact_loss
sadistic = miniscule_stress_impact_loss
compassionate = minor_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = -1
ai_boldness = 1
}
}
}
# I won't be coerced!
option = {
name = tournament_events.1331.d
progress_towards_rival_effect = {
REASON = rival_dynast_tournament_coercion
CHARACTER = scope:dynast
OPINION = default_rival_opinion
}
stress_impact = {
content = medium_stress_impact_gain
fickle = medium_stress_impact_gain
ambitious = miniscule_stress_impact_loss
arrogant = miniscule_stress_impact_loss
stubborn = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 1
}
}
}
# Fine, if I must.
option = {
name = tournament_events.1331.e
add_character_flag = tournament_not_competing
custom_tooltip = tournament_not_competing_tt
scope:activity = {
remove_from_guest_subset = {
name = contestant
target = root
}
add_to_guest_subset = {
name = spectator
target = root
}
}
scope:dynast = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
}
reverse_add_opinion = {
target = scope:dynast
modifier = pleased_opinion
opinion = 15
}
stress_impact = {
content = miniscule_stress_impact_loss
fickle = miniscule_stress_impact_loss
ambitious = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
stubborn = major_stress_impact_gain
}
ai_chance = {
base = 25 #Make sure AI don't withdraw too much
ai_value_modifier = {
ai_boldness = -1
}
}
}
}
#Your powerful vassal wants help
#by Nick Meredith
tournament_events.1332 = {
type = activity_event
title = tournament_events.1332.t
desc = tournament_events.1332.desc
theme = tournament_locale_camp
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:powerful_vassal
animation = beg
}
cooldown = { years = 1 }
trigger = {
this = scope:host
any_powerful_vassal = {
is_ai = yes
involved_activity = scope:activity
activity_is_competing_trigger = yes
}
}
immediate = {
random_powerful_vassal = {
limit = {
is_ai = yes
involved_activity = scope:activity
activity_is_competing_trigger = yes
}
save_scope_as = powerful_vassal
}
}
# Agree in exchange for loyalty
option = {
name = tournament_events.1332.a
trigger = {
diplomacy > 15
can_add_hook = {
target = scope:powerful_vassal
type = loyalty_hook
}
}
scope:powerful_vassal = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_major }
}
if = {
limit = {
can_add_hook = {
target = scope:powerful_vassal
type = loyalty_hook
}
}
add_hook = {
target = scope:powerful_vassal
type = loyalty_hook
}
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
arbitrary = miniscule_stress_impact_loss
content = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = -1
}
}
}
# Agree for a hook, depowered compared to A
option = {
name = tournament_events.1332.b
trigger = {
diplomacy <= 15
can_add_hook = {
target = scope:powerful_vassal
type = favor_hook
}
}
scope:powerful_vassal = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
}
if = {
limit = {
can_add_hook = {
target = scope:powerful_vassal
type = favor_hook
}
}
add_hook = {
target = scope:powerful_vassal
type = favor_hook
}
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
arbitrary = miniscule_stress_impact_loss
content = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = -1
}
}
}
# Agree for money
option = {
name = tournament_events.1332.c
trigger = {
scope:powerful_vassal.gold >= 1
}
scope:powerful_vassal = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_medium }
}
scope:powerful_vassal = {
pay_short_term_gold = {
target = root
gold = {
value = root.medium_gold_value
max = scope:powerful_vassal.gold
min = 1
}
}
}
stress_impact = {
greedy = miniscule_stress_impact_loss
impatient = miniscule_stress_impact_loss
generous = minor_stress_impact_gain
patient = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = 1
}
}
}
# Minor agree, for opinion
option = {
name = tournament_events.1332.d
scope:powerful_vassal = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
reverse_add_opinion = {
target = scope:powerful_vassal
modifier = pleased_opinion
opinion = 40
}
stress_impact = {
content = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
ambitious = medium_stress_impact_gain
shy = miniscule_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -1
ai_greed = -0.5
}
}
}
# Nah
option = {
name = tournament_events.1332.e
scope:powerful_vassal = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_miniscule }
}
progress_towards_rival_effect = {
REASON = rival_dynast_tournament_coercion
CHARACTER = scope:powerful_vassal
OPINION = default_rival_opinion
}
stress_impact = {
stubborn = miniscule_stress_impact_loss
lazy = miniscule_stress_impact_loss
just = miniscule_stress_impact_loss
fickle = minor_stress_impact_gain
arbitrary = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_greed = -1
ai_honor = -0.5
}
}
}
}
###################################
###################################
### SPECTATOR-ONLY EVENTS ###
### 1400-1500 ###
###################################
###################################
# A tall person is blocking your view!
tournament_events.1400 = {
type = activity_event
title = tournament_events.1400.t
desc = tournament_events.1400.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:tall_person
animation = dismissal
}
cooldown = { years = 1 }
trigger = {
is_ai = no
is_adult = yes
is_healthy = yes
NOR = {
has_trait = wounded
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
is_ai = yes
is_healthy = yes
is_adult = yes
save_temporary_scope_as = tall_temp
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:tall_temp }
OR = {
has_trait = giant
has_trait = physique_good
}
NOT = { has_trait = wounded }
# Dwarves can be seen over unless you're also a dwarf.
trigger_if = {
limit = {
root = {
NOT = { has_trait = dwarf }
}
}
NOT = { has_trait = dwarf }
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = yes
factor = 0.25
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_ai = yes
is_healthy = yes
is_adult = yes
save_temporary_scope_as = tall_temp
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:tall_temp }
OR = {
has_trait = giant
has_trait = physique_good
}
NOT = { has_trait = wounded }
# Dwarves can be seen over unless you're also a dwarf.
trigger_if = {
limit = {
root = {
NOT = { has_trait = dwarf }
}
}
NOT = { has_trait = dwarf }
}
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = tall_person
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
# Slug them in the back
option = {
name = tournament_events.1400.a
flavor = tournament_events.1400.a.fight
trigger = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
increase_wounds_effect = { REASON = fight }
scope:tall_person = {
increase_wounds_effect = { REASON = fight }
}
progress_towards_rival_effect = {
REASON = rival_tournament_brawl
CHARACTER = scope:tall_person
OPINION = default_rival_opinion
}
add_prestige = minor_prestige_loss
stress_impact = {
wrathful = medium_stress_impact_loss
brave = miniscule_stress_impact_loss
impatient = miniscule_stress_impact_loss
calm = medium_stress_impact_gain
craven = medium_stress_impact_gain
patient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = patient
has_trait = calm
}
}
}
}
# Ask them to move
option = {
name = tournament_events.1400.b
duel = {
skill = diplomacy
value = medium_skill_rating
50 = { #They acquiesce
desc = tournament_events.1400.b.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
dread >= 30
add = 10
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1400.b.success
left_icon = root
right_icon = scope:tall_person
add_stress = minor_stress_loss
}
}
50 = { #They refuse
desc = tournament_events.1400.b.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1400.b.failure
left_icon = root
right_icon = scope:tall_person
add_stress = minor_stress_gain
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
gregarious = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = shy
}
}
}
# Attempt to recruit them
option = {
name = tournament_events.1400.c
trigger = {
scope:tall_person = { #Make sure they're recruitable
is_knight = no
is_landed = no
is_ruler = no
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
is_landed = yes
}
duel = {
skill = diplomacy
value = high_skill_rating
50 = {
desc = tournament_events.1400.c.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
add_courtier = scope:tall_person
remove_short_term_gold = minor_gold_value
}
50 = {
desc = tournament_events.1400.c.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
reverse_add_opinion = {
target = scope:tall_person
modifier = refusal_opinion
opinion = -10
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
lazy = medium_stress_impact_gain
gregarious = miniscule_stress_impact_gain
diligent = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = lazy
}
}
}
}
# Tough it out
option = {
name = tournament_events.1400.d
stress_impact = {
base = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
humble = miniscule_stress_impact_loss
calm = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = arrogant
}
}
}
}
}
# You, a tall person, are blocking someone else's view!
tournament_events.1401 = {
type = activity_event
title = tournament_events.1401.t
desc = tournament_events.1401.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:smol_person
animation = stress
}
cooldown = { years = 1 }
trigger = {
NOR = {
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
OR = {
has_trait = giant
has_trait = physique_good
}
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
this = root
}
any_guest_subset_current_phase = {
name = spectator
NOR = {
has_trait = giant
has_trait = physique_good
}
is_ai = yes
is_healthy = yes
NOR = {
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
}
}
}
immediate = {
scope:activity = {
random_guest_subset = {
name = spectator
limit = {
NOR = {
has_trait = giant
has_trait = physique_good
}
is_ai = yes
is_healthy = yes
NOR = {
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
}
weight = {
base = 1
modifier = {
add = 25
is_adult = no
}
modifier = {
add = 50
has_trait = dwarf
}
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = smol_person
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
# Box them out with your frame
option = {
name = tournament_events.1401.a
duel = {
skill = prowess
target = scope:smol_person
70 = { #You win
desc = tournament_events.1401.a.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1401.a.success
left_icon = root
right_icon = scope:smol_person
reverse_add_opinion = {
target = scope:smol_person
modifier = annoyed_opinion
opinion = -30
}
}
}
30 = { #You lose
desc = tournament_events.1401.a.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1401.a.failure
left_icon = root
right_icon = scope:smol_person
add_prestige = minor_prestige_loss
}
}
}
progress_towards_rival_effect = {
REASON = rival_tournament_blocked
CHARACTER = scope:smol_person
OPINION = default_rival_opinion
}
stress_impact = {
base = miniscule_stress_impact_loss
wrathful = miniscule_stress_impact_loss
arrogant = miniscule_stress_impact_loss
calm = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = humble
has_trait = calm
}
}
}
}
# Let them through
option = {
name = tournament_events.1401.b
progress_towards_friend_effect = {
REASON = friend_tournament_let_through
CHARACTER = scope:smol_person
OPINION = default_friend_opinion
}
stress_impact = {
wrathful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
callous = medium_stress_impact_gain
calm = miniscule_stress_impact_loss
humble = miniscule_stress_impact_loss
compassionate = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = arrogant
has_trait = callous
}
}
}
}
}
# Person spills a drink on you
tournament_events.1402 = {
type = activity_event
title = tournament_events.1402.t
desc = tournament_events.1402.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:drinking_spectator
animation = drink
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
this = root
}
any_guest_subset_current_phase = {
name = spectator
is_ai = yes
is_healthy = yes
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
has_trait = gluttonous
}
this != root
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_ai = yes
is_healthy = yes
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
has_trait = gluttonous
}
this != root
}
weight = {
base = 1
activity_recurring_character_weight_modifier = { VALUE = 100 }
}
save_scope_as = drinking_spectator
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
# Ask if they want to share a drink
option = {
name = tournament_events.1402.a
trigger = {
drinks_alcohol_trigger = yes #Just in case
OR = {
has_trait = gregarious
has_trait = drunkard
has_trait = lifestyle_reveler
has_trait = gluttonous
}
}
remove_short_term_gold = tiny_gold_value
progress_towards_friend_effect = {
REASON = friend_tournament_drink_shared
CHARACTER = scope:drinking_spectator
OPINION = default_friend_opinion
}
stress_impact = {
wrathful = medium_stress_impact_gain
temperate = medium_stress_impact_gain
calm = minor_stress_impact_loss
gluttonous = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = temperate
}
}
}
}
# Have them taken away
option = {
name = tournament_events.1402.b
reverse_add_opinion = {
target = scope:drinking_spectator
modifier = tournament_dragged_off_opinion
opinion = -40
}
stress_impact = {
base = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
temperate = minor_stress_impact_loss
calm = medium_stress_impact_gain
gluttonous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = gluttonous
}
}
}
}
# Brush it off
option = {
name = tournament_events.1402.c
add_character_modifier = {
modifier = tournament_soaked_modifier
years = 5
}
stress_impact = {
base = minor_stress_impact_gain
shy = minor_stress_impact_loss
calm = minor_stress_impact_loss
humble = miniscule_stress_impact_loss
temperate = miniscule_stress_impact_loss
arrogant = minor_stress_impact_gain
gluttonous = minor_stress_impact_gain
wrathful = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = -1
ai_rationality = 1
}
}
}
}
# Priest attempts to stop the Contest, calling it ungodly
tournament_events.1403 = {
type = activity_event
title = tournament_events.1403.t
desc = tournament_events.1403.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:realm_priest
animation = personality_zealous
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
this = root
}
}
scope:host = {
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = {
is_ai = yes
is_adult = yes
location = root.location
}
}
scope:host = {
cp:councillor_court_chaplain ?= {
this != root
}
}
scope:host.faith = {
NOR = {
has_doctrine_parameter = clergy_can_fight
has_doctrine_parameter = warmonger
has_doctrine_parameter = human_sacrifice_active
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
scope:host.faith = {
has_doctrine_parameter = pacifist_opinion_active
}
}
}
immediate = {
scope:host = {
cp:councillor_court_chaplain = {
save_scope_as = realm_priest
try_to_create_recurring_character_effect = { CHARACTER = root }
}
}
}
# Agree with them, harangue the crowd
option = {
name = tournament_events.1403.a
trigger = {
has_trait = zealous
faith = {
NOR = {
has_doctrine_parameter = clergy_can_fight
has_doctrine_parameter = warmonger
has_doctrine_parameter = human_sacrifice_active
}
}
}
if = {
limit = {
scope:host = {
this = root
}
scope:activity.activity_location.province_owner = root
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = tournament_annoyed_locals_modifier
years = 20
}
}
add_character_modifier = {
modifier = tournament_public_proselytiser_modifier
years = 20
}
}
else = {
add_character_modifier = {
modifier = tournament_public_proselytiser_modifier
years = 15
}
}
if = {
limit = {
scope:realm_priest.faith = root.faith
}
add_piety = medium_piety_gain
}
reverse_add_opinion = {
target = scope:realm_priest
modifier = pious_opinion
opinion = 30
}
stress_impact = {
base = medium_stress_impact_loss
wrathful = miniscule_stress_impact_loss
honest = miniscule_stress_impact_loss
calm = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = deceitful
}
}
}
}
# Harangue the priest back
option = {
name = tournament_events.1403.b
add_character_modifier = {
modifier = tournament_sports_enthusiast_modifier
years = 15
}
reverse_add_opinion = {
target = scope:realm_priest
modifier = impious_opinion
opinion = -40
}
stress_impact = {
wrathful = miniscule_stress_impact_loss
calm = medium_stress_impact_gain
cynical = miniscule_stress_impact_loss
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = zealous
}
}
}
}
# Keep quiet
option = {
name = tournament_events.1403.c
stress_impact = {
calm = miniscule_stress_impact_loss
forgiving = miniscule_stress_impact_loss
shy = miniscule_stress_impact_loss
patient = miniscule_stress_impact_loss
wrathful = medium_stress_impact_gain
cynical = medium_stress_impact_gain
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = -0.5
ai_rationality = 0.5
}
}
}
}
# You gossip with a friend about who the best looking participant is
tournament_events.1404 = {
type = activity_event
title = tournament_events.1404.t
desc = tournament_events.1404.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = flirtation_left
}
right_portrait = {
character = scope:gossip_friend
animation = flirtation
}
lower_right_portrait = { character = scope:knight_1 }
lower_left_portrait = { character = scope:knight_2 }
cooldown = { years = 1 }
trigger = {
is_participant_in_activity = scope:activity
is_in_guest_subset = { name = spectator }
scope:activity = {
any_guest_subset_current_phase = { # Your friend
name = spectator
has_relation_friend = root
is_adult = yes
save_temporary_scope_as = thirsty_friend
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
NOT = {
has_trait = beauty_bad # Make sure you're not swooning over uggos
}
save_temporary_scope_as = temp_knight_1
}
}
is_attracted_to_gender_of = scope:temp_knight_1
}
any_guest_subset_current_phase = { # Second knight
name = qualified
NOR = {
this = scope:temp_knight_1
has_trait = beauty_bad # Make sure you're not swooning over uggos
}
save_temporary_scope_as = temp_knight_2
OR = {
root = { is_attracted_to_gender_of = scope:temp_knight_2 }
scope:thirsty_friend = { is_attracted_to_gender_of = scope:temp_knight_2 }
}
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = { # Your friend
name = spectator
limit = {
has_relation_friend = root
is_adult = yes
save_temporary_scope_as = thirsty_friend
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
NOT = {
has_trait = beauty_bad # Make sure you're not swooning over uggos
}
save_temporary_scope_as = temp_knight_1
}
}
is_attracted_to_gender_of = scope:temp_knight_1
}
save_scope_as = gossip_friend
scope:activity = {
random_guest_subset_current_phase = {
name = qualified
limit = {
NOT = {
has_trait = beauty_bad # Make sure you're not swooning over uggos
}
save_temporary_scope_as = temp_knight_1
scope:gossip_friend = { is_attracted_to_gender_of = scope:temp_knight_1 }
}
save_scope_as = knight_1
}
}
}
random_guest_subset_current_phase = { # Second knight
name = qualified
limit = {
NOR = {
this = scope:knight_1
has_trait = beauty_bad # Make sure you're not swooning over uggos
}
save_temporary_scope_as = temp_knight_2
OR = {
root = { is_attracted_to_gender_of = scope:temp_knight_2 }
scope:gossip_friend = { is_attracted_to_gender_of = scope:temp_knight_2 }
}
}
save_scope_as = knight_2
}
}
}
# I think you might be the best-looking of the lot, actually!
# But in, like, a flirty way.
option = {
name = tournament_events.1404.a
trigger = {
is_attracted_to_gender_of = scope:gossip_friend
scope:gossip_friend = {
is_attracted_to_gender_of = root
}
}
progress_towards_lover_effect = {
REASON = lover_tournament_gossiping
CHARACTER = scope:gossip_friend
OPINION = default_lover_opinion
}
if = {
limit = {
scope:host = root
}
scope:gossip_friend = {
add_prestige = medium_prestige_gain
}
add_hook_no_toast = {
type = loyalty_hook
target = scope:gossip_friend
}
}
try_to_create_recurring_character_effect = { CHARACTER = scope:gossip_friend }
stress_impact = {
lustful = miniscule_stress_impact_loss
chaste = medium_stress_impact_gain
honest = miniscule_stress_impact_loss
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = chaste
has_trait = deceitful
}
}
}
}
# I think you might be the best-looking of the lot, actually!
# But in, like, a friendly way
option = {
name = tournament_events.1404.b
trigger = {
NOR = {
is_attracted_to_gender_of = scope:gossip_friend
scope:gossip_friend = {
is_attracted_to_gender_of = root
}
}
}
progress_towards_friend_effect = {
REASON = friend_tournament_gossiping
CHARACTER = scope:gossip_friend
OPINION = default_friend_opinion
}
if = {
limit = {
scope:host = root
}
scope:gossip_friend = {
add_prestige = medium_prestige_gain
}
add_hook_no_toast = {
type = loyalty_hook
target = scope:gossip_friend
}
}
try_to_create_recurring_character_effect = { CHARACTER = scope:gossip_friend }
stress_impact = {
gregarious = miniscule_stress_impact_loss
shy = medium_stress_impact_gain
honest = miniscule_stress_impact_loss
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = shy
has_trait = deceitful
}
}
}
}
# I like knight 1!
option = {
name = tournament_events.1404.c
if = {
limit = {
is_attracted_to_gender_of = scope:knight_1
}
progress_towards_lover_effect = {
REASON = lover_tournament_stand_flirt
CHARACTER = scope:knight_1
OPINION = default_lover_opinion
}
}
else = { # If you're not attracted to them, consider it platonic.
reverse_add_opinion = {
target = scope:knight_1
modifier = flattered_opinion
opinion = 30
}
}
if = { #if the other knight is attracted to you, then they will be offended by rejection.
limit = {
scope:knight_2 = {
is_attracted_to_gender_of = root
}
}
reverse_add_opinion = {
target = scope:knight_2
modifier = rejected_opinion
opinion = -10
}
}
if = {
limit = {
scope:host = root
}
scope:knight_1 = {
add_prestige = medium_prestige_gain
}
add_hook_no_toast = {
type = loyalty_hook
target = scope:knight_1
}
}
try_to_create_recurring_character_effect = { CHARACTER = scope:knight_1 }
stress_impact = {
lustful = miniscule_stress_impact_loss
honest = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
deceitful = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_compassion = 0.5
}
}
}
# I like knight 2!
option = {
name = tournament_events.1404.d
if = {
limit = {
is_attracted_to_gender_of = scope:knight_2
}
progress_towards_lover_effect = {
REASON = lover_tournament_stand_flirt
CHARACTER = scope:knight_2
OPINION = default_lover_opinion
}
}
else = { # If you're not attracted to them, consider it platonic.
reverse_add_opinion = {
target = scope:knight_2
modifier = flattered_opinion
opinion = 30
}
}
if = { #if the other knight is attracted to you, then they will be offended by rejection.
limit = {
scope:knight_1 = {
is_attracted_to_gender_of = root
}
}
reverse_add_opinion = {
target = scope:knight_1
modifier = rejected_opinion
opinion = -10
}
}
if = {
limit = {
scope:host = root
}
scope:knight_2 = {
add_prestige = medium_prestige_gain
}
add_hook_no_toast = {
type = loyalty_hook
target = scope:knight_2
}
}
try_to_create_recurring_character_effect = { CHARACTER = scope:knight_2 }
stress_impact = {
lustful = miniscule_stress_impact_loss
honest = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
deceitful = minor_stress_impact_gain
shy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_compassion = 0.5
}
}
}
# Keep quiet
option = {
name = tournament_events.1404.e
stress_impact = {
gregarious = minor_stress_impact_gain
shy = miniscule_stress_impact_loss
honest = minor_stress_impact_gain
deceitful = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_compassion = -0.5
}
}
}
}
# Flirt with another spectator
tournament_events.1405 = {
type = activity_event
title = tournament_events.1405.t
desc = tournament_events.1405.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = flirtation_left
}
right_portrait = {
character = scope:flirty_onlooker
animation = flirtation
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
is_ai = yes
is_healthy = yes
is_adult = yes
is_attracted_to_gender_of = root
OR = { # Ensure they either don't have a spouse or are OK with cheating on them
NOT = {
any_spouse = {
exists = this
}
}
might_cheat_on_every_partner_trigger = yes
}
this != root
save_temporary_scope_as = flirty_spectator
}
any_guest_subset_current_phase = {
name = spectator
this = root
is_attracted_to_gender_of = scope:flirty_spectator
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_ai = yes
is_healthy = yes
is_adult = yes
is_attracted_to_gender_of = root
OR = { # Ensure they either don't have a spouse or are OK with cheating on them
NOT = {
any_spouse = {
exists = this
}
}
might_cheat_on_every_partner_trigger = yes
}
this != root
}
save_scope_as = flirty_onlooker
}
}
}
# Start a boosted seduce scheme
option = {
name = tournament_events.1405.a
trigger = {
is_attracted_to_gender_of = scope:flirty_onlooker
can_start_scheme = {
type = seduce
target_character = scope:flirty_onlooker
}
}
start_scheme = {
type = seduce
target_character = scope:flirty_onlooker
}
hidden_effect = {
random_scheme = {
type = seduce
limit = {
scheme_target_character = scope:flirty_onlooker
}
add_scheme_modifier = {
type = extra_success_chance_modifier
}
}
}
stress_impact = {
chaste = medium_stress_impact_gain
shy = minor_stress_impact_gain
gregarious = miniscule_stress_impact_loss
lustful = minor_stress_impact_loss
arrogant = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = chaste
}
}
}
# Coquettishly smile back
option = {
name = tournament_events.1405.b
flavor = tournament_events.1405.b.tt
reverse_add_opinion = {
target = scope:flirty_onlooker
modifier = flirty_opinion
opinion = 50
}
stress_impact = {
chaste = minor_stress_impact_gain
shy = minor_stress_impact_gain
gregarious = miniscule_stress_impact_loss
lustful = minor_stress_impact_loss
arrogant = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = -0.5
ai_boldness = 0.5
}
}
}
# Take the compliment but do nothing
option = {
name = tournament_events.1405.c
add_character_modifier = {
modifier = tournament_charm_resistant_modifier
years = 10
}
stress_impact = {
base = miniscule_stress_impact_loss
shy = miniscule_stress_impact_loss
arrogant = miniscule_stress_impact_loss
lustful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = lustful
}
}
}
}
# Your child is excited
tournament_events.1406 = {
type = activity_event
title = tournament_events.1406.t
desc = tournament_events.1406.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:root_child
animation = ecstasy
}
cooldown = { years = 1 }
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
this = root
}
any_guest_subset_current_phase = {
name = spectator
is_ai = yes
is_adult = no
is_child_of = root
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_ai = yes
is_adult = no
is_child_of = root
}
save_scope_as = root_child
}
}
}
# Calm down
option = {
name = tournament_events.1406.a
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
progress_towards_rival_effect = {
CHARACTER = scope:root_child
REASON = rival_traumatic_childhood
OPINION = default_rival_opinion
}
scope:root_child = {
add_martial_skill = 1
add_prowess_skill = 1
}
stress_impact = {
compassionate = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
calm = minor_stress_impact_gain
patient = minor_stress_impact_gain
lazy = minor_stress_impact_gain
scholar = minor_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 1
ai_boldness = 0.5
}
}
}
# Put them on your shoulders
option = {
name = tournament_events.1406.b
add_character_modifier = {
modifier = tournament_child_friendly_modifier
years = 15
}
reverse_add_opinion = {
target = scope:root_child
modifier = supportive_parent
opinion = 50
}
stress_impact = {
compassionate = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
}
}
}
}
# I'm excited too!
option = {
name = tournament_events.1406.c
progress_towards_friend_effect = {
REASON = friend_bonded_during_tournament
CHARACTER = scope:root_child
OPINION = default_friend_opinion
}
stress_impact = {
base = minor_stress_impact_loss
calm = miniscule_stress_impact_loss
content = miniscule_stress_impact_loss
gregarious = miniscule_stress_impact_loss
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
}
}
}
}
}
# Someone is criticising your family member!
tournament_events.1407 = {
type = activity_event
title = tournament_events.1407.t
desc = tournament_events.1407.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:shouting_fan
animation = dismissal
}
lower_left_portrait = {
character = scope:competing_family
}
cooldown = { years = 1 }
trigger = {
activity_is_competing_trigger = no
any_close_family_member = {
this != root
involved_activity = scope:activity
activity_is_competing_trigger = yes
save_temporary_scope_as = competing_family
}
scope:activity = {
any_guest_subset_current_phase = { # There is a member of the crowd who dislikes their performance
name = spectator
NOR = {
this = root
is_close_family_of = scope:competing_family
has_relation_lover = scope:competing_family
has_relation_friend = scope:competing_family
has_relation_best_friend = scope:competing_family
opinion = {
target = scope:competing_family
value >= low_positive_opinion
}
}
is_ai = yes
is_healthy = yes
is_adult = yes
NOT = { has_trait = wounded }
}
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = yes
factor = 0.25
}
}
immediate = {
random_close_family_member = {
limit = {
this != root
involved_activity = scope:activity
activity_is_competing_trigger = yes
}
save_scope_as = competing_family
}
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
NOR = {
this = root
is_close_family_of = scope:competing_family
has_relation_lover = scope:competing_family
has_relation_friend = scope:competing_family
has_relation_best_friend = scope:competing_family
opinion = {
target = scope:competing_family
value >= low_positive_opinion
}
}
is_ai = yes
is_healthy = yes
is_adult = yes
NOT = { has_trait = wounded }
}
save_scope_as = shouting_fan
}
}
}
# Fight them
option = {
name = tournament_events.1407.a
trigger = {
has_trait = wrathful
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
scope:shouting_fan = {
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:shouting_fan }
}
}
duel = {
skill = prowess
target = scope:shouting_fan
50 = {
desc = tournament_events.1407.a.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
scope:shouting_fan = {
increase_wounds_no_death_effect = { REASON = fight }
}
scope:competing_family = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
}
50 = {
desc = tournament_events.1407.a.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
increase_wounds_no_death_effect = { REASON = fight }
scope:competing_family = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
}
}
reverse_add_opinion = {
target = scope:shouting_fan
modifier = angry_opinion
opinion = -35
}
stress_impact = {
wrathful = miniscule_stress_impact_loss
sadistic = miniscule_stress_impact_loss
just = miniscule_stress_impact_loss
arbitrary = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = arbitrary
has_trait = craven
}
}
}
}
# Try to drown them out with support
option = {
name = tournament_events.1407.b
random_list = {
10 = { #You succeed
custom_tooltip = tournament_events.1407.b.success
modifier = { #You're good at this if you aren't shy
add = 6
has_trait = gregarious
}
modifier = { #Or perhaps if you have big ol' lungs
add = 8
has_trait = giant
}
modifier = { #Or if you're strong
add = 8
OR = {
has_trait = strong
has_trait = physique_good
}
}
modifier = { #Throw a little extra on to reward being loyal to your family
add = 2
has_trait = loyal
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1407.b.success
left_icon = root
right_icon = scope:shouting_fan
add_prestige = minor_prestige_gain
scope:competing_family = {
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
}
}
10 = { #You have to go back later and find it
custom_tooltip = tournament_events.1407.b.failure
modifier = { #You're bad at this if you stutter or lisp
add = -8
OR = {
has_trait = stuttering
has_trait = lisping
}
}
modifier = { #Or if you wheeze
add = -15
has_trait = wheezing
}
modifier = { #Or if you're weak
add = -5
OR = {
has_trait = weak
has_trait = physique_bad
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1407.b.failure
left_icon = root
right_icon = scope:shouting_fan
add_prestige = minor_prestige_loss
scope:competing_family = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
}
}
}
stress_impact = {
wrathful = medium_stress_impact_gain
calm = miniscule_stress_impact_loss
just = miniscule_stress_impact_loss
arbitrary = medium_stress_impact_gain
compassionate = miniscule_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = callous
has_trait = arbitrary
}
}
}
}
# Ignore them
option = {
name = tournament_events.1407.c
scope:competing_family = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_minor }
}
stress_impact = {
wrathful = medium_stress_impact_gain
calm = miniscule_stress_impact_loss
just = medium_stress_impact_gain
arbitrary = miniscule_stress_impact_loss
compassionate = medium_stress_impact_gain
callous = miniscule_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = wrathful
}
}
}
}
}
# You go for some refreshments
tournament_events.1408 = {
type = activity_event
title = tournament_events.1408.t
desc = tournament_events.1408.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:drinking_fan
animation = drink
}
cooldown = { years = 1 }
trigger = {
NOR = { #Ensure you aren't in the best spot in the house
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
scope:activity = {
any_guest_subset_current_phase = {
name = spectator
root = this
}
any_guest_subset_current_phase = { #Pick random adult spectator
name = spectator
is_healthy = yes
is_adult = yes
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_healthy = yes
is_adult = yes
}
save_scope_as = drinking_fan
}
}
save_scope_value_as = {
name = crowd_range
value = {
integer_range = {
min = 1
max = 9
}
}
}
}
# Buy a drink off a bystander
option = {
name = tournament_events.1408.a
trigger = {
diplomacy >= 8
}
show_as_unavailable = {
always = yes
}
flavor = tournament_events.1408.a.tt
remove_short_term_gold = minor_gold_value
add_character_modifier = {
modifier = tournament_refreshed_modifier
years = 5
}
stress_impact = {
generous = miniscule_stress_impact_loss
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_greed = -1
}
}
}
# Nip out of the line and chance losing your place
option = {
name = tournament_events.1408.b
random_list = {
40 = { #You succeed in making it back to your spot
custom_tooltip = tournament_events.1408.b.success
modifier = { #Good at running
add = 15
has_trait = athletic
}
modifier = { #Or if you're big to push through crowds
add = 8
OR = {
has_trait = strong
has_trait = physique_good
}
}
modifier = { #Fuzzy it up a lil
add = scope:crowd_range
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1408.b.success
left_icon = root
right_icon = scope:drinking_fan
remove_short_term_gold = tiny_gold_value
add_character_modifier = {
modifier = tournament_refreshed_modifier
years = 5
}
}
}
40 = { #You fail to get back to your spot
custom_tooltip = tournament_events.1408.b.failure
modifier = { #Oh no! Unathletic!
add = 15
has_trait = wheezing
}
modifier = { #You're weak
add = 5
OR = {
has_trait = weak
has_trait = physique_bad
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1408.b.failure
left_icon = root
right_icon = scope:drinking_fan
remove_short_term_gold = tiny_gold_value
add_character_modifier = {
modifier = tournament_refreshed_modifier
years = 5
}
add_stress = minor_stress_gain
}
}
20 = { #You lose your spot AND fail to get a drink
custom_tooltip = tournament_events.1408.b.criticalfailure
modifier = { #Oh no! Unathletic!
add = 15
has_trait = wheezing
}
modifier = { #You're weak
add = 5
OR = {
has_trait = weak
has_trait = physique_bad
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1408.b.criticalfailure
left_icon = root
right_icon = scope:drinking_fan
add_stress = minor_stress_gain
}
}
}
stress_impact = { #Keep this small since we're handing out stress gains in failed results
impatient = miniscule_stress_impact_loss
patient = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_greed = 1
}
}
}
# Grin and bear it
option = {
name = tournament_events.1408.c
add_character_modifier = {
modifier = tournament_parched_modifier
years = 5
}
stress_impact = {
diligent = minor_stress_impact_gain
lazy = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -1
ai_greed = -0.5
}
}
}
}
# You make a friend cheering for the same person
tournament_events.1409 = {
type = activity_event
title = tournament_events.1409.t
desc = tournament_events.1409.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:friendly_fan
animation = happiness
}
lower_right_portrait = { character = scope:fan_favourite }
lower_left_portrait = { character = scope:other_favourite }
cooldown = { years = 1 }
trigger = {
is_in_guest_subset = { name = spectator }
scope:activity = {
NOR = { #Make sure it isn't a team game or a horse race
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_horse_race
}
any_guest_subset_current_phase = { #Pick random adult spectator and make them friendly to you
name = spectator
is_healthy = yes
is_adult = yes
this != root
NOR = {
has_trait = callous
has_trait = sadistic
opinion = { target = root value < 0 }
}
}
any_guest_subset_current_phase = { #Pick random participant
name = qualified
is_healthy = yes
is_adult = yes
is_alive = yes
save_temporary_scope_as = first_participant
}
any_guest_subset_current_phase = { #Pick another random participant for juxtaposition
name = qualified
is_healthy = yes
is_adult = yes
is_alive = yes
this != scope:first_participant
}
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
is_healthy = yes
is_adult = yes
this != root
NOR = {
has_trait = callous
has_trait = sadistic
opinion = { target = root value < 0 }
}
}
save_scope_as = friendly_fan
}
random_guest_subset_current_phase = {
name = qualified
limit = {
is_healthy = yes
is_adult = yes
is_alive = yes
}
save_scope_as = fan_favourite
}
random_guest_subset_current_phase = {
name = qualified
limit = {
is_healthy = yes
is_adult = yes
is_alive = yes
this != scope:fan_favourite
}
save_scope_as = other_favourite
}
}
}
# Agree on their favourite
option = {
name = tournament_events.1409.a
reverse_add_opinion = {
target = scope:fan_favourite
modifier = pleased_opinion
opinion = 10
}
progress_towards_friend_effect = {
REASON = friend_agreed_favourite
CHARACTER = scope:friendly_fan
OPINION = default_friend_opinion
}
stress_impact = {
gregarious = miniscule_stress_impact_loss
humble = miniscule_stress_impact_loss
shy = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_sociability = 1
}
}
}
# Disagree
option = {
name = tournament_events.1409.b
reverse_add_opinion = {
target = scope:other_favourite
modifier = pleased_opinion
opinion = 10
}
progress_towards_rival_effect = {
REASON = rival_disagreed_favourite
CHARACTER = scope:friendly_fan
OPINION = default_rival_opinion
}
stress_impact = {
gregarious = minor_stress_impact_gain
humble = minor_stress_impact_gain
shy = minor_stress_impact_gain
arrogant = miniscule_stress_impact_loss
stubborn = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = -1
}
}
}
# Smile and nod
option = {
name = tournament_events.1409.c
reverse_add_opinion = {
target = scope:friendly_fan
modifier = disappointed_opinion
opinion = -15
}
stress_impact = {
shy = medium_stress_impact_loss #throwing shy a bone here
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -1
ai_sociability = -1
}
}
}
}
# Two fans begin fighting
tournament_events.1410 = {
type = activity_event
title = tournament_events.1410.t
desc = tournament_events.1410.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = shock
}
lower_right_portrait = { character = scope:fan_1 }
lower_left_portrait = { character = scope:fan_2 }
cooldown = { years = 1 }
trigger = {
NOR = { #Ensure you aren't in the best spot in the house
highest_held_title_tier >= scope:host.highest_held_title_tier
scope:host = this
}
is_in_guest_subset = { name = spectator }
scope:activity = {
any_guest_subset_current_phase = { #Pick random adult spectator
name = spectator
this != root
is_healthy = yes
is_adult = yes
is_lowborn = yes #To avoid seeing emperors brawling
NOT = { has_trait = wounded }
save_temporary_scope_as = first_fighter
}
any_guest_subset_current_phase = { #Pick random adult spectator
name = spectator
is_healthy = yes
this != root
is_adult = yes
is_lowborn = yes #To avoid seeing emperors brawling
NOR = {
has_trait = wounded
this = scope:first_fighter
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = yes
factor = 0.25
}
}
immediate = {
scope:activity = {
random_guest_subset_current_phase = {
name = spectator
limit = {
this != root
is_healthy = yes
is_adult = yes
is_lowborn = yes
NOT = { has_trait = wounded }
}
save_scope_as = fan_1
}
random_guest_subset_current_phase = {
name = spectator
limit = {
this != root
is_healthy = yes
is_adult = yes
is_lowborn = yes
NOR = {
has_trait = wounded
this = scope:fan_1
}
}
save_scope_as = fan_2
}
}
save_scope_value_as = {
name = fight_range
value = {
integer_range = {
min = -5
max = 5
}
}
}
}
# Get in between them
option = {
name = tournament_events.1410.a
flavor = tournament_events.1410.a.tt
random_list = {
40 = { #You break them up
custom_tooltip = tournament_events.1410.a.success
modifier = {
add = 15
OR = {
has_trait = strong
has_trait = physique_good
}
}
modifier = { #Fuzzy it up a lil
add = scope:fight_range
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1410.a.success
left_icon = root
add_prestige = minor_prestige_value
}
}
60 = { #You fail to break them up
custom_tooltip = tournament_events.1410.b.failure
modifier = { #You're weak
add = 5
OR = {
has_trait = weak
has_trait = physique_bad
}
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1410.a.failure
left_icon = root
increase_wounds_no_death_effect = { REASON = fight }
}
}
}
stress_impact = {
brave = miniscule_stress_impact_loss
craven = minor_stress_impact_gain
calm = minor_stress_impact_gain
wrathful = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 1
ai_energy = 0.5
}
}
}
# Try and talk them down
option = {
name = tournament_events.1410.b
duel = {
skill = diplomacy
value = decent_skill_rating
50 = { #It works
desc = tournament_events.1410.b.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.1410.b.success
left_icon = root
reverse_add_opinion = {
target = scope:fan_1
modifier = trust_opinion
opinion = 15
}
reverse_add_opinion = {
target = scope:fan_2
modifier = trust_opinion
opinion = 15
}
}
}
50 = { #It fails
desc = tournament_events.1410.b.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.1410.b.failure
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
brave = minor_stress_impact_gain
craven = miniscule_stress_impact_loss
calm = miniscule_stress_impact_loss
wrathful = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -1
ai_energy = -0.5
}
}
}
# Let them fight
option = {
name = tournament_events.1410.c
random_list = {
50 = { #Fan 1 wins
custom_tooltip = tournament_events.1410.c.fan1
modifier = { #Fuzzy it up a lil
add = scope:fight_range
}
send_interface_toast = {
type = event_toast_effect_neutral
title = tournament_events.1410.c.fan1
left_icon = root
scope:fan_2 = {
increase_wounds_no_death_effect = { REASON = fight }
}
}
}
50 = { #Fan 2 wins
custom_tooltip = tournament_events.1410.c.fan2
send_interface_toast = {
type = event_toast_effect_neutral
title = tournament_events.1410.c.fan2
left_icon = root
scope:fan_1 = {
increase_wounds_no_death_effect = { REASON = fight }
}
}
}
}
stress_impact = {
diligent = minor_stress_impact_gain
lazy = miniscule_stress_impact_loss
just = minor_stress_impact_gain
arbitrary = miniscule_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = -1
ai_compassion = -0.5
}
}
}
}
###################################
###################################
### INTENTS - 6000-6999 ###
###################################
###################################
##################################################
# Murder Rival Sabotage - Contest
# by Joe Parkin
# 6000-6001
##################################################
scripted_trigger tournament_murder_next_versus_match_trigger = {
scope:activity = {
has_current_phase = tournament_phase_$CONTEST$
exists = var:contest_versus_progress
}
switch = {
trigger = scope:activity.var:contest_versus_progress
0 = {
trigger_if = {
limit = { exists = scope:murder_target.var:contest_qualified_match_$CONTEST$ }
scope:murder_target.var:contest_qualified_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
trigger_else = { always = no }
}
1 = {
trigger_if = {
limit = { exists = scope:murder_target.var:contest_semi_finalist_match_$CONTEST$ }
scope:murder_target.var:contest_semi_finalist_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
trigger_else = { always = no }
}
2 = {
trigger_if = {
limit = { exists = scope:murder_target.var:contest_finalist_match_$CONTEST$ }
scope:murder_target.var:contest_finalist_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
trigger_else = { always = no }
}
}
}
scripted_effect tournament_murder_next_versus_match_effect = {
switch = {
trigger = scope:activity.var:contest_versus_progress
0 = {
if = {
limit = {
exists = scope:murder_target.var:contest_qualified_match_$CONTEST$
scope:murder_target.var:contest_qualified_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
scope:murder_target.var:contest_qualified_match_$CONTEST$ = { save_scope_as = murder_match }
}
}
1 = {
if = {
limit = {
exists = scope:murder_target.var:contest_semi_finalist_match_$CONTEST$
scope:murder_target.var:contest_semi_finalist_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
scope:murder_target.var:contest_semi_finalist_match_$CONTEST$ = { save_scope_as = murder_match }
}
}
2 = {
if = {
limit = {
exists = scope:murder_target.var:contest_finalist_match_$CONTEST$
scope:murder_target.var:contest_finalist_match_$CONTEST$ = {
is_alive = yes
exists = var:contest_aptitude
involved_activity = root.involved_activity
}
}
scope:murder_target.var:contest_finalist_match_$CONTEST$ = { save_scope_as = murder_match }
}
}
}
}
scripted_effect tournament_murder_intent_sabotage_duel_effect = {
random_list = {
10 = {
trigger = {
NOT = { exists = scope:murder_match }
}
custom_tooltip = tournament_events_murder_sabotage_contest_tt
}
10 = {
trigger = { exists = scope:murder_match }
min = 5
modifier = { add = intrigue }
desc = tournament_events.6000.success
save_scope_as = murder_success
custom_tooltip = tournament_events.6000.blame
if = {
limit = { scope:murder_target = scope:host }
custom_tooltip = tournament_events.6000.imprisonment_tt
}
random_list = {
5 = {
desc = tournament_events.6000.success_tt
show_chance = no
show_as_tooltip = {
scope:murder_target = {
death = {
death_reason = death_contest_melee_accident
killer = scope:murder_match
}
}
}
}
5 = {
desc = tournament_events.6000.injuries
show_chance = no
show_as_tooltip = {
scope:murder_target = {
increase_wounds_effect = { REASON = contest_melee_accident }
}
}
}
}
}
20 = {
trigger = {
exists = scope:murder_match
scope:murder_match != root
}
desc = tournament_events.6000.failure
}
}
}
scripted_effect tournament_murder_intent_sabotage_effect = {
set_variable = {
name = contest_murder_attempt
value = scope:murder_target
}
if = {
limit = { has_relation_rival = scope:murder_target }
stress_impact = {
base = minor_stress_impact_loss
}
}
stress_impact = {
humble = medium_stress_impact_gain
honest = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
}
scope:activity = {
add_activity_log_entry = {
key = tournament_murder_attempt_log
tags = { intent murder crime }
score = 10
character = root
target = scope:murder_target
}
}
trigger_event = {
id = tournament_events.6001
days = { 2 3 }
}
}
scripted_effect tournament_sabotage_flavor_effect = {
hidden_effect = {
scope:activity = {
random_list = {
10 = {
trigger = {
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_duel
}
}
save_scope_value_as = { name = sabotage_flavor value = flag:foot }
}
10 = {
trigger = { has_current_phase = tournament_phase_archery }
save_scope_value_as = { name = sabotage_flavor value = flag:archery }
}
10 = {
trigger = { has_current_phase = tournament_phase_wrestling }
save_scope_value_as = { name = sabotage_flavor value = flag:pugilism }
}
10 = {
trigger = { has_current_phase = tournament_phase_joust }
save_scope_value_as = { name = sabotage_flavor value = flag:horse }
}
10 = {
trigger = { has_current_phase = tournament_phase_horse_race }
save_scope_value_as = { name = sabotage_flavor value = flag:horse_race }
}
}
}
}
}
tournament_events.6000 = { # Setup for contest murder attempts
type = activity_event
title = tournament_events.6000.t
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = var:contest_murder_attempt }
desc = tournament_events.6000.again
}
triggered_desc = {
trigger = { exists = var:contest_murder_offer }
desc = tournament_events.6000.deferred
}
desc = tournament_events.6000.desc
}
first_valid = {
triggered_desc = {
trigger = {
scope:activity = {
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_duel
}
}
}
desc = tournament_events.6000.foot
}
triggered_desc = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_joust }
}
desc = tournament_events.6000.joust
}
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:murder_match
scope:murder_match = root
}
desc = tournament_events.6000.self_match
}
triggered_desc = {
trigger = {
exists = scope:murder_match
scope:murder_match != root
}
desc = tournament_events.6000.patsy_match
}
}
}
theme = tournament_grounds
left_portrait = {
character = root
animation = worry
}
lower_right_portrait = { character = scope:murder_target }
lower_left_portrait = {
trigger = {
root != scope:murder_match
}
character = scope:murder_match
}
override_background = { reference = tavern }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
has_activity_intent = murder_attendee_intent
scope:activity = {
any_attending_character = {
this != root
exists = var:contest_aptitude
this = root.intent_target
}
OR = {
has_current_phase = tournament_phase_melee
has_current_phase = tournament_phase_joust
has_current_phase = tournament_phase_duel
}
}
NOR = {
exists = var:contest_murder_attempt
exists = var:contest_murder_match
}
}
immediate = {
save_scope_as = murder_actor
intent_target = { save_scope_as = murder_target }
set_variable = {
name = contest_murder_target
value = intent_target
}
if = {
limit = {
scope:activity = { activity_tournament_versus_contest_trigger = yes }
intent_target = { exists = var:contest_aptitude }
}
if = {
limit = {
tournament_murder_next_versus_match_trigger = { CONTEST = joust }
}
tournament_murder_next_versus_match_effect = { CONTEST = joust }
}
else_if = {
limit = {
tournament_murder_next_versus_match_trigger = { CONTEST = duel }
}
tournament_murder_next_versus_match_effect = { CONTEST = duel }
}
}
tournament_sabotage_flavor_effect = yes
if = {
limit = { exists = var:contest_murder_offer }
set_variable = {
name = contest_murder_offer
value = 1
}
}
else = {
change_variable = {
name = contest_murder_offer
add = 1
}
}
}
option = { # No match - turn/team
name = tournament_events.6000.a
trigger = {
NOT = { exists = scope:murder_match }
}
remove_short_term_gold = minor_gold_value
tournament_murder_intent_sabotage_duel_effect = yes
tournament_murder_intent_sabotage_effect = yes
}
option = { # Other match - versus
name = tournament_events.6000.b
trigger = {
exists = scope:murder_match
this != scope:murder_match
}
set_variable = {
name = contest_murder_match
value = scope:murder_match
}
remove_short_term_gold = minor_gold_value
tournament_murder_intent_sabotage_duel_effect = yes
tournament_murder_intent_sabotage_effect = yes
}
option = { # Self match - versus
name = tournament_events.6000.c
trigger = {
exists = scope:murder_match
this = scope:murder_match
}
set_variable = {
name = contest_murder_match
value = scope:murder_match
}
remove_short_term_gold = minor_gold_value
tournament_murder_intent_sabotage_duel_effect = yes
tournament_murder_intent_sabotage_effect = yes
}
option = { # Wait
name = tournament_events.6000.d
trigger = {
exists = scope:murder_match
this != scope:murder_match
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 1
ai_rationality = -1
}
}
}
option = { # Do nothing
name = tournament_events.6000.e
trigger = {
NOT = { exists = scope:murder_match }
}
stress_impact = {
ambitious = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
callous = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 1
ai_boldness = -0.5
}
}
}
}
tournament_events.6001 = { # Sabotage Outcome
type = activity_event
title = tournament_events.6001.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:foot }
desc = tournament_events.6001.foot
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:horse }
desc = tournament_events.6001.horse
}
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:murder_success
exists = scope:murder_match
this != scope:murder_match
}
desc = tournament_events.6001.success_patsy
}
triggered_desc = {
trigger = { exists = scope:murder_success }
desc = tournament_events.6001.success
}
desc = tournament_events.6001.failure
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:murder_match
exists = scope:murder_success
}
desc = tournament_events.6001.closing
}
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:murder_success }
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOT = { exists = scope:murder_success }
}
animation = stress
}
}
lower_right_portrait = {
trigger = { exists = scope:murder_target }
character = scope:murder_target
}
lower_left_portrait = {
trigger = { exists = scope:murder_match }
character = scope:murder_match
}
override_background = { reference = armory }
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
}
immediate = {
scope:murder_target = {
if = {
limit = {
NOT = { exists = var:murder_sabotage_target }
}
set_variable = {
name = murder_sabotage_target
value = 0
}
}
else = {
change_variable = {
name = murder_sabotage_target
add = 1
}
}
}
}
option = { # Success
name = tournament_events.6001.a
trigger = { exists = scope:murder_success }
}
option = { # Failure
name = tournament_events.6001.b
trigger = {
NOT = { exists = scope:murder_success }
}
}
}
##################################################
# Murder Rival Sabotage
# by Joe Parkin
# 6010-6011
##################################################
tournament_events.6010 = {
type = activity_event
title = tournament_events.6010.t
desc = tournament_events.6010.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = schadenfreude
}
lower_center_portrait = {
character = scope:murder_target
}
cooldown = { years = 1 }
override_background = {
reference = tavern
trigger = {
scope:murder_target.faith = {
NOT = { trait_is_sin = drunkard }
}
}
}
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
has_activity_intent = murder_attendee_intent
scope:activity = {
any_attending_character = {
this != root
this = root.intent_target
is_alive = yes
}
}
NOT = { has_variable = tournament_murder_attempt }
}
immediate = {
set_variable = {
name = tournament_murder_attempt
years = 1
}
save_scope_as = murder_actor
intent_target = { save_scope_as = murder_target }
}
option = { # Attempt to poison them
name = tournament_events.6010.a
flavor = tournament_events.6010.a.flavor
remove_short_term_gold = minor_gold_value
save_scope_as = poison_method
scope:murder_target = {
random_list = {
30 = { # They just get a little tummy ache
min = 5
desc = tournament_events.6010.a.failure
modifier = {
factor = {
value = health
multiply = 0.25
}
}
hidden_effect = {
random = {
chance = 50
save_scope_as = poison_second_chance
}
}
show_as_tooltip = {
add_character_modifier = {
modifier = tournament_poison_tummy_ache_modifier
months = 9
}
}
}
30 = { # They get sick and withdraw from the contest
min = 5
desc = tournament_events.6010.a.ill
modifier = {
factor = {
value = 7
subtract = health
multiply = 0.25
}
}
trigger = {
NOT = { has_trait = ill }
activity_is_valid_tournament_contestant = yes
}
save_scope_as = poison_ill
show_as_tooltip = { add_trait = ill }
custom_description = {
text = tournament_contest_withdraw_tt
subject = root
}
}
20 = { # They die
min = 5
desc = tournament_events.6010.a.success
modifier = {
factor = {
value = 7
subtract = health
multiply = 0.25
}
}
save_scope_as = poison_death
show_as_tooltip = {
death = {
killer = root
death_reason = death_poison
}
}
}
}
}
trigger_event = {
id = tournament_events.6011
days = { 2 3 }
}
stress_impact = {
craven = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
honest = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 0.25
ai_vengefulness = 0.5
ai_greed = -0.25
ai_rationality = -0.25
}
}
}
option = { # Hire thug
name = tournament_events.6010.b
flavor = tournament_events.6010.b.flavor
remove_short_term_gold = medium_gold_value
scope:murder_target = {
random_list = {
50 = { # They get away
desc = tournament_events.6010.b.failure
modifier = {
add = {
value = intrigue
multiply = 0.25
}
}
show_as_tooltip = {
add_character_modifier = {
modifier = tournament_thug_escape_modifier
months = 9
}
}
}
30 = { # The thug is caught and reveals involvement
desc = tournament_events.6010.b.caught
modifier = {
add = {
value = prowess
multiply = 0.25
}
}
show_as_tooltip = {
add_opinion = {
target = root
modifier = attempted_murder_me_crime
}
}
save_scope_as = thug_caught
}
20 = { # The thug is successful
desc = tournament_events.6010.b.success
modifier = {
add = {
value = 20
subtract = prowess
multiply = 0.25
}
}
modifier = {
add = {
value = 20
subtract = intrigue
multiply = 0.25
}
}
show_as_tooltip = {
death = {
killer = root
death_reason = death_poison
}
}
save_scope_as = thug_death
}
}
}
trigger_event = {
id = tournament_events.6011
days = { 2 3 }
}
stress_impact = {
craven = medium_stress_impact_gain
just = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
honest = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = 0.75
ai_vengefulness = 0.5
ai_greed = -0.5
ai_rationality = -0.25
}
}
}
option = { # Do nothing
name = tournament_events.6010.c
stress_impact = {
brave = medium_stress_impact_gain
arbitrary = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_vengefulness = 0.5
ai_greed = 0.5
ai_rationality = 0.5
}
}
}
}
tournament_events.6011 = { # Murderer event
type = activity_event
title = tournament_events.6011.t
desc = {
first_valid = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:poison_method }
desc = tournament_events.6011.poison
}
desc = tournament_events.6011.thug
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:poison_death }
desc = tournament_events.6011.death
}
triggered_desc = {
trigger = { exists = scope:poison_ill }
desc = tournament_events.6011.ill
}
triggered_desc = {
trigger = { exists = scope:poison_second_chance }
desc = tournament_events.6011.second_chance
}
triggered_desc = {
trigger = { exists = scope:poison_method }
desc = tournament_events.6011.ache
}
triggered_desc = {
trigger = { exists = scope:thug_death }
desc = tournament_events.6011.slain
}
triggered_desc = {
trigger = { exists = scope:thug_caught }
desc = tournament_events.6011.caught
}
desc = tournament_events.6011.escape
}
}
theme = tournament_grounds
left_portrait = {
trigger = { exists = scope:poison_method }
character = root
triggered_animation = {
trigger = { exists = scope:poison_death }
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOT = { exists = scope:poison_death }
}
animation = worry
}
}
right_portrait = {
character = scope:murder_target
triggered_animation = {
trigger = { exists = scope:poison_death }
animation = poison
}
triggered_animation = {
trigger = { exists = scope:poison_method }
animation = sick
}
triggered_animation = {
trigger = {
NOT = { exists = scope:poison_method }
exists = scope:thug_death
}
animation = loss_1
}
triggered_animation = {
trigger = {
NOT = { exists = scope:poison_method }
exists = scope:thug_caught
}
animation = anger
}
triggered_animation = {
trigger = {
NOT = { exists = scope:poison_method }
NOR = {
exists = scope:thug_caught
exists = scope:thug_death
}
}
animation = paranoia
}
}
override_background = {
trigger = {
OR = {
exists = scope:poison_second_chance
NOT = { exists = scope:poison_method }
}
}
reference = alley_night
}
override_background = {
trigger = {
NOR = {
exists = scope:poison_second_chance
NOT = { exists = scope:poison_method }
}
}
reference = tavern
}
immediate = {
scope:murder_target = {
trigger_event = tournament_events.6012
if = {
limit = { exists = scope:poison_death }
scope:activity = {
add_activity_log_entry = {
key = tournament_poison_death_log
score = 50
tags = { intent murder death crime }
character = root
target = scope:murder_target
# Effect
scope:murder_target = {
show_as_tooltip = {
death = { killer = root death_reason = death_poison }
}
}
}
}
}
else_if = {
limit = { exists = scope:poison_ill }
scope:activity = {
add_activity_log_entry = {
key = tournament_poison_ill_log
score = 50
tags = { intent murder crime }
character = root
target = scope:murder_target
# Effect
scope:murder_target = {
show_as_tooltip = { add_trait_force_tooltip = ill }
}
custom_description = {
text = tournament_contest_withdraw_tt
subject = scope:murder_target
}
}
}
}
else_if = {
limit = { exists = scope:poison_method }
show_as_tooltip = {
add_character_modifier = {
modifier = tournament_poison_tummy_ache_modifier
months = 6
}
}
}
else_if = {
limit = { exists = scope:thug_death }
scope:activity = {
add_activity_log_entry = {
key = tournament_thug_death_log
score = 50
tags = { intent murder death crime }
character = root
target = scope:murder_target
# Effect
scope:murder_target = {
show_as_tooltip = {
death = { killer = root death_reason = death_poison }
}
}
}
}
}
else_if = {
limit = { exists = scope:thug_caught }
scope:activity = {
add_activity_log_entry = {
key = tournament_thug_caught_log
score = 50
tags = { intent murder crime }
character = root
target = scope:murder_target
# Effect
show_as_tooltip = {
attempted_murder_opinion_effect = {
VICTIM = scope:murder_target
MURDERER = scope:murder_actor
}
}
}
}
}
else = {
show_as_tooltip = {
add_character_modifier = {
modifier = tournament_thug_escape_modifier
months = 9
}
}
}
}
}
option = { # Ok
name = {
text = tournament_events.6011.a.death
trigger = { exists = scope:poison_death }
}
name = {
text = tournament_events.6011.a.ill
trigger = { exists = scope:poison_ill }
}
name = {
text = tournament_events.6011.a.slain
trigger = { exists = scope:thug_death }
}
name = {
text = tournament_events.6011.a.caught
trigger = { exists = scope:thug_caught }
}
name = {
text = tournament_events.6011.a
trigger = {
NOR = {
exists = scope:poison_death
exists = scope:poison_ill
exists = scope:thug_death
exists = scope:thug_caught
}
}
}
trigger = {
NOT = { exists = scope:poison_second_chance }
}
if = {
limit = {
scope:murder_target = { is_alive = no }
}
add_secret = {
type = secret_murder
target = scope:murder_target
}
stress_impact = {
paranoid = medium_stress_impact_gain
}
}
else = {
add_secret = {
type = secret_murder_attempt
target = scope:murder_target
}
}
ai_chance = {
base = 50
}
}
option = { # Attempt to slit throat
name = tournament_events.6011.b
trigger = { exists = scope:poison_second_chance }
duel = {
skill = prowess
target = scope:murder_target
50 = {
desc = tournament_events.6011.b.success
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
show_as_tooltip = {
scope:murder_target = {
death = {
killer = root
death_reason = death_murder
}
}
}
save_scope_as = second_chance_success
}
50 = {
desc = tournament_events.6011.b.failure
min = 10
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
show_as_tooltip = {
scope:murder_target = {
increase_wounds_effect = { REASON = fight }
add_opinion = {
modifier = attempted_murder_me_crime
target = root
}
}
}
}
}
trigger_event = tournament_events.6013
stress_impact = {
craven = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 1
ai_energy = 0.5
}
}
}
option = { # Give up
name = tournament_events.6011.c
trigger = { exists = scope:poison_second_chance }
stress_impact = {
brave = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_energy = -0.5
}
}
}
}
tournament_events.6012 = { # Victim event
type = activity_event
title = tournament_events.6011.t
desc = {
first_valid = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:poison_method }
desc = tournament_events.6012.poison
}
desc = tournament_events.6012.thug
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:poison_death }
desc = tournament_events.6012.death
}
triggered_desc = {
trigger = { exists = scope:poison_ill }
desc = tournament_events.6012.ill
}
triggered_desc = {
trigger = { exists = scope:poison_method }
desc = tournament_events.6012.poison
}
triggered_desc = {
trigger = { exists = scope:thug_death }
desc = tournament_events.6012.slain
}
triggered_desc = {
trigger = { exists = scope:thug_caught }
desc = tournament_events.6012.caught
}
desc = tournament_events.6012.escape
}
}
theme = tournament_grounds
left_portrait = {
character = root
animation = poison
}
override_background = { reference = tavern }
immediate = {
if = {
limit = { exists = scope:poison_death }
unknown_murder_effect = { VICTIM = scope:murder_target MURDERER = scope:murder_actor REASON = death_poison }
}
else_if = {
limit = { exists = scope:poison_ill }
contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
custom_description = {
text = tournament_contest_withdraw_tt
subject = root
}
}
else_if = {
limit = { exists = scope:poison_method }
add_character_modifier = {
modifier = tournament_poison_tummy_ache_modifier
months = 6
}
}
else_if = {
limit = { exists = scope:thug_death }
unknown_murder_effect = { VICTIM = scope:murder_target MURDERER = scope:murder_actor REASON = death_murder }
}
else_if = {
limit = { exists = scope:thug_caught }
attempted_murder_opinion_effect = {
VICTIM = scope:murder_target
MURDERER = scope:murder_actor
}
}
else = {
add_character_modifier = {
modifier = tournament_thug_escape_modifier
months = 9
}
}
}
option = { # Ok
name = {
text = tournament_events.6012.a.death
trigger = { exists = scope:poison_death }
}
name = {
text = tournament_events.6012.a.ill
trigger = { exists = scope:poison_ill }
}
name = {
text = tournament_events.6012.a.poison
trigger = { exists = scope:poison_method }
}
name = {
text = tournament_events.6012.a.slain
trigger = { exists = scope:thug_death }
}
name = {
text = tournament_events.6012.a.caught
trigger = { exists = scope:thug_caught }
}
name = {
text = tournament_events.6012.a
trigger = {
NOR = {
exists = scope:poison_death
exists = scope:poison_ill
exists = scope:poison_method
exists = scope:thug_death
exists = scope:thug_caught
}
}
}
}
}
tournament_events.6013 = { # Second chance - Murderer event
type = activity_event
title = tournament_events.6013.t
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:second_chance_success }
desc = tournament_events.6013.death
}
desc = tournament_events.6013.fallback
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:second_chance_success }
animation = happiness
}
triggered_animation = {
trigger = { is_alive = yes }
animation = assassin
}
}
right_portrait = {
trigger = { exists = scope:second_chance_success }
character = scope:murder_target
animation = loss_1
}
override_background = { reference = alley_night }
immediate = {
scope:murder_target = {
trigger_event = tournament_events.6014
if = {
limit = { exists = scope:second_chance_success }
scope:activity = {
add_activity_log_entry = {
key = tournament_murder_death_log
score = 50
tags = { intent murder death crime }
character = root
target = scope:murder_target
# Effect
scope:murder_target = {
show_as_tooltip = {
death = {
killer = root
death_reason = death_poison
}
}
}
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = tournament_murder_wound_log
tags = { intent murder crime }
score = 10
character = root
target = scope:murder_target
# Effect
root = {
show_as_tooltip = {
increase_wounds_effect = { REASON = murder }
attempted_murder_opinion_effect = {
MURDERER = root
VICTIM = scope:murder_target
}
}
}
}
}
}
}
}
option = { # Ok
name = {
text = tournament_events.6013.a.death
trigger = { exists = scope:second_chance_success }
}
name = {
text = tournament_events.6013.a
trigger = {
NOT = { exists = scope:second_chance_success }
}
}
if = {
limit = {
scope:murder_target = { is_alive = no }
}
add_secret = {
type = secret_murder
target = scope:murder_target
}
stress_impact = {
paranoid = medium_stress_impact_gain
}
}
else = {
add_secret = {
type = secret_murder_attempt
target = scope:murder_target
}
}
}
}
tournament_events.6014 = { # Second chance - Victim event
type = activity_event
title = tournament_events.6014.t
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:second_chance_success }
desc = tournament_events.6014.death
}
desc = tournament_events.6014.fallback
}
}
theme = tournament_grounds
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:second_chance_success }
animation = fear
}
triggered_animation = {
trigger = {
NOT = { exists = scope:second_chance_success }
}
animation = pain
}
}
right_portrait = {
character = scope:murder_actor
trigger = { is_alive = yes }
animation = assassin
}
override_background = { reference = tavern }
immediate = {
if = {
limit = { exists = scope:second_chance_success }
death = { death_reason = death_murder }
}
else = {
increase_wounds_effect = { REASON = murder }
attempted_murder_opinion_effect = {
MURDERER = root
VICTIM = scope:murder_target
}
}
}
option = { # Ok
name = {
text = tournament_events.6013.a.death
trigger = { exists = scope:second_chance_success }
}
name = {
text = tournament_events.6013.a
trigger = {
NOT = { exists = scope:second_chance_success }
}
}
}
}
##################################################
# Win Contest Sabotage
# by Joe Parkin
# 6050-6053
##################################################
scripted_effect tournament_win_intent_sabotage_effect = {
save_scope_as = sabotage_actor
$CHARACTER$ = {
save_scope_as = sabotage_target
save_scope_as = contest_compare
}
set_variable = {
name = contest_sabotage_attempt
value = scope:sabotage_target
}
# Determine tooltips
if = { # Much better competitor
limit = { tournament_contest_aptitude_diff_value < -30 } # Your score minus their score
if = {
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
custom_tooltip = contest_sabotage_score_diff_far_behind_horse_race_tt
}
else = { custom_tooltip = contest_sabotage_score_diff_far_behind_tt }
}
else_if = { # Better competitor
limit = { tournament_contest_aptitude_diff_value < -10 } # Your score minus their score
if = {
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
custom_tooltip = contest_sabotage_score_diff_behind_horse_race_tt
}
else = { custom_tooltip = contest_sabotage_score_diff_behind_tt }
}
else_if = { # Close competitor
limit = {
tournament_contest_aptitude_diff_value >= -10 # Your score minus their score
tournament_contest_aptitude_diff_value <= 10 # Your score minus their score
}
if = {
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
custom_tooltip = contest_sabotage_score_diff_close_horse_race_tt
}
else = { custom_tooltip = contest_sabotage_score_diff_close_tt }
}
else_if = { # Worse competitor
limit = { tournament_contest_aptitude_diff_value > 10 } # Your score minus their score
if = {
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
custom_tooltip = contest_sabotage_score_diff_ahead_horse_race_tt
}
else = { custom_tooltip = contest_sabotage_score_diff_ahead_tt }
}
else = { # Much worse competitor
if = {
limit = { scope:activity = { has_current_phase = tournament_phase_horse_race } }
custom_tooltip = contest_sabotage_score_diff_far_ahead_horse_race_tt
}
else = { custom_tooltip = contest_sabotage_score_diff_far_ahead_tt }
}
# Determine outcome
random_list = {
# Successful sabotage
10 = {
min = 5
modifier = { add = intrigue }
desc = tournament_events.6050.success
save_scope_as = sabotage_success
show_as_tooltip = {
scope:sabotage_target = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
}
}
}
# Sabotage detected
5 = {
min = 5
modifier = { add = scope:sabotage_target.intrigue }
desc = tournament_events.6050.detected
save_scope_as = sabotage_detected
scope:activity = {
add_activity_log_entry = {
key = tournament_sabotage_log
score = 50
tags = { intent sabotage }
character = root
target = scope:sabotage_target
# Effect
show_as_tooltip = {
root = {
progress_towards_rival_effect = {
REASON = rival_tournament_attempted_sabotage
CHARACTER = scope:sabotage_target
OPINION = 0
}
reverse_add_opinion = {
target = scope:sabotage_target
modifier = tournament_attempted_sabotage_opinion
opinion = -20
}
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = tournament_attempted_sabotage_modifier
years = 3
}
}
}
}
}
if = {
limit = { scope:sabotage_target = scope:host }
custom_tooltip = tournament_host_disqualification_tt
}
else_if = {
limit = {
root != scope:host
}
custom_tooltip = tournament_contestant_disqualification_tt
}
}
# Sabotage fails
20 = {
desc = tournament_events.6050.failure
}
}
if = {
limit = { has_relation_rival = scope:sabotage_target }
stress_impact = { base = minor_stress_impact_loss }
}
stress_impact = {
humble = medium_stress_impact_gain
honest = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
}
# Determine sabotage flavor
tournament_sabotage_flavor_effect = yes
if = {
limit = {
exists = scope:sabotage_detected
this != scope:host
scope:host = { is_ai = no }
}
scope:host = {
trigger_event = {
id = tournament_events.6052
days = 1
}
}
}
else = {
trigger_event = {
id = tournament_events.6051
days = 1
}
}
}
tournament_events.6050 = { # Setup
type = activity_event
title = tournament_events.6050.t
desc = tournament_events.6050.desc
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
animation = worry
}
right_portrait = { character = scope:sabotage_target_1 }
lower_right_portrait = { character = scope:sabotage_target_2 }
lower_left_portrait = { character = scope:sabotage_target_3 }
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
has_activity_intent = win_contest_intent
exists = var:contest_aptitude
scope:activity = {
any_attending_character = {
this != root
exists = var:contest_aptitude
}
}
NOT = {
has_variable = contest_sabotage_attempt
scope:activity = { has_current_phase = tournament_phase_recital }
}
}
immediate = {
scope:activity = {
ordered_attending_character = {
limit = {
this != root
is_in_guest_subset = { name = qualified }
exists = var:progress_to_victory
}
order_by = {
value = var:progress_to_victory
if ={
limit = { root.var:next_versus_match ?= this }
add = 100
}
}
max = 3
check_range_bounds = no
if = {
limit = {
NOT = { exists = scope:sabotage_target_1 }
}
save_scope_as = sabotage_target_1
}
else_if = {
limit = {
NOT = { exists = scope:sabotage_target_2 }
}
save_scope_as = sabotage_target_2
}
else = { save_scope_as = sabotage_target_3 }
tournament_horse_race_fetch_horse_effect = yes
}
}
if = {
limit = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
tournament_horse_race_fetch_horse_effect = yes
}
}
option = { # Attempt sabotage 1
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.6050.a.horse_race
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.6050.a
}
trigger = { exists = scope:sabotage_target_1 }
tournament_win_intent_sabotage_effect = { CHARACTER = scope:sabotage_target_1 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = -1
ai_boldness = 0.5
}
opinion_modifier = {
opinion_target = scope:sabotage_target_1
multiplier = -0.25
}
}
}
option = { # Attempt sabotage 2
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.6050.b.horse_race
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.6050.b
}
trigger = { exists = scope:sabotage_target_2 }
tournament_win_intent_sabotage_effect = { CHARACTER = scope:sabotage_target_2 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = -1
ai_boldness = 0.5
}
opinion_modifier = {
opinion_target = scope:sabotage_target_2
multiplier = -0.25
}
}
}
option = { # Attempt sabotage 3
name = {
trigger = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
text = tournament_events.6050.c.horse_race
}
name = {
trigger = {
NOT = {
scope:activity = { has_current_phase = tournament_phase_horse_race }
}
}
text = tournament_events.6050.c
}
trigger = { exists = scope:sabotage_target_3 }
tournament_win_intent_sabotage_effect = { CHARACTER = scope:sabotage_target_3 }
ai_chance = {
base = 25
ai_value_modifier = {
ai_honor = -1
ai_boldness = 0.5
}
opinion_modifier = {
opinion_target = scope:sabotage_target_3
multiplier = -0.25
}
}
}
option = { # Back down
name = tournament_events.6050.d
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 1
ai_boldness = -0.5
}
}
}
}
tournament_events.6051 = { # Sabotage Outcome
type = activity_event
title = tournament_events.6051.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:foot }
desc = tournament_events.6051.foot
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:archery }
desc = tournament_events.6051.archery
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:pugilism }
desc = tournament_events.6051.pugilism
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:horse }
desc = tournament_events.6051.horse
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:horse_race }
desc = tournament_events.6051.horse_race
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:falconry }
desc = tournament_events.6051.falconry
}
}
first_valid = {
triggered_desc = {
trigger = { exists = scope:sabotage_success }
desc = tournament_events.6051.success
}
triggered_desc = {
trigger = { exists = scope:sabotage_detected }
desc = tournament_events.6051.detected
}
desc = tournament_events.6051.failure
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:sabotage_detected
exists = scope:sabotage_disqualified
}
desc = tournament_events.6051.disqualified
}
triggered_desc = {
trigger = {
exists = scope:sabotage_detected
this != scope:host
}
desc = tournament_events.6051.forgiven
}
}
}
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = root
triggered_animation = {
trigger = { exists = scope:sabotage_success }
animation = schadenfreude
}
triggered_animation = {
trigger = {
NOT = { exists = scope:sabotage_success }
}
animation = stress
}
}
lower_left_portrait = {
trigger = {
this != scope:host
}
character = scope:host
}
lower_right_portrait = scope:sabotage_target
override_background = { reference = armory }
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
}
immediate = {
if = {
limit = { exists = scope:sabotage_success }
scope:sabotage_target = {
activity_tournament_change_contestant_score_effect = { SCORE = decrease_medium }
add_character_flag = contest_sabotage_target
}
}
else_if = {
limit = { exists = scope:sabotage_detected }
progress_towards_rival_effect = {
REASON = rival_tournament_attempted_sabotage
CHARACTER = scope:sabotage_target
OPINION = 0
}
reverse_add_opinion = {
target = scope:sabotage_target
modifier = tournament_attempted_sabotage_opinion
opinion = -20
}
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = tournament_attempted_sabotage_modifier
years = 3
}
if = {
limit = {
NOR = {
this = scope:host
exists = scope:sabotage_disqualified
}
}
scope:host = {
if = {
limit = { is_ai = yes }
random_list = {
100 = {
opinion_modifier = {
who = scope:host
opinion_target = scope:sabotage_target
}
modifier = {
scope:host = scope:sabotage_target
add = 200
}
save_scope_as = sabotage_disqualified
}
50 = {
opinion_modifier = {
who = scope:host
opinion_target = scope:sabotage_actor
}
reverse_add_opinion = {
target = scope:sabotage_target
modifier = tournament_tolerated_sabotage_opinion
opinion = -15
}
}
}
}
hidden_effect = {
random = {
chance = 50
modifier = {
scope:host = scope:sabotage_target
add = 25
}
opinion_modifier = {
who = scope:host
opinion_target = root
multiplier = 0.33
}
save_scope_as = sabotage_disqualified
}
}
}
}
}
if = {
limit = { exists = scope:sabotage_disqualified }
scope:sabotage_actor = { save_scope_as = disqualify_target }
if = {
limit = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = scope:sabotage_actor
}
}
}
remove_variable = contest_aptitude
add_character_flag = {
flag = resigned_contest_flag
months = 2
}
scope:activity = {
add_activity_log_entry = {
key = tournament_disqualified_log
score = 50
tags = { contestant removal }
character = scope:sabotage_actor
target = scope:host
# Effects
custom_description = {
text = tournament_contest_disqualify_tt
subject = scope:sabotage_actor # DISQUALIFIED
}
scope:sabotage_actor = {
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:host
modifier = tournament_disqualified_opinion
opinion = -15
}
}
}
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = tournament_ejected_log
score = 50
tags = { contestant removal }
character = scope:sabotage_actor
target = scope:host
# Effects
scope:sabotage_actor = {
remove_from_activity = scope:activity
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:host
modifier = tournament_ejected_opinion
opinion = -15
}
}
}
}
}
}
}
}
option = {
name = {
trigger = { exists = scope:sabotage_success }
text = tournament_events.6051.a
}
name = {
trigger = { exists = scope:sabotage_disqualified }
text = tournament_events.6051.a.disqualified
}
name = {
trigger = { exists = scope:sabotage_detected }
text = tournament_events.6051.a.detected
}
name = {
trigger = {
NOR = {
exists = scope:sabotage_success
exists = scope:sabotage_disqualified
exists = scope:sabotage_detected
}
}
text = tournament_events.6051.a.failure
}
}
after = {
if = {
limit = { exists = scope:sabotage_detected }
scope:activity = {
every_attending_character = {
limit = {
NOR = {
this = scope:sabotage_actor
this = scope:host
}
is_ai = no
}
trigger_event = tournament_events.6053
}
}
}
}
}
tournament_events.6052 = { # Host disqualification decision
type = activity_event
title = tournament_events.6051.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:sabotage_target = scope:host }
desc = tournament_events.6052.host
}
desc = tournament_events.6052.guest
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:sabotage_flavor
scope:sabotage_flavor = flag:foot
}
desc = tournament_events.6052.foot
}
triggered_desc = {
trigger = {
exists = scope:sabotage_flavor
scope:sabotage_flavor = flag:archery
}
desc = tournament_events.6052.archery
}
triggered_desc = {
trigger = {
exists = scope:sabotage_flavor
scope:sabotage_flavor = flag:pugilism
}
desc = tournament_events.6052.pugilism
}
triggered_desc = {
trigger = {
exists = scope:sabotage_flavor
scope:sabotage_flavor = flag:horse
}
desc = tournament_events.6052.horse
}
triggered_desc = {
trigger = {
exists = scope:sabotage_flavor
scope:sabotage_flavor = flag:horse_race
}
desc = tournament_events.6052.horse_race
}
}
}
theme = tournament_grounds
window = widget_activity_locale_fullscreen_event
left_portrait = {
character = scope:sabotage_target
animation = anger
}
right_portrait = {
character = scope:sabotage_actor
animation = stress
}
override_background = { reference = armory }
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
}
option = { # Disqualify
name = {
trigger = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = scope:sabotage_actor
}
}
}
text = tournament_events.6052.a.host
}
name = {
trigger = {
NOT = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = scope:sabotage_actor
}
}
}
}
text = tournament_events.6052.a
}
if = {
limit = {
scope:activity = {
any_guest_subset_current_phase = {
name = qualified
this = scope:sabotage_actor
}
}
}
scope:activity = {
switch = {
trigger = has_current_phase
# Versus Contests require more specific script
tournament_phase_joust = {
tournament_contest_versus_disqualification_effect = { DISQUALIFIED = scope:sabotage_actor MATCH = scope:sabotage_target CONTEST = joust SKILL = horse }
}
tournament_phase_wrestling = {
tournament_contest_versus_disqualification_effect = { DISQUALIFIED = scope:sabotage_actor MATCH = scope:sabotage_target CONTEST = wrestling SKILL = pugilism }
}
tournament_phase_duel = {
tournament_contest_versus_disqualification_effect = { DISQUALIFIED = scope:sabotage_actor MATCH = scope:sabotage_target CONTEST = duel SKILL = foot }
}
tournament_phase_board_game = {
tournament_contest_versus_disqualification_effect = { DISQUALIFIED = scope:sabotage_actor MATCH = scope:sabotage_target CONTEST = board_game SKILL = board_game }
}
# Non-Versus contests
fallback = {
tournament_contest_disqualification_effect = { DISQUALIFIED = scope:sabotage_actor }
}
}
}
}
else = {
scope:sabotage_actor = {
remove_from_activity = scope:activity
show_as_tooltip = {
add_opinion = {
target = root
modifier = tournament_ejected_opinion
opinion = -15
}
}
}
}
if = {
limit = {
exists = intent_target
has_activity_intent = befriend_attendee_intent
intent_target = scope:sabotage_target
}
progress_towards_friend_effect = {
REASON = friend_disqualified_saboteur
CHARACTER = scope:sabotage_target
OPINION = default_friend_opinion
}
}
scope:sabotage_actor = { trigger_event = tournament_events.6051 }
scope:sabotage_actor = {
accolade_medium_glory_loss_with_checks_effect = yes
}
stress_impact = {
arbitrary = medium_stress_impact_gain
}
if = {
limit = { this = scope:sabotage_target }
stress_impact = {
forgiving = medium_stress_impact_gain
}
}
ai_chance = {
base = 100
opinion_modifier = {
who = scope:host
opinion_target = scope:sabotage_target
multiplier = 1
}
modifier = {
scope:host = scope:sabotage_target
add = 200
}
ai_value_modifier = {
ai_honor = 1
}
}
}
option = { # Forgive
name = tournament_events.6052.b
if = {
limit = {
this != scope:sabotage_target
}
show_as_tooltip = {
reverse_add_opinion = {
target = scope:sabotage_target
modifier = tournament_tolerated_sabotage_opinion
opinion = -15
}
}
}
if = {
limit = {
exists = intent_target
has_activity_intent = befriend_attendee_intent
intent_target = scope:sabotage_actor
}
progress_towards_friend_effect = {
REASON = friend_pardoned_saboteur
CHARACTER = scope:sabotage_actor
OPINION = default_friend_opinion
}
}
stress_impact = {
just = medium_stress_impact_gain
}
if = {
limit = { this = scope:sabotage_target }
stress_impact = {
vengeful = medium_stress_impact_gain
}
}
ai_chance = {
base = 50
opinion_modifier = {
who = scope:host
opinion_target = scope:sabotage_actor
multiplier = 1
}
ai_value_modifier = {
ai_honor = -1
}
}
}
}
tournament_events.6053 = { # Disqualification ping
type = activity_event
title = tournament_events.6053.t
desc = {
desc = tournament_events.6053.desc
first_valid = {
triggered_desc = {
trigger = {
scope:sabotage_flavor = flag:foot
this = scope:sabotage_target
}
desc = tournament_events.6052.foot
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:foot }
desc = tournament_events.6053.foot
}
triggered_desc = {
trigger = {
scope:sabotage_flavor = flag:archery
this = scope:sabotage_target
}
desc = tournament_events.6052.archery
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:archery }
desc = tournament_events.6053.archery
}
triggered_desc = {
trigger = {
scope:sabotage_flavor = flag:pugilism
this = scope:sabotage_target
}
desc = tournament_events.6052.pugilism
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:pugilism }
desc = tournament_events.6053.pugilism
}
triggered_desc = {
trigger = {
scope:sabotage_flavor = flag:horse
this = scope:sabotage_target
}
desc = tournament_events.6052.horse
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:horse }
desc = tournament_events.6053.horse
}
triggered_desc = {
trigger = {
scope:sabotage_flavor = flag:horse_race
this = scope:sabotage_target
}
desc = tournament_events.6052.horse_race
}
triggered_desc = {
trigger = { scope:sabotage_flavor = flag:horse_race }
desc = tournament_events.6053.horse_race
}
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:sabotage_disqualified
this = scope:sabotage_target
}
desc = tournament_events.6053.disqualified_target
}
triggered_desc = {
trigger = { exists = scope:sabotage_disqualified }
desc = tournament_events.6053.disqualified
}
triggered_desc = {
trigger = {
this = scope:sabotage_target
scope:host != scope:sabotage_actor
}
desc = tournament_events.6053.forgiven_target
}
triggered_desc = {
trigger = {
scope:host != scope:sabotage_actor
}
desc = tournament_events.6053.forgiven_target
}
}
}
theme = tournament_grounds
left_portrait = {
character = scope:sabotage_actor
animation = stress
}
right_portrait = {
character = scope:host
animation = dismissal
trigger = {
scope:host != scope:sabotage_actor
}
}
lower_right_portrait = scope:sabotage_target
window = widget_activity_locale_fullscreen_event
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
}
immediate = {
show_as_tooltip = {
scope:sabotage_actor = {
progress_towards_rival_effect = {
REASON = rival_tournament_attempted_sabotage
CHARACTER = scope:sabotage_target
OPINION = 0
}
reverse_add_opinion = {
target = scope:sabotage_target
modifier = tournament_attempted_sabotage_opinion
opinion = -20
}
add_prestige = minor_prestige_loss
add_character_modifier = {
modifier = tournament_attempted_sabotage_modifier
years = 3
}
}
if = {
limit = { exists = scope:sabotage_disqualified }
custom_tooltip = tournament_contest_disqualify_tt
scope:sabotage_actor = {
add_opinion = {
target = scope:host
modifier = tournament_disqualified_opinion
opinion = -15
}
}
}
else_if = {
limit = {
scope:sabotage_actor != scope:host
}
scope:sabotage_target = {
add_opinion = {
target = scope:host
modifier = tournament_tolerated_sabotage_opinion
opinion = -15
}
}
}
}
}
option = { # Indeed
name = tournament_events.6053.a
}
}
##################################################
# The Things We Do For Love
# by Joe Parkin
# 6500
##################################################
tournament_events.6500 = {
type = activity_event
title = tournament_events.6500.t
desc = tournament_events.6500.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = flirtation
}
right_portrait = {
character = intent_target
animation = dismissal
}
override_background = {
trigger = {
OR = {
AND = {
is_male = yes
faith = {
NOT = { has_doctrine_parameter = adultery_male_accepted }
}
}
AND = {
is_female = yes
faith = {
NOT = { has_doctrine_parameter = adultery_female_accepted }
}
}
}
OR = {
is_married = yes
scope:woo_target = { is_married = yes }
}
}
reference = alley_day
}
override_background = {
trigger = { always = yes }
reference = terrain_activity
}
cooldown = { years = 5 }
trigger = {
#Standard checks.
has_activity_intent = woo_attendee_intent
intent_target = { is_alive = yes }
activity_is_valid_tournament_contestant = yes
}
immediate = {
intent_target = { save_scope_as = woo_target }
add_character_flag = wear_armor
}
option = { # Agree
name = tournament_events.6500.a
reverse_add_opinion = {
target = scope:woo_target
modifier = tournament_vowed_to_lose_opinion
opinion = 5
}
stress_impact = {
stubborn = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_compassion = 1
ai_honor = -1
ai_energy = -1
}
}
}
option = { # Refuse
name = tournament_events.6500.b
reverse_add_opinion = {
target = scope:woo_target
modifier = tournament_refused_to_lose_opinion
opinion = -10
}
stress_impact = {
fickle = medium_stress_impact_gain
humble = medium_stress_impact_gain
content = medium_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_compassion = -1
ai_honor = 1
ai_energy = 1
}
}
}
after = {
set_variable = {
name = vowed_to_lose
value = scope:woo_target
}
remove_character_flag = wear_armor
}
}
##################################################
# Triumph's Allure
# by Joe Parkin, based on seduce_ongoing.1001
# 6510-11
##################################################
tournament_events.6510 = {
type = activity_event
title = tournament_events.6510.t
desc = {
desc = tournament_events.6510.opening
triggered_desc = {
trigger = {
exists = scope:woo_target.primary_spouse
NOT = { is_consort_of = scope:woo_target }
}
desc = tournament_events.6510.married
}
triggered_desc = {
trigger = {
exists = scope:woo_target.primary_spouse
is_consort_of = scope:woo_target
}
desc = tournament_events.6510.currentspouse
}
desc = tournament_events.6510.desc
}
theme = tournament_grounds
left_portrait = {
character = root
animation = flirtation
}
right_portrait = {
character = scope:woo_target
animation = happiness
}
lower_right_portrait = {
trigger = { exists = scope:woo_target.primary_spouse }
character = scope:woo_target.primary_spouse
}
cooldown = { years = 1 }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
has_activity_intent = woo_attendee_intent
intent_target = {
is_alive = yes
is_participant_in_activity = scope:activity
}
# Has won a contest
scope:activity = {
any_guest_subset = {
name = winner
this = root
}
}
}
immediate = {
save_scope_as = woo_actor
intent_target = { save_scope_as = woo_target }
scope:woo_target = { save_scope_as = target }
}
option = { # Dedicate victory to target
name = tournament_events.6510.a
custom_tooltip = tournament_events.6510.a.tt
save_scope_value_as = {
name = woo_approach
value = flag:dedicate
}
stress_impact = {
callous = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 0.5
}
}
}
option = { # Dismiss as nothing
name = tournament_events.6510.b
custom_tooltip = tournament_events.6510.b.tt
save_scope_value_as = {
name = woo_approach
value = flag:dismiss
}
stress_impact = {
humble = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
}
}
}
option = { # Praise loser
name = tournament_events.6510.c
custom_tooltip = tournament_events.6510.c.tt
save_scope_value_as = {
name = woo_approach
value = flag:praise
}
stress_impact = {
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = -0.5
}
}
}
option = { # Thank God
name = tournament_events.6510.d
custom_tooltip = tournament_events.6510.d.tt
save_scope_value_as = {
name = woo_approach
value = flag:god
}
stress_impact = {
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_zeal = 0.5
}
}
}
after = {
show_as_tooltip = {
random_list = {
10 = {
desc = seduce_ongoing_possible_outcomes_tooltip_effect.success.desc
show_chance = no
progress_towards_lover_effect = {
CHARACTER = scope:woo_target
OPINION = 15
REASON = lover_tournament_victor_impressed
}
}
10 = {
desc = seduce_ongoing_possible_outcomes_tooltip_effect.failure.desc
show_chance = no
reverse_add_opinion = {
target = scope:woo_target
modifier = tournament_failed_woo_opinion
opinion = -10
}
}
}
}
scope:woo_target = {
hidden_effect = {
#Evaluate what makes for a "right" choice
if = {
limit = {
OR = {
AND = {
OR = {
has_personality_emotional_trigger = yes
ai_rationality < high_negative_rationality
}
exists = scope:woo_approach
scope:woo_approach = flag:dedicate
}
AND = {
OR = {
has_personality_extroverted_trigger = yes
ai_boldness > medium_positive_boldness
}
exists = scope:woo_approach
scope:woo_approach = flag:dismiss
}
AND = {
OR = {
has_personality_introverted_trigger = yes
ai_honor > medium_positive_honor
has_trait = humble
}
exists = scope:woo_approach
scope:woo_approach = flag:praise
}
AND = {
OR = {
ai_zeal > medium_positive_zeal
has_trait = zealous
}
exists = scope:woo_approach
scope:woo_approach = flag:god
}
}
}
save_scope_value_as = {
name = made_great_choice
value = yes
}
}
random_list = {
100 = { #Success
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:dedicate
has_trait = compassionate
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:dismiss
has_trait = arrogant
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:praise
has_trait = humble
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:god
has_trait = zealous
}
trigger_event = {
id = tournament_events.6511
days = { 1 2 }
}
scope:woo_actor = {
trigger_event = {
id = tournament_events.6513
days = { 3 4 }
}
}
}
100 = { #Failure
trigger = {
NOT = { exists = scope:made_great_choice }
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:dedicate
has_trait = callous
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:dismiss
has_trait = humble
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:praise
has_trait = arrogant
}
modifier = {
add = 100
exists = scope:woo_approach
scope:woo_approach = flag:god
has_trait = cynical
}
trigger_event = {
id = tournament_events.6512
days = { 1 2 }
}
scope:woo_actor = {
trigger_event = {
id = tournament_events.6514
days = { 3 4 }
}
}
}
}
}
}
}
}
#Target: Success
tournament_events.6511 = {
type = activity_event
title = tournament_events.6510.t
desc = {
desc = tournament_events.6511.opening
first_valid = {
triggered_desc = {
trigger = { scope:woo_approach = flag:dedicate }
desc = tournament_events.6511.dedicate
}
triggered_desc = {
trigger = { scope:woo_approach = flag:dismiss }
desc = tournament_events.6511.dismiss
}
triggered_desc = {
trigger = { scope:woo_approach = flag:praise }
desc = tournament_events.6511.praise
}
triggered_desc = {
trigger = { scope:woo_approach = flag:god }
desc = tournament_events.6511.god
}
desc = tournament_events.6511.fallback
}
}
left_portrait = {
character = scope:woo_actor
animation = flirtation
}
theme = seduce_scheme
trigger = { exists = scope:woo_approach }
option = {
name = tournament_events.6512.a
add_stress = minor_stress_loss
show_as_tooltip = {
progress_towards_lover_effect = {
CHARACTER = scope:woo_target
OPINION = 15
REASON = lover_tournament_victor_impressed
}
}
}
}
#Target: Failure
tournament_events.6512 = {
type = activity_event
title = tournament_events.6510.t
desc = {
desc = tournament_events.6511.opening
first_valid = {
triggered_desc = {
trigger = { scope:woo_approach = flag:dedicate }
desc = tournament_events.6512.dedicate
}
triggered_desc = {
trigger = { scope:woo_approach = flag:dismiss }
desc = tournament_events.6512.dismiss
}
triggered_desc = {
trigger = { scope:woo_approach = flag:praise }
desc = tournament_events.6512.praise
}
triggered_desc = {
trigger = { scope:woo_approach = flag:god }
desc = tournament_events.6512.god
}
desc = tournament_events.6512.fallback
}
}
left_portrait = {
character = scope:woo_actor
animation = flirtation
}
theme = unfriendly
trigger = { exists = scope:woo_approach }
option = {
name = tournament_events.6512.a
}
}
#Actor: Success
tournament_events.6513 = {
type = activity_event
title = tournament_events.6510.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:woo_approach = flag:dedicate }
desc = tournament_events.6513.dedicate
}
triggered_desc = {
trigger = { scope:woo_approach = flag:dismiss }
desc = tournament_events.6513.dismiss
}
triggered_desc = {
trigger = { scope:woo_approach = flag:praise }
desc = tournament_events.6513.praise
}
triggered_desc = {
trigger = { scope:woo_approach = flag:god }
desc = tournament_events.6513.god
}
desc = tournament_events.6513.fallback
}
desc = tournament_events.6513.desc
}
left_portrait = {
character = scope:woo_target
animation = flirtation
}
theme = seduce_scheme
trigger = { exists = scope:woo_approach }
option = {
name = tournament_events.6513.a
progress_towards_lover_effect = {
CHARACTER = scope:woo_target
OPINION = 15
REASON = lover_tournament_victor_impressed
}
}
}
#Actor: Failure
tournament_events.6514 = {
type = activity_event
title = tournament_events.6510.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:woo_approach = flag:dedicate }
desc = tournament_events.6514.dedicate
}
triggered_desc = {
trigger = { scope:woo_approach = flag:dismiss }
desc = tournament_events.6514.dismiss
}
triggered_desc = {
trigger = { scope:woo_approach = flag:praise }
desc = tournament_events.6514.praise
}
triggered_desc = {
trigger = { scope:woo_approach = flag:god }
desc = tournament_events.6514.god
}
desc = tournament_events.6514.fallback
}
desc = tournament_events.6514.desc
}
left_portrait = {
character = scope:woo_target
animation = eyeroll
}
theme = seduce_scheme
trigger = { exists = scope:woo_approach }
option = {
name = tournament_events.6514.a
reverse_add_opinion = {
target = scope:woo_target
modifier = tournament_failed_woo_opinion
opinion = -10
}
}
}
##################################################
# Local Lancer
# by Joe Parkin
# 6900
##################################################
tournament_events.6900 = {
type = activity_event
title = tournament_events.6900.t
desc = {
desc = tournament_events.6900.desc
first_valid = {
triggered_desc = {
trigger = { exists = scope:attending_culture }
desc = tournament_events.6900.new
}
desc = tournament_events.6900.pool
}
desc = tournament_events.6900.closing
}
theme = tournament_grounds
left_portrait = {
character = scope:local_lancer
animation = war_over_win
}
right_portrait = { character = scope:bidder }
lower_left_portrait = {
trigger = {
root != scope:murder_match
}
character = scope:murder_match
}
cooldown = { months = 4 }
override_background = { reference = army_camp }
trigger = {
#DLC check.
#has_ep2_dlc_trigger = yes
#Standard checks.
has_activity_intent = recruit_knights_intent
trigger_if = {
limit = {
is_ai = yes
}
highest_held_title_tier >= tier_kingdom
}
scope:activity = {
any_attending_character = {
NOR = {
this = scope:host
this = root
}
is_landed = yes
is_ai = yes
}
}
}
immediate = {
hidden_effect = {
random_list = {
50 = {
trigger = {
any_pool_guest = {
prowess >= mediocre_skill_rating
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
}
random_pool_guest = {
limit = {
prowess >= mediocre_skill_rating
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
weight = {
base = 1
modifier = { add = prowess }
# Weight down a little compared to usual, so that prowess is still a deciding factor.
activity_recurring_character_weight_modifier = { VALUE = 10 }
}
save_scope_as = local_lancer
}
}
50 = {
scope:activity = {
random_attending_character = {
limit = {
culture = {
any_culture_county = { count >= 1 }
}
}
culture = { save_scope_as = attending_culture }
}
}
scope:attending_culture = {
random_culture_county = {
faith = { save_scope_as = attending_faith }
}
}
create_character = {
template = tournament_horse_character
location = scope:activity.activity_location
culture = scope:attending_culture
faith = scope:attending_faith
save_scope_as = local_lancer
}
scope:local_lancer = { visit_court_of = scope:host }
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOR = {
this = scope:host
this = scope:local_lancer
this = root
}
is_landed = yes
is_ai = yes
}
weight = {
base = 10
modifier = {
NOT = { is_vassal_of = root }
add = 20
}
modifier = {
primary_title.tier = root.primary_title.tier
add = 20
}
modifier = {
has_activity_intent = recruit_knights_intent
add = 20
}
}
save_scope_as = bidder
}
}
scope:local_lancer = {
add_character_flag = wear_armor
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
}
option = { # Outbid
name = tournament_events.6900.a
scope:local_lancer = {
random_list = {
20 = {
desc = tournament_events.6900.a.success
min = 1
modifier = {
add = 10
has_trait = profligate
}
modifier = {
add = 10
has_trait = improvident
}
modifier = {
add = 10
gold < 0
}
modifier = {
add = 10
has_trait = greedy
}
opinion_modifier = {
opinion_target = root
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.6900.a.success
left_icon = scope:local_lancer
right_icon = scope:bidder
pay_short_term_gold = {
target = scope:local_lancer
gold = minor_gold_value
}
scope:local_lancer = { set_employer = root }
scope:bidder = {
add_opinion = {
target = root
modifier = tournament_lancer_gazumped_opinion
opinion = -10
}
}
}
}
}
25 = {
desc = tournament_events.6900.a.failure
min = 2
modifier = {
add = 10
has_trait = content
}
modifier = {
add = 10
has_trait = generous
}
opinion_modifier = {
opinion_target = scope:bidder
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.6900.a.failure
left_icon = scope:local_lancer
right_icon = scope:bidder
scope:local_lancer = { set_employer = scope:bidder }
}
}
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_greed = -1
ai_boldness = 1
}
}
}
option = { # Host persuasion
name = tournament_events.6900.b
trigger = { scope:bidder.primary_title.tier < root.primary_title.tier }
scope:local_lancer = {
random_list = {
20 = {
desc = tournament_events.6900.b.success
min = 1
modifier = {
add = 10
has_trait = comfort_eater
}
modifier = {
add = 10
has_trait = gluttonous
}
modifier = {
add = 10
has_trait = gregarious
}
opinion_modifier = {
opinion_target = root
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.6900.b.success
left_icon = scope:local_lancer
right_icon = scope:bidder
remove_treasury_or_gold = tiny_treasury_or_gold_value
scope:local_lancer = { set_employer = root }
scope:bidder = {
add_opinion = {
target = root
modifier = tournament_lancer_gazumped_opinion
opinion = -10
}
}
}
}
}
25 = {
desc = tournament_events.6900.a.failure
min = 1
modifier = {
add = 10
has_trait = inappetetic
}
modifier = {
add = 10
has_trait = temperate
}
modifier = {
add = 10
has_trait = shy
}
opinion_modifier = {
opinion_target = scope:bidder
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.6900.a.failure
left_icon = scope:local_lancer
right_icon = scope:bidder
scope:local_lancer = { set_employer = scope:bidder }
}
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 0.5
ai_rationality = 0.5
}
}
}
option = { # Rank persuasion
name = tournament_events.6900.c
trigger = {
NOT = {
scope:bidder = { is_vassal_of = root }
}
scope:bidder.primary_title.tier < root.primary_title.tier
}
scope:local_lancer = {
random_list = {
20 = {
desc = tournament_events.6900.c.success
min = 1
modifier = {
add = 10
has_trait = arrogant
}
modifier = {
add = 10
has_trait = ambitious
}
modifier = {
add = 10
scope:local_lancer = {
tier_difference = {
target = root
value <= -3
}
}
}
modifier = {
add = 10
scope:local_lancer = {
tier_difference = {
target = root
value <= -2
}
}
}
opinion_modifier = {
opinion_target = root
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_good
title = tournament_events.6900.c.success
left_icon = scope:local_lancer
right_icon = scope:bidder
scope:local_lancer = { set_employer = root }
scope:bidder = {
add_opinion = {
target = root
modifier = tournament_lancer_gazumped_opinion
opinion = -10
}
}
}
}
}
25 = {
desc = tournament_events.6900.a.failure
min = 2
modifier = {
add = 10
has_trait = humble
}
modifier = {
add = 10
has_trait = content
}
opinion_modifier = {
opinion_target = scope:bidder
multiplier = 0.5
}
root = {
send_interface_toast = {
type = event_toast_effect_bad
title = tournament_events.6900.a.failure
left_icon = scope:local_lancer
right_icon = scope:bidder
scope:local_lancer = { set_employer = scope:bidder }
}
}
}
}
}
stress_impact = {
humble = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 0.5
ai_boldness = 1
}
}
}
option = { # Vassal tyranny
name = tournament_events.6900.d
trigger = {
scope:bidder = { is_vassal_or_below_of = root }
}
scope:local_lancer = { set_employer = root }
add_tyranny = minor_tyranny_gain
reverse_add_opinion = {
target = scope:bidder
modifier = tournament_lancer_vassal_tyranny_opinion
opinion = -10
}
stress_impact = {
just = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = -1
ai_boldness = 1
}
}
}
option = { # Give up
name = tournament_events.6900.e
scope:local_lancer = { set_employer = scope:bidder }
stress_impact = {
humble = medium_stress_impact_gain
generous = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_greed = -0.5
ai_boldness = 1
}
}
}
after = {
if = {
limit = {
scope:local_lancer = {
can_join_activity = scope:activity
}
}
scope:local_lancer = {
hidden_effect = {
add_to_activity = scope:activity
}
}
}
scope:local_lancer = {
remove_character_flag = wear_armor
}
random_list = {
1 = {
try_to_create_recurring_character_effect = { CHARACTER = scope:local_lancer }
}
1 = {
try_to_create_recurring_character_effect = { CHARACTER = scope:bidder }
}
}
}
}
# Make a man out of you
# by Nick Meredith
tournament_events.7000 = {
type = activity_event
title = tournament_events.7000.t
desc = tournament_events.7000.desc
theme = tournament_grounds
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:mulan
animation = throne_room_bow_2
}
cooldown = { years = 1 }
trigger = {
is_ai = no #Make this only trigger for players, lest we have a few too many Mulans wandering about!
scope:activity = {
any_attending_character = {
count < 240 #Max is 250, leaving some space for stragglers
}
}
#Make sure that at least one gender is dominant for martial rules
OR = {
AND = {
scope:host.culture = { has_cultural_parameter = martial_custom_female_only_combatant }
culture = { has_cultural_parameter = martial_custom_female_only_combatant }
}
AND = {
scope:host.culture = { has_cultural_parameter = martial_custom_male_only_combatant }
culture = { has_cultural_parameter = martial_custom_male_only_combatant }
}
AND = {
scope:host.faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco }
faith = { has_doctrine_parameter = combatant_must_be_female_if_no_roco }
}
AND = {
scope:host.faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco }
faith = { has_doctrine_parameter = combatant_must_be_male_if_no_roco }
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
culture = { save_scope_as = attending_culture }
}
}
scope:attending_culture = {
random_culture_county = {
faith = { save_scope_as = attending_faith }
}
}
create_character = {
template = tournament_mulan_character
location = scope:activity.activity_location
culture = scope:attending_culture
faith = scope:attending_faith
dynasty = none
save_scope_as = mulan
}
scope:mulan = { visit_court_of = scope:host }
if = {
limit = {
scope:mulan = {
NOT = {
can_be_combatant_based_on_gender_trigger = {
ARMY_OWNER = root
}
}
}
}
scope:mulan = {
add_character_modifier = ignores_gender_army_rules
}
}
scope:mulan = {
add_character_flag = wear_armor
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = recruit_knights_intent
}
}
option = { # Keep their secret
name = tournament_events.7000.a
scope:mulan = {
hidden_effect = {
add_to_activity = scope:activity
scope:activity = {
add_to_guest_subset = {
name = contestant
target = scope:mulan
}
}
}
custom_tooltip = tournament_events.7000.a.tt
try_to_create_recurring_character_effect = { CHARACTER = root }
}
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:mulan
opinion = 20
}
stress_impact = {
trusting = miniscule_stress_impact_loss
content = miniscule_stress_impact_loss
ambitious = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
}
ai_chance = {
base = 5
ai_value_modifier = {
ai_compassion = 1.5
ai_greed = -1.5
}
}
}
option = { # Recruit
name = tournament_events.7000.b
pay_short_term_gold = {
target = scope:mulan
gold = {
value = minor_gold_value
max = 20
}
}
hidden_effect = { add_courtier = scope:mulan }
scope:mulan = {
hidden_effect = {
add_to_court_and_entourage_effect = yes
return_to_court = yes
set_knight_status = force
}
custom_tooltip = ignores_gender_army_rules_tt
custom_tooltip = tournament_events.7000.a.tt
custom_tooltip = tournament_events.7000.b.tt
try_to_create_recurring_character_effect = { CHARACTER = root }
}
add_character_flag = knows_mulan_flag #Needed for ep2_tournament_events.1015
reverse_add_opinion = {
modifier = grateful_opinion
target = scope:mulan
opinion = 40
}
stress_impact = {
trusting = miniscule_stress_impact_loss
content = miniscule_stress_impact_loss
ambitious = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = 2
ai_greed = -2
}
}
}
option = { # Reveal them
name = tournament_events.7000.c
if = {
limit = { activity_is_competing_trigger = yes }
activity_tournament_change_contestant_score_effect = { SCORE = increase_minor }
}
scope:mulan = {
show_as_tooltip = {
banish = yes
}
move_to_pool = yes
silent_disappearance_effect = yes
}
stress_impact = {
ambitious = miniscule_stress_impact_loss
paranoid = miniscule_stress_impact_loss
content = medium_stress_impact_gain
}
ai_chance = {
base = 20
ai_value_modifier = {
ai_boldness = 1
ai_rationality = -1
ai_compassion = -1
ai_greed = 1
}
}
}
after = {
scope:mulan = {
remove_character_flag = wear_armor
}
}
}