N3OW/events/dlc/ep2/wedding_events/ep2_wedding_events.txt
2026-01-06 14:25:21 +01:00

23494 lines
500 KiB
Text

namespace = ep2_wedding
############################
## Wedding Events - Maintenance
## 0001-0999
## by Claudia Baldassi
############################
## Wedding Events
##
## by Claudia Baldassi, Veronica Pazos, Luke Bean
#
## Ceremony Events
# ep2_wedding.1000 - Host: The other party arrives early and criticizes your chosen options
# ep2_wedding.1010 - Host: You have an occasion to kickstart your Diplomacy/Seduce targeting efforts
# ep2_wedding.1080 - Matchmaking Intent: Lay the ground for the matchmaking
# ep2_wedding.1100 - Northern wedding: the bride goes to a bathhouse with the married women of her family: removal of clothes and kransen (golden circlet)
# ep2_wedding.1020 - Spouse: The spouses fall in love at first sight
# ep2_wedding.1030 - A good or bad omen happens: how do you react?
# ep2_wedding.1120 - Children of the spouses from a previous partner make a fuss
# ep2_wedding.1130 - A bad secret about one of the spouses comes up
# ep2_wedding.1140 - Host: A spouse has an embarrassing misstep, how do you recover?
# ep2_wedding.1150 - Seduction Intent: target scouting
# ep2_wedding.1160 - Some pesants are at the gate of the festivity - what do you do?
# ep2_wedding.1170 - A spouse has arrived with a whole parade. Interact with it
# ep2_wedding.1180 - Your spouse doesn't really like you...
# ep2_wedding.1190 - Religious guest complains about lavishness, luxury, wastes, and unchaste mingling
# ep2_wedding.1200 - Proud parent watches everything go well and brags with intent target/friend/rival/neighbor
# ep2_wedding.1210 - Political talk with a fellow ruler
# ep2_wedding.1220 - In-laws are bullies (or other close relatives)
# ep2_wedding.4000 - Non-spouse: Matchmaking Intent - What a nice wedding, maybe you should follow?
#
## Banquet Events
# ep2_wedding.1040 - You make a new friend
# ep2_wedding.1050 - Someone catches fire from the torches
# ep2_wedding.1070 - Showing off exotic animals can go very well or very wrong
# ep2_wedding.1090 - Matchmaking Intent: push a couple together
# ep2_wedding.1310 - A Friend Is Monopolizing Your Attention
# ep2_wedding.1320 - A rival seeks forgiveness
# ep2_wedding.2000-2001 - Diplomatic Intent: You find information about your target by talking to a friend of theirs
# ep2_wedding.2010-2011 - Host: Paint an animal white and pretend it's a legendary guest
#
## Wedding Night Events
# ep2_wedding.1060 - Spouse: Inspired by Matilda of Tuscany's second wedding: a younger/meeker husband is too intimidated
# ep2_wedding.1065 - Spouse: Inverted event: it's you who have problems - spouse's reaction
# ep2_wedding.1110 - Non-spouses: someone gets extremely drunk/doesn't want to leave
# ep2_wedding.1111 - Non-spouses: you get extremely drunk/don't want to leave
# ep2_wedding.1300 - Spouse: a spouse has insecurities
# ep2_wedding.1330 - Spouse: We were lovers before the wedding
# ep2_wedding.3000 - Spouse: Both spouses are shy/nervous
# ep2_wedding.3010 - Spouse: Spouse with a secret has a breakdown and confesses
# ep2_wedding.3020 - Spouse: You find out that your spouse fancies the other gender
# ep2_wedding.3030 - Spouse: Spouse gives you a memento to symbolize your love
# ep2_wedding.3040 - Spouse: The bed catches fire while you're at it
# ep2_wedding.3050 - Non-spouses: Murder Intent - try to kill your target with a chandelier
# ep2_wedding.3060 - Spouse: Murder Intent - try to kill your spouse while you're at it
# BETROTHAL INVALIDATED
# The Grand Wedding wasn't organized in the set amount of time
ep2_wedding.0001 = {
type = character_event
title = ep2_wedding.0001.t
desc = {
desc = ep2_wedding.0001.desc
first_valid = {
triggered_desc = {
trigger = {
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
desc = ep2_wedding.0001.desc_betrothed
}
desc = ep2_wedding.0001.desc_self
}
}
theme = marriage
left_portrait = {
character = root
animation = disapproval
}
lower_right_portrait = scope:spouse_1
lower_center_portrait = scope:spouse_2
trigger = {
exists = var:promised_grand_wedding_marriage_countdown
has_variable = promised_grand_wedding_marriage_countdown
var:promised_grand_wedding_marriage_countdown = { is_alive = yes }
exists = var:promised_grand_wedding_marriage_countdown.betrothed
NOT = {
involved_activity ?= {
has_activity_type = activity_wedding
activity_host = root
}
}
var:promised_grand_wedding_marriage_countdown = { age >= 19 }
var:promised_grand_wedding_marriage_countdown.betrothed = { age >= 19 }
}
# This event shouldn't trigger unless the spouses have been adult and marriable for at least 3 years in any case, but to prevent edge cases, we check that they are adult, and if they are not or have not been for at least 3 years, we try again one year later
on_trigger_fail = {
if = {
limit = {
has_variable = promised_grand_wedding_marriage_countdown
}
if = {
limit = { exists = var:promised_grand_wedding_marriage_countdown }
trigger_event = {
id = ep2_wedding.0001
days = 365
}
set_variable = {
name = promised_grand_wedding_marriage_countdown
value = var:promised_grand_wedding_marriage_countdown
years = grand_wedding_timeout
}
}
else = {
remove_variable = promised_grand_wedding_marriage_countdown
}
}
}
immediate = {
var:promised_grand_wedding_marriage_countdown = {
save_scope_as = spouse_1
}
scope:spouse_1.betrothed = {
save_scope_as = spouse_2
}
}
option = {
name = ep2_wedding.0001.a
break_grand_wedding_betrothal_effect = yes
}
}
# A betrothed died before organizing the activity - Host
ep2_wedding.0002 = {
type = character_event
title = ep2_wedding.0002.t
desc = ep2_wedding.0002.desc
theme = marriage
left_portrait = {
character = root
animation = grief
}
lower_right_portrait = scope:dead_spouse
lower_center_portrait = scope:alive_spouse
immediate = {
}
option = {
name = ep2_wedding.0002.a
remove_variable = promised_grand_wedding_marriage_countdown
}
}
# Your betrothed died before organizing the activity - Other Betrothed (also if the betrothed was the host)
ep2_wedding.0003 = {
type = character_event
title = ep2_wedding.0002.t
desc = ep2_wedding.0003.desc
theme = marriage
left_portrait = {
character = root
animation = grief
}
lower_right_portrait = scope:dead_spouse
option = {
name = ep2_wedding.0003.a
remove_variable = promised_grand_wedding_by
if = {
limit = {
has_variable = promised_grand_wedding_marriage_countdown
}
remove_variable = promised_grand_wedding_marriage_countdown
}
}
}
# ON START - CEREMONY
ep2_wedding.0100 = {
type = activity_event
title = ep2_wedding.0100.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
root = scope:host
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
desc = ep2_wedding.0100.desc_host
desc = ep2_wedding.0100.desc_host_outro
}
triggered_desc = {
trigger = {
root = scope:host
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
desc = ep2_wedding.0100.desc_host_spouse
}
triggered_desc = {
trigger = {
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
desc = ep2_wedding.0100.desc_spouse
}
desc = ep2_wedding.0100.desc_guest
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
is_pregnant = yes
}
desc = ep2_wedding.0100.desc_root_pregnant
}
triggered_desc = {
trigger = {
OR = {
AND = {
scope:spouse_1 = { is_pregnant = yes }
root != scope:spouse_1
}
AND = {
scope:spouse_2 = { is_pregnant = yes }
root != scope:spouse_2
}
}
}
desc = ep2_wedding.0100.desc_spouse_pregnant
}
}
theme = wedding_ceremony_activity
left_portrait = {
trigger = {
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
character = root
animation = happiness
}
center_portrait = {
character = scope:spouse_1_portrait
camera = camera_event_left_wedding
triggered_animation = {
trigger = {
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_2 } }
}
animation = wedding_bride_left
}
animation = disapproval
}
right_portrait = {
character = scope:spouse_2_portrait
camera = camera_event_right_wedding
triggered_animation = {
trigger = {
NOT = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_1 } }
}
animation = wedding_groom_right
}
animation = dismissal
}
immediate = {
scope:host = { save_scope_as = host }
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
if = {
limit = {
root = scope:spouse_1
}
scope:spouse_2 = { save_scope_as = my_spouse }
}
else_if = {
limit = {
root = scope:spouse_2
}
scope:spouse_1 = { save_scope_as = my_spouse }
}
if = {
limit = {
scope:activity.special_guest:spouse_1 = {
sex_opposite_of = scope:activity.special_guest:spouse_2
is_male = yes
}
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_2_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_1_portrait
}
}
else = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2_portrait
}
}
}
option = {
name = ep2_wedding.0100.a
}
}
# ON END - CEREMONY
# For the host (not spouse) and guests
ep2_wedding.0150 = {
type = activity_event
title = ep2_wedding.0150.t
desc = ep2_wedding.0150.desc
theme = wedding_ceremony_activity
left_portrait = {
character = scope:spouse_1_portrait
animation = wedding_bride_left
camera = camera_event_left_wedding
}
center_portrait = {
character = scope:officiant
animation = wedding_priest
}
right_portrait = {
character = scope:spouse_2_portrait
animation = wedding_groom_right
camera = camera_event_right_wedding
}
trigger = {
exists = scope:activity.special_guest:spouse_1
exists = scope:activity.special_guest:spouse_2
NOR = {
scope:activity.special_guest:spouse_1 = this
scope:activity.special_guest:spouse_2 = this
}
}
immediate = {
if = {
limit = {
location.culture = { has_graphical_india_culture_group_trigger = yes }
}
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_india"
}
else_if = {
limit = {
OR = {
location.culture = { has_graphical_mena_culture_group_trigger = yes }
location.culture = { has_graphical_steppe_culture_group_trigger = yes }
location.culture = { has_graphical_african_culture_group_trigger = yes }
}
}
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_mena"
}
else = {
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_west"
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
}
if = {
limit = {
exists = scope:activity.special_guest:officiant
}
scope:activity.special_guest:officiant = { save_scope_as = officiant }
}
scope:spouse_1 = {
show_as_tooltip = {
marry = scope:spouse_2
}
}
if = {
limit = {
scope:activity.special_guest:spouse_1 = {
sex_opposite_of = scope:activity.special_guest:spouse_2
is_male = yes
}
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_2_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_1_portrait
}
}
else = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2_portrait
}
}
base_legitimacy_intent_reward = yes
}
option = {
name = ep2_wedding.0150.a
}
}
# For the spouses
ep2_wedding.0151 = {
type = activity_event
title = ep2_wedding.0150.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
scope:host = { NOT = { has_variable = bloody_wedding_backed_down_var } }
}
desc = ep2_wedding.0151.desc.murder
}
random_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = education_diplomacy_3
has_trait = education_diplomacy_4
has_trait = education_diplomacy_5
has_trait = education_stewardship_3
has_trait = education_stewardship_4
has_trait = education_stewardship_5
has_trait = diplomat
has_trait = administrator
has_trait = ambitious
}
}
desc = ep2_wedding.0151.desc_diplo
}
triggered_desc = {
trigger = {
OR = {
has_trait = education_learning_3
has_trait = education_learning_4
has_trait = education_learning_5
has_trait = scholar
has_trait = theologian
has_trait = zealous
has_character_modifier = bp1_superstition_modifier
}
}
desc = ep2_wedding.0151.desc_religious
}
triggered_desc = {
trigger = {
OR = {
has_trait = lifestyle_reveler
has_trait = gluttonous
has_trait = gregarious
has_trait = drunkard
has_trait = hashishiyah
}
}
desc = ep2_wedding.0151.desc_party
}
triggered_desc = {
trigger = {
OR = {
has_trait = seducer
has_trait = lustful
has_trait = rakish
has_trait = deviant
has_trait = adulterer
has_trait = fornicator
}
}
desc = ep2_wedding.0151.desc_seducer
}
triggered_desc = {
trigger = {
OR = {
has_trait = chaste
has_trait = humble
has_trait = shy
has_trait = reclusive
}
}
desc = ep2_wedding.0151.desc_shy
}
triggered_desc = {
trigger = {
OR = {
has_trait = wrathful
has_trait = arrogant
has_trait = callous
has_trait = irritable
has_trait = impatient
}
}
desc = ep2_wedding.0151.desc_arrogant
}
triggered_desc = {
trigger = {
OR = {
has_trait = paranoid
has_trait = craven
}
}
desc = ep2_wedding.0151.desc_paranoid
}
triggered_desc = {
trigger = {
OR = {
has_trait = maimed
has_trait = one_eyed
has_trait = one_legged
has_trait = disfigured
has_trait = scarred
has_trait = blind
has_trait = beauty_bad
has_trait = physique_bad
has_trait = clubfooted
has_trait = hunchbacked
has_trait = weak
has_trait = scaly
has_trait = wheezing
has_trait = bleeder
}
}
desc = ep2_wedding.0151.desc_appearance
}
desc = ep2_wedding.0151.desc
}
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = scope:spouse_1_portrait
animation = wedding_bride_left
camera = camera_event_left_wedding
}
center_portrait = {
character = scope:officiant
animation = wedding_priest
}
right_portrait = {
character = scope:spouse_2_portrait
animation = wedding_groom_right
camera = camera_event_right_wedding
}
trigger = {
exists = scope:activity.special_guest:spouse_1
exists = scope:activity.special_guest:spouse_2
root = scope:activity.special_guest:spouse_1
}
immediate = {
if = {
limit = {
location.culture = { has_graphical_india_culture_group_trigger = yes }
}
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_india"
}
else_if = {
limit = {
OR = {
location.culture = { has_graphical_mena_culture_group_trigger = yes }
location.culture = { has_graphical_steppe_culture_group_trigger = yes }
location.culture = { has_graphical_african_culture_group_trigger = yes }
}
}
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_mena"
}
else = {
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_west"
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
}
if = {
limit = {
scope:activity.special_guest:spouse_1 = {
sex_opposite_of = scope:activity.special_guest:spouse_2
is_male = yes
}
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_2_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_1_portrait
}
}
else = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1_portrait
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2_portrait
}
}
}
option = {
name = ep2_wedding.0151.a
scope:spouse_1 = {
marry = scope:spouse_2
}
if = {
limit = { scope:officiant ?= scope:spouse_1.faith.religious_head }
scope:spouse_1 = {
add_piety = major_piety_gain
}
}
else_if = {
limit = { scope:officiant.involved_activity ?= scope:activity }
scope:spouse_1 = {
add_piety = medium_piety_gain
}
}
else = {
scope:spouse_1 = {
add_piety = minor_piety_gain
}
}
if = {
limit = { scope:officiant ?= scope:spouse_2.faith.religious_head }
scope:spouse_2 = {
add_piety = major_piety_gain
}
}
else_if = {
limit = { scope:officiant.involved_activity ?= scope:activity }
scope:spouse_2 = {
add_piety = medium_piety_gain
}
}
else = {
scope:spouse_2 = {
add_piety = minor_piety_gain
}
}
if = {
limit = {
root = scope:host
}
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = ruler_married_here_county_modifier
years = 10
}
}
}
scope:spouse_1.dynasty ?= { add_dynasty_prestige = medium_dynasty_prestige_gain }
if = {
limit = {
NOT = { scope:spouse_2.dynasty ?= scope:spouse_1.dynasty }
}
scope:spouse_2.dynasty ?= { add_dynasty_prestige = medium_dynasty_prestige_gain }
}
if = {
limit = {
this = scope:spouse_1
}
create_character_memory = {
type = grand_wedding_got_married
participants = {
spouse = scope:spouse_2
}
}
}
else = {
create_character_memory = {
type = grand_wedding_got_married
participants = {
spouse = scope:spouse_1
}
}
}
scope:spouse_1 = { remove_variable = promised_grand_wedding_by }
scope:spouse_2 = { remove_variable = promised_grand_wedding_by }
scope:host = {
remove_variable = promised_grand_wedding_marriage_countdown
}
# The marriage should not be consummated before the Wedding Night!
hidden_effect = {
scope:spouse_1 = {
add_character_modifier = { modifier = wedding_fertility_delay_modifier }
}
scope:spouse_2 = {
add_character_modifier = { modifier = wedding_fertility_delay_modifier }
}
}
# Progress to next phase
hidden_effect = {
scope:activity = { progress_activity_phase_after = { days = 1 } }
}
}
option = {
name = ep2_wedding.0151.b
trigger = {
is_ai = no
}
custom_tooltip = ep2_wedding.0151.b.tt
scope:activity = {
set_variable = wedding_invalidated_said_no
}
add_character_flag = grand_wedding_said_no
ai_chance = {
base = 0
}
}
}
scripted_effect ep2_wedding_cleanup_jitter_modifier_effect = {
if = {
limit = { has_character_modifier = wedding_confident_groom }
remove_character_modifier = wedding_confident_groom
}
if = {
limit = { has_character_modifier = wedding_confident_bride }
remove_character_modifier = wedding_confident_bride
}
if = {
limit = { has_character_modifier = wedding_jitters }
remove_character_modifier = wedding_jitters
}
}
# I DON'T: the consequences
ep2_wedding.0152 = {
type = character_event
title = ep2_wedding.0152.t
desc = ep2_wedding.0152.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = wedding_objection_start
}
right_portrait = {
character = scope:spouse_2
animation = shock
}
lower_right_portrait = scope:scorned_matchmaker
immediate = {
scope:spouse_2.matchmaker = {
if = {
limit = {
this != scope:spouse_2
}
save_scope_as = scorned_matchmaker
}
}
scope:previous_host = {
# the betrothal is broken: hand out the consequences
break_grand_wedding_betrothal_effect = yes
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9000.tt
add_gold = var:gwedding_gold_recoup_value
}
}
create_character_memory = {
type = grand_wedding_refused_to_marry
participants = {
spouse = scope:spouse_2
}
}
ep2_wedding_cleanup_jitter_modifier_effect = yes
scope:spouse_2 = {
ep2_wedding_cleanup_jitter_modifier_effect = yes
}
}
option = {
name = ep2_wedding.0152.a
}
after = {
remove_character_flag = grand_wedding_said_no
scope:previous_host = { remove_variable = gwedding_gold_recoup_value }
}
}
# ON START - BANQUET
ep2_wedding.0200 = {
type = activity_event
title = ep2_wedding.0200.t
desc = {
first_valid = {
triggered_desc = {
trigger = { #spouse and bloody wedding
this = scope:host
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
root = scope:spouse_1
}
desc = ep2_wedding.0200.desc.murder_spouse
}
triggered_desc = { #bloody wedding
trigger = {
this = scope:host
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
root != scope:spouse_1
}
desc = ep2_wedding.0200.desc.murder
}
triggered_desc = { #spouses
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_2 }
}
desc = ep2_wedding.0200.desc_spouse_dislike
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:spouse_2 }
}
desc = ep2_wedding.0200.desc_spouse_like
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
OR = {
has_trait = lifestyle_reveler
has_trait = gluttonous
has_trait = gregarious
has_trait = drunkard
has_trait = hashishiyah
}
}
desc = ep2_wedding.0200.desc_spouse_party
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
OR = {
has_trait = chaste
has_trait = humble
has_trait = shy
has_trait = reclusive
}
}
desc = ep2_wedding.0200.desc_spouse_shy
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
OR = {
has_trait = wrathful
has_trait = arrogant
has_trait = callous
has_trait = irritable
has_trait = impatient
}
}
desc = ep2_wedding.0200.desc_spouse_arrogant
}
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
desc = ep2_wedding.0200.desc_spouse_fallback
}
triggered_desc = { #host
trigger = {
root = scope:host
}
desc = ep2_wedding.0200.desc_host
}
desc = ep2_wedding.0200.desc #guest
}
}
theme = wedding_banquet_activity
left_portrait = {
trigger = {
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
character = root
animation = toast_goblet
}
center_portrait = {
character = scope:spouse_1
camera = camera_event_left_wedding
triggered_animation = {
trigger = {
scope:spouse_1 = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_2 }
}
}
animation = disapproval
}
animation = wedding_bride_left
}
right_portrait = {
character = scope:spouse_2
camera = camera_event_right_wedding
triggered_animation = {
trigger = {
scope:spouse_2 = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_1 }
}
}
animation = disapproval
}
animation = wedding_groom_right
}
trigger = {
exists = scope:activity
}
immediate = {
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
scope:activity.var:spouse_2_var = { save_scope_as = spouse_2 }
if = {
limit = {
root = scope:spouse_1
}
scope:spouse_2 = {
save_scope_as = my_spouse
}
}
else_if = {
limit = {
root = scope:spouse_2
}
scope:spouse_1 = {
save_scope_as = my_spouse
}
}
}
option = {
name = {
trigger = {
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
}
text = ep2_wedding.0200.a.murder
}
name = {
trigger = {
NOT = {
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
}
}
text = ep2_wedding.0200.a
}
if = {
limit = {
OR = {
root = scope:host
root = scope:spouse_1
root = scope:spouse_2
}
}
add_prestige = minor_prestige_gain
}
}
}
# ON START - WEDDING NIGHT
ep2_wedding.0300 = {
type = activity_event
title = ep2_wedding.0300.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = special_type
option = wedding_type_bloody
}
}
root = scope:spouse_1
}
desc = ep2_wedding.0300.desc.murder_spouse
}
triggered_desc = {
trigger = {
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
desc = ep2_wedding.0300.desc_spouse
}
triggered_desc = {
trigger = {
root = scope:host
}
desc = ep2_wedding.0300.desc
}
desc = ep2_wedding.0300.desc_guest
}
}
theme = wedding_night_activity
left_portrait = {
trigger = {
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
character = root
animation = happiness
}
center_portrait = {
character = scope:spouse_1
triggered_animation = {
trigger = {
scope:spouse_1 = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_2 }
}
}
animation = disapproval
}
animation = reception_groom_left
}
right_portrait = {
character = scope:spouse_2
triggered_animation = {
trigger = {
scope:spouse_2 = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:spouse_1 }
}
}
animation = dismissal
}
animation = reception_bride_right
}
immediate = {
scope:activity.special_guest:spouse_1 ?= {
save_scope_as = spouse_1
}
scope:activity.special_guest:spouse_2 ?= {
save_scope_as = spouse_2
}
if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
scope:activity.special_guest:spouse_2 = { save_scope_as = other_spouse }
}
else_if = {
limit = {
root = scope:activity.special_guest:spouse_2
}
scope:activity.special_guest:spouse_1 = { save_scope_as = other_spouse }
}
hidden_effect = {
scope:spouse_1 ?= {
if = {
limit = {
has_character_modifier = wedding_fertility_delay_modifier
}
remove_character_modifier = wedding_fertility_delay_modifier
}
}
scope:spouse_2 ?= {
if = {
limit = {
has_character_modifier = wedding_fertility_delay_modifier
}
remove_character_modifier = wedding_fertility_delay_modifier
}
}
}
}
option = {
name = ep2_wedding.0300.a
}
}
# INVALIDATED
# For the host (not spouse) and the guests - one of the spouses died
ep2_wedding.0900 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0900.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = sadness
}
right_portrait = {
character = scope:sad_spouse
animation = grief
}
immediate = {
if = {
limit = {
scope:spouse_1 ?= { is_alive = yes }
}
scope:spouse_1 = { save_scope_as = sad_spouse }
scope:spouse_2 = { save_scope_as = dead_spouse }
}
else = {
scope:spouse_2 = { save_scope_as = sad_spouse }
scope:spouse_1 = { save_scope_as = dead_spouse }
}
if = {
limit = {
scope:sad_spouse = { has_character_modifier = wedding_fertility_delay_modifier }
}
scope:sad_spouse = { remove_character_modifier = wedding_fertility_delay_modifier }
}
if = {
limit = {
root = scope:previous_host
}
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9000.tt
add_gold = var:gwedding_gold_recoup_value
}
}
}
option = {
name = ep2_wedding.0900.a
}
after = {
if = {
limit = {
has_variable = gwedding_gold_recoup_value
}
remove_variable = gwedding_gold_recoup_value
}
}
}
# For the spouses - the other spouse died
ep2_wedding.0910 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0910.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = grief
}
immediate = {
if = {
limit = {
root = scope:previous_host
}
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9000.tt
add_gold = var:gwedding_gold_recoup_value
}
}
create_character_memory = {
type = grand_wedding_death_at_wedding
participants = {
dead_spouse = scope:dead_spouse
}
}
error_log = "Invalidating [activity.GetName] of [activity.GetOwner.GetLogName] because a spouse is dead"
}
option = {
name = ep2_wedding.0910.a
}
after = {
if = {
limit = {
has_variable = gwedding_gold_recoup_value
}
remove_variable = gwedding_gold_recoup_value
}
remove_variable = promised_grand_wedding_by
scope:previous_host = {
remove_variable = promised_grand_wedding_marriage_countdown
}
if = {
limit = {
has_character_modifier = wedding_fertility_delay_modifier
}
remove_character_modifier = wedding_fertility_delay_modifier
}
}
}
# If the host who is a spouse dies, notify the heir
ep2_wedding.0915 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0915.desc
theme = family
left_portrait = {
character = root
animation = sadness
}
lower_center_portrait = scope:previous_host
immediate = {
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9015.tt
add_gold = scope:previous_host.var:gwedding_gold_recoup_value
}
}
option = {
name = ep2_wedding.0915.a
}
after = {
if = {
limit = {
has_variable = gwedding_gold_recoup_value
}
remove_variable = gwedding_gold_recoup_value
}
}
}
# A spouse has been imprisoned: for the prisoner
ep2_wedding.0920 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0920.desc
theme = prison
left_portrait = {
character = root
triggered_animation = {
trigger = { is_in_prison_type = house_arrest }
animation = prisonhouse
}
triggered_animation = {
trigger = { is_in_prison_type = dungeon }
animation = prisondungeon
}
}
immediate = {
if = {
limit = {
root = scope:previous_host
}
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9000.tt
add_gold = var:gwedding_gold_recoup_value
}
}
create_character_memory = {
type = grand_wedding_missed_wedding_in_prison
participants = {
spouse = scope:free_spouse
}
}
}
option = {
name = ep2_wedding.0920.a
}
after = {
if = {
limit = {
has_variable = gwedding_gold_recoup_value
}
remove_variable = gwedding_gold_recoup_value
}
remove_variable = promised_grand_wedding_by
scope:previous_host = {
remove_variable = promised_grand_wedding_marriage_countdown
}
if = {
limit = {
has_character_modifier = wedding_fertility_delay_modifier
}
remove_character_modifier = wedding_fertility_delay_modifier
}
}
}
# A spouse has been imprisoned: for everyone else
ep2_wedding.0921 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0921.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = sadness
}
lower_center_portrait = scope:prisoner_spouse
immediate = {
if = {
limit = {
root = scope:previous_host
}
# The wedding is invalidated: get a refund
custom_tooltip = {
text = ep2_wedding.9000.tt
add_gold = var:gwedding_gold_recoup_value
}
}
if = {
limit = {
root = scope:free_spouse
}
create_character_memory = {
type = grand_wedding_canceled_in_prison
participants = {
spouse = scope:prisoner_spouse
}
}
}
}
option = {
name = ep2_wedding.0921.a
}
after = {
if = {
limit = {
has_variable = gwedding_gold_recoup_value
}
remove_variable = gwedding_gold_recoup_value
}
if = {
limit = {
has_variable = promised_grand_wedding_by
}
remove_variable = promised_grand_wedding_by
}
if = {
limit = {
has_character_modifier = wedding_fertility_delay_modifier
}
remove_character_modifier = wedding_fertility_delay_modifier
}
}
}
# CONCLUSION - HOST
ep2_wedding.0950 = {
type = activity_event
title = ep2_wedding.0950.t
desc = ep2_wedding.0950.desc
theme = wedding_ceremony_activity
left_portrait = {
trigger = {
NOR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
character = root
animation = happiness
}
center_portrait = {
character = scope:spouse_1
animation = wedding_bride_left
camera = camera_event_left_wedding
}
right_portrait = {
character = scope:spouse_2
animation = wedding_groom_right
camera = camera_event_right_wedding
}
immediate = {
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_end"
play_music_cue = weddingend_cue
show_as_tooltip = {
scope:spouse_1 = { marry = scope:spouse_2 }
tooltip_disburse_wedding_host_activity_rewards = yes
}
save_scope_as = root_scope
# if the host is also a spouse, we disburse the special host-spouse rewards to the host, and the regular spouse rewards to the other spouse
if = {
limit = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
show_as_tooltip = { disburse_wedding_spouse_host_activity_rewards = yes }
}
else = { #the spouses already had a memory created during the ceremony
create_character_memory = {
type = grand_wedding_completed_host
participants = {
spouse_1 = scope:spouse_1
spouse_2 = scope:spouse_2
}
}
}
}
option = {
name = ep2_wedding.0950.a
}
}
# CONCLUSION - SPOUSES
ep2_wedding.0960 = {
type = activity_event
title = ep2_wedding.0950.t
desc = ep2_wedding.0960.desc
theme = wedding_ceremony_activity
left_portrait = {
character = scope:spouse_1
animation = wedding_bride_left
camera = camera_event_left_wedding
}
right_portrait = {
character = scope:spouse_2
animation = wedding_groom_right
camera = camera_event_right_wedding
}
immediate = {
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_end"
play_music_cue = weddingend_cue
save_scope_as = root_scope
show_as_tooltip = {
scope:spouse_1 = { marry = scope:spouse_2 }
disburse_wedding_spouse_activity_rewards = yes
}
if = {
limit = {
root = scope:spouse_1
}
scope:spouse_2 = { save_scope_as = other_spouse }
}
else_if = {
limit = {
root = scope:spouse_2
}
scope:spouse_1 = { save_scope_as = other_spouse }
}
}
option = {
name = ep2_wedding.0950.a
}
}
# CONCLUSION - GUESTS
ep2_wedding.0970 = {
type = activity_event
title = ep2_wedding.0950.t
desc = ep2_wedding.0970.desc
theme = wedding_ceremony_activity
left_portrait = {
character = scope:spouse_1
animation = wedding_bride_left
camera = camera_event_left_wedding
}
right_portrait = {
character = scope:spouse_2
animation = wedding_groom_right
camera = camera_event_right_wedding
}
immediate = {
play_sound_effect = "event:/DLC/EP2/SFX/Stingers/Grand_Activities/ep2_mx_sting_wedding_end"
play_music_cue = weddingend_cue
save_scope_as = root_scope
show_as_tooltip = {
scope:spouse_1 = { marry = scope:spouse_2 }
tooltip_disburse_wedding_guest_activity_rewards = yes
}
create_character_memory = {
type = grand_wedding_completed_guest
participants = {
spouse_1 = scope:spouse_1
spouse_2 = scope:spouse_2
}
}
}
option = {
name = ep2_wedding.0970.a
}
}
# INVALIDATION - SPOUSE DISAPPEARS
ep2_wedding.0997 = {
type = character_event
title = ep2_wedding.0900.t
desc = {
desc = ep2_wedding.0997.desc_intro
first_valid = {
triggered_desc = {
trigger = {
OR = {
root = scope:spouse_1
root = scope:spouse_2
}
}
desc = ep2_wedding.0997.desc_spouse
}
desc = ep2_wedding.0997.desc_generic
}
}
theme = realm
left_portrait = {
character = root
animation = sadness
}
immediate = {
# we should never get this far. If it happens, just get a free pass out of the Grand Wedding Promise since something has gone wrong
if = {
limit = {
this = scope:host
}
remove_variable = promised_grand_wedding_marriage_countdown
}
if = {
limit = {
has_variable = promised_grand_wedding_by
var:promised_grand_wedding_by = scope:host
}
remove_variable = promised_grand_wedding_by
}
}
option = {
name = ep2_wedding.0998.a
}
}
# FALLBACK INVALIDATION
ep2_wedding.0998 = {
type = character_event
title = ep2_wedding.0900.t
desc = ep2_wedding.0998.desc
theme = realm
left_portrait = {
character = root
animation = sadness
}
immediate = {
# we should never get this far. If it happens, just get a free pass out of the Grand Wedding Promise since something has gone wrong
if = {
limit = {
this = scope:host
}
remove_variable = promised_grand_wedding_marriage_countdown
}
if = {
limit = {
has_variable = promised_grand_wedding_by
var:promised_grand_wedding_by = scope:host
}
remove_variable = promised_grand_wedding_by
}
if = {
limit = {
exists = scope:spouse_1
exists = scope:spouse_2
}
show_as_tooltip = {
scope:spouse_1 = {
break_betrothal = scope:spouse_2
}
}
}
}
option = {
name = ep2_wedding.0998.a
}
}
# INVALIDATION - HOST TIER TOO LOW
ep2_wedding.0999 = {
type = character_event
title = ep2_wedding.0999.t
desc = ep2_wedding.0999.desc
theme = realm
left_portrait = {
character = scope:host
animation = grief
}
immediate = {
}
option = {
name = ep2_wedding.0999.a
}
}
# CEREMONY EVENTS
##################################################
# Artistic Differences
# by Claudia Baldassi
# ep2_wedding.1000
##################################################
# The other party arrives early and criticizes your chosen options.
scripted_trigger ep2_wedding_1000_valid_relative_trigger = {
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
age >= 10
location = root.location
NOT = { has_character_flag = busy_in_wgathering_event }
}
ep2_wedding.1000 = {
type = activity_event
title = ep2_wedding.1000.t
desc = {
desc = ep2_wedding.1000.desc
random_valid = {
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
}
desc = ep2_wedding.1000.desc_servants
}
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
}
desc = ep2_wedding.1000.desc_dec
}
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
}
desc = ep2_wedding.1000.desc_dec_low
}
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_good
}
}
}
desc = ep2_wedding.1000.desc_entertainment
}
desc = ep2_wedding.1000.desc_fallback
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = eyeroll
}
right_portrait = {
character = scope:1000_relative
animation = disapproval
}
cooldown = { years = 5 }
weight_multiplier = {
base = 1
modifier = {
scope:activity.special_guest:spouse_2 = {
any_close_family_member = {
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
has_trait = fickle
}
}
add = 1
}
modifier = {
scope:activity.special_guest:spouse_2 = {
any_close_family_member = {
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
has_trait = arrogant
}
}
add = 3
}
modifier = {
has_activity_intent = reduce_stress_intent
add = 2
}
modifier = {
scope:activity.special_guest:spouse_2 = {
any_close_family_member = {
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
root.intent_target ?= this
}
}
add = 3
}
modifier = {
scope:activity.special_guest:spouse_2 ?= {
house_has_feud_relation_with_trigger = { TARGET = scope:activity.special_guest:spouse_1 }
}
add = 5
}
}
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:host = root
location = scope:activity.activity_location
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_2 = {
any_close_family_member = {
ep2_wedding_1000_valid_relative_trigger = yes
}
}
}
immediate = {
add_character_flag = busy_in_wgathering_event
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
}
scope:spouse_2 = {
random_close_family_member = {
limit = {
ep2_wedding_1000_valid_relative_trigger = yes
root.intent_target ?= this
}
alternative_limit = {
ep2_wedding_1000_valid_relative_trigger = yes
}
save_scope_as = 1000_relative
add_character_flag = busy_in_wgathering_event
}
}
}
# Option A: mediate
option = {
name = ep2_wedding.1000.a
duel = {
skill = diplomacy
target = scope:1000_relative
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1000.a.success
send_interface_toast = {
title = ep2_wedding.1000.a.success.tt
left_icon = root
right_icon = scope:1000_relative
scope:activity = {
add_activity_log_entry = {
key = wedding_artistic_mediate_log
tags = { good }
score = 20
character = root
target = scope:1000_relative
# Effect
root = {
reverse_add_opinion = {
target = scope:1000_relative
modifier = impressed_opinion
opinion = 20
}
add_prestige = minor_prestige_gain
stress_impact = {
base = minor_stress_impact_loss
impatient = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
}
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1000.a.failure
send_interface_toast = {
title = ep2_wedding.1000.a.failure.tt
left_icon = root
right_icon = scope:1000_relative
scope:activity = {
add_activity_log_entry = {
key = wedding_artistic_mediate_fail_log
tags = { bad }
score = 20
character = root
target = scope:1000_relative
}
root = {
stress_impact = {
base = minor_stress_impact_gain
impatient = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
add = -50
has_trait = impatient
}
modifier = {
add = -50
has_trait = arrogant
}
}
}
# Option B: insult
option = {
name = ep2_wedding.1000.b
scope:activity = {
add_activity_log_entry = {
key = wedding_artistic_insult_log
tags = { bad }
score = 20
character = root
target = scope:1000_relative
# Effect
root = {
reverse_add_opinion = {
target = scope:1000_relative
modifier = insult_opinion
opinion = -20
}
add_dread = minor_dread_gain
}
}
}
stress_impact = {
patient = medium_stress_impact_gain
humble = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
add = -50
has_trait = patient
}
modifier = {
add = -50
has_trait = humble
}
}
}
#Option C: I don't care
option = {
name = ep2_wedding.1000.c
trigger = {
has_activity_intent = reduce_stress_intent
}
custom_tooltip = available_because_intent_tt
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 80
modifier = {
has_trait = lazy
add = 100
}
}
}
after = {
remove_character_flag = busy_in_wgathering_event
scope:1000_relative = { remove_character_flag = busy_in_wgathering_event }
}
}
##################################################
# A Magnificent Welcome
# by Claudia Baldassi
# ep2_wedding.1010
##################################################
# You have an occasion to kickstart your Diplomacy/Seduce targeting efforts
ep2_wedding.1010 = {
type = activity_event
title = ep2_wedding.1010.t
desc = {
desc = ep2_wedding.1010.desc
first_valid = {
triggered_desc = {
trigger = {
has_activity_intent = diplomatic_intent
}
desc = ep2_wedding.1010.diplo
}
triggered_desc = {
trigger = {
has_activity_intent = woo_attendee_intent
}
desc = ep2_wedding.1010.seduce
}
triggered_desc = {
trigger = {
exists = scope:1010_match
}
desc = ep2_wedding.1010.match
}
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = happiness
}
center_portrait = {
trigger = {
exists = scope:1010_match
}
character = scope:1010_match
animation = boredom
}
right_portrait = {
character = scope:1010_target
animation = dismissal
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
scope:host = root
intent_target.location = root.location
intent_target = {
is_ai = yes
NOT = { has_character_flag = busy_in_wgathering_event }
}
}
immediate = {
intent_target = {
save_scope_as = 1010_target
add_character_flag = busy_in_wgathering_event
}
if = {
limit = {
any_child = {
is_adult = no
is_betrothed = no
is_participant_in_activity = scope:activity
is_ai = yes
NOT = { has_character_flag = busy_in_wgathering_event }
}
}
random_child = {
limit = {
is_adult = no
is_betrothed = no
is_participant_in_activity = scope:activity
is_ai = yes
NOT = { has_character_flag = busy_in_wgathering_event }
}
save_scope_as = 1010_match
add_character_flag = busy_in_wgathering_event
}
}
add_character_flag = busy_in_wgathering_event
}
#Option A: gardens
option = {
name = ep2_wedding.1010.a
random_list = {
# target is impressed
60 = {
modifier = {
scope:activity.activity_location.county = {
development_level >= medium_development_level
}
add = 15
}
modifier = {
has_trait = lifestyle_gardener
add = 25
}
modifier = {
has_trait = lifestyle_herbalist
add = 25
}
modifier = {
any_court_position_holder = {
type = court_gardener_court_position
}
add = 40
}
modifier = {
scope:activity.activity_location = {
has_building_or_higher = orchards_01
}
add = 20
}
modifier = {
scope:activity.activity_location = {
has_building_or_higher = royal_garden_01
}
add = 50
}
desc = ep2_wedding.1010.a.success
send_interface_toast = {
title = ep2_wedding.1010.a.success.tt
left_icon = scope:1010_target
scope:activity = {
add_activity_log_entry = {
key = wedding_welcome_garden_log
tags = { good }
score = 20
character = root
target = scope:1010_target
# Effect
root = {
reverse_add_opinion = {
target = scope:1010_target
modifier = impressed_opinion
opinion = 20
}
if = {
limit = {
has_activity_intent = woo_attendee_intent
can_set_relation_lover_trigger = { CHARACTER = scope:1010_target }
}
progress_towards_lover_effect = {
REASON = lover_atmospheric_location
CHARACTER = scope:1010_target
OPINION = default_lover_opinion
}
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
lustful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
}
}
}
#target is not impressed
40 = {
modifier = {
diplomacy < 10
add = 10
}
modifier = {
stewardship < 10
add = 10
}
modifier = {
scope:activity.activity_location.county = {
development_level <= bad_development_level
}
add = 30
}
desc = ep2_wedding.1010.a.failure
send_interface_toast = {
title = ep2_wedding.1010.a.failure.tt
left_icon = scope:1010_target
scope:activity = {
add_activity_log_entry = {
key = wedding_welcome_garden_fail_log
tags = { bad }
score = 20
character = root
target = scope:1010_target
# Effect
root = {
reverse_add_opinion = {
target = scope:1010_target
modifier = bored_opinion
opinion = -20
}
stress_impact = {
base = minor_stress_impact_gain
lustful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
scope:activity.activity_location.county = {
development_level >= medium_development_level
}
add = 15
}
modifier = {
has_trait = lifestyle_gardener
add = 25
}
modifier = {
has_trait = lifestyle_herbalist
add = 25
}
modifier = {
any_court_position_holder = {
type = court_gardener_court_position
}
add = 40
}
modifier = {
scope:activity.activity_location = {
has_building_or_higher = orchards_01
}
add = 20
}
modifier = {
scope:activity.activity_location = {
has_building_or_higher = royal_garden_01
}
add = 50
}
}
}
#Option B: venue
option = {
name = ep2_wedding.1010.b
random_list = {
# target is impressed
60 = {
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_food
option = wedding_food_good
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_good
}
}
add = 10
}
desc = ep2_wedding.1010.b.success
send_interface_toast = {
title = ep2_wedding.1010.a.success.tt
left_icon = scope:1010_target
scope:activity = {
add_activity_log_entry = {
key = wedding_welcome_ceremony_log
tags = { good }
score = 20
character = root
target = scope:1010_target
# Effect
root = {
reverse_add_opinion = {
target = scope:1010_target
modifier = impressed_opinion
opinion = 20
}
if = {
limit = {
has_activity_intent = woo_attendee_intent
can_set_relation_lover_trigger = { CHARACTER = scope:1010_target }
}
progress_towards_lover_effect = {
REASON = lover_atmospheric_location
CHARACTER = scope:1010_target
OPINION = default_lover_opinion
}
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
lustful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
}
}
}
#target is not impressed
40 = {
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_food
option = wedding_food_bad
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_bad
}
}
add = 10
}
desc = ep2_wedding.1010.b.failure
send_interface_toast = {
title = ep2_wedding.1010.a.failure.tt
left_icon = scope:1010_target
scope:activity = {
add_activity_log_entry = {
key = wedding_welcome_ceremony_fail_log
tags = { bad }
score = 20
character = root
target = scope:1010_target
# Effect
root = {
reverse_add_opinion = {
target = scope:1010_target
modifier = bored_opinion
opinion = -20
}
stress_impact = {
base = minor_stress_impact_gain
lustful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_food
option = wedding_food_good
}
}
add = 10
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_good
}
}
add = 10
}
}
}
#Option C: nevermind
option = {
name = ep2_wedding.1010.c
reverse_add_opinion = {
target = scope:1010_target
modifier = feeling_welcome_opinion
opinion = 5
}
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = lazy
add = 50
}
}
}
after = {
remove_character_flag = busy_in_wgathering_event
scope:1010_target = { remove_character_flag = busy_in_wgathering_event }
if = {
limit = {
exists = scope:1010_match
}
scope:1010_match = { remove_character_flag = busy_in_wgathering_event }
}
}
}
##################################################
# A Proper Match
# by Claudia Baldassi
# ep2_wedding.1080
##################################################
# Lay the ground for the matchmaking
ep2_wedding.1080 = {
type = activity_event
title = ep2_wedding.1080.t
desc = {
desc = ep2_wedding.1080.desc
triggered_desc = {
trigger = {
exists = scope:matchmaking_2
}
desc = ep2_wedding.1080.desc_2
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:1080_target
animation = happiness
}
lower_left_portrait = scope:matchmaking_1
lower_center_portrait = scope:matchmaking_2
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
has_activity_intent = matchmaking_intent
intent_target.location = root.location
location = scope:activity.activity_location
intent_target = {
has_activity_state = passive
is_ai = yes
NOT = { has_character_flag = busy_in_wgathering_event }
}
scope:activity = {
any_attending_character = {
is_ai = yes
location = root.location
has_activity_state = passive
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
intent_target = { save_scope_as = 1080_target }
scope:1080_target = { add_character_flag = busy_in_wgathering_event }
add_character_flag = busy_in_wgathering_event
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
location = root.location
has_activity_state = passive
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
save_scope_as = matchmaking_1
add_character_flag = busy_in_wgathering_event
}
}
if = {
limit = {
scope:activity = {
any_attending_character = {
is_ai = yes
location = root.location
has_activity_state = passive
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
this = scope:matchmaking_1
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
}
}
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
location = root.location
has_activity_state = passive
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
this = scope:matchmaking_1
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
save_scope_as = matchmaking_2
add_character_flag = busy_in_wgathering_event
}
}
}
}
#Option A: Introduce to matchmaking_1
option = {
name = ep2_wedding.1080.a
scope:1080_target = {
duel = {
skill = diplomacy
target = scope:matchmaking_1
60 = { # success - the matchmaking continues
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1080.a.success
root = {
send_interface_toast = {
title = ep2_wedding.1080.a.success.tt
left_icon = scope:1080_target
right_icon = scope:matchmaking_1
scope:activity = {
add_activity_log_entry = {
key = wedding_propermatch_court_log
tags = { good }
score = 20
character = scope:1080_target
target = scope:matchmaking_1
# Effect
scope:matchmaking_1 = {
add_opinion = {
target = scope:1080_target
modifier = impressed_opinion
opinion = 20
}
}
}
}
}
}
scope:1080_target = {
set_variable = {
name = wedding_good_match
value = scope:matchmaking_1
}
}
}
40 = { # failure - you'll have to start again with someone else
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1080.a.failure
root = {
send_interface_toast = {
title = ep2_wedding.1080.a.failure.tt
left_icon = scope:1080_target
right_icon = scope:matchmaking_1
scope:activity = {
add_activity_log_entry = {
key = wedding_propermatch_court_fail_log
tags = { bad }
score = 20
character = scope:1080_target
target = scope:matchmaking_1
}
}
}
}
scope:1080_target = {
set_variable = {
name = wedding_no_match
value = scope:matchmaking_1
}
}
}
}
}
ai_chance = {
base = 200
}
}
#Option B: Introduce to matchmaking_2
option = {
trigger = {
exists = scope:matchmaking_2
}
name = ep2_wedding.1080.b
scope:1080_target = {
duel = {
skill = diplomacy
target = scope:matchmaking_2
50 = { # success - the matchmaking continues
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1080.b.success
root = {
send_interface_toast = {
title = ep2_wedding.1080.a.success.tt
left_icon = scope:1080_target
right_icon = scope:matchmaking_2
scope:activity = {
add_activity_log_entry = {
key = wedding_propermatch_court_log
tags = { good }
score = 20
character = scope:1080_target
target = scope:matchmaking_2
# Effect
scope:matchmaking_2 = {
add_opinion = {
target = scope:1080_target
modifier = impressed_opinion
opinion = 20
}
}
}
}
}
}
scope:1080_target = {
set_variable = {
name = wedding_good_match
value = scope:matchmaking_2
}
}
}
50 = { # failure - you'll have to start again with someone else
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1080.b.failure
root = {
send_interface_toast = {
title = ep2_wedding.1080.a.failure.tt
left_icon = scope:1080_target
right_icon = scope:matchmaking_2
scope:activity = {
add_activity_log_entry = {
key = wedding_propermatch_court_fail_log
tags = { bad }
score = 20
character = scope:1080_target
target = scope:matchmaking_2
}
}
}
}
scope:1080_target = {
set_variable = {
name = wedding_no_match
value = scope:matchmaking_2
}
}
}
}
}
ai_chance = {
base = 200
}
}
#Option C: let's keep looking
option = {
name = ep2_wedding.1080.c
flavor = ep2_wedding.1080.c.tt
ai_chance = {
base = 100
modifier = {
has_trait = fickle
add = 25
}
}
}
after = {
remove_character_flag = busy_in_wgathering_event
scope:1080_target = { remove_character_flag = busy_in_wgathering_event }
scope:matchmaking_1 = { remove_character_flag = busy_in_wgathering_event }
if = {
limit = { exists = scope:matchmaking_2 }
scope:matchmaking_2 = { remove_character_flag = busy_in_wgathering_event }
}
}
}
##################################################
# A Ritual Wash
# by Claudia Baldassi
# ep2_wedding.1100
##################################################
# Northern wedding: the bride goes to a bathhouse with the married women of her family: removal of clothes and kransen (golden circlet)
ep2_wedding.1100 = {
type = activity_event
title = ep2_wedding.1100.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
desc = ep2_wedding.1100.desc_bride
}
desc = ep2_wedding.1100.desc_relative
}
triggered_desc = {
trigger = {
exists = scope:guest_3
}
desc = ep2_wedding.1100.desc_extra_guest
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = scope:bride
animation = personality_content
}
center_portrait = {
character = scope:guest_2
animation = admiration
}
right_portrait = {
character = scope:guest_1
animation = wedding_happy_cry
}
lower_center_portrait = scope:guest_3
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = { has_variable = has_had_event_1100 }
}
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_ai = no
OR = {
AND = {
this = scope:activity.special_guest:spouse_1
any_spouse = {
even_if_dead = yes
NOT = { exists = this }
}
any_former_spouse = {
even_if_dead = yes
NOT = { exists = this }
}
}
AND = {
this = scope:activity.special_guest:spouse_2
any_spouse = {
even_if_dead = yes
NOT = { exists = this }
}
any_former_spouse = {
even_if_dead = yes
NOT = { exists = this }
}
}
AND = {
is_close_or_extended_family_of = scope:activity.special_guest:spouse_1
scope:activity.special_guest:spouse_1 = { is_female = yes }
is_married = yes
}
AND = {
is_close_or_extended_family_of = scope:activity.special_guest:spouse_2
scope:activity.special_guest:spouse_2 = { is_female = yes }
is_married = yes
}
}
trigger_if = {
limit = {
scope:activity.special_guest:spouse_1 = {
is_female = yes
}
}
scope:activity = {
any_attending_character = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:activity.special_guest:spouse_1
is_married = yes
save_temporary_scope_as = guest_1
}
}
scope:activity = {
any_attending_character = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:activity.special_guest:spouse_1
is_married = yes
this != scope:guest_1
}
}
}
trigger_else = {
scope:activity = {
any_attending_character = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:activity.special_guest:spouse_2
is_married = yes
is_ai = yes
save_temporary_scope_as = guest_1
}
}
scope:activity = {
any_attending_character = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:activity.special_guest:spouse_2
is_married = yes
is_ai = yes
this != scope:guest_1
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = reduce_stress_intent
add = 2
}
modifier = {
is_ai = no
factor = 2
}
}
immediate = {
scope:activity = {
set_variable = has_had_event_1100
}
if = {
limit = {
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
save_scope_as = bride
}
else_if = {
limit = {
scope:activity.special_guest:spouse_1 = { is_female = yes }
}
scope:activity.special_guest:spouse_1 = { save_scope_as = bride }
root = { save_scope_as = guest_1 }
}
else = {
scope:activity.special_guest:spouse_2 = { save_scope_as = bride }
root = { save_scope_as = guest_1 }
}
scope:bride = {
add_character_flag = busy_in_wgathering_event
}
scope:activity = {
random_attending_character = {
limit = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:bride
is_married = yes
is_ai = yes
NOR = {
has_character_flag = busy_in_wgathering_event
this = scope:guest_1
}
}
if = {
limit = {
exists = scope:guest_1
}
save_scope_as = guest_2
}
else = {
save_scope_as = guest_1
}
}
random_attending_character = {
limit = {
culture = { has_cultural_pillar = heritage_north_germanic }
is_female = yes
is_close_or_extended_family_of = scope:bride
is_married = yes
is_ai = yes
NOR = {
has_character_flag = busy_in_wgathering_event
this = scope:guest_1
this = scope:guest_2
}
}
if = {
limit = {
exists = scope:guest_2
}
save_scope_as = guest_3
}
else = {
save_scope_as = guest_2
}
}
}
scope:guest_1 = { add_character_flag = busy_in_wgathering_event }
scope:guest_2 = { add_character_flag = busy_in_wgathering_event }
if = {
limit = {
exists = scope:guest_3
}
scope:guest_3 = { add_character_flag = busy_in_wgathering_event }
}
}
#Option A: follow tradition
option = {
name = ep2_wedding.1100.a
scope:activity = {
add_activity_log_entry = {
key = wedding_cleansing_log
tags = { good }
score = 50
character = scope:bride
# Effect
scope:bride = {
add_character_modifier = {
modifier = wedding_purified_modifier
years = 5
}
}
}
}
scope:guest_1 = {
add_character_modifier = {
modifier = wedding_purified_modifier
years = 5
}
}
scope:guest_2 = {
add_character_modifier = {
modifier = wedding_purified_modifier
years = 5
}
}
if = {
limit = { exists = scope:guest_3 }
scope:guest_3 = {
add_character_modifier = {
modifier = wedding_purified_modifier
years = 5
}
}
}
if = {
limit = {
scope:bride = {
any_vassal = { vassal_stance = courtly }
}
}
scope:bride = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:bride
modifier = wedding_traditional_ritual_opinion
}
}
}
}
else_if = {
limit = {
scope:bride.betrothed = {
any_vassal = { vassal_stance = courtly }
}
}
scope:bride.betrothed = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:bride
modifier = wedding_traditional_ritual_opinion
}
}
}
}
ai_chance = {
base = 100
}
}
#Option B: try something new
option = {
name = ep2_wedding.1100.b
trigger = {
this = scope:bride
}
random_list = {
25 = {} #nothing happens
25 = {
show_chance = no
trigger = {
can_set_relation_friend_trigger = { CHARACTER = scope:guest_1 }
}
set_relation_friend = {
target = scope:guest_1
reason = friend_wedding_ritual
}
}
25 = {
show_chance = no
trigger = {
can_set_relation_friend_trigger = { CHARACTER = scope:guest_2 }
}
set_relation_friend = {
target = scope:guest_2
reason = friend_wedding_ritual
}
}
25 = {
show_chance = no
trigger = {
exists = scope:guest_3
can_set_relation_friend_trigger = { CHARACTER = scope:guest_3 }
}
set_relation_friend = {
target = scope:guest_3
reason = friend_wedding_ritual
}
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_cleansing_new_log
tags = { good }
score = 50
character = scope:bride
# Effect
}
}
stress_impact = {
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
#Option D: just enjoy the bath
option = {
name = ep2_wedding.1100.d
trigger = {
has_activity_intent = reduce_stress_intent
this = scope:bride
}
custom_tooltip = available_because_intent_tt
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 150
modifier = {
has_trait = lazy
add = 100
}
}
}
#Option C: this is dumb
option = {
name = ep2_wedding.1100.c
if = {
limit = {
this = scope:bride
any_vassal = { vassal_stance = courtly }
}
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = root
modifier = wedding_no_ritual_opinion
}
}
}
else_if = {
limit = {
this = scope:bride
betrothed = {
any_vassal = {
vassal_stance = courtly
}
}
}
betrothed = {
every_vassal = {
vassal_stance = courtly
add_opinion = {
target = scope:bride
modifier = wedding_no_ritual_opinion
}
}
}
}
else_if = {
limit = {
this != scope:bride
}
scope:bride = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -20
}
if = {
limit = {
NOT = { has_relation_rival = root }
}
progress_towards_rival_effect = {
REASON = rival_despised_ritual
CHARACTER = root
OPINION = 0
}
}
}
}
add_character_modifier = {
modifier = wedding_thinking_outside_box_modifier
years = 10
}
stress_impact = {
zealous = medium_stress_impact_gain
cynical = medium_stress_impact_loss
}
if = {
limit = { root = scope:bride }
scope:activity = {
add_activity_log_entry = {
key = wedding_cleansing_dismiss_log
tags = { good }
score = 50
character = scope:bride
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = wedding_cleansing_log
tags = { good }
score = 50
character = scope:bride
}
}
}
ai_chance = {
base = 75
modifier = {
has_trait = cynical
add = 25
}
modifier = {
has_trait = zealous
add = -25
}
}
}
after = {
scope:bride = { remove_character_flag = busy_in_wgathering_event }
scope:guest_1 = { remove_character_flag = busy_in_wgathering_event }
scope:guest_2 = { remove_character_flag = busy_in_wgathering_event }
if = {
limit = {
exists = scope:guest_3
}
scope:guest_3 = { remove_character_flag = busy_in_wgathering_event }
}
}
}
# CEREMONY EVENTS
##################################################
# Could it Be You?
# by Claudia Baldassi
# ep2_wedding.1020
##################################################
# The spouses fall in love at first sight
ep2_wedding.1020 = {
type = activity_event
title = ep2_wedding.1020.t
desc = ep2_wedding.1020.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = ecstasy
}
right_portrait = {
character = scope:spouse_2
animation = admiration
}
cooldown = { years = 30 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOR = {
has_variable = has_had_event_1020
has_variable = has_had_event_1180
}
}
scope:activity.special_guest:spouse_1 = {
num_of_relation_soulmate = 0
NOT = { has_character_flag = busy_in_ceremony_event }
}
scope:activity.special_guest:spouse_2 = {
num_of_relation_soulmate = 0
NOT = { has_character_flag = busy_in_ceremony_event }
}
root = {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
scope:activity.special_guest:spouse_1 = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_2 }
scope:activity.special_guest:spouse_2 = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_1 = {
can_set_relation_soulmate_trigger = {
CHARACTER = scope:activity.special_guest:spouse_2
}
}
# They should not know each other, as much as we can verify
scope:activity.special_guest:spouse_1 = {
NOR = {
has_relation_lover = scope:activity.special_guest:spouse_2
has_relation_friend = scope:activity.special_guest:spouse_2
has_relation_potential_lover = scope:activity.special_guest:spouse_2
has_relation_crush = scope:activity.special_guest:spouse_2
has_relation_potential_friend = scope:activity.special_guest:spouse_2
}
}
NOT = {
scope:activity.special_guest:spouse_1 = { has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:activity.special_guest:spouse_2 } }
}
trigger_if = {
limit = {
root = { is_ai = yes }
}
scope:activity.special_guest:spouse_1 = { is_ai = yes }
scope:activity.special_guest:spouse_2 = { is_ai = yes }
}
trigger_else = {
OR = {
scope:activity.special_guest:spouse_1 = { is_ai = yes }
scope:activity.special_guest:spouse_2 = { is_ai = yes }
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = woo_attendee_intent
intent_target ?= root.betrothed
add = 1
}
}
immediate = {
scope:activity = {
set_variable = has_had_event_1020
}
if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
}
}
else = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_2
}
}
add_character_flag = busy_in_ceremony_event
scope:spouse_2 = { add_character_flag = busy_in_ceremony_event }
}
option = {
name = ep2_wedding.1020.a
scope:activity = {
add_activity_log_entry = {
key = wedding_first_sight_log
tags = { good }
score = 50
character = root
target = scope:spouse_2
# Effect
root = {
set_relation_soulmate = { reason = soulmate_wedding_first_sight target = scope:spouse_2 }
reverse_add_opinion = {
target = scope:spouse_2
modifier = love_opinion
opinion = 30
}
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = scope:spouse_2
}
complete_activity_intent = yes
}
# Achievements
player_succeeded_at_a_thousand_and_one_nights_achievement_effect = yes
}
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:spouse_2 = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# A Good/Bad Omen
# by Claudia Baldassi
# ep2_wedding.1030
##################################################
# A good or bad omen happens: how do you react?
ep2_wedding.1030 = {
type = activity_event
title = ep2_wedding.1030.t
desc = {
desc = ep2_wedding.1030.desc
random_valid = {
triggered_desc = {
trigger = {
has_character_flag = good_thing_flag
}
desc = ep2_wedding.1030.desc_good1
}
triggered_desc = {
trigger = {
has_character_flag = good_thing_flag
}
desc = ep2_wedding.1030.desc_good2
}
triggered_desc = {
trigger = {
has_character_flag = good_thing_flag
}
desc = ep2_wedding.1030.desc_good3
}
triggered_desc = {
trigger = {
has_character_flag = bad_thing_flag
}
desc = ep2_wedding.1030.desc_bad1
}
triggered_desc = {
trigger = {
has_character_flag = bad_thing_flag
}
desc = ep2_wedding.1030.desc_bad2
}
triggered_desc = {
trigger = {
has_character_flag = bad_thing_flag
}
desc = ep2_wedding.1030.desc_bad3
}
}
desc = ep2_wedding.1030.desc_outro
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = bad_thing_flag
}
desc = ep2_wedding.1030.desc_bad
}
desc = ep2_wedding.1030.desc_good
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_character_flag = bad_thing_flag
}
animation = fear
}
animation = happiness
}
right_portrait = {
character = scope:1030_chatter
triggered_animation = {
trigger = {
has_character_flag = bad_thing_flag
}
animation = worry
}
animation = admiration
}
lower_center_portrait = {
character = scope:spouse_2
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1030
}
}
scope:activity.special_guest:spouse_2 = { is_ai = yes }
scope:activity = {
any_attending_character = {
is_ai = yes
NOR = {
this = scope:activity.special_guest:spouse_2
this = root
has_character_flag = busy_in_ceremony_event
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_character_modifier = bp1_superstition_modifier
add = 3
}
modifier = {
is_ai = yes
factor = 0.3
}
modifier = {
has_activity_intent = reduce_stress_intent
add = 1
}
}
immediate = {
scope:activity = {
set_variable = has_had_event_1030
}
hidden_effect = {
random_list = {
50 = {
add_character_flag = good_thing_flag
}
50 = {
add_character_flag = bad_thing_flag
}
}
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
add_character_flag = busy_in_ceremony_event
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1
}
scope:activity = {
random_attending_character = {
limit = {
NOR = {
scope:spouse_2 = this
root = this
}
is_ai = yes
}
save_scope_as = 1030_chatter
add_character_flag = busy_in_ceremony_event
}
}
add_character_flag = busy_in_ceremony_event
random = {
chance = legend_seed_chance_low
add_character_flag = wedding_legend_seed
}
}
#Option A: good omen - excellent!
option = {
name = ep2_wedding.1030.a
trigger = {
has_character_flag = good_thing_flag
}
scope:activity = {
add_activity_log_entry = {
key = wedding_omen_good_log
tags = { good }
score = 50
character = root
target = scope:spouse_2
}
}
if = {
limit = {
has_activity_intent = reduce_stress_intent
}
stress_impact = {
base = medium_stress_impact_loss
}
}
else = {
stress_impact = {
base = minor_stress_impact_loss
}
}
}
#Option B: dismiss bad omen
option = {
name = ep2_wedding.1030.b
trigger = {
has_character_flag = bad_thing_flag
NOT = { has_character_modifier = bp1_superstition_modifier }
}
if = {
limit = {
ai_rationality >= 40
}
scope:activity = {
add_activity_log_entry = {
key = wedding_omen_dismissed_log
tags = { bad }
score = 50
character = root
target = scope:spouse_2
}
}
if = {
limit = {
has_activity_intent = reduce_stress_intent
}
stress_impact = {
base = minor_stress_impact_loss
}
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
scope:activity = {
add_activity_log_entry = {
key = wedding_omen_bad_log
tags = { bad }
score = 50
character = root
target = scope:spouse_2
}
}
}
ai_chance = {
base = 100
}
}
#Option c: bad omen - panic
option = {
name = ep2_wedding.1030.c
trigger = {
has_character_flag = bad_thing_flag
has_character_modifier = bp1_superstition_modifier
}
stress_impact = {
base = medium_stress_impact_gain
}
scope:activity = {
add_activity_log_entry = {
key = wedding_omen_bad_log
tags = { bad }
score = 50
character = root
target = scope:spouse_2
}
}
ai_chance = {
base = 100
}
}
#Option D: good omen - you get a legend seed!
option = {
name = ep2_wedding.1030.d
trigger = {
has_character_flag = good_thing_flag
NOR = {
has_personal_legend_seed = heroic
has_personal_legend_seed = holy
has_personal_legend_seed = legitimizing
}
has_character_flag = wedding_legend_seed
OR = {
scope:spouse_2.dynasty = root.dynasty
scope:spouse_1.dynasty = root.dynasty
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_omen_good_log
tags = { good }
score = 50
character = root
target = scope:spouse_2
}
}
legend_seed_great_deed_dynasty_effect = yes
ai_chance = { #AI can into legend seeds
base = 200
}
}
after = {
if = {
limit = {
has_character_flag = good_thing_flag
}
remove_character_flag = good_thing_flag
}
else = {
remove_character_flag = bad_thing_flag
}
remove_character_flag = busy_in_ceremony_event
scope:spouse_2 = { remove_character_flag = busy_in_ceremony_event }
scope:1030_chatter = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# New Family
# by Claudia Baldassi
# ep2_wedding.1120
##################################################
# Spouse: your child from a previous partner makes a fuss
scripted_trigger ep2_wedding_1120_valid_child_trigger = {
NOT = {
any_parent = { this = root.betrothed }
}
any_parent = {
even_if_dead = yes
this != root
save_temporary_scope_as = other_parent
}
age >= 6
involved_activity ?= { this = scope:activity }
save_temporary_scope_as = trouble_child
}
ep2_wedding.1120 = {
type = activity_event
title = ep2_wedding.1120.t
desc = {
desc = ep2_wedding.1120.desc
first_valid = {
triggered_desc = {
trigger = {
scope:trouble_child = {
is_adult = no
}
}
desc = ep2_wedding.1120.desc_child
}
desc = ep2_wedding.1120.desc_adult
}
triggered_desc = {
trigger = {
scope:other_parent = {
involved_activity ?= { this = scope:activity }
}
}
desc = ep2_wedding.1120.desc_parent
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = shock
}
center_portrait = {
character = scope:other_spouse
animation = worry
}
right_portrait = {
character = scope:trouble_child
animation = wedding_objection_start
}
lower_right_portrait = scope:other_parent
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1120
}
}
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
betrothed ?= {
is_ai = yes
}
any_child ?= {
ep2_wedding_1120_valid_child_trigger = yes
}
# if the child's real parent is a secret, make sure that the child knows about it before denouncing it, and they don't like you enough
trigger_if = {
limit = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
}
}
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
is_known_by = scope:trouble_child
}
scope:trouble_child = {
opinion = { target = root value < 0 }
}
}
trigger_if = {
limit = {
any_secret = {
type = secret_disputed_heritage
secret_target = { this = scope:trouble_child }
}
}
any_secret = {
type = secret_disputed_heritage
secret_target = { this = scope:trouble_child }
is_known_by = scope:trouble_child
}
scope:trouble_child = {
opinion = { target = root value < 0 }
}
}
}
weight_multiplier = {
base = 1
# More drama if the other parent is there too
modifier = {
any_child = {
ep2_wedding_1120_valid_child_trigger = yes
}
scope:other_parent = {
is_alive = yes
involved_activity ?= { this = scope:activity }
}
add = 4
}
# more likely if the child is an actual child
modifier = {
any_child = {
ep2_wedding_1120_valid_child_trigger = yes
is_adult = no
}
add = 2
}
modifier = {
has_activity_intent = reduce_stress_intent
add = -0.5
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1120
}
betrothed = { save_scope_as = other_spouse }
scope:other_spouse = {
add_character_flag = busy_in_ceremony_event
}
random_child = {
limit = {
ep2_wedding_1120_valid_child_trigger = yes
}
save_scope_as = trouble_child
}
scope:trouble_child = {
random_parent = {
even_if_dead = yes
limit = {
this != root
}
save_scope_as = other_parent
}
add_character_flag = busy_in_ceremony_event
}
if = {
limit = {
scope:other_parent = {
is_alive = yes
involved_activity ?= { this = scope:activity }
}
}
scope:other_parent = { add_character_flag = busy_in_ceremony_event }
}
if = {
limit = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
}
}
random_secret = {
type = secret_unmarried_illegitimate_child
limit = {
secret_target = { this = scope:trouble_child }
}
expose_secret = scope:trouble_child
}
add_character_flag = wedding_secret_child_revealed
}
else_if = {
limit = {
any_secret = {
type = secret_disputed_heritage
secret_target = { this = scope:trouble_child }
}
}
random_secret = {
type = secret_disputed_heritage
limit = {
secret_target = { this = scope:trouble_child }
}
expose_secret = scope:trouble_child
}
add_character_flag = wedding_secret_child_revealed
}
if = {
limit = {
has_character_flag = wedding_secret_child_revealed
}
scope:activity = {
add_activity_log_entry = {
key = wedding_child_fuss_secret_log
show_in_conclusion = yes
character = scope:trouble_child
target = root
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = wedding_child_fuss_log
character = scope:trouble_child
target = root
}
}
}
}
# Option A: be strict
option = {
name = ep2_wedding.1120.a
trigger = {
NOT = {
has_character_flag = wedding_secret_child_revealed
}
}
add_prestige = major_prestige_gain
scope:trouble_child = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -60
}
}
scope:other_spouse = {
add_opinion = {
target = scope:trouble_child
modifier = angry_opinion
opinion = -30
}
if = {
limit = {
OR = {
has_trait = compassionate
has_trait = humble
has_trait = content
ai_compassion >= medium_positive_ai_value
}
}
add_opinion = {
target = root
modifier = awkward_opinion
opinion = -20
}
}
else = {
add_opinion = {
target = root
modifier = amused_opinion
opinion = 30
}
root = {
add_character_modifier = {
modifier = ep2_wedding_shared_values_modifier
years = 5
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
patient = minor_stress_impact_gain
humble = minor_stress_impact_gain
calm = minor_stress_impact_gain
shy = minor_stress_impact_gain
arrogant = medium_stress_impact_loss
callous = medium_stress_impact_loss
impatient = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
}
}
}
# Option B: be accepting
option = {
name = ep2_wedding.1120.b
trigger = {
NOT = {
has_character_flag = wedding_secret_child_revealed
}
}
dynasty ?= {
add_dynasty_prestige = medium_dynasty_prestige_gain
}
scope:trouble_child = {
add_opinion = {
target = root
modifier = love_opinion
opinion = 60
}
}
scope:other_spouse = {
add_opinion = {
target = scope:trouble_child
modifier = angry_opinion
opinion = -30
}
if = {
limit = {
OR = {
ai_compassion <= low_positive_ai_value
has_trait = callous
has_trait = wrathful
has_trait = vengeful
}
}
add_opinion = {
target = root
modifier = awkward_opinion
opinion = -20
}
}
else = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 30
}
root = {
add_character_modifier = {
modifier = ep2_wedding_shared_values_modifier
years = 5
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_loss
patient = minor_stress_impact_loss
humble = minor_stress_impact_loss
calm = minor_stress_impact_loss
shy = minor_stress_impact_loss
arrogant = medium_stress_impact_gain
callous = medium_stress_impact_gain
impatient = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
}
}
}
# Option C: it was a secret!!
option = {
name = ep2_wedding.1120.c
trigger = {
has_character_flag = wedding_secret_child_revealed
}
if = {
limit = {
scope:trouble_child = {
is_adult = yes
}
}
set_variable = {
days = 100
name = ep2_confrontational_child
value = scope:trouble_child
}
}
stress_impact = {
deceitful = major_stress_impact_gain
honest = major_stress_impact_loss
}
ai_chance = {
base = 100
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:trouble_child = { remove_character_flag = busy_in_ceremony_event }
scope:other_spouse = { remove_character_flag = busy_in_ceremony_event }
scope:other_parent = {
if = {
limit = { has_character_flag = busy_in_ceremony_event }
remove_character_flag = busy_in_ceremony_event
}
}
if = {
limit = {
has_character_flag = wedding_secret_child_revealed
}
remove_character_flag = wedding_secret_child_revealed
}
}
}
# Opposite event: it is your spouse who has a complaining child
scripted_trigger ep2_wedding_1121_valid_child_trigger = {
NOT = {
any_parent = { this = root }
}
any_parent = {
even_if_dead = yes
this != root.betrothed
save_temporary_scope_as = other_parent
}
age >= 6
involved_activity ?= { this = scope:activity }
save_temporary_scope_as = trouble_child
}
ep2_wedding.1121 = {
type = activity_event
title = ep2_wedding.1120.t
desc = {
desc = ep2_wedding.1120.desc
first_valid = {
triggered_desc = {
trigger = {
scope:trouble_child = {
is_adult = no
}
}
desc = ep2_wedding.1121.desc_child
}
desc = ep2_wedding.1121.desc_adult
}
triggered_desc = {
trigger = {
scope:other_parent = {
involved_activity ?= { this = scope:activity }
}
}
desc = ep2_wedding.1120.desc_parent
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = scope:other_spouse
animation = worry
}
center_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:trouble_child
animation = wedding_objection_start
}
lower_right_portrait = scope:other_parent
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1120
}
}
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
root.betrothed ?= {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
is_ai = yes
save_temporary_scope_as = other_spouse
any_child = {
ep2_wedding_1121_valid_child_trigger = yes
}
}
# if the child's real parent is a secret, make sure that the child knows about it before denouncing it, and they don't like their parent enough
trigger_if = {
limit = {
scope:other_spouse = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
}
}
}
scope:other_spouse = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
is_known_by = scope:trouble_child
}
}
scope:trouble_child = {
opinion = { target = scope:other_spouse value < 0 }
}
}
trigger_if = {
limit = {
scope:other_spouse = {
any_secret = {
type = secret_disputed_heritage
secret_target = { this = scope:trouble_child }
}
}
}
scope:other_spouse = {
any_secret = {
type = secret_disputed_heritage
secret_target = { this = scope:trouble_child }
is_known_by = scope:trouble_child
}
}
scope:trouble_child = {
opinion = { target = scope:other_spouse value < 0 }
}
}
}
weight_multiplier = {
base = 1
# More drama if the other parent is there too
modifier = {
root.betrothed = {
any_child = {
ep2_wedding_1121_valid_child_trigger = yes
}
scope:other_parent = {
is_alive = yes
involved_activity ?= { this = scope:activity }
}
}
add = 4
}
# more likely if the child is an actual child
modifier = {
root.betrothed = {
any_child = {
ep2_wedding_1121_valid_child_trigger = yes
is_adult = no
}
}
add = 2
}
modifier = {
has_activity_intent = reduce_stress_intent
add = -0.5
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1120
}
root.betrothed = { save_scope_as = other_spouse }
scope:other_spouse = {
add_character_flag = busy_in_ceremony_event
}
scope:other_spouse = {
random_child = {
limit = {
ep2_wedding_1121_valid_child_trigger = yes
}
save_scope_as = trouble_child
}
}
scope:trouble_child = {
random_parent = {
even_if_dead = yes
limit = {
this != root.betrothed
}
save_scope_as = other_parent
}
add_character_flag = busy_in_ceremony_event
}
if = {
limit = {
scope:other_parent = {
involved_activity ?= { this = scope:activity }
}
}
scope:other_parent = { add_character_flag = busy_in_ceremony_event }
}
if = {
limit = {
scope:other_spouse = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
}
}
}
scope:other_spouse = {
random_secret = {
type = secret_unmarried_illegitimate_child
limit = {
secret_target = { this = scope:trouble_child }
}
expose_secret = scope:trouble_child
}
add_character_flag = wedding_secret_child_revealed
}
}
else_if = {
limit = {
scope:other_spouse = {
any_secret = {
type = secret_unmarried_illegitimate_child
secret_target = { this = scope:trouble_child }
}
}
}
scope:other_spouse = {
random_secret = {
type = secret_disputed_heritage
limit = {
secret_target = { this = scope:trouble_child }
}
expose_secret = scope:trouble_child
}
add_character_flag = wedding_secret_child_revealed
}
}
scope:other_spouse = {
if = {
limit = {
has_character_flag = wedding_secret_child_revealed
}
add_opinion = {
target = scope:trouble_child
modifier = angry_opinion
opinion = -30
}
}
}
if = {
limit = {
scope:other_spouse = { has_character_flag = wedding_secret_child_revealed }
}
scope:activity = {
add_activity_log_entry = {
key = wedding_child_fuss_secret_log
show_in_conclusion = yes
character = scope:trouble_child
target = scope:other_spouse
}
}
}
else = {
scope:activity = {
add_activity_log_entry = {
key = wedding_child_fuss_log
character = scope:trouble_child
target = scope:other_spouse
}
}
}
}
# Option A: Shut up!
option = {
name = ep2_wedding.1121.a
add_dread = medium_dread_gain
scope:trouble_child = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -50
}
}
scope:other_spouse = {
if = {
limit = {
save_temporary_opinion_value_as = { name = opinion_of_you target = root }
opinion = { target = scope:trouble_child value >= scope:opinion_of_you }
NOT = {
has_dread_level_towards = {
target = root
level >= 1
}
}
}
add_opinion = {
target = root
modifier = berated_child_opinion
}
}
}
add_character_modifier = {
modifier = ep2_wedding_authoritarian_modifier
years = 10
}
stress_impact = {
compassionate = major_stress_impact_gain
arrogant = major_stress_impact_gain
patient = medium_stress_impact_gain
humble = medium_stress_impact_gain
calm = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_vengefulness = 0.5
}
}
}
# Option B: I'll be a better parent!
option = {
name = ep2_wedding.1121.b
scope:trouble_child = {
add_opinion = {
target = root
modifier = give_a_chance_opinion
}
}
scope:other_spouse = {
add_opinion = {
target = root
modifier = give_a_chance_opinion
}
}
add_character_modifier = {
modifier = ep2_wedding_family_focus_modifier
years = 10
}
stress_impact = {
callous = major_stress_impact_gain
arrogant = major_stress_impact_gain
wrathful = major_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.5
ai_vengefulness = -0.5
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:trouble_child = { remove_character_flag = busy_in_ceremony_event }
scope:other_spouse = {
remove_character_flag = busy_in_ceremony_event
if = {
limit = {
has_character_flag = wedding_secret_child_revealed
}
remove_character_flag = wedding_secret_child_revealed
}
}
scope:other_parent = {
if = {
limit = { has_character_flag = busy_in_ceremony_event }
remove_character_flag = busy_in_ceremony_event
}
}
}
}
# Follow-up to 1120. NB this is a Banquet Event.
# You talk with the child who revealed your secret.
ep2_wedding.1122 = {
type = activity_event
title = ep2_wedding.1120.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:trouble_child = {
has_character_flag = 1122_repentant
}
}
desc = ep2_wedding.1122.desc_repentant
}
desc = ep2_wedding.1122.desc_unrepentant
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:trouble_child
triggered_animation = {
trigger = {
scope:trouble_child = {
has_character_flag = 1122_repentant
}
}
animation = shame
}
triggered_animation = {
trigger = {
NOT = {
scope:trouble_child = {
has_character_flag = 1122_repentant
}
}
}
animation = personality_callous
}
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
has_variable = ep2_confrontational_child
scope:activity = {
NOT = {
has_variable = has_had_event_1122
}
}
}
immediate = {
var:ep2_confrontational_child = {
save_scope_as = trouble_child
}
scope:activity = {
set_variable = has_had_event_1122
}
add_character_flag = busy_in_banquet_event
scope:trouble_child = {
add_character_flag = busy_in_banquet_event
}
scope:trouble_child = {
random_list = {
# child regrets it
50 = {
modifier = {
has_trait = humble
add = 50
}
modifier = {
has_trait = family_first
add = 100
}
modifier = {
has_trait = compassionate
add = 100
}
modifier = {
has_trait = patient
add = 20
}
modifier = {
has_trait = craven
add = 20
}
modifier = {
has_trait = shy
add = 20
}
modifier = {
has_trait = trusting
add = 20
}
modifier = {
has_trait = fickle
add = 50
}
modifier = {
has_trait = forgiving
add = 20
}
modifier = {
has_trait = contrite
add = 100
}
add_character_flag = 1122_repentant
}
# child is unrepentant
50 = {
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = arbitrary
add = 50
}
modifier = {
has_trait = paranoid
add = 100
}
modifier = {
has_trait = wrathful
add = 20
}
modifier = {
has_trait = impatient
add = 20
}
modifier = {
has_trait = brave
add = 20
}
modifier = {
has_trait = ambitious
add = 20
}
modifier = {
has_trait = vengeful
add = 20
}
modifier = {
has_trait = callous
add = 50
}
modifier = {
has_trait = stubborn
add = 100
}
}
}
}
}
# Option A: You forgive
option = {
name = ep2_wedding.1122.a
trigger = {
scope:trouble_child = {
has_character_flag = 1122_repentant
}
}
scope:activity = {
add_activity_log_entry = {
key = 1122_child_pacified_log
tags = { good }
score = 10
character = root
target = scope:trouble_child
# Effect
scope:trouble_child = {
add_opinion = {
target = root
modifier = forgiven_opinion
opinion = 20
}
}
}
}
stress_impact = {
vengeful = massive_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
}
}
}
# Option B: You don't forgive
option = {
name = ep2_wedding.1122.b
trigger = {
scope:trouble_child = {
has_character_flag = 1122_repentant
}
}
scope:activity = {
add_activity_log_entry = {
key = 1122_child_not_pacified_log
tags = { bad }
score = 10
character = root
target = scope:trouble_child
# Effect
scope:trouble_child = {
add_opinion = {
target = root
modifier = unforgiven_opinion
opinion = -30
}
}
root = {
if = {
limit = {
can_add_hook = {
target = scope:trouble_child
type = indebted_hook
}
}
add_hook = {
target = scope:trouble_child
type = indebted_hook
}
}
}
}
}
stress_impact = {
forgiving = massive_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 1
}
}
}
# Option C: You accept the critique
option = {
name = ep2_wedding.1122.c
trigger = {
scope:trouble_child = {
NOT = { has_character_flag = 1122_repentant }
}
}
scope:activity = {
add_activity_log_entry = {
key = 1122_child_pacified_log
tags = { good }
score = 10
character = root
target = scope:trouble_child
# Effect
scope:trouble_child = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 30
}
}
}
}
stress_impact = {
vengeful = massive_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
}
}
}
# Option D: You remain angry
option = {
name = ep2_wedding.1122.d
trigger = {
scope:trouble_child = {
NOT = { has_character_flag = 1122_repentant }
}
}
scope:activity = {
add_activity_log_entry = {
key = 1122_child_not_pacified_log
tags = { bad }
score = 10
character = root
target = scope:trouble_child
# Effect
root = {
if = {
limit = {
can_add_hook = {
target = scope:trouble_child
type = indebted_hook
}
}
add_hook = {
target = scope:trouble_child
type = indebted_hook
}
}
}
}
}
stress_impact = {
forgiving = massive_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
}
}
}
after = {
remove_character_flag = busy_in_banquet_event
scope:trouble_child = {
remove_character_flag = busy_in_banquet_event
if = {
limit = {
has_character_flag = 1122_repentant
}
remove_character_flag = 1122_repentant
}
}
remove_variable = ep2_confrontational_child
}
}
##################################################
# Secret Whispers
# by Claudia Baldassi
# ep2_wedding.1130
##################################################
# A bad secret comes up and compromises the union: someone who knows spills the beans
#The secret is yours.
ep2_wedding.1130 = {
type = activity_event
title = ep2_wedding.1130.t
desc = {
desc = ep2_wedding.1130.desc
desc = ep2_wedding.1130.desc_continue
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:1130_knows
animation = wedding_objection_start
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1130
}
}
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
has_any_secrets = yes
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root
NOT = { secret_target ?= prev }
}
opinion = { target = root value <= 0 }
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root
NOT = { secret_target ?= prev }
}
has_trait = contrite
}
}
add = 4
}
modifier = {
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root
NOT = { secret_target ?= prev }
}
has_relation_rival = root
}
}
add = 5
}
modifier = {
has_activity_intent = reduce_stress_intent
add = -0.5
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1130
}
betrothed = {
save_scope_as = other_spouse
add_character_flag = busy_in_ceremony_event
}
scope:activity = {
random_attending_character = {
limit = {
any_known_secret = {
secret_owner = root
NOT = { secret_target ?= prev }
}
}
save_scope_as = 1130_knows
add_character_flag = busy_in_ceremony_event
}
}
scope:1130_knows = {
random_known_secret = {
limit = {
secret_owner = root
NOT = { secret_target ?= scope:1130_knows }
}
save_scope_as = 1130_secret
}
}
}
#Option A: let them expose the secret
option = {
name = ep2_wedding.1130.a
add_character_modifier = {
modifier = wedding_clean_slate_modifier
years = 10
}
scope:activity = {
add_activity_log_entry = {
key = wedding_secret_revealed_log
show_in_conclusion = yes
character = scope:1130_knows
target = root
#Effect
scope:1130_secret = { expose_secret = scope:1130_knows }
root = {
if = {
limit = {
can_set_relation_nemesis_trigger = { CHARACTER = scope:1130_knows }
}
set_relation_nemesis = {
target = scope:1130_knows
reason = nemesis_wedding_spread_voices_secret
}
}
}
}
}
scope:1130_knows = {
if = {
limit = {
has_activity_intent = banquet_mischief_intent
}
complete_activity_intent = yes
}
}
stress_impact = {
deceitful = major_stress_impact_gain
contrite = massive_stress_impact_loss
honest = major_stress_impact_loss
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_honor = 0.5
}
modifier = {
has_trait = contrite
add = 200
}
modifier = {
has_trait = honest
add = 100
}
}
}
#Option B: kick them out
option = {
name = ep2_wedding.1130.b
add_character_modifier = {
modifier = wedding_web_of_secrets_modifier
years = 10
}
scope:activity = {
add_activity_log_entry = {
key = wedding_secret_not_revealed_log
show_in_conclusion = yes
character = scope:1130_knows
target = root
#Effect
root = {
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:1130_knows }
}
set_relation_rival = {
target = scope:1130_knows
reason = rival_wedding_spread_voices
}
}
add_dread = major_dread_gain
}
scope:1130_knows = {
remove_from_activity = scope:activity
}
}
}
stress_impact = {
contrite = massive_stress_impact_gain
honest = major_stress_impact_gain
}
ai_chance = {
base = 125
ai_value_modifier = {
ai_honor = -0.5
}
modifier = {
has_trait = deceitful
add = 200
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:other_spouse = {
remove_character_flag = busy_in_ceremony_event
}
scope:1130_knows = {
remove_character_flag = busy_in_ceremony_event
}
}
}
# The secret is your partner's.
ep2_wedding.1131 = {
type = activity_event
title = ep2_wedding.1130.t
desc = {
desc = ep2_wedding.1130.desc
desc = ep2_wedding.1131.desc
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = shock
}
center_portrait = {
character = scope:other_spouse
animation = shame
}
right_portrait = {
character = scope:1130_knows
animation = wedding_objection_start
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1130
}
}
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
betrothed ?= {
has_any_secrets = yes
}
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root.betrothed
NOT = { is_known_by = root }
NOT = { secret_target ?= prev }
}
opinion = { target = root.betrothed value <= 0 }
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root.betrothed
NOT = { is_known_by = root }
NOT = { secret_target ?= prev }
}
has_trait = contrite
}
}
add = 4
}
modifier = {
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root.betrothed
NOT = { is_known_by = root }
NOT = { secret_target ?= prev }
}
has_relation_rival = root
}
}
add = 4
}
modifier = {
scope:activity = {
any_attending_character = {
any_known_secret = {
secret_owner = root.betrothed
NOT = { is_known_by = root }
NOT = { secret_target ?= prev }
}
has_relation_rival = root.betrothed
}
}
add = 4
}
modifier = {
has_activity_intent = reduce_stress_intent
add = -0.5
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1130
}
betrothed = {
save_scope_as = other_spouse
add_character_flag = busy_in_ceremony_event
}
scope:activity = {
random_attending_character = {
limit = {
any_known_secret = {
secret_owner = root.betrothed
NOT = { is_known_by = root }
NOT = { secret_target ?= prev }
}
}
save_scope_as = 1130_knows
add_character_flag = busy_in_ceremony_event
}
}
scope:1130_knows = {
random_known_secret = {
limit = {
secret_owner = scope:other_spouse
NOT = { is_known_by = root }
NOT = { secret_target ?= scope:1130_knows }
}
save_scope_as = 1130_secret
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_secret_revealed_log
show_in_conclusion = yes
character = scope:1130_knows
target = scope:other_spouse
#Effect
scope:1130_secret = { expose_secret = scope:1130_knows }
}
}
scope:1130_knows = {
if = {
limit = {
has_activity_intent = banquet_mischief_intent
}
complete_activity_intent = yes
}
}
}
#Option A: be understanding
option = {
name = ep2_wedding.1131.a
scope:other_spouse = {
add_opinion = {
target = root
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
can_add_hook = {
target = scope:other_spouse
type = favor_hook
}
}
add_hook = {
target = scope:other_spouse
type = favor_hook
}
}
stress_impact = {
impatient = minor_stress_impact_gain
callous = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
vengeful = major_stress_impact_gain
paranoid = major_stress_impact_gain
honest = medium_stress_impact_loss
forgiving = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
trusting = major_stress_impact_loss
}
ai_chance = {
ai_value_modifier = {
ai_compassion = 1
}
}
}
#Option B: this is unacceptable!
option = {
name = ep2_wedding.1131.b
add_dread = major_dread_gain
add_character_modifier = {
modifier = wedding_trust_compromised_modifier
years = 10
}
stress_impact = {
impatient = minor_stress_impact_loss
callous = medium_stress_impact_loss
wrathful = medium_stress_impact_loss
vengeful = major_stress_impact_loss
paranoid = major_stress_impact_loss
honest = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
trusting = major_stress_impact_gain
}
ai_chance = {
ai_value_modifier = {
ai_compassion = -1
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:other_spouse = {
remove_character_flag = busy_in_ceremony_event
}
scope:1130_knows = {
remove_character_flag = busy_in_ceremony_event
}
}
}
# You know a secret about a spouse.
ep2_wedding.1132 = {
type = activity_event
title = ep2_wedding.1130.t
desc = ep2_wedding.1132.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = wedding_objection_start
}
center_portrait = {
character = scope:other_spouse
animation = shock
}
right_portrait = {
character = scope:spouse_with_secret
animation = shame
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1130
}
}
NOR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
any_known_secret = {
secret_owner = {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
NOT = { secret_target ?= root }
}
}
weight_multiplier = {
base = 1
modifier = {
has_trait = contrite
add = 4
}
modifier = {
has_activity_intent = reduce_stress_intent
add = -0.5
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1130
}
random_known_secret = {
limit = {
secret_owner = {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
NOT = { secret_target ?= root }
}
save_scope_as = 1130_secret
}
scope:1130_secret = {
secret_owner = {
save_scope_as = spouse_with_secret
add_character_flag = busy_in_ceremony_event
}
}
scope:spouse_with_secret.betrothed = {
save_scope_as = other_spouse
add_character_flag = busy_in_ceremony_event
}
}
#Option A: reveal it
option = {
name = ep2_wedding.1132.a
scope:activity = {
add_activity_log_entry = {
key = wedding_secret_revealed_log
show_in_conclusion = yes
character = root
target = scope:spouse_with_secret
#Effect
scope:1130_secret = { expose_secret = root }
}
}
scope:other_spouse = {
add_opinion = {
target = root
modifier = opened_my_eyes_opinion
}
}
if = {
limit = {
can_add_hook = {
target = scope:other_spouse
type = favor_hook
}
}
add_hook = {
target = scope:other_spouse
type = favor_hook
}
}
if = {
limit = {
has_activity_intent = banquet_mischief_intent
}
complete_activity_intent = yes
}
stress_impact = {
honest = major_stress_impact_loss
contrite = massive_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = honest
add = 100
}
modifier = {
has_trait = contrite
add = 100
}
}
}
#Option B: keep it
option = {
name = ep2_wedding.1132.b
scope:spouse_with_secret = {
add_opinion = {
target = root
modifier = kept_my_secret_opinion
}
}
if = {
limit = {
can_add_hook = {
target = scope:spouse_with_secret
type = favor_hook
}
}
add_hook = {
target = scope:spouse_with_secret
type = favor_hook
}
}
stress_impact = {
deceitful = major_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
add = 100
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:spouse_with_secret = {
remove_character_flag = busy_in_ceremony_event
}
scope:other_spouse = {
remove_character_flag = busy_in_ceremony_event
}
}
}
##################################################
# A Misstep
# by Claudia Baldassi
# ep2_wedding.1140
##################################################
# A spouse has an embarrassing misstep: stuttering, missing cues, forgetting vows… How do you recover?
ep2_wedding.1140 = {
type = activity_event
title = ep2_wedding.1140.t
desc = {
desc = ep2_wedding.1140.desc
random_valid = {
desc = ep2_wedding.1140.desc_1
desc = ep2_wedding.1140.desc_2
desc = ep2_wedding.1140.desc_3
}
triggered_desc = {
trigger = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
intent_target = {
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
}
desc = ep2_wedding.1140.desc_target
}
triggered_desc = {
trigger = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
intent_target = {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
}
desc = ep2_wedding.1140.desc_target_spouse
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = wedding_objection_start
}
right_portrait = {
character = scope:fumbling_spouse
animation = shame
}
lower_right_portrait = scope:intent_target
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
root = scope:host
NOR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
scope:activity.special_guest:spouse_1 = { is_ai = yes }
scope:activity.special_guest:spouse_2 = { is_ai = yes }
trigger_if = {
limit = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
}
intent_target = { is_ai = yes }
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
has_activity_intent = reduce_stress_intent
}
add = 2
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
random_list = {
50 = {
modifier = {
scope:spouse_1 = {
has_trait = shy
}
add = 10
}
modifier = {
scope:spouse_1 = {
has_trait = gregarious
}
add = -10
}
modifier = {
scope:spouse_1 = {
has_trait = calm
}
add = -10
}
modifier = {
scope:spouse_1 = {
has_trait = impatient
}
add = 10
}
modifier = {
scope:spouse_1 = {
has_trait = arrogant
}
add = 10
}
scope:spouse_1 = { save_scope_as = fumbling_spouse }
}
50 = {
modifier = {
scope:spouse_2 = {
has_trait = shy
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = gregarious
}
add = -10
}
modifier = {
scope:spouse_2 = {
has_trait = calm
}
add = -10
}
modifier = {
scope:spouse_2 = {
has_trait = impatient
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = arrogant
}
add = 10
}
scope:spouse_2 = { save_scope_as = fumbling_spouse }
}
}
if = {
limit = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
}
intent_target = { save_scope_as = intent_target }
}
}
# Option A: Try to salvage the situation
option = {
name = ep2_wedding.1140.a
duel = {
skill = diplomacy
value = average_skill_rating
# Success: you recover smoothly
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1140.a.success
send_interface_toast = {
title = ep2_wedding.1140.a.success.tt
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = recovered_from_misstep_log
tags = { good }
score = 50
character = root
target = scope:spouse_1
root = {
if = {
limit = {
has_lifestyle = diplomacy_lifestyle
}
add_diplomacy_lifestyle_xp = major_lifestyle_experience
}
}
if = {
limit = {
root = { has_activity_intent = diplomatic_intent }
}
custom_tooltip = ep2_wedding.1140.a.success.tt2
root.intent_target = {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 30
}
}
}
else_if = {
limit = {
root = { has_activity_intent = woo_attendee_intent }
}
custom_tooltip = ep2_wedding.1140.a.success.tt2
root = {
progress_towards_lover_effect = {
REASON = lover_impressed_by_smooth_save
CHARACTER = root.intent_target
OPINION = 15
}
}
}
scope:fumbling_spouse = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
arrogant = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
brave = medium_stress_impact_loss
}
}
}
# Failure: you are publicly embarassed
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1140.a.failure
send_interface_toast = {
title = ep2_wedding.1140.a.failure.tt
left_icon = root
right_icon = scope:fumbling_spouse
scope:activity = {
add_activity_log_entry = {
key = made_a_misstep_log
tags = { bad }
score = 50
character = scope:spouse_1
scope:fumbling_spouse = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -15
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
shy = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
OR = {
has_activity_intent = diplomatic_intent
has_activity_intent = woo_attendee_intent
}
add = 50
}
}
}
# Option B: ignore it
option = {
name = ep2_wedding.1140.b
scope:fumbling_spouse = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -15
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
shy = medium_stress_impact_loss
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
lazy = medium_stress_impact_loss
}
scope:activity = {
add_activity_log_entry = {
key = made_a_misstep_log
tags = { bad }
score = 50
character = scope:spouse_1
}
}
ai_chance = {
base = 100
}
}
# Option C: relax!
option = {
name = ep2_wedding.1140.c
trigger = {
has_activity_intent = reduce_stress_intent
}
custom_tooltip = available_because_intent_tt
scope:fumbling_spouse = {
add_opinion = {
target = root
modifier = relieved_opinion
opinion = 20
}
}
stress_impact = {
base = medium_stress_impact_loss
}
scope:activity = {
add_activity_log_entry = {
key = recovered_from_misstep_log
tags = { good }
score = 50
character = root
target = scope:spouse_1
}
}
ai_chance = {
base = 100
modifier = {
has_activity_intent = reduce_stress_intent
add = 100
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
}
}
##################################################
# Romantic Scouting
# by Claudia Baldassi
# ep2_wedding.1150
##################################################
# Seduction Intent: target scouting
ep2_wedding.1150 = {
type = activity_event
title = ep2_wedding.1150.t
desc = {
desc = ep2_wedding.1150.desc
first_valid = {
triggered_desc = {
trigger = {
scope:intent_target = {
OR = {
has_trait = shy
has_trait = compassionate
}
}
}
desc = ep2_wedding.1150.desc_1
}
triggered_desc = {
trigger = {
scope:intent_target = {
OR = {
has_trait = gluttonous
has_trait = drunkard
}
}
}
desc = ep2_wedding.1150.desc_2
}
triggered_desc = {
trigger = {
scope:intent_target = {
OR = {
has_trait = callous
has_trait = cynical
}
}
}
desc = ep2_wedding.1150.desc_3
}
triggered_desc = {
trigger = {
scope:intent_target = {
has_trait = zealous
}
}
desc = ep2_wedding.1150.desc_4
}
desc = ep2_wedding.1150.desc_fallback
}
desc = ep2_wedding.1150.desc_conclusion
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = flirtation_left
}
right_portrait = {
character = scope:intent_target
animation = personality_content
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
has_activity_intent = woo_attendee_intent
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
NOR = {
intent_target = scope:activity.special_guest:spouse_1
intent_target = scope:activity.special_guest:spouse_2
}
intent_target = { is_ai = yes }
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = busy_in_ceremony_event
intent_target = {
save_scope_as = intent_target
add_character_flag = busy_in_ceremony_event
}
}
# Option A: approach with diplo
option = {
name = ep2_wedding.1150.a
duel = {
skill = diplomacy
target = scope:intent_target
# Success: you make a good impression
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1150.a.success
send_interface_toast = {
title = ep2_wedding.1150.a.success.tt
left_icon = root
right_icon = scope:intent_target
progress_towards_lover_effect = {
REASON = lover_impressed_by_talk
CHARACTER = scope:intent_target
OPINION = 15
}
if = {
limit = {
has_lifestyle = diplomacy_lifestyle
}
add_diplomacy_lifestyle_xp = major_lifestyle_experience
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
lustful = major_stress_impact_loss
}
}
scope:activity = {
add_activity_log_entry = {
key = seduction_good_impression_log
tags = { good }
score = 50
character = root
target = scope:intent_target
}
}
}
# Failure: target is not impress
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1150.a.failure
send_interface_toast = {
title = ep2_wedding.1150.a.failure.tt
left_icon = root
right_icon = scope:intent_target
scope:intent_target = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -15
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
shy = medium_stress_impact_gain
lustful = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
diplomacy >= average_skill_level
add = 50
}
}
}
# Option B: approach with intrigue
option = {
name = ep2_wedding.1150.b
duel = {
skill = intrigue
target = scope:intent_target
# Success: you make a good impression
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1150.a.success
send_interface_toast = {
title = ep2_wedding.1150.a.success.tt
left_icon = root
right_icon = scope:intent_target
progress_towards_lover_effect = {
REASON = lover_impressed_by_talk
CHARACTER = scope:intent_target
OPINION = 15
}
if = {
limit = {
has_lifestyle = intrigue_lifestyle
}
add_intrigue_lifestyle_xp = major_lifestyle_experience
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
lustful = major_stress_impact_loss
}
}
scope:activity = {
add_activity_log_entry = {
key = seduction_good_impression_log
tags = { good }
score = 50
character = root
target = scope:intent_target
}
}
}
# Failure: target is not impress
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1150.a.failure
send_interface_toast = {
title = ep2_wedding.1150.a.failure.tt
left_icon = root
right_icon = scope:intent_target
scope:intent_target = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -15
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
shy = medium_stress_impact_gain
lustful = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
intrigue >= average_skill_level
add = 50
}
}
}
# Option C: approach with learning
option = {
name = ep2_wedding.1150.c
duel = {
skill = learning
target = scope:intent_target
# Success: you make a good impression
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1150.a.success
send_interface_toast = {
title = ep2_wedding.1150.a.success.tt
left_icon = root
right_icon = scope:intent_target
progress_towards_lover_effect = {
REASON = lover_impressed_by_talk
CHARACTER = scope:intent_target
OPINION = 15
}
if = {
limit = {
has_lifestyle = learning_lifestyle
}
add_learning_lifestyle_xp = major_lifestyle_experience
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
lustful = major_stress_impact_loss
}
}
scope:activity = {
add_activity_log_entry = {
key = seduction_good_impression_log
tags = { good }
score = 50
character = root
target = scope:intent_target
}
}
}
# Failure: target is not impress
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1150.a.failure
send_interface_toast = {
title = ep2_wedding.1150.a.failure.tt
left_icon = root
right_icon = scope:intent_target
scope:intent_target = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -15
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
shy = medium_stress_impact_gain
lustful = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
learning >= average_skill_level
add = 50
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:intent_target = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# Gatecrashers
# by Claudia Baldassi
# ep2_wedding.1160
##################################################
# Some pesants are at the gate of the festivity - what do you do?
ep2_wedding.1160 = {
type = activity_event
title = ep2_wedding.1160.t
desc = ep2_wedding.1160.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = schadenfreude
}
lower_right_portrait = scope:host
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
has_activity_intent = banquet_mischief_intent
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
scope:activity = {
NOT = {
has_variable = has_had_1160_event
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_1160_event
}
}
# Option A: let the peasants in
option = {
name = ep2_wedding.1160.a
flavor = ep2_wedding.1160.a.tt
# for the follow-up event
root = {
save_scope_as = mischief_maker
}
scope:host = { trigger_event = ep2_wedding.1161 }
stress_impact = {
base = minor_stress_impact_loss
wrathful = medium_stress_impact_loss
impatient = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
deceitful = major_stress_impact_loss
arbitrary = major_stress_impact_loss
callous = major_stress_impact_loss
fickle = major_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
add = 50
}
modifier = {
has_trait = arbitrary
add = 50
}
modifier = {
has_trait = callous
add = 50
}
modifier = {
has_trait = fickle
add = 50
}
}
}
# Option B: smuggle food to the pesants
option = {
name = ep2_wedding.1160.b
flavor = ep2_wedding.1160.b.tt
stress_impact = {
base = minor_stress_impact_loss
gluttonous = medium_stress_impact_loss
diligent = medium_stress_impact_loss
generous = major_stress_impact_loss
humble = major_stress_impact_loss
gregarious = major_stress_impact_loss
compassionate = massive_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = generous
add = 50
}
modifier = {
has_trait = humble
add = 50
}
modifier = {
has_trait = gregarious
add = 50
}
modifier = {
has_trait = compassionate
add = 50
}
}
}
# Option C: this is below me
option = {
name = ep2_wedding.1160.c
stress_impact = {
greedy = minor_stress_impact_loss
temperate = minor_stress_impact_loss
lazy = minor_stress_impact_loss
honest = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = lazy
add = 50
}
modifier = {
has_trait = honest
add = 50
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
}
}
# Follow-up for the host
ep2_wedding.1161 = {
type = activity_event
title = ep2_wedding.1160.t
desc = ep2_wedding.1161.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = anger
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = busy_in_ceremony_event
}
# Option A: kick them out!
option = {
name = ep2_wedding.1161.a
duel = {
skill = martial
value = average_skill_rating
50 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1161.success
send_interface_toast = {
title = ep2_wedding.1161.success.tt
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_peasant_invasion_managed_log
tags = { good }
score = 20
character = root
root = {
add_character_modifier = {
modifier = wedding_enforced_security_modifier
years = 10
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
wrathful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
callous = major_stress_impact_loss
paranoid = massive_stress_impact_loss
}
}
scope:mischief_maker = {
send_interface_toast = {
title = ep2_wedding.1161.success.tt2
left_icon = root
}
}
}
50 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1161.failure
send_interface_toast = {
title = ep2_wedding.1161.failure.tt
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_peasant_invasion_not_managed_log
tags = { bad }
score = 20
character = root
root = {
add_character_modifier = {
modifier = wedding_peasants_overrun_modifier
years = 10
}
}
}
}
stress_impact = {
wrathful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
callous = medium_stress_impact_gain
paranoid = major_stress_impact_gain
}
}
scope:mischief_maker = {
send_interface_toast = {
title = ep2_wedding.1161.failure.tt2
left_icon = root
}
}
}
}
ai_chance = {
base = 100
}
}
# Option B: let them stay
option = {
name = ep2_wedding.1161.b
scope:activity = {
add_activity_log_entry = {
key = wedding_peasant_invasion_stay_log
tags = { bad }
score = 20
character = root
root.location.county = {
add_county_modifier = {
modifier = wedding_peasants_connections_county_modifier
years = 10
}
}
}
}
if = {
limit = {
has_activity_intent = reduce_stress_intent
}
stress_impact = {
base = medium_stress_impact_loss
}
}
else = {
stress_impact = {
generous = medium_stress_impact_loss
humble = medium_stress_impact_loss
gregarious = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
paranoid = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
}
scope:mischief_maker = {
send_interface_toast = {
title = ep2_wedding.1161.b.tt
left_icon = root
}
}
ai_chance = {
base = 100
modifier = {
has_trait = compassionate
add = 50
}
modifier = {
has_trait = gregarious
add = 50
}
modifier = {
has_trait = humble
add = 50
}
modifier = {
has_trait = generous
add = 50
}
}
}
after = {
remove_character_flag = busy_in_ceremony_event
}
}
##################################################
# The Parade
# by Claudia Baldassi
# ep2_wedding.1170
##################################################
# A spouse has arrived with a whole parade. Interact with it
ep2_wedding.1170 = {
type = activity_event
title = ep2_wedding.1170.t
desc = {
desc = ep2_wedding.1170.desc
triggered_desc = {
trigger = {
has_activity_intent = reduce_stress_intent
}
desc = ep2_wedding.1170.desc_relax
}
triggered_desc = {
trigger = {
has_activity_intent = banquet_mischief_intent
}
desc = ep2_wedding.1170.desc_mischief
}
triggered_desc = {
trigger = {
has_activity_intent = murder_attendee_intent
}
desc = ep2_wedding.1170.desc_murder
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = ecstasy
}
lower_center_portrait = scope:rich_spouse
lower_right_portrait = scope:murderee
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
OR = {
scope:activity.special_guest:spouse_1 = {
NOT = { is_close_or_extended_family_of = root }
is_lowborn = no
is_ai = yes
location = scope:activity.activity_location
}
scope:activity.special_guest:spouse_2 = {
NOT = { is_close_or_extended_family_of = root }
is_lowborn = no
is_ai = yes
location = scope:activity.activity_location
}
}
NOT = {
scope:activity = {
has_variable = has_had_event_1170
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
add = 2
}
modifier = {
has_activity_intent = murder_attendee_intent
add = 1
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_event_1170
}
random_list = {
50 = {
trigger = {
scope:activity.special_guest:spouse_1 = {
NOT = { is_close_or_extended_family_of = root }
is_lowborn = no
is_ai = yes
}
}
scope:activity.special_guest:spouse_1 = { save_scope_as = rich_spouse }
}
50 = {
trigger = {
scope:activity.special_guest:spouse_2 = {
NOT = { is_close_or_extended_family_of = root }
is_lowborn = no
is_ai = yes
}
}
scope:activity.special_guest:spouse_2 = { save_scope_as = rich_spouse }
}
}
if = {
limit = {
has_activity_intent = murder_attendee_intent
}
intent_target = {
save_scope_as = murderee
add_character_flag = busy_in_ceremony_event
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_parade_arrival_log
tags = { good }
score = 20
character = scope:rich_spouse
}
}
}
# Option A: Pocket some horseshoes
option = {
name = ep2_wedding.1170.a
flavor = ep2_wedding.1170.a.tt
add_gold = minor_gold_value
stress_impact = {
greedy = medium_stress_impact_loss
generous = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = 1
}
}
}
# Option B: What a show
option = {
name = ep2_wedding.1170.b
trigger = {
NOT = {
has_activity_intent = reduce_stress_intent
}
}
flavor = ep2_wedding.1170.b.tt
stress_impact = {
base = minor_stress_impact_loss
generous = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -1
}
}
}
# Option C: Enjoy the show
option = {
name = ep2_wedding.1170.c
trigger = {
has_activity_intent = reduce_stress_intent
}
custom_tooltip = available_because_intent_tt
stress_impact = {
base = medium_stress_impact_loss
humble = major_stress_impact_loss
compassionate = major_stress_impact_loss
gregarious = major_stress_impact_loss
trusting = major_stress_impact_loss
generous = major_stress_impact_loss
}
ai_chance = {
base = 200
}
}
# Option D: mayhem
option = {
name = ep2_wedding.1170.d
trigger = {
has_activity_intent = banquet_mischief_intent
}
custom_tooltip = available_because_intent_tt
add_character_modifier = {
modifier = wedding_parade_mayhem_modifier
years = 5
}
stress_impact = {
base = medium_stress_impact_loss
}
ai_chance = {
base = 200
}
}
# Option E: try to kill
option = {
name = ep2_wedding.1170.e
trigger = {
has_activity_intent = murder_attendee_intent
}
flavor = ep2_wedding.1170.e.tt
custom_tooltip = available_because_intent_tt
duel = {
skills = { intrigue prowess }
target = scope:murderee
40 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1170.success
send_interface_toast = {
title = ep2_wedding.1170.success.tt
left_icon = root
right_icon = scope:murderee
scope:activity = {
add_activity_log_entry = {
key = wedding_parade_death_log
tags = { good }
score = 20
character = scope:rich_spouse
target = scope:murderee
}
}
scope:murderee = {
death = {
killer = root
death_reason = death_plotting
}
}
complete_activity_intent = yes
stress_impact = {
base = minor_stress_impact_loss
vengeful = medium_stress_impact_loss
paranoid = medium_stress_impact_loss
deceitful = medium_stress_impact_loss
}
}
}
60 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1170.failure
send_interface_toast = {
title = ep2_wedding.1170.failure.tt
left_icon = root
right_icon = scope:murderee
stress_impact = {
base = minor_stress_impact_gain
vengeful = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
}
}
after = {
remove_character_flag = busy_in_ceremony_event
if = {
limit = {
intent_target ?= { has_character_flag = busy_in_ceremony_event }
}
intent_target = { remove_character_flag = busy_in_ceremony_event }
}
}
}
##################################################
# A Bad Match
# by Claudia Baldassi
# ep2_wedding.1180
##################################################
# Your spouse doesn't really like you...
ep2_wedding.1180 = {
type = activity_event
title = ep2_wedding.1180.t
desc = ep2_wedding.1180.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:other_spouse
animation = disgust
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
OR = {
root.betrothed ?= {
trait_compatibility = {
target = root
value <= low_negative_trait_compatibility
}
}
root.betrothed ?= {
save_temporary_opinion_value_as = {
name = target_opinion
target = root
}
scope:target_opinion < 0
}
}
root.betrothed ?= {
has_any_good_relationship_with_root_trigger = no
is_ai = yes
}
}
weight_multiplier = {
base = 1
modifier = {
betrothed = { has_any_bad_relationship_with_root_trigger = yes }
add = 1
}
modifier = {
betrothed = { has_trait = fickle }
add = 1
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
betrothed = {
save_scope_as = other_spouse
add_character_flag = busy_in_ceremony_event
}
scope:activity = { set_variable = has_had_event_1180 }
}
# Option A: it doesn't matter
option = {
name = ep2_wedding.1180.a
add_character_modifier = {
modifier = wedding_political_mentality_modifier
years = 10
}
scope:other_spouse = {
add_opinion = {
target = root
modifier = hurt_opinion
opinion = -20
}
}
stress_impact = {
humble = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
callous = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = callous
add = 50
}
}
}
# Option B: I'll make you like me!
option = {
name = ep2_wedding.1180.b
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = scope:other_spouse
}
progress_towards_lover_effect = {
CHARACTER = scope:other_spouse
REASON = lover_wedding_trying_hard
OPINION = default_lover_opinion
}
}
else_if = {
limit = {
can_start_scheme = {
type = seduce
target_character = scope:other_spouse
}
}
start_scheme = {
type = seduce
target_character = scope:other_spouse
}
}
else_if = {
limit = {
any_scheme = {
type = seduce
scheme_target_character = scope:other_spouse
}
}
random_scheme = {
type = seduce
limit = {
scheme_target_character = scope:other_spouse
}
add_scheme_progress = scheme_progress_gain
}
}
else = {
scope:other_spouse = {
add_opinion = {
target = root
modifier = making_an_effort_opinion
}
}
}
if = {
limit = {
scope:other_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:other_spouse
}
stress_impact = {
arrogant = minor_stress_impact_gain
fickle = minor_stress_impact_gain
lustful = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = lustful
add = 50
}
}
}
# Option C: don't care!
option = {
name = ep2_wedding.1180.c
trigger = {
has_activity_intent = reduce_stress_intent
}
custom_tooltip = available_because_intent_tt
scope:other_spouse = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
}
stress_impact = {
base = major_stress_impact_loss
}
ai_chance = {
base = 150
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:other_spouse = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# Religious Complaints
# by Claudia Baldassi
# ep2_wedding.1190
##################################################
# Religious guest complains about lavishness, luxury, wastes, and unchaste mingling
ep2_wedding.1190 = {
type = activity_event
title = ep2_wedding.1190.t
desc = ep2_wedding.1190.desc
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:grumbler
animation = personality_zealous
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = {
root = scope:host
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
scope:activity = {
any_attending_character = {
NOR = {
this = root
this = scope:host
}
OR = {
this = root.faith.religious_head
has_trait = devoted
has_trait = theologian
has_trait = zealous
}
faith = {
NOR = {
trait_is_virtue = lustful
trait_is_virtue = gluttonous
}
}
}
NOT = {
has_variable = has_had_1190
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = busy_in_ceremony_event
scope:activity = {
set_variable = has_had_1190
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:host
}
this = root.faith.religious_head
faith = {
NOR = {
trait_is_virtue = lustful
trait_is_virtue = gluttonous
}
}
}
alternative_limit = {
NOR = {
this = root
this = scope:host
}
has_trait = devoted
faith = {
NOR = {
trait_is_virtue = lustful
trait_is_virtue = gluttonous
}
}
}
alternative_limit = {
NOR = {
this = root
this = scope:host
}
has_trait = theologian
faith = {
NOR = {
trait_is_virtue = lustful
trait_is_virtue = gluttonous
}
}
}
alternative_limit = {
NOR = {
this = root
this = scope:host
}
has_trait = zealous
faith = {
NOR = {
trait_is_virtue = lustful
trait_is_virtue = gluttonous
}
}
}
save_scope_as = grumbler
add_character_flag = busy_in_ceremony_event
}
add_activity_log_entry = {
key = wedding_religious_complaints_log
tags = { bad }
score = 20
character = scope:grumbler
}
}
}
# Option A: repent
option = {
name = ep2_wedding.1190.a
scope:grumbler = {
add_opinion = {
target = root
modifier = pious_opinion
opinion = 20
}
}
if = {
limit = {
scope:activity = {
any_attending_character = {
has_trait = zealous
}
}
}
scope:activity = {
every_attending_character = {
limit = {
has_trait = zealous
this != scope:grumbler
this != root
}
custom = every_zealous_attending_character
add_opinion = {
target = root
modifier = pious_opinion
opinion = 5
}
}
}
}
if = {
limit = {
has_lifestyle = learning_lifestyle
}
add_learning_lifestyle_xp = medium_lifestyle_experience
}
stress_impact = {
zealous = medium_stress_impact_loss
humble = minor_stress_impact_loss
temperate = minor_stress_impact_loss
chaste = minor_stress_impact_loss
cynical = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
gluttonous = medium_stress_impact_gain
lustful = medium_stress_impact_gain
drunkard = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 1.5
}
}
}
# Option B: kick them out
option = {
name = ep2_wedding.1190.b
trigger = {
root = scope:host
}
scope:grumbler = {
remove_from_activity = scope:activity
}
progress_towards_rival_effect = {
CHARACTER = scope:grumbler
REASON = rival_kicked_out_priest
OPINION = default_rival_opinion
}
stress_impact = {
zealous = major_stress_impact_gain
cynical = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
gluttonous = medium_stress_impact_loss
lustful = medium_stress_impact_loss
drunkard = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = gluttonous
add = 25
}
modifier = {
has_trait = lustful
add = 50
}
modifier = {
has_trait = cynical
add = 50
}
modifier = {
has_trait = drunkard
add = 50
}
}
}
# Option C: ignore
option = {
name = ep2_wedding.1190.c
scope:grumbler = {
add_opinion = {
target = root
modifier = ignored_opinion
opinion = -5
}
}
stress_impact = {
zealous = medium_stress_impact_gain
cynical = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
gluttonous = minor_stress_impact_loss
lustful = minor_stress_impact_loss
drunkard = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
# Option D: yes, and I will enjoy it too!
option = {
name = ep2_wedding.1190.d
trigger = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = woo_attendee_intent
has_activity_intent = banquet_mischief_intent
}
}
custom_tooltip = available_because_intent_tt
scope:grumbler = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -20
}
}
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = {
NOR = {
this = scope:grumbler
has_trait = zealous
}
}
}
root = {
progress_towards_lover_effect = {
CHARACTER = root.intent_target
REASON = lover_daring_move
OPINION = default_lover_opinion
}
}
}
stress_impact = {
base = medium_stress_impact_loss
}
ai_chance = {
base = 200
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:grumbler = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# A Parent's Heart
# by Claudia Baldassi
# ep2_wedding.1200
##################################################
# Proud parent watches everything go well and brags with intent target/friend/rival/neighbor
ep2_wedding.1200 = {
type = activity_event
title = ep2_wedding.1200.t
desc = {
desc = ep2_wedding.1200.desc
first_valid = {
triggered_desc = {
trigger = {
OR = {
has_activity_intent = woo_attendee_intent
has_activity_intent = diplomatic_intent
has_activity_intent = matchmaking_intent
scope:listener = { has_relation_rival = root }
scope:listener = { has_relation_potential_rival = root}
}
}
desc = ep2_wedding.1200.desc_interest
}
desc = ep2_wedding.1200.desc_generic
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = wedding_happy_cry
}
center_portrait = {
character = scope:my_child
animation = wrestling_victory
}
right_portrait = {
character = scope:listener
animation = boredom
}
lower_left_portrait = scope:my_child
lower_center_portrait = scope:intent_target
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = {
scope:activity.special_guest:spouse_1 = { is_child_of = root }
scope:activity.special_guest:spouse_2 = { is_child_of = root }
}
# Incest alert
NOR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
scope:activity = {
any_attending_character = {
NOR = {
this = root
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
}
trigger_if = {
limit = {
has_activity_intent = matchmaking_intent
}
OR = {
root.intent_target = { has_variable = wedding_good_match }
scope:activity = {
any_attending_character = {
is_ai = yes
location = root.location
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
root.intent_target.var:wedding_no_match ?= this
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = woo_attendee_intent
add = 1
}
modifier = {
has_activity_intent = diplomatic_intent
add = 1
}
modifier = {
has_activity_intent = matchmaking_intent
add = 1
}
modifier = {
root = scope:host
add = 2
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
if = {
limit = {
scope:activity.special_guest:spouse_1 = { is_child_of = root }
}
scope:activity.special_guest:spouse_1 = { save_scope_as = my_child }
}
else = {
scope:activity.special_guest:spouse_2 = { save_scope_as = my_child }
}
if = {
limit = {
OR = {
has_activity_intent = woo_attendee_intent
has_activity_intent = diplomatic_intent
}
}
intent_target = { save_scope_as = listener }
}
else_if = {
limit = {
has_activity_intent = matchmaking_intent
intent_target = { has_variable = wedding_good_match }
}
intent_target.var:wedding_good_match = { save_scope_as = listener }
}
else_if = {
limit = {
has_activity_intent = matchmaking_intent
}
scope:activity = {
random_attending_character = {
limit = {
is_ai = yes
location = root.location
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
has_character_flag = busy_in_wgathering_event
is_close_or_extended_family_of = root.intent_target
root.intent_target.var:wedding_no_match ?= this
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
save_scope_as = listener
}
}
}
else_if = {
limit = {
scope:activity = {
any_attending_character = {
OR = {
has_relation_friend = root
has_relation_rival = root
has_relation_lover = root
has_relation_potential_friend = root
has_relation_potential_rival = root
has_relation_potential_lover = root
}
NOR = {
this = scope:my_child
this = scope:my_child.betrothed
}
}
}
}
scope:activity = {
random_attending_character = {
limit = {
OR = {
has_relation_friend = root
has_relation_rival = root
has_relation_lover = root
has_relation_potential_friend = root
has_relation_potential_rival = root
has_relation_potential_lover = root
}
NOR = {
this = scope:my_child
this = scope:my_child.betrothed
}
}
save_scope_as = listener
}
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:my_child
this = scope:my_child.betrothed
}
}
save_scope_as = listener
}
}
}
scope:listener = { add_character_flag = busy_in_ceremony_event }
if = {
limit = {
has_activity_intent = matchmaking_intent
}
intent_target = { save_scope_as = intent_target }
}
}
# Option A: So proud
option = {
name = ep2_wedding.1200.a
add_prestige = minor_prestige_gain
dynasty ?= { add_dynasty_prestige = minor_dynasty_prestige_gain }
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_any_good_relationship_with_character_trigger = { CHARACTER = scope:listener }
add = 50
}
}
}
# Option B: Aren't you jealous
option = {
name = ep2_wedding.1200.b
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:listener }
}
progress_towards_rival_effect = {
CHARACTER = scope:listener
REASON = rival_rubbed_it_in
OPINION = default_rival_opinion
}
}
else_if = {
limit = {
has_relation_rival = scope:listener
num_of_relation_nemesis = 0
}
set_relation_nemesis = {
target = scope:listener
reason = rival_rubbed_it_in
}
}
else = {
reverse_add_opinion = {
target = scope:listener
modifier = annoyed_opinion
opinion = -15
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_gloating_log
tags = { bad }
score = 20
character = root
target = scope:listener
}
}
stress_impact = {
vengeful = medium_stress_impact_loss
callous = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
deceitful = medium_stress_impact_loss
paranoid = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:listener }
add = 50
}
modifier = {
has_trait = vengeful
add = 25
}
modifier = {
has_trait = callous
add = 25
}
}
}
# Option C: Woo - what about *us*
option = {
name = ep2_wedding.1200.c
trigger = {
has_activity_intent = woo_attendee_intent
}
custom_tooltip = available_because_intent_tt
duel = {
skill = intrigue
target = scope:listener
50 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
scope:listener = { has_trait = lustful }
add = 15
}
desc = ep2_wedding.1200.success
send_interface_toast = {
title = ep2_wedding.1200.success.tt
left_icon = root
right_icon = scope:listener
progress_towards_lover_effect = {
CHARACTER = scope:listener
REASON = lover_love_is_in_the_air
OPINION = default_lover_opinion
}
stress_impact = {
base = minor_stress_impact_loss
lustful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
}
}
}
50 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
scope:listener = { has_trait = chaste }
add = 15
}
desc = ep2_wedding.1200.failure
send_interface_toast = {
title = ep2_wedding.1200.failure.tt
left_icon = root
right_icon = scope:listener
scope:listener = {
add_opinion = {
target = root
modifier = awkward_opinion
opinion = -10
}
}
stress_impact = {
base = minor_stress_impact_gain
lustful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
}
}
# Option D: Diplo: impressive show of power
option = {
name = ep2_wedding.1200.d
flavor = ep2_wedding.1200.d.tt
trigger = {
has_activity_intent = diplomatic_intent
}
custom_tooltip = available_because_intent_tt
duel = {
skill = diplomacy
target = scope:listener
40 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
root = scope:host
add = 10
}
modifier = {
scope:listener = { has_trait = trusting }
add = 10
}
desc = ep2_wedding.1200.success
send_interface_toast = {
title = ep2_wedding.1200.success.tt
left_icon = root
right_icon = scope:listener
complete_activity_intent = yes
scope:activity = {
add_activity_log_entry = {
key = wedding_alliance_log
tags = { good }
score = 20
character = root
target = scope:listener
root = {
create_alliance = {
target = scope:listener
allied_through_owner = root
allied_through_target = scope:listener
}
}
scope:listener = {
add_opinion = {
target = root
modifier = event_negotiated_alliance_opinion
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
}
}
}
60 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
scope:listener = { has_trait = paranoid }
add = 20
}
desc = ep2_wedding.1200.failure
send_interface_toast = {
title = ep2_wedding.1200.failure.tt
left_icon = root
right_icon = scope:listener
stress_impact = {
base = minor_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
}
}
# Option E: Matchmaking: if only I could do the same for X
option = {
name = ep2_wedding.1200.e
trigger = {
has_activity_intent = matchmaking_intent
}
custom_tooltip = available_because_intent_tt
duel = {
skills = { diplomacy intrigue }
target = scope:listener
50 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1200.e.success
send_interface_toast = {
title = ep2_wedding.1200.e.success
left_icon = root
right_icon = scope:listener
custom_tooltip = ep2_wedding.1200.e.success.tt
if = {
limit = {
intent_target = {
NOT = {
has_variable = wedding_good_match
}
}
}
intent_target = {
set_variable = {
name = wedding_good_match
value = scope:listener
}
}
}
else = {
intent_target = {
create_betrothal = scope:listener
}
}
scope:listener = {
add_opinion = {
target = root
modifier = flattered_opinion
opinion = 15
}
}
scope:listener = {
add_opinion = {
target = scope:intent_target
modifier = flattered_opinion
opinion = 15
}
}
stress_impact = {
base = minor_stress_impact_loss
family_first = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
gregarious = medium_stress_impact_loss
}
}
}
50 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1200.e.failure
send_interface_toast = {
title = ep2_wedding.1200.e.failure
left_icon = root
right_icon = scope:listener
intent_target = {
set_variable = {
name = wedding_no_match
value = scope:listener
}
}
scope:listener = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -10
}
}
stress_impact = {
base = minor_stress_impact_gain
family_first = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:listener = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# Political Talk
# by Claudia Baldassi
# ep2_wedding.1210
##################################################
# Political talk with a fellow ruler
ep2_wedding.1210 = {
type = activity_event
title = ep2_wedding.1210.t
desc = {
desc = ep2_wedding.1210.desc
random_valid = {
triggered_desc = {
trigger = {
scope:talk_to.gold < 0
}
desc = ep2_wedding.1210.desc_gold
}
triggered_desc = {
trigger = {
scope:talk_to = {
OR = {
has_trait = shy
has_trait = craven
}
}
}
desc = ep2_wedding.1210.desc_fear
}
triggered_desc = {
trigger = {
scope:talk_to = {
any_sub_realm_county = {
any_county_province = {
has_province_modifier = recently_looted_modifier
}
}
}
}
desc = ep2_wedding.1210.desc_raids
}
triggered_desc = {
trigger = {
scope:talk_to = {
OR = {
any_relation = {
type = rival
}
has_trait = paranoid
}
}
}
desc = ep2_wedding.1210.desc_rivals
}
triggered_desc = {
trigger = {
scope:talk_to = {
age > 65
}
}
desc = ep2_wedding.1210.desc_age
}
desc = ep2_wedding.1210.desc_bad_harvest
desc = ep2_wedding.1210.desc_rain
desc = ep2_wedding.1210.desc_enemies
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:talk_to
animation = thinking
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
is_landed = yes
has_activity_intent = diplomatic_intent
intent_target = {
is_landed = yes
NOT = { is_vassal_of = root }
is_ai = yes
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
NOR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
weight_multiplier = {
base = 1
}
immediate = {
add_character_flag = busy_in_ceremony_event
intent_target = {
save_scope_as = talk_to
add_character_flag = busy_in_ceremony_event
}
}
# Option A: gain hook
option = {
name = ep2_wedding.1210.a
trigger = {
can_add_hook = {
target = scope:talk_to
type = threat_hook
}
}
duel = {
skill = intrigue
target = scope:talk_to
50 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
has_trait = schemer
add = 10
}
modifier = {
has_trait = torturer
add = 20
}
modifier = {
scope:talk_to = { has_trait = lazy }
add = 20
}
modifier = {
scope:talk_to = { has_trait = craven }
add = 20
}
desc = ep2_wedding.1210.a.success
send_interface_toast = {
title = ep2_wedding.1210.a.success
left_icon = root
right_icon = scope:talk_to
scope:activity = {
add_activity_log_entry = {
key = wedding_intimidation_log
tags = { good }
score = 20
character = root
target = scope:talk_to
root = {
add_hook = {
target = scope:talk_to
type = threat_hook
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
deceitful = medium_stress_impact_loss
sadistic = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
}
}
}
50 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
scope:talk_to = { has_trait = torturer }
add = 20
}
modifier = {
scope:talk_to = { has_trait = brave }
add = 20
}
desc = ep2_wedding.1210.a.failure
send_interface_toast = {
title = ep2_wedding.1210.a.failure
left_icon = root
right_icon = scope:talk_to
reverse_add_opinion = {
target = scope:talk_to
modifier = threatened_opinion
opinion = -20
}
stress_impact = {
base = minor_stress_impact_gain
deceitful = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
}
}
# Option B: gain alliance
option = {
name = ep2_wedding.1210.b
duel = {
skill = diplomacy
target = scope:talk_to
40 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
has_trait = diplomat
add = 20
}
modifier = {
has_trait = august
add = 10
}
modifier = {
scope:talk_to = { has_trait = lazy }
add = 20
}
modifier = {
scope:talk_to = { has_trait = trusting }
add = 20
}
desc = ep2_wedding.1210.b.success
send_interface_toast = {
title = ep2_wedding.1210.b.success
left_icon = root
right_icon = scope:talk_to
complete_activity_intent = yes
scope:activity = {
add_activity_log_entry = {
key = wedding_alliance_log
tags = { good }
score = 20
character = root
target = scope:talk_to
root = {
create_alliance = {
target = scope:talk_to
allied_through_owner = root
allied_through_target = scope:talk_to
}
}
scope:talk_to = {
add_opinion = {
target = root
modifier = event_negotiated_alliance_opinion
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
gregarious = medium_stress_impact_loss
}
}
}
60 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
scope:talk_to = { has_trait = diplomat }
add = 20
}
modifier = {
scope:talk_to = { has_trait = august }
add = 10
}
modifier = {
scope:talk_to = { has_trait = paranoid }
add = 20
}
modifier = {
scope:talk_to = { has_trait = shy }
add = 20
}
desc = ep2_wedding.1210.b.failure
send_interface_toast = {
title = ep2_wedding.1210.b.failure
left_icon = root
right_icon = scope:talk_to
scope:talk_to = {
add_opinion = {
target = root
modifier = suspicion_opinion
opinion = -10
}
}
stress_impact = {
base = minor_stress_impact_gain
ambitious = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
}
}
# Option C: subjugate
option = {
name = ep2_wedding.1210.c
trigger = {
scope:talk_to = { activity_wedding_diplomatic_intent_impressible_target = yes }
}
duel = {
skills = { diplomacy intrigue }
target = scope:talk_to
30 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
has_trait = diplomat
add = 20
}
modifier = {
has_trait = august
add = 10
}
modifier = {
scope:talk_to = { has_trait = trusting }
add = 20
}
modifier = {
scope:talk_to = { has_trait = craven }
add = 20
}
modifier = {
scope:talk_to = { has_trait = shy }
add = 20
}
desc = ep2_wedding.1210.c.success
send_interface_toast = {
title = ep2_wedding.1210.c.success
left_icon = root
right_icon = scope:talk_to
complete_activity_intent = yes
scope:activity = {
add_activity_log_entry = {
key = wedding_fealty_log
tags = { good }
score = 20
character = root
target = scope:talk_to
root = {
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = title_change
add_claim_on_loss = no
}
scope:talk_to = {
change_liege = {
liege = root
change = scope:title_change
}
}
resolve_title_and_vassal_change = scope:title_change
}
}
}
stress_impact = {
base = minor_stress_impact_loss
ambitious = major_stress_impact_loss
}
}
}
70 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
scope:talk_to = { has_trait = diplomat }
add = 20
}
modifier = {
scope:talk_to = { has_trait = august }
add = 10
}
modifier = {
scope:talk_to = { has_trait = paranoid }
add = 20
}
desc = ep2_wedding.1210.c.failure
send_interface_toast = {
title = ep2_wedding.1210.c.failure
left_icon = root
right_icon = scope:talk_to
scope:talk_to = {
add_opinion = {
target = root
modifier = suspicion_opinion
opinion = -20
}
}
stress_impact = {
base = minor_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:talk_to = { remove_character_flag = busy_in_ceremony_event }
}
}
##################################################
# Poisonous Relations
# by Claudia Baldassi
# ep2_wedding.1220
##################################################
# In-laws are bullies (or other close relatives)
scripted_trigger wedding_1220_valid_relative_trigger = {
is_ai = yes
is_adult = yes
is_close_family_of = $RELATIVE_SPOUSE$
NOT = { is_close_family_of = $NON_RELATIVE_SPOUSE$ }
NOR = {
this = $RELATIVE_SPOUSE$
this = $NON_RELATIVE_SPOUSE$
}
OR = {
# They enjoy making people feel inadequate
has_trait = deceitful
has_trait = vengeful
has_trait = callous
has_trait = torturer
has_trait = greedy
has_trait = sadistic
# Their family is marrying down
highest_held_title_tier > $NON_RELATIVE_SPOUSE$.highest_held_title_tier
$RELATIVE_SPOUSE$.highest_held_title_tier > $NON_RELATIVE_SPOUSE$.highest_held_title_tier
# They are feuding
house_has_feud_relation_with_trigger = { TARGET = $NON_RELATIVE_SPOUSE$ }
# They already didn't like you
has_any_bad_relationship_with_character_trigger = { CHARACTER = $NON_RELATIVE_SPOUSE$ }
opinion = {
target = $NON_RELATIVE_SPOUSE$
value <= -25
}
# They think you are a criminal
has_imprisonment_reason = $NON_RELATIVE_SPOUSE$
# Or a miscreant
faith = {
NOR = {
this = $NON_RELATIVE_SPOUSE$.faith
faith_hostility_level = {
target = $NON_RELATIVE_SPOUSE$.faith
value = 0 # Accepted
}
}
}
}
}
ep2_wedding.1220 = {
type = activity_event
title = ep2_wedding.1220.t
desc = {
desc = ep2_wedding.1220.desc
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:relative.highest_held_title_tier > root.highest_held_title_tier
scope:other_spouse.highest_held_title_tier > root.highest_held_title_tier
}
}
desc = ep2_wedding.1220.desc_marry_down
}
triggered_desc = {
trigger = {
scope:relative ?= {
house_has_feud_relation_with_trigger = { TARGET = root }
}
}
desc = ep2_wedding.1220.desc_feud
}
triggered_desc = {
trigger = {
scope:relative = {
OR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
opinion = {
target = root
value <= -25
}
has_imprisonment_reason = root
}
}
}
desc = ep2_wedding.1220.desc_despicable
}
triggered_desc = {
trigger = {
scope:relative.faith = {
NOR = {
this = root.faith
faith_hostility_level = {
target = root.faith
value = 0
}
}
}
}
desc = ep2_wedding.1220.desc_miscreant
}
desc = ep2_wedding.1220.desc_fallback
}
triggered_desc = {
trigger = {
has_activity_intent = diplomatic_intent
scope:relative != scope:diplo_target
}
desc = ep2_wedding.1220.desc_target
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = shame
}
center_portrait = {
trigger = {
scope:diplo_target ?= { this != scope:relative }
}
character = scope:diplo_target
animation = thinking
}
right_portrait = {
character = scope:relative
animation = anger
}
lower_right_portrait = scope:other_spouse
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
trigger_if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
scope:activity = {
any_attending_character = {
wedding_1220_valid_relative_trigger = {
RELATIVE_SPOUSE = scope:activity.special_guest:spouse_2
NON_RELATIVE_SPOUSE = scope:activity.special_guest:spouse_1
}
}
}
}
trigger_else = {
scope:activity = {
any_attending_character = {
wedding_1220_valid_relative_trigger = {
RELATIVE_SPOUSE = scope:activity.special_guest:spouse_1
NON_RELATIVE_SPOUSE = scope:activity.special_guest:spouse_2
}
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_activity_intent = diplomatic_intent
add = 2
}
modifier = {
has_activity_intent = banquet_mischief_intent
add = 1
}
}
immediate = {
add_character_flag = busy_in_ceremony_event
if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
scope:activity.special_guest:spouse_2 = { save_scope_as = other_spouse }
}
else = {
scope:activity.special_guest:spouse_1 = { save_scope_as = other_spouse }
}
scope:activity = {
random_attending_character = {
limit = {
wedding_1220_valid_relative_trigger = {
RELATIVE_SPOUSE = scope:other_spouse
NON_RELATIVE_SPOUSE = root
}
}
save_scope_as = relative
add_character_flag = busy_in_ceremony_event
}
}
if = {
limit = {
has_activity_intent = diplomatic_intent
}
intent_target = { save_scope_as = diplo_target }
}
}
# Option A: ignore
option = {
name = ep2_wedding.1220.a
add_prestige = minor_prestige_loss
scope:relative = {
add_opinion = {
target = root
modifier = weak_opinion
opinion = 15
}
}
stress_impact = {
lazy = minor_stress_impact_loss
calm = medium_stress_impact_loss
patient = medium_stress_impact_loss
humble = medium_stress_impact_loss
content = medium_stress_impact_loss
forgiving = major_stress_impact_loss
wrathful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
brave = medium_stress_impact_gain
trusting = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = -1
}
}
}
# Option B: react aggressively
option = {
name = ep2_wedding.1220.b
add_prestige = medium_prestige_gain
scope:relative = {
add_opinion = {
target = root
modifier = threatened_opinion
opinion = -15
}
}
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:relative }
}
progress_towards_rival_effect = {
REASON = rival_wedding_challenged_prejudices
CHARACTER = scope:relative
OPINION = 0
}
}
stress_impact = {
lazy = minor_stress_impact_gain
calm = medium_stress_impact_gain
patient = medium_stress_impact_gain
humble = medium_stress_impact_gain
craven = medium_stress_impact_gain
shy = medium_stress_impact_gain
paranoid = minor_stress_impact_loss
wrathful = medium_stress_impact_loss
brave = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
stubborn = medium_stress_impact_loss
vengeful = major_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 1
}
}
}
# Option C: diplomatic intent: if you handle them well, you can also impress your target (especially if they are the target)
option = {
name = ep2_wedding.1220.c
trigger = {
has_activity_intent = diplomatic_intent
}
flavor = ep2_wedding.1220.c.tt
custom_tooltip = available_because_intent_tt
duel = {
skill = diplomacy
target = scope:relative
50 = {
# Success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1220.c.success
send_interface_toast = {
title = ep2_wedding.1220.c.success.tt
left_icon = root
right_icon = scope:relative
scope:activity = {
add_activity_log_entry = {
key = wedding_proved_wrong_log
tags = { good }
score = 50
character = root
target = scope:relative
root = {
add_prestige = medium_prestige_gain
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:relative }
}
progress_towards_friend_effect = {
REASON = friend_wedding_not_so_bad
CHARACTER = scope:relative
OPINION = default_friend_opinion
}
}
}
scope:diplo_target ?= {
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 20
}
if = {
limit = {
this = scope:relative
root = {
can_add_hook = {
target = scope:relative
type = favor_hook
}
}
}
root = {
add_hook = {
target = scope:relative
type = favor_hook
}
}
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
calm = medium_stress_impact_loss
patient = medium_stress_impact_loss
forgiving = major_stress_impact_loss
}
}
}
50 = {
# Failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1220.c.failure
send_interface_toast = {
title = ep2_wedding.1220.c.failure.tt
left_icon = root
right_icon = scope:relative
add_prestige = minor_prestige_loss
if = {
limit = {
can_set_relation_rival_trigger = { CHARACTER = scope:relative }
}
progress_towards_rival_effect = {
REASON = rival_wedding_confirmed_prejudices
CHARACTER = scope:relative
OPINION = default_rival_opinion
}
}
stress_impact = {
base = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
wrathful = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
}
}
# Option D: mischief intent: mess with them
option = {
name = ep2_wedding.1220.d
trigger = {
has_activity_intent = banquet_mischief_intent
}
custom_tooltip = available_because_intent_tt
if = {
limit = {
has_lifestyle = intrigue_lifestyle
}
add_intrigue_lifestyle_xp = medium_lifestyle_xp
}
add_dread = minor_dread_gain
stress_impact = {
base = medium_stress_impact_loss
arrogant = major_stress_impact_loss
stubborn = major_stress_impact_loss
vengeful = major_stress_impact_loss
}
ai_chance = {
base = 200
}
}
after = {
remove_character_flag = busy_in_ceremony_event
scope:relative = { remove_character_flag = busy_in_ceremony_event }
}
}
# BANQUET EVENTS
##################################################
# A Kindred Spirit
# by Claudia Baldassi
# ep2_wedding.1040
##################################################
# You make a new friend
ep2_wedding.1040 = {
type = activity_event
title = ep2_wedding.1040.t
desc = ep2_wedding.1040.desc
theme = wedding_banquet_activity
center_portrait = {
character = root
animation = laugh
}
right_portrait = {
character = scope:new_friend
animation = personality_content
}
cooldown = { years = 1 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
any_attending_character = {
OR = {
has_relation_potential_friend = root
AND = {
has_any_good_relationship_with_root_trigger = no
has_any_bad_relationship_with_root_trigger = no
}
}
is_ai = yes
is_adult = yes
NOT = { has_character_flag = busy_in_banquet_event }
}
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = yes
factor = 0.1
}
}
immediate = {
add_character_flag = busy_in_banquet_event
scope:activity = {
random_attending_character = {
limit = {
OR = {
has_relation_potential_friend = root
AND = {
has_any_good_relationship_with_root_trigger = no
has_any_bad_relationship_with_root_trigger = no
}
}
is_ai = yes
is_adult = yes
NOT = { has_character_flag = busy_in_banquet_event }
}
save_scope_as = new_friend
}
}
scope:new_friend = { add_character_flag = busy_in_banquet_event }
}
#Option A:
option = {
name = ep2_wedding.1040.a
scope:activity = {
add_activity_log_entry = {
key = wedding_kindred_log
tags = { good }
score = 50
character = root
target = scope:new_friend
# Effect
root = {
set_relation_friend = { reason = friend_wedding_enjoyable_chat target = scope:new_friend }
reverse_add_opinion = {
target = scope:new_friend
modifier = friendliness_opinion
opinion = 20
}
}
}
}
stress_impact = {
shy = minor_stress_impact_gain
reclusive = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
trusting = medium_stress_impact_loss
gregarious = major_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = shy
add = -50
}
modifier = {
has_trait = reclusive
add = -75
}
modifier = {
has_trait = paranoid
add = -75
}
}
}
#Option B:
option = {
name = ep2_wedding.1040.b
reverse_add_opinion = {
target = scope:new_friend
modifier = unfriendly_opinion
opinion = -15
}
stress_impact = {
gregarious = medium_stress_impact_gain
reclusive = major_stress_impact_loss
paranoid = major_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = gregarious
add = -75
}
}
}
after = {
remove_character_flag = busy_in_banquet_event
scope:new_friend = { remove_character_flag = busy_in_banquet_event }
}
}
##################################################
# A Fiery Dance
# by Claudia Baldassi
# ep2_wedding.1050
##################################################
# Someone catches fire from the torches
scripted_trigger ep2_wedding_extra_victim_valid_trigger = {
is_ai = yes
is_adult = yes
NOR = {
this = root
this = scope:1050_victim
}
NOT = { has_character_flag = busy_in_banquet_event }
}
ep2_wedding.1050 = {
type = activity_event
title = ep2_wedding.1050.t
desc = ep2_wedding.1050.desc
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = fear
}
center_portrait = {
trigger = {
exists = scope:extra_victim_1
}
character = scope:extra_victim_1
animation = shock
}
right_portrait = {
character = scope:victim
animation = pain
}
lower_center_portrait = scope:other_victim
lower_right_portrait = scope:extra_victim_2
cooldown = { years = 15 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
NOT = {
has_variable = has_had_event_1050
}
}
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_good
}
}
scope:activity = {
any_attending_character = {
is_adult = yes
this != root
is_ai = yes
NOT = { has_character_flag = busy_in_banquet_event }
}
}
}
weight_multiplier = {
base = 1
modifier = {
is_ai = yes
factor = 0.1
}
}
immediate = {
scope:activity = {
set_variable = has_had_event_1050
}
scope:activity = {
random_attending_character = {
limit = {
is_adult = yes
this != root
is_ai = yes
NOT = { has_character_flag = busy_in_banquet_event }
}
save_scope_as = 1050_victim
increase_wounds_effect = { REASON = burned }
add_character_flag = busy_in_banquet_event
}
}
add_character_flag = busy_in_banquet_event
if = {
limit = {
scope:activity = {
any_attending_character = {
ep2_wedding_extra_victim_valid_trigger = yes
save_temporary_scope_as = extra_victim_1
}
}
scope:activity = {
any_attending_character = {
ep2_wedding_extra_victim_valid_trigger = yes
this != scope:extra_victim_1
}
}
}
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_extra_victim_valid_trigger = yes
}
save_scope_as = extra_victim_1
add_character_flag = busy_in_banquet_event
}
random_attending_character = {
limit = {
ep2_wedding_extra_victim_valid_trigger = yes
this != scope:extra_victim_1
}
save_scope_as = extra_victim_2
add_character_flag = busy_in_banquet_event
}
}
}
if = {
limit = {
scope:activity = {
any_attending_character = {
ep2_wedding_extra_victim_valid_trigger = yes
NOR = {
this = scope:extra_victim_1
this = scope:extra_victim_2
}
}
}
}
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_extra_victim_valid_trigger = yes
NOR = {
this = scope:extra_victim_1
this = scope:extra_victim_2
}
}
save_scope_as = other_victim
add_character_flag = busy_in_banquet_event
}
}
}
}
#Option A: try to save them
option = {
name = ep2_wedding.1050.a
duel = {
skill = prowess
value = decent_skill_rating
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1050.a.success
send_interface_toast = {
title = ep2_wedding.1050.a.success.tt
left_icon = scope:1050_victim
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_rescue_log
tags = { good }
score = 25
character = root
target = scope:1050_victim
# Effect
root = {
reverse_add_opinion = {
target = scope:1050_victim
modifier = grateful_opinion
opinion = 30
}
if = {
limit = {
can_add_hook = {
type = indebted_hook
target = scope:1050_victim
}
}
add_hook = {
type = indebted_hook
target = scope:1050_victim
}
}
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = scope:1050_victim
}
progress_towards_lover_effect = {
REASON = lover_wedding_saved_from_flames
CHARACTER = scope:1050_victim
OPINION = default_lover_opinion
}
}
else_if = {
limit = {
has_activity_intent = diplomatic_intent
intent_target = scope:1050_victim
}
create_alliance = {
target = scope:1050_victim
allied_through_owner = root
allied_through_target = scope:1050_victim
}
scope:1050_victim = {
add_opinion = {
target = root
modifier = event_negotiated_alliance_opinion
}
}
}
}
}
}
}
}
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1050.a.failure
send_interface_toast = {
title = ep2_wedding.1050.a.failure.tt
left_icon = scope:1050_victim
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_rescue_fail_log
tags = { bad }
score = 25
character = root
target = scope:1050_victim
# Effect
root = {
increase_wounds_effect = { REASON = burned }
scope:1050_victim = {
increase_wounds_effect = { REASON = burned }
}
}
}
}
}
}
}
stress_impact = {
craven = massive_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
has_trait = brave
add = 100
}
modifier = {
has_trait = craven
add = -100
}
}
}
#Option B: call for help
option = {
name = ep2_wedding.1050.b
random_list = {
50 = {
#Saved!
desc = ep2_wedding.1050.b.1
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
add = -25
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
add = 25
}
send_interface_toast = {
title = ep2_wedding.1050.b.1.tt
left_icon = scope:1050_victim
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_saved_log
tags = { good }
score = 25
character = scope:1050_victim
}
root = {
reverse_add_opinion = {
target = scope:1050_victim
modifier = grateful_opinion
opinion = 15
}
if = {
limit = {
can_add_hook = {
type = indebted_hook
target = scope:1050_victim
}
}
add_hook = {
type = indebted_hook
target = scope:1050_victim
}
}
}
}
}
}
50 = {
#Keeps burning!
desc = ep2_wedding.1050.b.2
send_interface_toast = {
title = ep2_wedding.1050.b.2.tt
left_icon = scope:1050_victim
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_saved_fail_log
tags = { bad }
score = 25
character = scope:1050_victim
# Effect
scope:1050_victim = {
increase_wounds_effect = { REASON = burned }
}
}
}
}
}
}
ai_chance = {
base = 50
}
}
#Option C: FIRE!
option = {
name = ep2_wedding.1050.c
trigger = {
exists = scope:extra_victim_1
exists = scope:extra_victim_2
}
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_disaster_log
tags = { bad }
score = 25
character = scope:1050_victim
# Effect
scope:extra_victim_1 = {
increase_wounds_effect = { REASON = burned }
}
scope:extra_victim_2 = {
increase_wounds_effect = { REASON = burned }
}
root = { add_dread = medium_dread_gain }
}
}
stress_impact = {
compassionate = major_stress_impact_gain
callous = medium_stress_impact_loss
vengeful = major_stress_impact_loss
sadistic = massive_stress_impact_loss
torturer = massive_stress_impact_loss
}
ai_chance = {
base = 30
modifier = {
has_trait = sadistic
add = 70
}
modifier = {
has_trait = callous
add = 20
}
modifier = {
has_trait = compassionate
add = -70
}
}
}
#Option D: panic
option = {
name = ep2_wedding.1050.d
trigger = { exists = scope:other_victim }
random = {
chance = 30
send_interface_toast = {
title = ep2_wedding.1050.d.tt.2
left_icon = scope:other_victim
scope:activity = {
add_activity_log_entry = {
key = wedding_dance_knocked_log
tags = { bad }
score = 25
character = root
target = scope:other_victim
# Effect
root = { custom_tooltip = ep2_wedding.1050.d.tt }
scope:other_victim = {
increase_wounds_effect = { REASON = burned }
}
}
}
}
}
stress_impact = {
brave = massive_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
has_trait = craven
add = 100
}
modifier = {
has_trait = brave
add = -100
}
}
}
after = {
remove_character_flag = busy_in_banquet_event
scope:1050_victim = { remove_character_flag = busy_in_banquet_event }
if = {
limit = { exists = scope:other_victim }
scope:other_victim = { remove_character_flag = busy_in_banquet_event }
}
if = {
limit = { exists = scope:extra_victim_1 }
scope:extra_victim_1 = { remove_character_flag = busy_in_banquet_event }
}
if = {
limit = { exists = scope:extra_victim_2 }
scope:extra_victim_2 = { remove_character_flag = busy_in_banquet_event }
}
}
}
##################################################
# An Exotic Show
# by Claudia Baldassi
# ep2_wedding.1070
##################################################
# Showing off exotic animals can go very well or very wrong
ep2_wedding.1070 = {
type = activity_event
title = ep2_wedding.1070.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
root = scope:host
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
desc = ep2_wedding.1070.desc_host
}
desc = ep2_wedding.1070.desc_guest
}
desc = ep2_wedding.1070.desc_mid
first_valid = {
triggered_desc = { #Everyone is impressed
trigger = {
has_character_flag = 1070_exotic_fiends_good
}
desc = ep2_wedding.1070.desc_good
}
desc = ep2_wedding.1070.desc_bad #The animals are out of control!
}
triggered_desc = {
trigger = {
exists = scope:1070_target
has_character_flag = 1070_exotic_fiends_bad
}
desc = ep2_wedding.1070.desc_bad_target
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_character_flag = 1070_exotic_fiends_bad
}
animation = shock
}
triggered_animation = {
trigger = {
has_character_flag = 1070_exotic_fiends_good
}
animation = personality_bold
}
}
right_portrait = {
trigger = {
exists = scope:1070_target
has_character_flag = 1070_exotic_fiends_bad
}
character = scope:1070_target
animation = fear
}
lower_right_portrait = scope:m_hunt
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_good
}
}
scope:activity = {
NOT = { has_variable = has_had_event_1070 }
}
scope:host = {
has_character_modifier = hunt_captive_beast_modifier
}
}
weight_multiplier = {
base = 1
modifier = {
scope:host = { has_trait = arrogant }
add = 1
}
modifier = {
scope:host = { has_trait = humble }
add = -1
}
modifier = {
is_ai = no
factor = 2
}
}
immediate = {
add_character_flag = busy_in_banquet_event
scope:activity = { set_variable = has_had_event_1070 }
scope:host = {
if = {
limit = {
employs_court_position = master_of_hunt_court_position
any_court_position_holder = {
type = master_of_hunt_court_position
is_ai = yes
is_adult = yes
involved_activity = root.involved_activity
NOT = { has_character_flag = busy_in_banquet_event }
}
}
random_court_position_holder = {
type = master_of_hunt_court_position
limit = {
is_ai = yes
is_adult = yes
involved_activity = root.involved_activity
NOT = { has_character_flag = busy_in_banquet_event }
}
save_scope_as = m_hunt
add_character_flag = busy_in_banquet_event
}
}
}
if = {
limit = {
OR = {
has_activity_intent = murder_attendee_intent
has_activity_intent = woo_attendee_intent
has_activity_intent = diplomatic_intent
}
}
intent_target = { save_scope_as = 1070_target }
}
random_list = {
50 = { # all goes well
modifier = {
scope:host = {
employs_court_position = master_of_hunt_court_position
}
add = 15
}
modifier = {
exists = scope:m_hunt
add = 15
}
modifier = {
scope:host = {
has_trait = lifestyle_hunter
}
add = 25
}
modifier = {
scope:host = {
has_trait = diligent
}
add = 20
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_good
}
}
add = 20
}
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_normal
}
}
add = 5
}
add_character_flag = 1070_exotic_fiends_good
}
50 = { # a beast escapes!
modifier = {
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
add = 30
}
modifier = {
scope:host = {
has_trait = arrogant
}
add = 20
}
modifier = {
scope:host = {
has_trait = lazy
}
add = 15
}
add_character_flag = 1070_exotic_fiends_bad
if = {
limit = {
this = scope:host
}
stress_impact = {
arrogant = major_stress_impact_gain
ambitious = major_stress_impact_gain
diligent = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
}
}
}
}
#Option A: a worthy show
option = {
name = ep2_wedding.1070.a
trigger = { has_character_flag = 1070_exotic_fiends_good }
scope:activity = {
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_good_entertainment_opinion
}
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_entertain_log
tags = { good }
score = 20
character = scope:host
# Effect
scope:host = { add_prestige = medium_prestige_gain }
}
}
stress_impact = {
base = minor_stress_impact_loss
}
ai_chance = {
base = 100
}
}
#Option E: I can do better
option = {
name = ep2_wedding.1070.e
flavor = ep2_wedding.1070.e.tt
trigger = {
has_character_flag = 1070_exotic_fiends_good
}
scope:activity = {
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_good_entertainment_opinion
}
}
}
duel = {
skill = prowess
value = high_skill_rating
# Success: you make the beasts do your bid!
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1070.e.success
send_interface_toast = {
title = ep2_wedding.1070.e.tt.success
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_charm_success_log
tags = { good }
score = 20
character = root
# Effect
root = {
add_character_modifier = {
modifier = ep2_beastmaster_modifier
years = 20
}
add_prestige = medium_prestige_gain
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != root
}
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 25
}
}
}
root = {
stress_impact = {
base = minor_stress_impact_loss
brave = medium_stress_impact_loss
gregarious = medium_stress_impact_loss
arrogant = major_stress_impact_loss
ambitious = major_stress_impact_loss
}
}
}
}
# Failure: the beasts disagree with you
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1070.e.failure
send_interface_toast = {
title = ep2_wedding.1070.e.tt.failure
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_charm_failure_log
tags = { bad }
score = 20
character = root
# Effect
root = {
random_list = {
20 = {
custom_tooltip = ep2_wedding.1070.e.tt.failure_1
scope:activity = {
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != root
}
add_opinion = {
target = root
modifier = laughingstock_opinion
}
}
}
}
50 = {
increase_wounds_effect = { REASON = wild_animal }
}
30 = {
trigger = {
NOT = { has_trait = maimed }
}
apply_maimed_trait_and_modifier_effect = yes
}
30 = {
trigger = {
NOT = { has_trait = one_eyed }
}
add_trait = one_eyed
}
30 = {
trigger = {
NOT = { has_trait = one_legged }
}
add_trait = one_legged
}
}
}
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
stubborn = medium_stress_impact_gain
lazy = major_stress_impact_gain
content = major_stress_impact_gain
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 75
}
modifier = {
has_trait = ambitious
add = 50
}
modifier = {
has_trait = stubborn
add = 50
}
modifier = {
has_trait = lazy
add = -75
}
modifier = {
has_trait = content
add = -50
}
}
}
#Option B: jump in to save the day!
option = {
name = ep2_wedding.1070.b
trigger = {
has_character_flag = 1070_exotic_fiends_bad
NOT = { exists = scope:1070_target }
}
duel = {
skill = prowess
value = high_skill_rating
# Success: you calm down the beasts
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1070.b.success
send_interface_toast = {
title = ep2_wedding.1070.b.tt.success
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_calmed_success_log
tags = { good }
score = 20
character = root
# Effect
root = {
add_character_modifier = {
modifier = ep2_beastmaster_modifier
years = 20
}
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != root
}
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 25
}
}
}
root = {
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
lifestyle_hunter = medium_stress_impact_loss
brave = major_stress_impact_loss
gregarious = major_stress_impact_loss
arrogant = major_stress_impact_loss
}
}
}
}
# Failure: the beasts disagree with you
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1070.b.failure
send_interface_toast = {
title = ep2_wedding.1070.e.tt.failure
left_icon = root
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_calmed_failure_log
tags = { good }
score = 20
character = root
# Effect
root = {
random_list = {
50 = {
increase_wounds_effect = { REASON = wild_animal }
}
30 = {
trigger = {
NOT = { has_trait = maimed }
}
apply_maimed_trait_and_modifier_effect = yes
}
30 = {
trigger = {
NOT = { has_trait = one_eyed }
}
add_trait = one_eyed
}
30 = {
trigger = {
NOT = { has_trait = one_legged }
}
add_trait = one_legged
}
}
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
lifestyle_hunter = medium_stress_impact_gain
lazy = medium_stress_impact_gain
craven = major_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = brave
add = 75
}
modifier = {
has_trait = compassionate
add = 25
}
modifier = {
has_trait = lifestyle_hunter
add = 25
}
modifier = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 50 }
add = 25
}
modifier = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 100 }
add = 25
}
modifier = {
has_trait = lazy
add = -75
}
modifier = {
has_trait = craven
add = -100
}
}
}
#Option G: jump in to save the intent target!
option = {
name = ep2_wedding.1070.g
trigger = {
has_character_flag = 1070_exotic_fiends_bad
exists = scope:1070_target
NOT = { has_activity_intent = murder_attendee_intent }
}
duel = {
skill = prowess
value = high_skill_rating
# Success: you calm down the beasts
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1070.g.success
send_interface_toast = {
title = ep2_wedding.1070.g.tt.success
left_icon = scope:1070_target
set_relation_friend = { reason = friend_wedding_saved_from_beasts target = scope:1070_target }
if = {
limit = { has_activity_intent = woo_attendee_intent }
progress_towards_lover_effect = {
REASON = friend_wedding_saved_from_beasts
CHARACTER = scope:1070_target
OPINION = default_lover_opinion
}
}
else_if = {
limit = {
has_activity_intent = diplomatic_intent
intent_target = scope:1070_target
}
add_hook = {
type = indebted_hook
target = scope:1070_target
}
create_alliance = {
target = scope:1070_target
allied_through_owner = root
allied_through_target = scope:1070_target
}
scope:1070_target = {
add_opinion = {
target = root
modifier = event_negotiated_alliance_opinion
}
}
complete_activity_intent = yes
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_rescue_success_log
tags = { good }
score = 20
character = root
target = scope:1070_target
# Effect
root = {
add_character_modifier = {
modifier = ep2_beastmaster_modifier
years = 20
}
}
scope:1070_target = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 40
}
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
NOR = {
this = root
this = scope:1070_target
}
}
add_opinion = {
target = root
modifier = impressed_opinion
opinion = 25
}
}
}
root = {
stress_impact = {
base = minor_stress_impact_loss
ambitious = medium_stress_impact_loss
lifestyle_hunter = medium_stress_impact_loss
brave = major_stress_impact_loss
gregarious = major_stress_impact_loss
arrogant = major_stress_impact_loss
}
}
}
}
# Failure: the beasts disagree with you
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1070.g.failure
send_interface_toast = {
title = ep2_wedding.1070.g.tt.failure
left_icon = root
right_icon = scope:1070_target
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_rescue_failure_log
tags = { bad }
score = 20
character = root
target = scope:1070_target
# Effect
root = {
random_list = {
50 = {
increase_wounds_effect = { REASON = wild_animal }
}
30 = {
trigger = {
NOT = { has_trait = maimed }
}
apply_maimed_trait_and_modifier_effect = yes
}
30 = {
trigger = {
NOT = { has_trait = one_eyed }
}
add_trait = one_eyed
}
30 = {
trigger = {
NOT = { has_trait = one_legged }
}
add_trait = one_legged
}
}
}
scope:1070_target = { increase_wounds_effect = { REASON = wild_animal } }
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
lifestyle_hunter = medium_stress_impact_gain
lazy = medium_stress_impact_gain
craven = major_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = brave
add = 75
}
modifier = {
has_trait = compassionate
add = 25
}
modifier = {
has_trait = lifestyle_hunter
add = 25
}
modifier = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 50 }
add = 25
}
modifier = {
hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 100 }
add = 25
}
modifier = {
has_trait = lazy
add = -75
}
modifier = {
has_trait = craven
add = -100
}
}
}
#Option H: let the beasts kill your target
option = {
name = ep2_wedding.1070.h
trigger = {
has_character_flag = 1070_exotic_fiends_bad
exists = scope:1070_target
has_activity_intent = murder_attendee_intent
}
custom_tooltip = available_because_intent_tt
scope:1070_target = {
duel = {
skill = prowess
value = high_skill_rating
# Success: they survive
40 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1070.h.survive
root = {
send_interface_toast = {
title = ep2_wedding.1070.h.tt.survive
left_icon = scope:1070_target
stress_impact = {
ambitious = minor_stress_impact_gain
callous = minor_stress_impact_gain
deceitful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
sadistic = major_stress_impact_gain
}
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_murder_survive_log
tags = { intent murder }
score = 50
character = scope:1070_target
}
}
}
# Failure: the beasts kill them
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1070.h.kill
root = {
complete_activity_intent = yes
send_interface_toast = {
title = ep2_wedding.1070.h.tt.kill
left_icon = scope:1070_target
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_murder_kill_log
tags = { intent murder }
score = 50
character = scope:1070_target
# Effect
scope:1070_target = {
death = { death_reason = death_wild_animal }
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
}
stress_impact = {
compassionate = major_stress_impact_gain
ambitious = minor_stress_impact_loss
callous = minor_stress_impact_loss
deceitful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
vengeful = medium_stress_impact_loss
sadistic = major_stress_impact_loss
}
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = compassionate
add = -75
}
modifier = {
has_trait = lazy
add = 25
}
modifier = {
has_trait = craven
add = 100
}
modifier = {
has_trait = deceitful
add = 100
}
}
}
#Option C: call master of hunt
option = {
name = ep2_wedding.1070.c
trigger = {
has_character_flag = 1070_exotic_fiends_bad
exists = scope:m_hunt
this = scope:host
}
duel = {
skill = prowess
value = average_skill_rating
50 = {
#Master of hunt knows what they are doing
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1070.c.success
send_interface_toast = {
title = ep2_wedding.1070.c.tt.success
left_icon = scope:m_hunt
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_calmed_success_log
tags = { good }
score = 20
character = scope:m_hunt
# Effect
scope:m_hunt = {
add_character_modifier = {
modifier = ep2_beastmaster_modifier
years = 20
}
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_good_entertainment_opinion
}
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
}
50 = {
#Why are you paying this guy again??
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1070.c.failure
send_interface_toast = {
title = ep2_wedding.1070.c.tt.failure
left_icon = scope:m_hunt
scope:host = {
remove_character_modifier = hunt_captive_beast_modifier
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_master_failure_log
tags = { bad }
score = 20
character = scope:m_hunt
# Effect
scope:m_hunt = { increase_wounds_effect = { REASON = wild_animal } }
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
}
}
#Option F: GUARDS!!
option = {
name = ep2_wedding.1070.f
trigger = {
has_character_flag = 1070_exotic_fiends_bad
this = scope:host
NOT = { exists = scope:m_hunt }
}
scope:host = {
remove_character_modifier = hunt_captive_beast_modifier
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_guards_log
tags = { bad }
score = 10
character = scope:host
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
}
ai_chance = {
base = 100
}
}
#Option D: run and hide!
option = {
name = ep2_wedding.1070.d
flavor = ep2_wedding.1070.d.tt
trigger = {
has_character_flag = 1070_exotic_fiends_bad
this != scope:host
}
scope:activity = {
add_activity_log_entry = {
key = wedding_beasts_fled_log
tags = { bad }
score = 10
character = scope:host
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != scope:host
}
add_opinion = {
target = scope:host
modifier = wedding_scary_entertainment_opinion
}
}
every_attending_character = {
custom = custom.every_attending_character
limit = {
this != root
}
add_opinion = {
target = root
modifier = coward_opinion
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = callous
add = 50
}
modifier = {
has_trait = shy
add = 75
}
modifier = {
has_trait = reclusive
add = 150
}
}
}
after = {
remove_character_flag = busy_in_banquet_event
if = {
limit = {
exists = scope:m_hunt
}
scope:m_hunt = { remove_character_flag = busy_in_banquet_event }
}
}
}
##################################################
# A Match Made In... ?
# by Claudia Baldassi
# ep2_wedding.1090
##################################################
# Matchmaking Intent: push a couple together
scripted_trigger ep2_wedding_1090_good_match_trigger = {
is_ai = yes
location = root.location
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
exists = betrothed
AND = {
exists = root.intent_target.var:wedding_no_match
this = root.intent_target.var:wedding_no_match
}
has_character_flag = busy_in_banquet_event
is_close_or_extended_family_of = root.intent_target
}
trigger_if = {
limit = {
is_female = yes
}
age < marriage_female_fertility_cutoff_age_value
}
}
ep2_wedding.1090 = {
type = activity_event
title = ep2_wedding.1090.t
desc = {
desc = ep2_wedding.1090.desc
first_valid = {
triggered_desc = {
trigger = {
intent_target = { has_variable = wedding_good_match }
}
desc = ep2_wedding.1090.desc_already_matched
}
desc = ep2_wedding.1090.desc_new_match
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = schadenfreude
}
center_portrait = {
character = scope:1090_target
animation = flirtation_left
}
right_portrait = {
character = scope:1090_match
animation = flirtation
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
has_activity_intent = matchmaking_intent
intent_target.location = root.location
location = scope:activity.activity_location
intent_target = { NOT = { has_character_flag = busy_in_banquet_event } }
OR = {
intent_target = { has_variable = wedding_good_match }
scope:activity = {
any_attending_character = {
ep2_wedding_1090_good_match_trigger = yes
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
intent_target = { has_variable = wedding_good_match }
add = 4
}
}
immediate = {
add_character_flag = busy_in_banquet_event
intent_target = {
save_scope_as = 1090_target
add_character_flag = busy_in_banquet_event
}
if = {
limit = {
scope:1090_target = { has_variable = wedding_good_match }
}
scope:1090_target.var:wedding_good_match = {
save_scope_as = 1090_match
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_1090_good_match_trigger = yes
}
save_scope_as = 1090_match
}
}
}
scope:1090_match = { add_character_flag = busy_in_banquet_event }
}
#Option A: push them together
option = {
name = ep2_wedding.1090.a
scope:1090_target = {
duel = {
skill = diplomacy
target = scope:1090_match
50 = { # success - get a betrothal
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.1090.a.success
root = {
send_interface_toast = {
title = ep2_wedding.1080.a.success.tt
left_icon = scope:1090_target
right_icon = scope:1090_match
scope:activity = {
add_activity_log_entry = {
key = wedding_matchmade_success_log
tags = { betrothal }
score = 50
character = scope:1090_target
target = scope:1090_match
# Effect
scope:1090_target = { create_betrothal = scope:1090_match }
scope:1090_match = {
add_opinion = {
target = scope:1090_target
modifier = impressed_opinion
opinion = 20
}
if = {
limit = {
scope:1090_match = { can_set_relation_lover_trigger = { CHARACTER = scope:1090_target } }
}
random = {
chance = 10
scope:1090_match = {
set_relation_lover = { reason = lover_wedding_matchmaking target = scope:1090_target }
}
}
}
}
root = { add_prestige = minor_prestige_gain }
}
}
}
if = {
limit = { has_activity_intent = matchmaking_intent }
complete_activity_intent = yes
}
}
}
50 = { # failure - you'll have to start again with someone else
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.1090.a.failure
send_interface_toast = {
title = ep2_wedding.1080.a.failure.tt
left_icon = scope:1090_target
right_icon = scope:1090_match
scope:activity = {
add_activity_log_entry = {
key = wedding_matchmade_failure_log
tags = { betrothal }
score = 50
character = scope:1090_target
target = scope:1090_match
}
}
stress_impact = {
base = minor_stress_impact_gain
}
}
scope:1090_target = {
set_variable = {
name = wedding_no_match
value = scope:1090_match
}
}
}
}
}
ai_chance = {
base = 200
}
}
#Option B: no deal
option = {
name = ep2_wedding.1090.b
scope:1090_target = {
set_variable = {
name = wedding_no_match
value = scope:1090_match
}
}
scope:1090_target = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -15
}
}
ai_chance = {
base = 100
modifier = {
has_trait = fickle
add = 25
}
}
}
after = {
remove_character_flag = busy_in_banquet_event
scope:1090_match = { remove_character_flag = busy_in_banquet_event }
scope:1090_target = { remove_character_flag = busy_in_banquet_event }
}
}
# WEDDING NIGHT EVENTS
##################################################
# That Cursed Table
# by Claudia Baldassi
# ep2_wedding.1060
##################################################
# Inspired by Matilda of Tuscany's second wedding: a younger/meeker husband is too intimidated
ep2_wedding.1060 = {
type = activity_event
title = ep2_wedding.1060.t
desc = ep2_wedding.1060.desc
theme = wedding_night_activity
left_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:spouse_2
animation = shame
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity.special_guest:spouse_2 = {
is_ai = yes
is_male = yes
NOT = { has_character_flag = busy_in_wnight_event }
}
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_1 = {
NOT = { has_relation_lover = scope:activity.special_guest:spouse_2 }
}
OR = {
# is weaker
scope:activity.special_guest:spouse_1 = {
tier_difference = {
target = scope:activity.special_guest:spouse_2
value >= 2
}
}
# is younger
scope:activity.special_guest:spouse_2.age <= scope:activity.special_guest:spouse_1.age_minus_10
# has "difficulties"
scope:activity.special_guest:spouse_2 = {
OR = {
fertility <= low_fertility
has_trait = infertile
NOT = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_1 }
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:activity.special_guest:spouse_1 = {
tier_difference = {
target = scope:activity.special_guest:spouse_2
value > 2
}
}
add = 2
}
modifier = {
scope:activity.special_guest:spouse_2.age <= scope:activity.special_guest:spouse_1.age_minus_25
add = 3
}
modifier = {
scope:activity.special_guest:spouse_2 = {
NOT = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_1 }
}
add = 3
}
}
immediate = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = spouse_1
add_character_flag = busy_in_wnight_event
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = spouse_2
add_character_flag = busy_in_wnight_event
}
}
#Option A: *Fine* - triggers follow up
option = {
name = ep2_wedding.1060.a
flavor = ep2_wedding.1060.a.tt
trigger_event = {
id = ep2_wedding.1061
days = 3
}
stress_impact = {
base = minor_stress_impact_gain
compassionate = medium_stress_impact_gain
patient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = impatient
add = 75
}
modifier = {
has_trait = lustful
add = 75
}
modifier = {
has_trait = arrogant
add = 75
}
}
}
#Option B: be accepting
option = {
name = ep2_wedding.1060.b
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:spouse_2
}
if = {
limit = {
can_set_relation_soulmate_trigger = { CHARACTER = scope:spouse_2 }
}
random = {
chance = 5
set_relation_soulmate = { reason = soulmate_wedding_accepting_partner target = scope:spouse_2 }
# Achievements
player_succeeded_at_a_thousand_and_one_nights_achievement_effect = yes
}
}
scope:spouse_1 = { remove_character_flag = busy_in_wnight_event }
scope:spouse_2 = { remove_character_flag = busy_in_wnight_event }
stress_impact = {
impatient = medium_stress_impact_gain
lustful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
compassionate = medium_stress_impact_loss
patient = medium_stress_impact_loss
humble = medium_stress_impact_loss
chaste = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = compassionate
add = 75
}
modifier = {
has_trait = patient
add = 75
}
modifier = {
has_trait = chaste
add = 75
}
}
}
}
# Follow up event: you have emptied the room except for a bare table - spouse reaction
ep2_wedding.1061 = {
type = activity_event
title = ep2_wedding.1060.t
desc = {
desc = ep2_wedding.1061.desc
first_valid = {
triggered_desc = {
trigger = {
scope:spouse_2 = { has_character_flag = 1061_success }
}
desc = ep2_wedding.1061.desc_1 #It goes well
}
desc = ep2_wedding.1061.desc_2 #Still nothing
}
}
theme = wedding_night_activity
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:spouse_2
animation = shame
}
trigger = {
exists = scope:activity
}
immediate = {
random_list = {
30 = {
# he gets over it
modifier = {
scope:spouse_2 = {
NOT = { has_trait = impotent }
}
add = 10
}
modifier = {
scope:spouse_2 = {
NOT = { fertility <= low_fertility }
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = arrogant
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = lustful
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = brave
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = gregarious
}
add = 10
}
modifier = {
scope:spouse_2 = {
NOT = { is_attracted_to_gender_of = scope:spouse_1 }
}
factor = 0
}
scope:spouse_2 = { add_character_flag = 1061_success }
}
70 = {
#he really doesn't get over it
modifier = {
scope:spouse_2 = {
has_trait = impotent
}
add = 30
}
modifier = {
scope:spouse_2 = {
fertility <= low_fertility
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = shy
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = chaste
}
add = 20
}
scope:spouse_2 = { add_character_flag = 1061_not_success }
}
}
add_character_flag = is_naked
}
#Option A: All good then!
option = {
name = ep2_wedding.1061.a
trigger = {
scope:spouse_2 = { has_character_flag = 1061_success }
}
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_challenging_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_challenging_spouse_opinion
}
}
scope:spouse_2 = {
add_character_modifier = {
modifier = wedding_nagging_spouse_modifier
years = 10
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:spouse_2
}
stress_impact = {
base = minor_stress_impact_loss
lustful = medium_stress_impact_loss
}
}
#Option B: kick them out and denounce them!
option = {
name = ep2_wedding.1061.b
trigger = {
scope:spouse_2 = { has_character_flag = 1061_not_success }
}
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_cruel_spouse_opinion
}
add_character_modifier = {
modifier = wedding_accused_impotency_modifier
years = 10
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_very_bad_fertility = scope:spouse_1
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_useless_spouse_opinion
}
}
stress_impact = {
calm = minor_stress_impact_gain
patient = medium_stress_impact_gain
chaste = medium_stress_impact_gain
compassionate = major_stress_impact_gain
vengeful = minor_stress_impact_loss
callous = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 30
}
modifier = {
has_trait = callous
add = 50
}
modifier = {
has_trait = sadistic
add = 30
}
modifier = {
has_trait = lustful
add = 50
}
modifier = {
has_trait = wrathful
add = 50
}
modifier = {
has_trait = impatient
add = 50
}
}
}
#Option C: be patient
option = {
name = ep2_wedding.1061.c
trigger = {
scope:spouse_2 = { has_character_flag = 1061_not_success }
}
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:spouse_2
}
stress_impact = {
arrogant = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
lustful = medium_stress_impact_gain
wrathful = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
has_trait = calm
add = 30
}
modifier = {
has_trait = patient
add = 50
}
modifier = {
has_trait = compassionate
add = 75
}
}
}
after = {
if = {
limit = {
scope:spouse_2 = { has_character_flag = 1061_success }
}
scope:spouse_2 = { remove_character_flag = 1061_success }
}
else_if = {
limit = {
scope:spouse_2 = { has_character_flag = 1061_not_success }
}
scope:spouse_2 = { remove_character_flag = 1061_not_success }
}
scope:spouse_1 = { remove_character_flag = busy_in_wnight_event }
scope:spouse_2 = { remove_character_flag = busy_in_wnight_event }
remove_character_flag = is_naked
}
}
# Inverted event: it's you who have problems - spouse's reaction
ep2_wedding.1065 = {
type = activity_event
title = ep2_wedding.1060.t
desc = ep2_wedding.1065.desc
theme = wedding_night_activity
left_portrait = {
character = root
animation = shame
}
right_portrait = {
character = scope:spouse_2
animation = disgust
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity.special_guest:spouse_1 = { is_male = yes }
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_1 = {
NOT = { has_relation_lover = scope:activity.special_guest:spouse_2 }
}
scope:activity.special_guest:spouse_2 = {
is_ai = yes
NOT = { has_character_flag = busy_in_wnight_event }
}
OR = {
# is weaker
scope:activity.special_guest:spouse_2 = {
tier_difference = {
target = root
value >= 2
}
}
# is younger
age <= scope:activity.special_guest:spouse_2.age_minus_10
# has difficulties
fertility <= low_fertility
has_trait = infertile
NOT = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_2 }
}
}
weight_multiplier = {
base = 1
modifier = {
scope:activity.special_guest:spouse_2 = {
tier_difference = {
target = root
value > 2
}
}
add = 2
}
modifier = {
age <= scope:activity.special_guest:spouse_2.age_minus_25
add = 3
}
modifier = {
NOT = { is_attracted_to_gender_of = scope:activity.special_guest:spouse_2 }
add = 3
}
}
immediate = {
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
scope:spouse_1 = { add_character_flag = busy_in_wnight_event }
scope:spouse_2 = { add_character_flag = busy_in_wnight_event }
}
#Option A: It's a curse!
option = {
name = ep2_wedding.1065.a
flavor = ep2_wedding.1065.a.tt
trigger_event = {
id = ep2_wedding.1066
days = 3
}
stress_impact = {
honest = medium_stress_impact_gain
lustful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
deceitful = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = deceitful
add = 50
}
modifier = {
has_trait = arrogant
add = 50
}
modifier = {
has_trait = lustful
add = 50
}
modifier = {
has_character_modifier = bp1_superstition_modifier
add = 50
}
}
}
#Option B: Sorry...
option = {
name = ep2_wedding.1065.b
random_list = {
50 = { #they are understanding
modifier = {
scope:spouse_2 = {
has_trait = compassionate
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = calm
}
add = 10
}
modifier = {
scope:spouse_2 = {
has_trait = patient
}
add = 20
}
send_interface_toast = {
title = ep2_wedding.1065.b1
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:spouse_2
}
}
}
50 = { #they are not
modifier = {
scope:spouse_2 = {
has_trait = callous
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = lustful
}
add = 30
}
modifier = {
scope:spouse_2 = {
has_trait = impatient
}
add = 20
}
modifier = {
scope:spouse_2 = {
has_trait = wrathful
}
add = 10
}
send_interface_toast = {
title = ep2_wedding.1065.b2
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_useless_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_cruel_spouse_opinion
}
}
add_character_modifier = {
modifier = wedding_accused_impotency_modifier
years = 10
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_very_bad_fertility = scope:spouse_2
}
}
}
}
scope:spouse_1 = { remove_character_flag = busy_in_wnight_event }
scope:spouse_2 = { remove_character_flag = busy_in_wnight_event }
stress_impact = {
deceitful = medium_stress_impact_gain
honest = medium_stress_impact_loss
humble = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
has_trait = humble
add = 50
}
modifier = {
has_trait = honest
add = 50
}
}
}
}
# Follow up event: your spouse has emptied the room except for a bare table
ep2_wedding.1066 = {
type = activity_event
title = ep2_wedding.1060.t
desc = {
desc = ep2_wedding.1066.desc
first_valid = {
triggered_desc = {
trigger = {
has_character_flag = 1066_success
}
desc = ep2_wedding.1066.desc_1 #It goes well
}
desc = ep2_wedding.1066.desc_2 #Still nothing
}
}
theme = wedding_night_activity
left_portrait = {
character = root
animation = shame
}
right_portrait = {
character = scope:spouse_2
animation = anger
}
trigger = {
exists = scope:activity
}
immediate = {
random_list = {
30 = {
# you get over it
modifier = {
NOT = { has_trait = impotent }
add = 10
}
modifier = {
NOT = { fertility <= low_fertility }
add = 10
}
modifier = {
has_trait = arrogant
add = 10
}
modifier = {
has_trait = lustful
add = 20
}
modifier = {
has_trait = brave
add = 10
}
modifier = {
has_trait = gregarious
add = 10
}
modifier = {
NOT = { is_attracted_to_gender_of = scope:spouse_2 }
factor = 0
}
add_character_flag = 1066_success
}
70 = {
#you really don't get over it
modifier = {
has_trait = impotent
add = 30
}
modifier = {
fertility <= low_fertility
add = 20
}
modifier = {
has_trait = shy
add = 20
}
modifier = {
has_trait = chaste
add = 20
}
add_character_flag = 1066_not_success
}
}
scope:spouse_2 = {
add_character_flag = is_naked
}
}
#Option A: I feel better
option = {
name = ep2_wedding.1066.a
trigger = {
has_character_flag = 1066_success
}
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_challenging_spouse_opinion
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:spouse_2
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_challenging_spouse_opinion
}
}
add_character_modifier = {
modifier = wedding_nagging_spouse_modifier
years = 10
}
stress_impact = {
base = minor_stress_impact_loss
lustful = medium_stress_impact_loss
}
}
#Option B: ...Still nothing
option = {
name = ep2_wedding.1066.b
trigger = {
has_character_flag = 1066_not_success
}
random_list = {
50 = { #hey don't take it well
modifier = {
scope:spouse_2 = { has_trait = arrogant }
add = 10
}
modifier = {
scope:spouse_2 = { has_trait = callous }
add = 20
}
modifier = {
scope:spouse_2 = { has_trait = sadistic }
add = 25
}
modifier = {
scope:spouse_2 = { has_trait = lustful }
add = 25
}
modifier = {
scope:spouse_2 = { has_trait = wrathful }
add = 25
}
modifier = {
scope:spouse_2 = { has_trait = impatient }
add = 25
}
send_interface_toast = {
title = ep2_wedding.1066.b_1
left_icon = scope:spouse_2
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_useless_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_cruel_spouse_opinion
}
}
add_character_modifier = {
modifier = wedding_accused_impotency_modifier
years = 10
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_very_bad_fertility = scope:spouse_2
}
stress_impact = {
base = minor_stress_impact_gain
}
}
}
50 = { #they take it well
modifier = {
scope:spouse_2 = { has_trait = calm }
add = 10
}
modifier = {
scope:spouse_2 = { has_trait = patient }
add = 25
}
modifier = {
scope:spouse_2 = { has_trait = compassionate }
add = 40
}
send_interface_toast = {
title = ep2_wedding.1066.b_2
left_icon = scope:spouse_2
scope:spouse_2 = {
add_opinion = {
target = root
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
is_ai = yes
}
add_opinion = {
target = scope:spouse_2
modifier = wedding_understanding_spouse_opinion
}
}
if = {
limit = {
scope:spouse_2 = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:spouse_2
}
stress_impact = {
base = minor_stress_impact_loss
}
}
}
}
}
after = {
if = {
limit = {
has_character_flag = 1066_success
}
remove_character_flag = 1066_success
}
else_if = {
limit = {
has_character_flag = 1066_not_success
}
remove_character_flag = 1066_not_success
}
scope:spouse_1 = { remove_character_flag = busy_in_wnight_event }
scope:spouse_2 = {
remove_character_flag = busy_in_wnight_event
remove_character_flag = is_naked
}
}
}
##################################################
# One More Goblet
# by Claudia Baldassi
# ep2_wedding.1110
##################################################
# Non-spouses: someone gets extremely drunk/doesn't want to leave
scripted_trigger ep2_wedding_1110_valid_drunk_trigger = {
is_adult = yes
is_ai = yes
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
this = scope:host
has_character_flag = busy_in_wnight_event
}
drinks_alcohol_trigger = yes
}
ep2_wedding.1110 = {
type = activity_event
title = ep2_wedding.1110.t
desc = {
desc = ep2_wedding.1110.desc_intro
desc = ep2_wedding.1110.desc
triggered_desc = {
trigger = {
root = scope:host
}
desc = ep2_wedding.1110.desc_host
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:1110_drunk
animation = wedding_drunk
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
NOR = {
scope:activity.special_guest:spouse_1 ?= root
scope:activity.special_guest:spouse_2 ?= root
}
scope:host ?= { #There must be alcohol at the party!
drinks_alcohol_trigger = yes
}
scope:activity ?= {
any_attending_character = {
ep2_wedding_1110_valid_drunk_trigger = yes
}
NOT = { has_variable = has_had_1110_event }
}
}
weight_multiplier = {
base = 1
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1110_valid_drunk_trigger = yes
has_trait = drunkard
}
}
add = 10
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1110_valid_drunk_trigger = yes
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
}
}
add = 3
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1110_valid_drunk_trigger = yes
has_trait = gregarious
}
}
add = 2
}
modifier = {
is_ai = yes
factor = 0.1
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_1110_valid_drunk_trigger = yes
has_trait = drunkard
}
alternative_limit = {
ep2_wedding_1110_valid_drunk_trigger = yes
has_trait = gregarious
}
alternative_limit = {
ep2_wedding_1110_valid_drunk_trigger = yes
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
}
alternative_limit = {
ep2_wedding_1110_valid_drunk_trigger = yes
}
save_scope_as = 1110_drunk
add_character_flag = busy_in_wnight_event
}
set_variable = has_had_1110_event
}
add_character_flag = busy_in_wnight_event
}
#Option B: Kick them out (host only)
option = {
name = ep2_wedding.1110.b
trigger = { root = scope:host }
flavor = ep2_wedding.1110.b.tt
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_eject_log
tags = { bad }
score = 25
character = root
target = scope:1110_drunk
# Effect
root = {
progress_towards_rival_effect = {
REASON = rival_kicked_out
CHARACTER = scope:1110_drunk
OPINION = -30
}
add_prestige = minor_prestige_gain
add_character_modifier = {
modifier = wedding_severe_host_modifier
years = 20
}
scope:1110_drunk = { remove_from_activity = scope:activity }
}
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
gregarious = minor_stress_impact_gain
patient = medium_stress_impact_gain
drunkard = major_stress_impact_gain
just = minor_stress_impact_loss
impatient = minor_stress_impact_loss
callous = minor_stress_impact_loss
temperate = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
has_trait = compassionate
add = -25
}
modifier = {
has_trait = patient
add = -50
}
modifier = {
has_trait = gregarious
add = -50
}
modifier = {
has_trait = temperate
add = 100
}
}
}
#Option C: If you can't fight them, join them!
option = {
name = ep2_wedding.1110.c
trigger = { drinks_alcohol_trigger = yes }
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_fool_log
tags = { bad }
score = 25
character = root
target = scope:1110_drunk
# Effect
root = {
progress_towards_friend_effect = {
REASON = friend_drinking_buddies
CHARACTER = scope:1110_drunk
OPINION = 10
}
if = {
limit = {
NOT = {
has_trait = drunkard
}
}
random = {
chance = 5
add_trait = drunkard
}
}
add_character_modifier = {
modifier = wedding_social_drinker_modifier
years = 20
}
}
}
}
stress_impact = {
base = minor_stress_impact_loss
gregarious = medium_stress_impact_loss
drunkard = major_stress_impact_loss
temperate = major_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
has_trait = drunkard
add = 200
}
modifier = {
has_trait = gregarious
add = 75
}
modifier = {
has_trait = temperate
add = -75
}
}
}
#Option A: Judge them hard
option = {
name = ep2_wedding.1110.a
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_refusal_log
tags = { bad }
score = 25
character = scope:1110_drunk
# Effect
root = {
reverse_add_opinion = {
target = scope:1110_drunk
modifier = annoyed_opinion
opinion = -15
}
}
}
}
ai_chance = {
base = 100
modifier = {
has_trait = temperate
add = 50
}
ai_value_modifier = {
ai_energy = -0.5
}
}
}
after = {
remove_character_flag = busy_in_wnight_event
scope:1110_drunk = { remove_character_flag = busy_in_wnight_event }
}
}
##################################################
# One More Goblet
# by Claudia Baldassi
# ep2_wedding.1111
##################################################
# Non-spouses: you get extremely drunk/don't want to leave
scripted_trigger ep2_wedding_1111_valid_drunk_trigger = {
is_adult = yes
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
has_character_flag = busy_in_wnight_event
}
drinks_alcohol_trigger = yes
}
ep2_wedding.1111 = {
type = activity_event
title = ep2_wedding.1110.t
desc = {
desc = ep2_wedding.1110.desc_intro
desc = ep2_wedding.1111.desc
triggered_desc = {
trigger = {
root = scope:host
}
desc = ep2_wedding.1111.desc_host
}
desc = ep2_wedding.1111.desc_conclusion
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = wedding_drunk
}
right_portrait = {
character = scope:1111_other
animation = disgust
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
ep2_wedding_1111_valid_drunk_trigger = yes
scope:host = { #There must be alcohol at the party!
drinks_alcohol_trigger = yes
}
scope:activity = {
NOT = { has_variable = has_had_1110_event }
}
NOR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
trigger_if = {
limit = {
OR = {
this = scope:host
scope:host = scope:activity.special_guest:spouse_1
scope:host = scope:activity.special_guest:spouse_2
}
}
scope:activity = {
any_attending_character = {
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
is_adult = yes
is_ai = yes
NOT = { has_character_flag = busy_in_wnight_event }
}
}
}
}
weight_multiplier = {
base = 0.5
modifier = {
has_trait = drunkard
add = 10
}
modifier = {
has_trait = gregarious
add = 2
}
modifier = {
is_ai = yes
factor = 0.1
}
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
add = 5
}
}
immediate = {
add_character_flag = busy_in_wnight_event
scope:activity = {
set_variable = has_had_1110_event
}
if = {
limit = {
NOR = {
this = scope:host
scope:host = {
OR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
}
}
scope:host = {
add_character_flag = busy_in_wnight_event
save_scope_as = 1111_other
}
}
else = {
scope:activity = {
random_attending_character = {
limit = {
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
is_adult = yes
is_ai = yes
NOT = { has_character_flag = busy_in_wnight_event }
}
save_scope_as = 1111_other
add_character_flag = busy_in_wnight_event
}
}
}
}
#Option B: not sorry
option = {
name = ep2_wedding.1111.b
add_character_modifier = {
modifier = wedding_social_drinker_modifier
years = 20
}
random_list = {
30 = { #join me!
trigger = {
scope:1111_other = { drinks_alcohol_trigger = yes }
}
modifier = {
scope:1111_other = { has_trait = drunkard }
add = 200
}
modifier = {
scope:1111_other = { has_trait = gregarious }
add = 70
}
modifier = {
scope:1111_other = { has_trait = wrathful }
add = -50
}
desc = ep2_wedding.1111.b.1
send_interface_toast = {
title = ep2_wedding.1111.b.1.tt
left_icon = scope:1111_other
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_fool_log
tags = { bad }
score = 25
character = root
target = scope:1111_other
# Effect
root = {
progress_towards_friend_effect = {
REASON = friend_drinking_buddies
CHARACTER = scope:1111_other
OPINION = 10
}
}
}
}
}
}
70 = { #you get kicked out!
trigger = {
scope:1111_other = scope:host
}
modifier = {
scope:1111_other = { has_trait = patient }
add = -30
}
modifier = {
scope:1111_other = { has_trait = compassionate }
add = -25
}
modifier = {
scope:1111_other = { has_trait = forgiving }
add = -30
}
modifier = {
scope:1111_other = { has_trait = wrathful }
add = 50
}
desc = ep2_wedding.1111.b.2
send_interface_toast = {
title = ep2_wedding.1111.b.2.tt
left_icon = scope:1111_other
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_eject_log
tags = { bad }
score = 10
character = scope:1111_other
target = root
#Effect
root = { remove_from_activity = scope:activity }
scope:1111_other ={
progress_towards_rival_effect = {
REASON = rival_kicked_out
CHARACTER = root
OPINION = -30
}
}
}
}
}
}
50 = { #you get judged - harshly
trigger = {
scope:1111_other != scope:host
}
desc = ep2_wedding.1111.b.3
send_interface_toast = {
title = ep2_wedding.1111.b.3.tt
left_icon = scope:1111_other
reverse_add_opinion = {
target = scope:1111_other
modifier = annoyed_opinion
opinion = -20
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_reprimand_log
tags = { bad }
score = 10
character = root
}
}
}
}
if = {
limit = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else = {
stress_impact = {
humble = medium_stress_impact_gain
temperate = major_stress_impact_gain
}
}
ai_chance = {
base = 100
modifier = {
has_trait = arrogant
add = 75
}
modifier = {
has_trait = drunkard
add = 75
}
modifier = {
has_trait = humble
add = -50
}
modifier = {
has_trait = temperate
add = -75
}
modifier = {
OR = {
has_activity_intent = reduce_stress_intent
has_activity_intent = banquet_mischief_intent
}
opinion = {
target = scope:host
value < neutral_opinion
}
add = 100
}
}
}
#Option A: sorry
option = {
name = ep2_wedding.1111.a
scope:activity = {
add_activity_log_entry = {
key = wedding_goblet_reprimand_log
tags = { bad }
score = 25
character = root
# Effect
root = {
reverse_add_opinion = {
target = scope:1111_other
modifier = respect_opinion
opinion = 15
}
stress_impact = {
arrogant = medium_stress_impact_gain
drunkard = medium_stress_impact_gain
}
}
}
}
ai_chance = {
base = 200
modifier = {
opinion = {
target = scope:host
value > low_positive_opinion
}
add = 100
}
modifier = {
has_trait = arrogant
add = -75
}
modifier = {
has_trait = drunkard
add = -75
}
}
}
after = {
remove_character_flag = busy_in_wnight_event
scope:1111_other = { remove_character_flag = busy_in_wnight_event }
}
}
##################################################
# Why Would You Marry Someone Like Me?
# by Luke Bean
# ep2_wedding.1300
##################################################
scripted_trigger ep2_wedding_1300_appearance_insecurity_trigger = {
OR = {
AND = {
is_female = yes
has_trait = giant
}
has_trait = one_eyed
has_trait = scarred
has_trait = one_legged
has_trait = disfigured
has_trait = scaly
has_trait = albino
has_trait = dwarf
has_trait = hunchbacked
has_trait = maimed
has_trait = spindly
has_trait = beauty_bad_1
has_trait = beauty_bad_2
has_trait = beauty_bad_3
}
}
scripted_trigger ep2_wedding_1300_voice_insecurity_trigger = {
OR = {
has_trait = lisping
has_trait = stuttering
has_trait = wheezing
}
}
ep2_wedding.1300 = {
type = activity_event
title = ep2_wedding.1300.t
desc = {
desc = ep2_wedding.1300.desc_intro
first_valid = {
triggered_desc = {
trigger = { scope:insecurity = flag:appearance }
desc = ep2_wedding.1300.desc_appearance
}
triggered_desc = {
trigger = { scope:insecurity = flag:dark_past }
desc = ep2_wedding.1300.desc_dark_past
}
triggered_desc = {
trigger = { scope:insecurity = flag:voice }
desc = ep2_wedding.1300.desc_voice
}
triggered_desc = {
trigger = { scope:insecurity = flag:lowborn }
desc = ep2_wedding.1300.desc_lowborn
}
}
desc = ep2_wedding.1300.desc_outro
}
theme = wedding_night_activity
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:spouse_2
animation = worry
}
cooldown = { years = 10 }
trigger = {
has_ep2_dlc_trigger = yes
root = scope:activity.special_guest:spouse_1
scope:activity.special_guest:spouse_2 = {
is_alive = yes
NOR = {
has_trait = arrogant
any_relation = { type = lover this = root }
any_relation = { type = best_friend this = root }
}
OR = {
ep2_wedding_1300_appearance_insecurity_trigger = yes
has_any_shunned_or_criminal_trait_in_faith_trigger = {
CHARACTER = scope:activity.special_guest:spouse_2
FAITH = scope:activity.special_guest:spouse_2.faith
}
ep2_wedding_1300_voice_insecurity_trigger = yes
is_lowborn = yes
}
}
}
weight_multiplier = {
base = 2
modifier = {
has_activity_intent = woo_attendee_intent
intent_target = scope:activity.special_guest:spouse_2
add = 3
}
}
immediate = {
root = { save_scope_as = spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
add_character_flag = busy_in_wnight_event
scope:spouse_2 = {
add_character_flag = busy_in_wnight_event
add_character_flag = is_naked
}
if = {
limit = {
scope:spouse_2 = {
ep2_wedding_1300_appearance_insecurity_trigger = yes
}
}
save_scope_value_as = {
name = insecurity
value = flag:appearance
}
}
else_if = {
limit = {
has_any_shunned_or_criminal_trait_in_faith_trigger = {
CHARACTER = scope:spouse_2
FAITH = scope:spouse_2.faith
}
}
save_scope_value_as = {
name = insecurity
value = flag:dark_past
}
}
else_if = {
limit = {
scope:spouse_2 = {
ep2_wedding_1300_voice_insecurity_trigger = yes
}
}
save_scope_value_as = {
name = insecurity
value = flag:voice
}
}
else_if = {
limit = {
scope:spouse_2 = {
is_lowborn = yes
}
}
save_scope_value_as = {
name = insecurity
value = flag:lowborn
}
}
if = {
limit = {
scope:spouse_2 = {
OR = {
has_trait = intellect_good_1
has_trait = intellect_good_2
has_trait = intellect_good_3
has_trait = ambitious
has_trait = shrewd
intrigue >= high_skill_rating
diplomacy >= high_skill_rating
stewardship >= high_skill_rating
martial >= high_skill_rating
learning >= high_skill_rating
}
}
}
save_scope_value_as = {
name = mind_of_a_ruler
value = yes
}
}
add_character_flag = is_naked
}
# I chose you for your virtue
option = {
name = ep2_wedding.1300.virtue
custom_tooltip = ep2_wedding.1300.virtue.tt #This option is available because SPOUSE is a virtuous PERSON
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
scope:spouse_2 = { num_virtuous_traits >= 1 }
NOR = {
scope:spouse_2 = { num_sinful_traits >= 1 }
has_any_shunned_or_criminal_trait_in_faith_trigger = {
CHARACTER = scope:spouse_2
FAITH = scope:spouse_2.faith
}
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.a
show_chance = no
scope:spouse_1 = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
sadistic = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
cynical = minor_stress_impact_gain
just = minor_stress_impact_loss
chaste = minor_stress_impact_loss
zealous = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.5
ai_zeal = 0.5
}
modifier = {
has_trait = impatient
add = -30
}
modifier = {
has_trait = wrathful
add = -30
}
modifier = {
has_trait = sadistic
add = -30
}
modifier = {
has_trait = cynical
add = -80
}
}
save_scope_value_as = {
name = reassurance
value = flag:virtue
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# I need someone like you to rule by my side
option = {
name = ep2_wedding.1300.rule_together
custom_tooltip = ep2_wedding.1300.rule_together.tt #This option is available because SPOUSE has the mind of a ruler
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
exists = scope:mind_of_a_ruler
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.a
show_chance = no
scope:spouse_1 = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
lazy = minor_stress_impact_gain
content = minor_stress_impact_gain
fickle = medium_stress_impact_gain
just = medium_stress_impact_loss
diligent = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
}
modifier = {
has_trait = content
add = -30
}
modifier = {
has_trait = lazy
add = -80
}
modifier = {
has_trait = arrogant
add = -80
}
}
save_scope_value_as = {
name = reassurance
value = flag:rule_together
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# This marriage is practical for both of us
option = {
name = ep2_wedding.1300.practical
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
NOR = { #This is purely so that you don't get a seven-option event if you marry a beautiful fertile genius with a lisp
has_trait = beauty_good_1
has_trait = beauty_good_2
has_trait = beauty_good_3
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.a
show_chance = no
scope:spouse_1 = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
arbitrary = minor_stress_impact_gain
zealous = minor_stress_impact_gain
diligent = minor_stress_impact_loss
callous = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
}
modifier = {
has_trait = arbitrary
add = -30
}
modifier = {
has_trait = zealous
add = -30
}
}
save_scope_value_as = {
name = reassurance
value = flag:practical
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# Stop whining, I'm making you a TITLE
option = {
name = ep2_wedding.1300.stop_whining
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
OR = {
has_trait = sadistic
has_trait = callous
has_trait = wrathful
has_trait = impatient
has_trait = arrogant
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
calm = minor_stress_impact_gain
sadistic = minor_stress_impact_loss
callous = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
impatient = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
}
modifier = {
has_trait = compassionate
add = -80
}
modifier = {
has_trait = calm
add = -50
}
}
save_scope_value_as = {
name = reassurance
value = flag:stop_whining
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# I understand how you feel
option = {
name = ep2_wedding.1300.understanding
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
OR = {
has_trait = reclusive
has_trait = shy
has_trait = depressed_1
has_trait = depressed_genetic
ep2_wedding_1300_appearance_insecurity_trigger = yes
ep2_wedding_1300_voice_insecurity_trigger = yes
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.a
show_chance = no
scope:spouse_1 = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_loss
calm = minor_stress_impact_loss
sadistic = minor_stress_impact_gain
callous = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
impatient = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -1
}
modifier = {
has_trait = compassionate
add = -80
}
modifier = {
has_trait = calm
add = -50
}
}
save_scope_value_as = {
name = reassurance
value = flag:understanding
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# You're the most beautiful PERSON in the world
option = {
name = ep2_wedding.1300.beauty
custom_tooltip = ep2_wedding.1300.beauty.tt #This option is available because SPOUSE is renowned for THEIR looks
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
scope:spouse_2 = {
OR = {
has_trait = beauty_good_1
has_trait = beauty_good_2
has_trait = beauty_good_3
}
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.a
show_chance = no
scope:spouse_1 = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
chaste = minor_stress_impact_gain
lustful = minor_stress_impact_loss
honest = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.25
}
modifier = {
has_trait = chaste
add = -50
}
}
save_scope_value_as = {
name = reassurance
value = flag:beauty
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
# You will give me many strong heirs
option = {
name = ep2_wedding.1300.fertility
custom_tooltip = ep2_wedding.1300.fertility.tt #This option is available because SPOUSE has the right qualities to be a prolific PARENT
custom_tooltip = ep2_wedding.1300.followup.tt
trigger = {
scope:spouse_2 = {
OR = {
has_trait = physique_good_1
has_trait = physique_good_2
has_trait = physique_good_3
has_trait = fecund
has_trait = lustful
}
}
}
show_as_tooltip = {
random_list = {
10 = {
desc = ep2_wedding.1300.followup.b
show_chance = no
}
10 = {
desc = ep2_wedding.1300.followup.c
show_chance = no
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
}
}
}
stress_impact = {
chaste = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
lustful = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -0.5
ai_rationality = 0.5
}
modifier = {
has_trait = chaste
add = -50
}
modifier = {
has_trait = compassionate
add = -50
}
}
save_scope_value_as = {
name = reassurance
value = flag:fertility
}
scope:spouse_2 = {
trigger_event = {
id = ep2_wedding.1301
}
}
}
after = {
remove_character_flag = is_naked
scope:spouse_2 = {
remove_character_flag = is_naked
}
}
}
ep2_wedding.1301 = { #Spouse response
type = activity_event
title = ep2_wedding.1301.t
desc = {
desc = ep2_wedding.1301.desc_intro
first_valid = {
triggered_desc = {
trigger = { scope:insecurity = flag:appearance }
desc = ep2_wedding.1301.desc_appearance
}
triggered_desc = {
trigger = { scope:insecurity = flag:dark_past }
desc = ep2_wedding.1301.desc_dark_past
}
triggered_desc = {
trigger = { scope:insecurity = flag:voice }
desc = ep2_wedding.1301.desc_voice
}
triggered_desc = {
trigger = { scope:insecurity = flag:lowborn }
desc = ep2_wedding.1301.desc_lowborn
}
}
desc = ep2_wedding.1301.desc_midtro
first_valid = {
triggered_desc = {
trigger = { scope:reassurance = flag:virtue }
desc = ep2_wedding.1301.desc_virtue
}
triggered_desc = {
trigger = { scope:reassurance = flag:rule_together }
desc = ep2_wedding.1301.desc_rule_together
}
triggered_desc = {
trigger = { scope:reassurance = flag:practical }
desc = ep2_wedding.1301.desc_practical
}
triggered_desc = {
trigger = { scope:reassurance = flag:stop_whining }
desc = ep2_wedding.1301.desc_stop_whining
}
triggered_desc = {
trigger = { scope:reassurance = flag:understanding }
desc = ep2_wedding.1301.desc_understanding
}
triggered_desc = {
trigger = { scope:reassurance = flag:beauty }
desc = ep2_wedding.1301.desc_beauty
}
triggered_desc = {
trigger = { scope:reassurance = flag:fertility }
desc = ep2_wedding.1301.desc_fertility
}
}
desc = ep2_wedding.1301.desc_outro
}
theme = wedding_night_activity
left_portrait = {
character = scope:spouse_1
animation = thinking
}
right_portrait = {
character = root
animation = worry
}
immediate = {
add_character_flag = is_naked
scope:spouse_1 = {
add_character_flag = is_naked
}
}
option = { #I want to be worthy of your love...
name = ep2_wedding.1301.love
trigger = {
is_attracted_to_gender_of = scope:spouse_1
NOR = {
scope:reassurance = flag:fertility
scope:reassurance = flag:stop_whining
scope:reassurance = flag:practical
}
}
scope:spouse_1 = {
send_interface_toast = {
title = ep2_wedding.1301.outcome.love
left_icon = scope:spouse_2
scope:activity = {
add_activity_log_entry = {
key = wedding_whyme_love_log
tags = { good }
score = 25
character = scope:spouse_1
target = scope:spouse_2
# Effect
scope:spouse_1 = {
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = scope:spouse_2
can_set_relation_lover_trigger = { CHARACTER = scope:spouse_2 }
}
set_relation_lover = {
reason = lover_shared_insecurity
target = scope:spouse_2
}
complete_activity_intent = yes
}
else = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
scope:spouse_2 = {
add_character_modifier = {
modifier = wedding_soothed_insecurity_modifier
years = 15
}
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = -0.25
}
modifier = {
scope:reassurance = flag:understanding
add = 30
}
modifier = {
scope:reassurance = flag:beauty
add = 15
}
modifier = {
scope:spouse_1 = { has_trait = compassionate }
add = 20
}
modifier = {
scope:spouse_1 = { attraction >= low_positive_attraction }
add = 20
}
modifier = {
scope:spouse_1 = { attraction >= medium_positive_attraction }
add = 30
}
modifier = {
scope:spouse_1 = { attraction >= high_positive_attraction }
add = 50
}
modifier = {
scope:spouse_1 = { attraction <= low_negative_attraction }
add = -20
}
modifier = {
scope:spouse_1 = { attraction <= medium_negative_attraction }
add = -30
}
modifier = {
scope:spouse_1 = { attraction <= high_negative_attraction }
add = -50
}
}
}
option = { #I want to trust you...
name = ep2_wedding.1301.trust
trigger = {
NOR = {
scope:reassurance = flag:fertility
scope:reassurance = flag:stop_whining
}
}
scope:spouse_1 = {
send_interface_toast = {
title = ep2_wedding.1301.outcome.trust
left_icon = scope:spouse_2
scope:activity = {
add_activity_log_entry = {
key = wedding_whyme_trust_log
tags = { good }
score = 25
character = scope:spouse_1
target = scope:spouse_2
# Effect
scope:spouse_1 = {
if = {
limit = {
has_activity_intent = woo_attendee_intent
intent_target = scope:spouse_2
can_set_relation_lover_trigger = { CHARACTER = scope:spouse_2 }
}
set_relation_lover = {
reason = lover_shared_insecurity
target = scope:spouse_2
}
complete_activity_intent = yes
}
else = {
progress_towards_lover_effect = {
CHARACTER = scope:spouse_2
REASON = lover_shared_insecurity
OPINION = default_lover_opinion
}
}
}
scope:spouse_2 = {
add_character_modifier = {
modifier = wedding_soothed_insecurity_modifier
years = 15
}
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.25
}
modifier = {
scope:reassurance = flag:rule_together
add = 30
}
modifier = {
scope:reassurance = flag:virtue
add = 30
}
modifier = {
scope:spouse_1 = { has_trait = honest }
add = 30
}
modifier = {
scope:spouse_1 = { num_virtuous_traits >= 1 }
add = 20
}
}
}
option = { #I'm being silly
name = ep2_wedding.1301.silly
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
}
modifier = {
scope:reassurance = flag:practical
add = 30
}
modifier = {
scope:reassurance = flag:fertility
add = 30
}
modifier = {
scope:reassurance = flag:rule_together
add = 10
}
}
scope:spouse_1 = {
send_interface_toast = {
title = ep2_wedding.1301.outcome.silly
left_icon = scope:spouse_2
scope:activity = {
add_activity_log_entry = {
key = wedding_whyme_silly_log
tags = { bad }
score = 25
character = scope:spouse_1
target = scope:spouse_2
# Effect
scope:spouse_2 = {
add_character_modifier = {
modifier = wedding_practical_marriage_modifier
years = 15
}
}
}
}
}
}
}
option = { #Misunderstood
name = ep2_wedding.1301.misunderstood
ai_chance = {
base = 120
ai_value_modifier = {
ai_energy = -0.25
}
modifier = {
scope:reassurance = flag:practical
add = 5
}
modifier = {
scope:reassurance = flag:fertility
add = 10
}
modifier = {
scope:reassurance = flag:stop_whining
add = 20
}
}
scope:spouse_1 = {
send_interface_toast = {
title = ep2_wedding.1301.outcome.misunderstood
left_icon = scope:spouse_2
scope:activity = {
add_activity_log_entry = {
key = wedding_whyme_misunderstood_log
tags = { bad }
score = 25
character = scope:spouse_1
target = scope:spouse_2
# Effect
scope:spouse_1 = {
progress_towards_rival_effect = {
REASON = rival_shared_insecurity
CHARACTER = scope:spouse_2
OPINION = -20
}
}
scope:spouse_2 = {
add_character_modifier = {
modifier = wedding_insecure_marriage_modifier
years = 15
}
}
}
}
}
}
}
after = {
remove_character_flag = busy_in_wnight_event
remove_character_flag = is_naked
scope:spouse_1 = {
remove_character_flag = busy_in_wnight_event
remove_character_flag = is_naked
}
}
}
##################################################
# A Friend Is Monopolizing Your Attention
# by Luke Bean
# ep2_wedding.1310
##################################################
scripted_trigger ep2_wedding_1310_wedding_friend_trigger = {
any_relation = { type = friend this = root }
is_adult = yes
is_ai = yes
NOR ={
AND = {
this = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
} # If the spouses are friends, that's adorable but incompatible with this event
AND = {
this = scope:activity.special_guest:spouse_2
root = scope:activity.special_guest:spouse_1
}
}
}
ep2_wedding.1310 = {
type = activity_event
title = ep2_wedding.1310.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
this = scope:spouse_1
this = scope:spouse_2
}
}
desc = ep2_wedding.1310.desc_spouse
}
triggered_desc = {
trigger = {
this = scope:host
}
desc = ep2_wedding.1310.desc_host
}
desc = ep2_wedding.1310.desc_guest
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = laugh
}
center_portrait = {
character = scope:other_guest
animation = disapproval
}
right_portrait = {
character = scope:friend
animation = wedding_drunk
}
lower_right_portrait = scope:other_spouse
cooldown = { years = 10 }
trigger = {
has_ep2_dlc_trigger = yes
scope:activity = {
any_attending_character = {
ep2_wedding_1310_wedding_friend_trigger = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
has_trait = shy
add = 1
}
modifier = {
has_trait = lifestyle_reveler
add = 1
}
modifier = {
scope:activity = { exists = var:lovers_wedding }
add = -1
}
modifier = {
has_activity_intent = reduce_stress_intent
add = 1
}
modifier = {
is_ai = yes
factor = 0.1
}
}
immediate = {
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_1310_wedding_friend_trigger = yes
}
save_scope_as = friend
}
}
if = {
limit = {
#If you're one of the spouses
OR = {
this = scope:spouse_1
this = scope:spouse_2
}
}
if = {
limit = { this = scope:spouse_1 }
#The person judging you will probably be a close relative of your new spouse, but could also be the spouse themselves
scope:spouse_2 = { save_scope_as = other_spouse }
random_list = {
100 = {
trigger = {
scope:activity = {
any_attending_character = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
is_close_family_of = scope:spouse_2
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
is_close_family_of = scope:spouse_2
}
save_scope_as = other_guest
}
}
}
50 = {
scope:spouse_2 = { save_scope_as = other_guest }
}
}
}
else = {
scope:spouse_1 = { save_scope_as = other_spouse }
random_list = {
100 = {
trigger = {
scope:activity = {
any_attending_character = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
is_close_family_of = scope:spouse_1
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
is_close_family_of = scope:spouse_1
}
save_scope_as = other_guest
}
}
}
50 = {
scope:spouse_1 = { save_scope_as = other_guest }
}
}
}
}
else_if = {
limit = { this = scope:host } # If you are the host, the judgy guest can be either spouse or any of their close family
random_list = {
100 = {
trigger = {
NOT = {
scope:spouse_1 = {
any_relation = {
type = friend
this = root
}
}
}
}
scope:spouse_1 = { save_scope_as = other_guest }
}
100 = {
trigger = { NOT = { scope:spouse_2 = { any_relation = { type = friend this = root } } } }
scope:spouse_2 = { save_scope_as = other_guest }
}
100 = {
trigger = {
scope:activity = {
any_attending_character = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
OR = {
is_close_family_of = scope:spouse_1
is_close_family_of = scope:spouse_2
}
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
OR = {
is_close_family_of = scope:spouse_1
is_close_family_of = scope:spouse_2
}
}
save_scope_as = other_guest
}
}
}
1 = {
scope:activity = { random_attending_character = { save_scope_as = other_guest } } #In case you're friends with both spouses and their entire families, I guess.
}
}
}
else = {
random_list = {
10 = {
trigger = { NOT = { scope:spouse_1 = { any_relation = { type = friend this = root } } } } #Same options as if you're the host, but much less likely to grab the spouses
scope:spouse_1 = { save_scope_as = other_guest }
}
10 = {
trigger = { NOT = { scope:spouse_2 = { any_relation = { type = friend this = root } } } }
scope:spouse_2 = { save_scope_as = other_guest }
}
100 = {
trigger = {
scope:activity = {
any_attending_character = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
OR = {
is_close_family_of = scope:spouse_1
is_close_family_of = scope:spouse_2
}
}
}
}
scope:activity = {
random_attending_character = {
limit = {
NOT = {
any_relation = { type = friend this = root }
any_relation = { type = friend this = scope:friend }
this = root
this = scope:friend
}
is_adult = yes
is_ai = yes
OR = {
is_close_family_of = scope:spouse_1
is_close_family_of = scope:spouse_2
}
}
save_scope_as = other_guest
}
}
}
1 = {
scope:activity = { random_attending_character = { save_scope_as = other_guest } }
}
}
}
}
# What a joy to have FRIEND here with me!
option = {
name = ep2_wedding.1310.a
scope:activity = {
add_activity_log_entry = {
key = wedding_banquet_bond_log
tags = { good }
score = 25
character = root
target = scope:friend
# Effect
root = {
if = {
limit = {
can_set_relation_best_friend_trigger = { CHARACTER = scope:friend }
}
set_relation_best_friend = { reason = best_friend_great_time_at_wedding copy_reason = friend target = scope:friend }
}
if = {
limit = {
OR = {
this = scope:spouse_1
this = scope:spouse_2
this = scope:host
}
}
reverse_add_opinion = {
target = scope:other_guest
modifier = insult_opinion
opinion = -30
}
}
stress_impact = {
base = medium_stress_impact_loss
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -0.1
}
modifier = {
has_trait = lustful
add = -15
}
modifier = {
has_trait = gregarious
add = -25
}
}
}
# OTHER GUEST, come join us!
option = {
name = ep2_wedding.1310.b
random_list = {
50 = { #Third person befriends you both
desc = ep2_wedding.1310.b.newfriends
compatibility_modifier = {
who = scope:friend
compatibility_target = scope:other_guest
multiplier = 3
max = 50
min = -30
}
send_interface_toast = {
title = ep2_wedding.1310.b.newfriends
left_icon = scope:other_guest
scope:activity = {
add_activity_log_entry = {
key = wedding_cannot_escape_friends_log
tags = { good }
score = 25
character = root
target = scope:other_guest
# Effect
root = {
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:other_guest }
}
set_relation_friend = {
reason = friend_great_time_at_wedding
target = scope:other_guest
province = root.location
}
}
stress_impact = {
gregarious = medium_stress_impact_loss
}
}
scope:friend = {
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:other_guest }
}
set_relation_friend = {
reason = friend_great_time_at_wedding
target = scope:other_guest
province = root.location
}
}
}
}
}
}
}
50 = { #Everyone has a good time
desc = ep2_wedding.1310.b.goodtime
compatibility_modifier = {
who = scope:friend
compatibility_target = scope:other_guest
multiplier = 2
max = 35
min = -35
}
send_interface_toast = {
title = ep2_wedding.1310.b.goodtime
left_icon = scope:other_guest
scope:activity = {
add_activity_log_entry = {
key = wedding_cannot_escape_goodtime_log
tags = { betrothal }
score = 25
character = root
target = scope:other_guest
# Effect
root = {
reverse_add_opinion = {
target = scope:other_guest
modifier = friendliness_opinion
opinion = 30
}
reverse_add_opinion = {
target = scope:friend
modifier = friendliness_opinion
opinion = 30
}
stress_impact = {
gregarious = minor_stress_impact_loss
}
}
}
}
}
}
40 = { #Everyone has a bad time
desc = ep2_wedding.1310.b.badtime
compatibility_modifier = {
who = scope:friend
compatibility_target = scope:other_guest
multiplier = -3
max = 60
min = -9
}
send_interface_toast = {
title = ep2_wedding.1310.b.badtime
left_icon = scope:other_guest
scope:activity = {
add_activity_log_entry = {
key = wedding_cannot_escape_badtime_log
tags = { betrothal }
score = 25
character = root
target = scope:other_guest
#Effect
if = {
limit = {
scope:friend = { can_set_relation_rival_trigger = { CHARACTER = scope:other_guest } }
}
scope:friend = {
set_relation_rival = {
target = scope:other_guest
reason = rival_bad_time_at_wedding
}
}
}
root = {
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.5
}
modifier = {
has_trait = gregarious
add = 20
}
modifier = {
has_trait = shy
add = -75
}
}
}
# Let's sneak out so we can talk properly!
option = {
name = ep2_wedding.1310.c
scope:activity = {
add_activity_log_entry = {
key = wedding_cannot_escape_sneak_log
tags = { betrothal }
score = 25
character = root
target = scope:friend
# Effect
root = {
if = {
limit = { NOT = { has_trait = confider } }
add_trait = confider
}
else = {
add_stress = major_stress_impact_loss
}
}
scope:other_guest = {
if = {
limit = {
OR = {
this = scope:spouse_1
this = scope:spouse_2
}
}
progress_towards_rival_effect = {
REASON = rival_dishonored_wedding_banquet
CHARACTER = root
OPINION = 0
}
}
else = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -30
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = -0.5
}
modifier = {
has_trait = shy
add = 20
}
modifier = {
has_trait = gregarious
add = -50
}
}
}
option = { # You must excuse me, my friend.
name = ep2_wedding.1310.d
flavor = ep2_wedding.1310.d.tt
scope:activity = {
add_activity_log_entry = {
key = wedding_cannot_escape_excuse_log
tags = { betrothal }
score = 25
character = root
target = scope:other_guest
# Effect
scope:other_guest = {
progress_towards_friend_effect = {
REASON = friend_great_time_at_wedding
CHARACTER = root
OPINION = 0
}
}
}
}
stress_impact = {
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.5
}
modifier = {
has_trait = gregarious
add = -20
}
}
}
}
######################################
# A Rival Seeks Forgiveness
# by Luke Bean
# ep2_wedding.1320
######################################
scripted_trigger ep2_wedding_1320_forgiving_rival_trigger = {
is_adult = yes
is_ai = yes
any_relation = { type = rival this = root }
NOR = {
has_character_flag = busy_in_wnight_event
has_trait = vengeful
has_trait = arrogant
any_relation = { type = nemesis this = root }
}
OR = {
has_trait = forgiving
has_trait = humble
has_trait = compassionate
AND = {
has_trait = zealous
this.faith = { trait_is_virtue = forgiving }
}
trait_compatibility = {
target = root
value >= medium_positive_trait_compatibility # We're not so different, you and I...
}
}
NOR = {
AND = {
root = scope:activity.special_guest:spouse_1 # Never triggers for rival spouses
this = scope:activity.special_guest:spouse_2
}
AND = {
root = scope:activity.special_guest:spouse_2
this = scope:activity.special_guest:spouse_1
}
}
}
ep2_wedding.1320 = {
type = activity_event
title = ep2_wedding.1320.t
desc = {
desc = ep2_wedding.1320.desc_intro
first_valid = {
triggered_desc = {
trigger = {
scope:role = flag:host
scope:rival_role = flag:spouse
}
desc = ep2_wedding.1320.desc_host_vs_spouse
}
triggered_desc = {
trigger = {
scope:role = flag:host
scope:rival_role = flag:guest
}
desc = ep2_wedding.1320.desc_host_vs_guest
}
triggered_desc = {
trigger = {
scope:role = flag:spouse
scope:rival_role = flag:guest
}
desc = ep2_wedding.1320.desc_spouse_vs_guest
}
triggered_desc = {
trigger = {
scope:role = flag:guest
scope:rival_role = flag:host
}
desc = ep2_wedding.1320.desc_guest_vs_host
}
triggered_desc = {
trigger = {
scope:role = flag:guest
scope:rival_role = flag:spouse
}
desc = ep2_wedding.1320.desc_guest_vs_spouse
}
triggered_desc = {
trigger = {
scope:role = flag:spouse
scope:rival_role = flag:host
}
desc = ep2_wedding.1320.desc_spouse_vs_host
}
desc = ep2_wedding.1320.desc_guest_vs_guest
}
desc = ep2_wedding.1320.desc_outro
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = personality_cynical
}
right_portrait = {
character = scope:rival
animation = shame
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
scope:activity = {
any_attending_character = {
ep2_wedding_1320_forgiving_rival_trigger = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
OR = {
root = scope:host
scope:host = {
ep2_wedding_1320_forgiving_rival_trigger = yes
}
}
add = 5 # Very, very likely to happen if one rival invited and the other accepted
}
modifier = {
OR = {
root = scope:activity.special_guest:spouse_1
scope:activity.special_guest:spouse_2 = { ep2_wedding_1320_forgiving_rival_trigger = yes }
}
add = 3 # Much more likely to happen on the occasion of one of the rivals' weddings
}
modifier = {
has_trait = forgiving ### More likely to happen if the rival thinks root is the sort of person who might forgive them
add = 1
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1320_forgiving_rival_trigger = yes
has_trait = forgiving
}
}
add = 1
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1320_forgiving_rival_trigger = yes
has_trait = humble
}
}
add = 1
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1320_forgiving_rival_trigger = yes
has_trait = compassionate
}
}
add = 1
}
modifier = {
scope:activity = {
any_attending_character = {
ep2_wedding_1320_forgiving_rival_trigger = yes
has_trait = zealous
faith = { trait_is_virtue = forgiving }
}
}
add = 1
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
ep2_wedding_1320_forgiving_rival_trigger = yes
OR = {
has_trait = forgiving
has_trait = humble
has_trait = compassionate
AND = {
has_trait = zealous
faith = { trait_is_virtue = forgiving }
}
}
}
alternative_limit = {
ep2_wedding_1320_forgiving_rival_trigger = yes
}
save_scope_as = rival
}
}
if = {
limit = {
root = scope:host
}
save_scope_value_as = {
name = role
value = flag:host
}
}
else_if = {
limit = {
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
save_scope_value_as = {
name = role
value = flag:spouse
}
}
else = {
save_scope_value_as = {
name = role
value = flag:guest
}
}
if = {
limit = {
scope:rival = scope:host
}
save_scope_value_as = {
name = rival_role
value = flag:host
}
}
else_if = {
limit = {
OR = {
scope:rival = scope:activity.special_guest:spouse_1
scope:rival = scope:activity.special_guest:spouse_2
}
}
save_scope_value_as = {
name = rival_role
value = flag:spouse
}
}
else = {
save_scope_value_as = {
name = rival_role
value = flag:guest
}
}
}
# Embrace RIVAL and let bygones be bygones!
option = {
name = ep2_wedding.1320.a
scope:activity = {
add_activity_log_entry = {
key = wedding_embraced_rival_log
tags = { rival }
score = 25
character = root
target = scope:rival
#Effect
root = {
remove_relation_rival = scope:rival
random_list = {
80 = {
send_interface_toast = {
title = ep2_wedding.1320.a.friendliness
left_icon = scope:rival
reverse_add_opinion = {
target = scope:rival
modifier = friendliness_opinion
opinion = 30
}
}
}
20 = {
compatibility_modifier = {
who = root
compatibility_target = scope:rival
multiplier = 3
max = 50
min = -30
}
send_interface_toast = {
title = ep2_wedding.1320.a.friend
left_icon = scope:rival
set_relation_friend = { reason = friend_reconciled_at_wedding target = scope:rival }
}
}
}
}
}
}
stress_impact = {
vengeful = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
forgiving = massive_stress_impact_loss
compassionate = major_stress_impact_loss
gregarious = minor_stress_impact_loss
humble = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -0.2
ai_compassion = 0.5
ai_sociability = 0.2
}
modifier = {
has_trait = vengeful
add = -100
}
modifier = {
has_trait = arrogant
add = -50
}
modifier = {
has_trait = forgiving
add = 100
}
}
}
# Hurl a DISH in RIVAL's face.
option = {
name = ep2_wedding.1320.b
scope:activity = {
add_activity_log_entry = {
key = wedding_dished_rival_log
tags = { rival }
score = 25
character = root
target = scope:rival
# Effect
root = {
add_dread = minor_dread_gain
}
}
}
random_list = {
100 = {
desc = ep2_wedding.1310.b.nowound
send_interface_toast = {
title = ep2_wedding.1310.b.nowound
left_icon = scope:rival
reverse_add_opinion = {
target = scope:rival
modifier = angry_opinion
opinion = -50
}
}
}
30 = {
desc = ep2_wedding.1310.b.wound
trigger = {
can_set_relation_nemesis_trigger = { CHARACTER = scope:rival }
}
send_interface_toast = {
title = ep2_wedding.1310.b.wound
left_icon = scope:rival
scope:rival = { increase_wounds_effect = { REASON = fight } }
set_relation_nemesis = { reason = nemesis_spurned_reconciliation_at_wedding target = scope:rival }
}
}
30 = {
desc = ep2_wedding.1310.b.wound
trigger = {
NOT = { can_set_relation_nemesis_trigger = { CHARACTER = scope:rival } }
}
send_interface_toast = {
title = ep2_wedding.1310.b.wound
left_icon = scope:rival
scope:rival = { increase_wounds_effect = { REASON = fight } }
}
}
}
if = {
limit = {
has_activity_intent = banquet_mischief_intent
}
stress_impact = {
base = minor_stress_impact_loss
vengeful = major_stress_impact_loss
}
}
else = {
stress_impact = {
vengeful = medium_stress_impact_loss
arrogant = medium_stress_impact_loss
forgiving = massive_stress_impact_gain
compassionate = major_stress_impact_gain
gregarious = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = -0.5
ai_compassion = -0.5
}
modifier = {
has_trait = wrathful
add = 30
}
modifier = {
has_trait = impatient
add = 30
}
}
}
# What's forgiveness worth to you?
option = {
name = ep2_wedding.1320.c
duel = {
target = scope:rival
skill = diplomacy
25 = {
desc = ep2_wedding.1310.c.hook
trigger = {
can_add_hook = {
target = scope:rival
type = favor_hook
}
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = ep2_wedding.1310.c.hook
left_icon = scope:rival
scope:activity = {
add_activity_log_entry = {
key = wedding_hooked_rival_log
tags = { rival }
score = 25
character = root
target = scope:rival
# Effect
root = {
remove_relation_rival = scope:rival
add_hook = {
target = scope:rival
type = favor_hook
}
}
}
}
}
}
30 = {
desc = ep2_wedding.1310.c.apology
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
send_interface_toast = {
title = ep2_wedding.1310.c.apology
left_icon = scope:rival
scope:activity = {
add_activity_log_entry = {
key = wedding_apology_rival_log
tags = { rival }
score = 25
character = root
target = scope:rival
# Effect
root = {
remove_relation_rival = scope:rival
add_prestige = medium_prestige_value
}
}
}
}
}
35 = {
desc = ep2_wedding.1310.c.refusal
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
title = ep2_wedding.1310.c.refusal
left_icon = scope:rival
scope:activity = {
add_activity_log_entry = {
key = wedding_refusal_rival_log
tags = { rival }
score = 25
character = root
target = scope:rival
# Effect
root = {
reverse_add_opinion = {
target = scope:rival
modifier = angry_opinion
opinion = -50
}
}
}
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 1
}
modifier = {
has_trait = ambitious
add = 10
}
}
}
#Ignore RIVAL until they leave.
option = {
name = ep2_wedding.1320.d
add_prestige = minor_prestige_gain
scope:rival = { add_prestige = minor_prestige_loss }
reverse_add_opinion = {
target = scope:rival
modifier = angry_opinion
opinion = -20
}
if = {
limit = {
has_activity_intent = reduce_stress_intent
}
stress_impact = {
base = minor_stress_impact_loss
}
}
ai_chance = {
base = 80
modifier = {
has_activity_intent = reduce_stress_intent
add = 50
}
ai_value_modifier = {
ai_energy = -0.5
}
}
}
}
##############################################
# We Were Lovers Before The Wedding
# by Luke Bean
# ep2_wedding.1330
##############################################
scripted_trigger ep2_wedding_1330_doubts_own_fidelity_trigger = {
OR = {
has_trait = lustful
has_trait = seducer
has_trait = rakish
any_relation = {
type = lover
this != scope:spouse
}
}
}
ep2_wedding.1330 = {
type = activity_event
title = ep2_wedding.1330.t
desc = ep2_wedding.1330.desc
theme = wedding_night_activity
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:spouse
animation = flirtation
}
cooldown = { years = 10 }
trigger = {
has_ep2_dlc_trigger = yes
scope:activity = { exists = var:lovers_wedding }
OR = {
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
weight_multiplier = {
base = 100
}
immediate = {
if = {
limit = { root = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse }
}
else_if = {
limit = { root = scope:activity.special_guest:spouse_2 }
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse }
}
if = {
limit = {
any_relation = { type = soulmate this != scope:spouse }
}
random_relation = {
type = soulmate
limit = { this != scope:spouse }
save_scope_as = soulmate
}
}
}
# I love this MAN beyond words
option = {
name = ep2_wedding.1330.a
trigger = {
can_set_relation_soulmate_trigger = { CHARACTER = scope:spouse }
}
set_relation_soulmate = {
reason = soulmate_married_my_lover
copy_reason = lover
target = scope:spouse
}
# Achievements
player_succeeded_at_a_thousand_and_one_nights_achievement_effect = yes
stress_impact = {
seducer = medium_stress_impact_gain
rakish = medium_stress_impact_gain
deceitful = minor_stress_impact_gain
chaste = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = -0.25
}
modifier = {
has_trait = callous
add = -20
}
}
}
# I will never need anyone else but HIM
option = {
name = ep2_wedding.1330.b
trigger = {
ep2_wedding_1330_doubts_own_fidelity_trigger = no
}
add_character_modifier = {
modifier = wedding_wants_to_be_faithful_modifier
years = 20
}
stress_impact = {
fickle = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_honor = 0.25
}
modifier = {
has_trait = chaste
add = 20
}
}
}
# I will be faithful. I will change my ways!
option = {
name = ep2_wedding.1330.c
trigger = {
OR = {
has_trait = rakish
any_relation = {
type = lover
this != scope:spouse
}
}
}
add_character_modifier = {
modifier = wedding_wants_to_be_faithful_modifier
years = 20
}
if = {
limit = { has_trait = rakish }
random_list = {
50 = {
send_interface_toast = {
title = ep2_wedding.1330.c.rakish.success
remove_trait = rakish
add_stress = major_stress_impact_gain
}
}
50 = {
send_interface_toast = {
title = ep2_wedding.1330.c.rakish.failure
add_stress = minor_stress_impact_gain
}
}
}
}
every_relation ?= {
type = lover
limit = { this != scope:spouse }
save_temporary_scope_as = lover
if = {
limit = { scope:lover = { is_ai = no } }
scope:lover = {
send_interface_toast = {
title = ep2_wedding.1330.c.breakup
left_icon = root
root = { remove_relation_lover = scope:lover }
}
}
}
else = { root = { remove_relation_lover = scope:lover } }
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = -0.25
ai_honor = 0.25
}
modifier = {
has_trait = lustful # lustful will avoid this option UNLESS...
add = -30
}
modifier = {
has_trait = lustful
has_trait = compassionate # ...they have a reason to feel bad about it.
add = 80
}
modifier = {
has_trait = lustful
has_trait = just
add = 60
}
modifier = {
has_trait = lustful
has_trait = honest
add = 60
}
modifier = {
has_trait = lustful
has_trait = zealous
root.faith = { trait_is_virtue = chaste }
add = 80
}
}
}
# I wonder if HE's into... that one thing?
option = {
name = ep2_wedding.1330.d
trigger = {
OR = {
has_trait = deviant
any_secret = { type = secret_deviant }
}
NOR = {
faith = { has_doctrine = doctrine_deviancy_accepted }
scope:spouse = { has_trait = deviant }
scope:spouse = { any_secret = { type = secret_deviant NOT = { is_known_by = root } } }
}
}
if = {
limit = { any_secret = { type = secret_deviant NOT = { is_known_by = scope:spouse } } }
every_secret = { type = secret_deviant reveal_to = scope:spouse }
}
hidden_effect = {
if = {
limit = { scope:spouse = { NOT = { any_secret = { type = secret_deviant } } } }
random_list = {
70 = {
send_interface_toast = {
title = ep2_wedding.1330.d.yuck
left_icon = scope:spouse
reverse_add_opinion = {
target = scope:spouse
modifier = disgusted_opinion
opinion = -15
}
}
}
30 = {
compatibility_modifier = {
who = root
compatibility_target = scope:spouse
multiplier = 3
max = 50
min = -30
}
modifier = {
scope:spouse = { has_trait = lustful }
add = 50
}
modifier = {
scope:spouse = { has_trait = chaste }
add = -50
}
send_interface_toast = {
title = ep2_wedding.1330.d.yum
left_icon = scope:spouse
scope:spouse = { add_secret = { type = secret_deviant } }
reverse_add_opinion = {
target = scope:spouse
modifier = love_opinion
opinion = 15
}
}
}
}
}
if = {
limit = { scope:spouse = { any_secret = { type = secret_deviant NOT = { is_known_by = root } } } }
send_interface_toast = {
title = ep2_wedding.1330.d.yeahmetoo
left_icon = scope:spouse
scope:spouse = { every_secret = { type = secret_deviant reveal_to = root } }
reverse_add_opinion = {
target = scope:spouse
modifier = love_opinion
opinion = 15
}
}
}
}
show_as_tooltip = {
random_list = {
1 = {
desc = ep2_wedding.1330.d.yuck.tt
show_chance = no
reverse_add_opinion = {
target = scope:spouse
modifier = disgusted_opinion
opinion = -15
}
}
1 = {
desc = ep2_wedding.1330.d.yum.tt
show_chance = no
scope:spouse = { add_secret = { type = secret_deviant } }
reverse_add_opinion = {
target = scope:spouse
modifier = love_opinion
opinion = 15
}
}
1 = {
desc = ep2_wedding.1330.d.yeahmetoo.tt
show_chance = no
custom_tooltip = ep2_wedding.1330.d.confession.tt
}
}
}
ai_chance = {
base = 120
ai_value_modifier = {
ai_boldness = 0.25
}
modifier = {
has_trait = lustful
add = 20
}
}
}
# How could I have done this to SOULMATE?
option = {
name = ep2_wedding.1330.e
trigger = {
exists = scope:soulmate
}
remove_relation_lover = scope:spouse
reverse_add_opinion = {
target = scope:soulmate
modifier = love_opinion
opinion = 100
}
stress_impact = {
base = major_stress_impact_loss
stubborn = medium_stress_impact_gain
chaste = medium_stress_impact_gain
}
ai_chance = {
base = 90
ai_value_modifier = {
ai_honor = 0.25
ai_boldness = -0.25
ai_rationality = -0.5
}
modifier = {
has_trait = fickle
add = 30
}
modifier = {
has_trait = arbitrary
add = 10
}
}
}
# Am I really HIS only love?
option = {
name = ep2_wedding.1330.f
hidden_effect = {
random_list = {
100 = { # Mind at ease
send_interface_toast = {
title = ep2_wedding.1330.f.mindatease
left_icon = scope:spouse
add_character_modifier = {
modifier = wedding_mind_at_ease_modifier
days = 3650
}
}
}
100 = { # Lingering doubts
modifier = {
scope:spouse = { has_trait = deceitful }
add = 30
}
modifier = {
scope:spouse = { has_trait = lustful }
add = 20
}
modifier = {
scope:spouse = { has_trait = honest }
add = -30
}
modifier = {
scope:spouse = { has_trait = chaste }
add = -50
}
modifier = {
has_trait = paranoid
add = 50
}
modifier = {
has_trait = trusting
add = -60
}
send_interface_toast = {
title = ep2_wedding.1330.f.lingeringdoubts
left_icon = scope:spouse
add_character_modifier = {
modifier = wedding_lingering_doubts_modifier
days = 3650
}
}
}
100 = { # Confess all
trigger = { scope:spouse = { any_secret = { type = secret_lover NOT = { is_known_by = root } } } }
modifier = {
scope:spouse = { has_trait = honest }
add = 200
}
modifier = {
scope:spouse = { has_trait = compassionate }
add = 20
}
modifier = {
scope:spouse = { has_trait = just }
add = 40
}
modifier = {
scope:spouse = { has_trait = deceitful }
add = -100
}
modifier = {
scope:spouse = { has_trait = callous }
add = -20
}
modifier = {
scope:spouse = { has_trait = sadistic } # "The LOOK on your face!"
add = 20
}
send_interface_toast = {
title = ep2_wedding.1330.f.confession
left_icon = scope:spouse
scope:spouse = { every_secret = { type = secret_lover limit = { NOT = { is_known_by = root } } reveal_to = root } }
}
}
}
}
show_as_tooltip = {
random_list = {
1 = {
desc = ep2_wedding.1330.f.lingeringdoubts.tt
show_chance = no
add_character_modifier = {
modifier = wedding_lingering_doubts_modifier
days = 3650
}
}
1 = {
desc = ep2_wedding.1330.f.mindatease.tt
show_chance = no
add_character_modifier = {
modifier = wedding_mind_at_ease_modifier
days = 3650
}
}
1 = {
desc = ep2_wedding.1330.f.confession.desc
show_chance = no
custom_tooltip = ep2_wedding.1330.f.confession.tt
}
}
}
stress_impact = {
trusting = minor_stress_impact_gain
}
ai_chance = {
base = 90
modifier = {
has_trait = paranoid
add = 50
}
}
}
# Finally, we have no need to hide our love!
option = {
name = ep2_wedding.1330.g
stress_impact = {
base = medium_stress_impact_loss
honest = major_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = -0.5
}
modifier = {
has_trait = honest
add = 50
}
}
}
}
##################################################
# Condolences On Your Wedding
# by Luke Bean
# ep2_wedding.1340
##################################################
scripted_trigger ep2_wedding_1340_marriage_cynic_trigger = {
is_ai = yes
OR = {
any_spouse = { # dislikes a spouse
OR = {
reverse_opinion = {
target = prev
value <= low_negative_opinion
}
has_relation_rival = prev
}
}
any_memory = { memory_type = spouse_committed_adultery } # has been cheated on
AND = { # has been divorced
any_former_spouse = { }
NOT = {
any_memory = { memory_type = spouse_died }
}
}
}
}
scripted_trigger ep2_wedding_1340_unusual_hobbies_trigger = {
OR = {
AND = {
has_trait = lustful
any_relation = {
type = lover
this != scope:intended
}
}
has_trait = seducer
has_trait = torturer
has_trait = rakish
has_trait = cannibal
any_secret = { type = secret_cannibal }
has_trait = witch
any_secret = { type = secret_witch }
}
}
scripted_effect ep2_wedding_1340_add_confidence = {
if = {
limit = {
this = { is_female = yes }
}
add_character_modifier = wedding_confident_bride
}
else = { add_character_modifier = wedding_confident_groom }
}
ep2_wedding.1340 = {
type = activity_event
title = ep2_wedding.1340.t
desc = {
desc = ep2_wedding.1340.desc.intro
random_valid = {
triggered_desc = {
trigger = {
exists = scope:disliked_spouse
scope:cynic = {
NOR = {
has_trait = lustful
has_trait = seducer
has_trait = rakish
}
}
}
desc = ep2_wedding.1340.desc.dislikes_spouse
}
triggered_desc = {
trigger = {
exists = scope:disliked_spouse
scope:cynic = {
OR = { # dislikes a spouse and has a lust-related trait
has_trait = lustful
has_trait = seducer
has_trait = rakish
}
}
}
desc = ep2_wedding.1340.desc.dislikes_spouse_lustful
}
triggered_desc = {
trigger = {
scope:cynic = {
AND = { # has been divorced
any_former_spouse = { }
NOT = {
any_memory = {
memory_type = spouse_died
}
}
}
}
exists = scope:divorced_spouse
}
desc = ep2_wedding.1340.desc.divorced
}
triggered_desc = {
trigger = { # has been cheated on
NOT = { exists = scope:adulterous_spouse } # separate loc if they can name them
scope:cynic = {
any_memory = {
memory_type = spouse_committed_adultery
}
}
}
desc = ep2_wedding.1340.desc.cheated_on
}
triggered_desc = {
trigger = {
exists = scope:adulterous_spouse
}
desc = ep2_wedding.1340.desc.cheated_on_alt
}
}
desc = ep2_wedding.1340.desc.outro
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:cynic
animation = eyeroll
}
lower_center_portrait = scope:intended
cooldown = { years = 15 }
weight_multiplier = {
base = 1
modifier = { # more likely to happen if close family member is cynical about marriage
root = {
any_close_family_member = {
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
ep2_wedding_1340_marriage_cynic_trigger = yes
}
}
add = 3
}
modifier = { # also more likely to happen with a friend
root = {
any_relation = {
type = friend
is_alive = yes
is_ai = yes
is_participant_in_activity = scope:activity
ep2_wedding_1340_marriage_cynic_trigger = yes
}
}
add = 3
}
modifier = {
has_activity_intent = reduce_stress_intent
add = 2
}
}
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
location = scope:activity.activity_location
OR = {
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_2 = root
}
scope:activity = {
any_attending_character = {
ep2_wedding_1340_marriage_cynic_trigger = yes
}
}
}
immediate = {
add_character_flag = busy_in_wgathering_event
root = { save_scope_as = nervous_spouse }
if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
scope:activity.special_guest:spouse_2 = {
save_scope_as = intended
}
}
else = {
scope:activity.special_guest:spouse_1 = {
save_scope_as = intended
}
}
scope:activity = {
random_attending_character = {
limit = { ep2_wedding_1340_marriage_cynic_trigger = yes }
weight = {
base = 1
modifier = { # much more likely to be cynical friend or family
factor = 100
has_relation_friend = root
}
modifier = {
factor = 100
is_close_family_of = root
}
modifier = { # helps if their personality disposes them to be cynical about marriage
factor = 3
OR = {
has_trait = cynical
has_trait = lustful
}
}
}
save_scope_as = cynic
add_character_flag = busy_in_wgathering_event
if = { # if cynic dislikes a current spouse, mention them by name
limit = {
any_spouse = {
OR = {
reverse_opinion = {
target = prev
value <= 0
}
has_relation_rival = prev
}
}
}
random_spouse = {
limit = {
OR = {
reverse_opinion = {
target = prev
value <= 0
}
has_relation_rival = prev
}
}
save_scope_as = disliked_spouse
}
}
if = { # if cynic has a memory of adultery about a living spouse, mention them
limit = {
any_memory = {
memory_type = spouse_committed_adultery
}
}
every_spouse = {
save_temporary_scope_as = temp_spouse
prev = {
every_memory = {
memory_type = spouse_committed_adultery
if = {
limit = { has_memory_participant = scope:temp_spouse }
scope:temp_spouse = { save_scope_as = adulterous_spouse }
}
}
}
}
every_former_spouse = {
save_temporary_scope_as = temp_spouse
prev = {
every_memory = {
memory_type = spouse_committed_adultery
if = {
limit = { has_memory_participant = scope:temp_spouse }
scope:temp_spouse = { save_scope_as = adulterous_spouse }
}
}
}
}
}
if = {
limit = {
AND = {
any_former_spouse = { }
NOT = {
any_memory = {
memory_type = spouse_died
}
}
}
}
random_former_spouse = { save_scope_as = divorced_spouse }
}
}
}
}
option = { # SPOUSE is perfect for me.
name = ep2_wedding.1340.a
flavor = ep2_wedding.1340.a.tt
random_list = {
40 = {
compatibility_modifier = {
who = root
compatibility_target = scope:intended
multiplier = 3
max = 100
min = -20
}
modifier = {
scope:intended = {
attraction >= low_positive_attraction
}
factor = 1.2
}
modifier = {
attraction <= low_negative_attraction
factor = 0.8
}
send_interface_toast = {
title = ep2_wedding.1340.a.success
ep2_wedding_1340_add_confidence = yes
add_stress = medium_stress_impact_loss
}
}
20 = {
send_interface_toast = {
title = ep2_wedding.1340.a.failure
add_character_modifier = wedding_jitters
add_stress = minor_stress_impact_gain
}
}
}
ai_chance = {
base = 100
}
}
option = { # Don't worry, I'll have my hobbies!
name = ep2_wedding.1340.b
flavor = ep2_wedding.1340.b.tt
trigger = { ep2_wedding_1340_unusual_hobbies_trigger = no }
random_list = {
15 = {
modifier = {
has_trait = lifestyle_gardener
add = 70
}
modifier = {
has_trait = lifestyle_reveler
add = 70
}
modifier = {
has_trait = lifestyle_hunter
add = 70
}
modifier = {
has_trait = lifestyle_poet
add = 70
}
modifier = {
has_trait = lifestyle_blademaster
add = 40
}
modifier = {
has_trait = lifestyle_herbalist
add = 40
}
modifier = {
has_trait = lifestyle_mystic
add = 40
}
modifier = {
has_trait = lifestyle_physician
add = 40
}
modifier = {
has_trait = athletic
add = 40
}
modifier = {
has_trait = journaller
add = 40
}
send_interface_toast = {
title = ep2_wedding.1340.b.success
ep2_wedding_1340_add_confidence = yes
add_stress = medium_stress_impact_loss
}
}
30 = {
send_interface_toast = {
title = ep2_wedding.1340.b.failure
add_character_modifier = wedding_jitters
add_stress = minor_stress_impact_gain
}
}
}
ai_chance = {
base = 100
base = 1
modifier = {
has_trait = lifestyle_gardener
add = 70
}
modifier = {
has_trait = lifestyle_reveler
add = 70
}
modifier = {
has_trait = lifestyle_hunter
add = 70
}
modifier = {
has_trait = lifestyle_poet
add = 70
}
modifier = {
has_trait = lifestyle_blademaster
add = 40
}
modifier = {
has_trait = lifestyle_herbalist
add = 40
}
modifier = {
has_trait = lifestyle_mystic
add = 40
}
modifier = {
has_trait = lifestyle_physician
add = 40
}
modifier = {
has_trait = athletic
add = 40
}
modifier = {
has_trait = journaller
add = 40
}
}
}
option = { # Don't worry, I'll have my... hobbies.
name = ep2_wedding.1340.c
flavor = ep2_wedding.1340.c.tt
trigger = { ep2_wedding_1340_unusual_hobbies_trigger = yes }
random_list = {
0 = {
modifier = {
has_trait = lustful
any_relation = {
type = lover
this != scope:intended
}
add = 20
}
modifier = {
has_trait = seducer
add = 20
}
modifier = {
has_trait = torturer
add = 20
}
modifier = {
has_trait = rakish
add = 20
}
modifier = {
OR = {
any_secret = { type = secret_cannibal }
has_trait = cannibal
}
add = 20
}
modifier = {
OR = {
any_secret = { type = secret_witch }
has_trait = witch
}
add = 20
}
send_interface_toast = {
title = ep2_wedding.1340.c.success
ep2_wedding_1340_add_confidence = yes
add_stress = medium_stress_impact_loss
}
}
10 = {
send_interface_toast = {
title = ep2_wedding.1340.c.failure
add_character_modifier = wedding_jitters
add_stress = minor_stress_impact_gain
}
}
}
ai_chance = {
base = 150
modifier = {
has_trait = seducer
add = 20
}
modifier = {
has_trait = torturer
add = 20
}
modifier = {
has_trait = rakish
add = 20
}
modifier = {
OR = {
any_secret = { type = secret_cannibal }
has_trait = cannibal
}
add = 20
}
modifier = {
OR = {
any_secret = { type = secret_witch }
has_trait = witch
}
add = 20
}
}
}
option = { # Please, I know all about marriage!
name = ep2_wedding.1340.d
flavor = {
first_valid = {
triggered_desc = {
trigger = {
number_of_current_and_former_spouses > 1
}
desc = ep2_wedding.1340.d.tt.more
}
triggered_desc = {
trigger = {
number_of_current_and_former_spouses > 0
}
desc = ep2_wedding.1340.d.tt.once
}
desc = ep2_wedding.1340.d.tt.never
}
}
random_list = {
10 = {
modifier = {
number_of_current_and_former_spouses > 0
add = 10
}
modifier = {
number_of_current_and_former_spouses > 1
add = 20
}
modifier = {
number_of_current_and_former_spouses > 2
add = 30
}
send_interface_toast = {
title = ep2_wedding.1340.d.success
ep2_wedding_1340_add_confidence = yes
add_stress = medium_stress_impact_loss
}
}
20 = {
send_interface_toast = {
title = ep2_wedding.1340.d.failure
add_character_modifier = wedding_jitters
add_stress = minor_stress_impact_gain
}
}
}
ai_chance = {
base = 100
}
}
option = { # Get out of my face, you bitter wretch.
name = ep2_wedding.1340.e
trigger = { has_trait = wrathful }
stress_impact = {
base = medium_stress_impact_loss
}
reverse_add_opinion = {
target = scope:cynic
modifier = insulted_opinion
opinion = -30
}
ai_chance = {
base = 300
}
}
option = { # ...will it really be that bad?
name = ep2_wedding.1340.f
trigger = {
NOT = { has_trait = wrathful }
}
add_character_modifier = wedding_jitters
ai_chance = {
base = 50
}
}
after = {
remove_character_flag = busy_in_wgathering_event
scope:cynic = { remove_character_flag = busy_in_wgathering_event }
}
}
##################################################
# Lost For Words
# by Luke Bean
# ep2_wedding.1350
##################################################
scripted_trigger ep2_wedding_1350_caring_relative_trigger = {
is_ai = yes
is_close_family_of = root
NOR = {
is_child_of = root
is_grandchild_of = root
has_trait = callous
has_trait = sadistic
this = root
}
opinion = {
target = root
value >= 40
}
}
ep2_wedding.1350 = {
type = activity_event
title = ep2_wedding.1350.t
desc = ep2_wedding.1350.desc.intro
theme = wedding_ceremony_activity
center_portrait = {
character = root
animation = personality_compassionate
}
right_portrait = {
character = scope:caring_relative
animation = admiration
}
cooldown = { years = 15 }
weight_multiplier = {
base = 1
modifier = { # much more likely to happen if root has wedding jitters
root = {
has_character_modifier = wedding_jitters
}
add = 5
}
modifier = {
has_activity_intent = reduce_stress_intent
add = 2
}
}
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
location = scope:activity.activity_location
OR = {
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_2 = root
}
scope:activity = {
any_attending_character = {
ep2_wedding_1350_caring_relative_trigger = yes
}
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = { ep2_wedding_1350_caring_relative_trigger = yes }
weight = {
base = 10
modifier = {
add = 10
is_parent_of = root
}
modifier = {
add = 5
is_sibling_of = root
}
modifier = {
factor = 2
has_trait = compassionate
}
}
save_scope_as = caring_relative
}
}
}
option = { # Enjoy a quiet moment together.
name = ep2_wedding.1350.a
stress_impact = {
base = medium_stress_impact_loss
}
reverse_add_opinion = {
target = scope:caring_relative
modifier = love_opinion
opinion = 15
}
if = {
limit = { has_character_modifier = wedding_jitters }
remove_character_modifier = wedding_jitters
ep2_wedding_1340_add_confidence = yes # replace wedding_jitters with confidence
}
ai_chance = {
base = 100
modifier = {
has_character_modifier = wedding_jitters
add = 50
}
}
}
option = { # Tell RELATIVE how much it means to have them here.
name = ep2_wedding.1350.b
progress_towards_friend_effect = {
CHARACTER = scope:caring_relative
OPINION = 20
REASON = friend_supportive_at_wedding
}
ai_chance = {
base = 100
}
}
}
############################
## Wedding Banquet Events
## 2000-2999
## by Veronica Pazos
############################
# Diplomatic Intent: You ask a friend of your target's for info about them
scripted_trigger ep2_wedding_2000_valid_friend = {
feast_default_adult_participant_trigger = yes
drinks_alcohol_trigger = yes
OR = { #they know the person
is_close_family_or_spouse_of_root_trigger = yes
has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root.intent_target }
}
NOT = { is_spouse_of = root }
NOT = { is_close_family_of = root }
}
scripted_trigger ep2_wedding_2000_is_valiant = {
OR = {
has_lifestyle = martial_lifestyle
prowess >= high_skill_rating
martial >= high_skill_rating
has_trait = brave
has_trait = reckless
has_trait = gallant
has_trait = wrathful
has_trait = overseer
has_trait = strategist
has_trait = lifestyle_hunter
has_trait = lifestyle_blademaster
}
}
scripted_trigger ep2_wedding_2000_is_nerd = {
OR = {
has_lifestyle = learning_lifestyle
learning >= high_skill_rating
has_trait = theologian
has_trait = scholar
has_trait = diligent
has_trait = shrewd
}
}
scripted_trigger ep2_wedding_2000_is_social = {
OR = {
has_lifestyle = diplomacy_lifestyle
diplomacy >= high_skill_rating
has_trait = lifestyle_reveler
has_trait = gregarious
has_trait = august
has_trait = diplomat
has_trait = drunkard
has_trait = trusting
has_trait = compassionate
}
}
scripted_trigger ep2_wedding_2000_is_fishy = {
OR = {
has_lifestyle = intrigue_lifestyle
intrigue >= high_skill_rating
has_trait = callous
has_trait = cynical
has_trait = arbitrary
has_trait = deceitful
has_trait = schemer
has_trait = torturer
has_trait = greedy
has_trait = vengeful
has_trait = ambitious
has_trait = disloyal
}
}
scripted_trigger ep2_wedding_2000_is_lustful = {
OR = {
has_trait = lustful
has_trait = seducer
has_trait = rakish
has_trait = fornicator
has_trait = adulterer
has_trait = sodomite
has_trait = deviant
}
}
ep2_wedding.2000 = {
type = activity_event
title = ep2_wedding.2000.t
desc = {
desc = ep2_wedding.2000.desc.intro
random_valid = {
triggered_desc = {
trigger = {
OR = {
intent_target = {
ep2_wedding_2000_is_lustful = yes
}
AND = {
intent_target = {
ep2_wedding_2000_is_lustful = no
}
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
}
}
desc = ep2_wedding.2000.desc.lustful
}
triggered_desc = {
trigger = {
OR = {
intent_target = {
ep2_wedding_2000_is_nerd = yes
}
AND = {
intent_target = {
ep2_wedding_2000_is_nerd = no
}
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
}
}
desc = ep2_wedding.2000.desc.nerd
}
triggered_desc = {
trigger = {
OR = {
intent_target = {
ep2_wedding_2000_is_valiant = yes
}
AND = {
intent_target = {
ep2_wedding_2000_is_valiant = no
}
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
}
}
desc = ep2_wedding.2000.desc.valiant
}
triggered_desc = {
trigger = {
OR = {
intent_target = {
ep2_wedding_2000_is_social = yes
}
AND = {
intent_target = {
ep2_wedding_2000_is_social = no
}
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
}
}
desc = ep2_wedding.2000.desc.social
}
triggered_desc = {
trigger = {
OR = {
intent_target = {
ep2_wedding_2000_is_fishy = yes
}
AND = {
intent_target = {
ep2_wedding_2000_is_fishy = no
}
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
}
}
desc = ep2_wedding.2000.desc.fishy
}
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
ep2_wedding_2000_is_fishy = yes
}
animation = scheme
}
animation = admiration
}
right_portrait = {
character = scope:target_friend
animation = drink_goblet
}
lower_center_portrait = scope:diplo_target
cooldown = { years = 5 }
trigger = {
has_ep2_dlc_trigger = yes
has_activity_intent = diplomatic_intent
intent_target = { #there's something we can say of them
is_alive = yes
OR = {
ep2_wedding_2000_is_valiant = yes
ep2_wedding_2000_is_nerd = yes
ep2_wedding_2000_is_social = yes
ep2_wedding_2000_is_fishy = yes
ep2_wedding_2000_is_lustful = yes
}
}
scope:activity = { #there's someone that knows the person
any_attending_character = {
ep2_wedding_2000_valid_friend = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
scope:activity = { #there's a guy that's best friends with target
any_attending_character = {
has_relation_best_friend = root.intent_target
}
}
}
modifier = {
factor = 1.5
scope:activity = { #their soulmate is around
any_attending_character = {
has_relation_soulmate = root.intent_target
}
}
}
}
immediate = {
scope:activity = { #there's someone that knows the person
random_attending_character = {
limit = {
ep2_wedding_2000_valid_friend = yes
}
save_scope_as = target_friend
}
}
intent_target = { save_scope_as = diplo_target }
}
#Awesome, let's go!
option = {
name = ep2_wedding.2000.a
custom_tooltip = ep2_wedding.2000.a.tt
trigger_event = ep2_wedding.2001
stress_impact = {
lazy = medium_stress_impact_gain
patient = medium_stress_impact_gain
shy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = patient
has_trait = shy
}
}
}
}
#Are they... lying?
option = {
name = ep2_wedding.2000.b
duel = {
skill = intrigue
target = scope:target_friend
50 = { #they were lying, you catch them
desc = ep2_wedding.2000.b.success
show_chance = no
modifier = {
add = 20
scope:target_friend = {
ep2_wedding_2000_is_fishy = yes
}
}
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = 5
}
send_interface_toast = {
title = ep2_wedding.2000.b.success
left_icon = root
custom_tooltip = ep2_wedding.2000.b.success.tt
set_variable = {
name = wbanquet_friend_insight_var
value = scope:diplo_target
}
add_intrigue_skill = 1
if = {
limit = { has_lifestyle = intrigue_lifestyle }
add_intrigue_lifestyle_xp = minor_lifestyle_experience
}
}
}
50 = { #they weren't lying
desc = ep2_wedding.2000.b.failure
show_chance = no
modifier = {
add = 50
scope:target_friend = {
has_trait = honest
}
}
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = 5
}
send_interface_toast = {
title = ep2_wedding.2000.b.failure
left_icon = scope:target_friend
scope:target_friend = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -5
}
}
}
}
}
stress_impact = {
reclusive = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = reclusive
}
}
}
}
ep2_wedding.2001 = {
type = activity_event
title = ep2_wedding.2001.t
desc = ep2_wedding.2001.desc
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
ep2_wedding_2000_is_fishy = yes
}
animation = scheme
}
animation = admiration
}
right_portrait = {
character = scope:diplo_target
triggered_animation = {
trigger = {
drinks_alcohol_trigger = yes
}
animation = drink_goblet
}
animation = happiness
}
lower_center_portrait = scope:target_friend
#Lustful
option = {
name = ep2_wedding.2001.a
set_local_variable = ep2_wedding_lustful_var
ai_chance = {
base = 100
modifier = {
factor = 2
ep2_wedding_2000_is_lustful = yes
}
}
}
#Nerd
option = {
name = {
trigger = {
NOT = { has_trait = dull }
capital_province = {
geographical_region = world_europe
}
}
text = ep2_wedding.2001.b
}
name = ep2_wedding.2001.b.dull
flavor = {
triggered_desc = {
trigger = {
NOT = { has_trait = dull }
}
desc = ep2_wedding.2001.b.flavor
}
}
set_local_variable = ep2_wedding_nerd_var
ai_chance = {
base = 100
modifier = {
factor = 2
ep2_wedding_2000_is_nerd = yes
}
}
}
#Valiant
option = {
name = ep2_wedding.2001.c
set_local_variable = ep2_wedding_valiant_var
ai_chance = {
base = 100
modifier = {
factor = 2
ep2_wedding_2000_is_valiant = yes
}
}
}
#Social
option = {
name = ep2_wedding.2001.d
set_local_variable = ep2_wedding_social_var
ai_chance = {
base = 100
modifier = {
factor = 2
ep2_wedding_2000_is_social = yes
}
}
}
#Fishy
option = {
name = ep2_wedding.2001.e
set_local_variable = ep2_wedding_fishy_var
ai_chance = {
base = 100
modifier = {
factor = 2
ep2_wedding_2000_is_fishy = yes
}
}
}
after = {
scope:diplo_target = {
hidden_effect = {
if = {
limit = {
OR = {
AND = {
ep2_wedding_2000_is_lustful = yes
has_local_variable = ep2_wedding_lustful_var
}
AND = {
ep2_wedding_2000_is_nerd = yes
has_local_variable = ep2_wedding_nerd_var
}
AND = {
ep2_wedding_2000_is_valiant = yes
has_local_variable = ep2_wedding_valiant_var
}
AND = {
ep2_wedding_2000_is_social = yes
has_local_variable = ep2_wedding_social_var
}
AND = {
ep2_wedding_2000_is_fishy = yes
has_local_variable = ep2_wedding_fishy_var
}
}
}
set_local_variable = ep2_wedding_2000_got_it_right
}
}
}
random_list = {
5 = {
trigger = {
scope:diplo_target = { activity_wedding_diplomatic_intent_impressible_target = yes }
}
desc = ep2_wedding.2000.after.subjugate
show_chance = no
send_interface_toast = {
title = ep2_wedding.2000.after.subjugate
left_icon = scope:diplo_target
custom_tooltip = {
text = ep2_wedding.2000.after.subjugate.tt
complete_activity_intent = yes
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = title_change
add_claim_on_loss = no
}
scope:diplo_target = {
change_liege = {
liege = root
change = scope:title_change
}
}
resolve_title_and_vassal_change = scope:title_change
}
}
}
10 = {
desc = ep2_wedding.2000.after.alliance
show_chance = no
send_interface_toast = {
title = ep2_wedding.2000.after.alliance
left_icon = scope:diplo_target
custom_tooltip = {
text = ep2_wedding.2000.after.alliance.tt
complete_activity_intent = yes
create_alliance = {
target = scope:diplo_target
allied_through_owner = root
allied_through_target = scope:diplo_target
}
scope:diplo_target = {
add_opinion = {
target = root
modifier = event_negotiated_alliance_opinion
}
}
}
}
}
10 = {
desc = ep2_wedding.2000.after.friends
show_chance = no
send_interface_toast = {
title = ep2_wedding.2000.after.friends
left_icon = scope:diplo_target
progress_towards_friend_effect = {
CHARACTER = scope:diplo_target
OPINION = 15
REASON = friend_wedding
}
}
}
20 = { #only possible if you messed up
trigger = {
NOT = { has_local_variable = ep2_wedding_2000_got_it_right }
}
desc = ep2_wedding.2000.after.insult
show_chance = no
send_interface_toast = {
title = ep2_wedding.2000.after.insult.short
left_icon = scope:diplo_target
reverse_add_opinion = {
target = scope:diplo_target
modifier = insult_opinion
opinion = -10
}
}
}
}
}
}
############################
## Wedding Night Events
## 3000-3999
## by Veronica Pazos and Joe Parkin
############################
# Both spouses are shy/nervous and bond over something else
scripted_trigger ep2_wedding.is_valid_shy = {
OR = {
AND = {
age <= 19 #they're young
NOT = { has_trait = lustful }
}
has_trait = shy
has_trait = craven
has_trait = depressed_1
has_trait = depressed_genetic
has_trait = reclusive
has_trait = chaste
}
}
ep2_wedding.3000 = {
type = activity_event
title = ep2_wedding.3000.t
desc = ep2_wedding.3000.desc
theme = wedding_night_activity
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:my_spouse
animation = shame
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are a spouse and shy
AND = {
root = scope:activity.special_guest:spouse_1
ep2_wedding.is_valid_shy = yes
}
AND = {
root = scope:activity.special_guest:spouse_2
ep2_wedding.is_valid_shy = yes
}
}
OR = { #and they are a spouse and shy; you also don't have a lover relationship already
scope:activity.special_guest:spouse_1 = {
this != root
NOT = { has_relation_lover = root }
ep2_wedding.is_valid_shy = yes
}
scope:activity.special_guest:spouse_2 = {
this != root
NOT = { has_relation_lover = root }
ep2_wedding.is_valid_shy = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_trait = shy
}
}
immediate = {
if = {
limit = {
scope:activity.special_guest:spouse_1 = { this != root }
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = my_spouse
}
}
else = {
scope:activity.special_guest:spouse_2 = {
save_scope_as = my_spouse
}
}
add_character_flag = { #doesn't make sense for you to have sexy times after this
flag = busy_in_wnight_event
days = 90
}
}
#Let's go for a walk
option = {
name = ep2_wedding.3000.a
custom_tooltip = ep2_wedding.3000.tt
random_list = {
50 = { #they like it
desc = ep2_wedding.3000.a.success
show_chance = no
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = lifestyle_herbalist
has_trait = lifestyle_gardener
}
}
}
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = impatient
has_trait = diligent
}
}
}
send_interface_toast = {
title = ep2_wedding.3000.a.success
left_icon = scope:my_spouse
scope:activity = {
add_activity_log_entry = {
key = ep2_wedding_3000_log_a
tags = { good }
score = 20
character = root
target = scope:my_spouse
# Effect
root = {
if = {
limit = {
NOT = { has_relation_friend = scope:my_spouse }
}
set_relation_friend = {
target = scope:my_spouse
reason = lover_wnight_walk
}
}
else_if = {
limit = {
NOT = { has_relation_lover = scope:my_spouse }
}
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_walk
OPINION = default_lover_opinion
}
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = romance_opinion
opinion = 15
}
}
}
add_opinion = {
target = scope:my_spouse
modifier = wnight_common_things_opinion
}
}
}
}
}
}
50 = { #they dont
desc = ep2_wedding.3000.a.failure
show_chance = no
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = lazy
has_trait = patient
}
}
}
send_interface_toast = {
title = ep2_wedding.3000.a.failure
left_icon = scope:my_spouse
scope:my_spouse = {
add_opinion = {
target = root
modifier = bored_opinion
opinion = -10
}
}
add_opinion = {
target = scope:my_spouse
modifier = wnight_nothing_in_common_opinion
}
}
}
}
stress_impact = {
lazy = medium_stress_impact_gain
patient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = patient
}
}
}
}
#Do you like... things? Talk about something else
option = {
name = ep2_wedding.3000.b
custom_tooltip = ep2_wedding.3000.tt
random_list = {
50 = { #they like it
desc = ep2_wedding.3000.b.success
show_chance = no
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = patient
has_trait = calm
}
}
}
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = gregarious
has_trait = trusting
}
}
}
send_interface_toast = {
title = ep2_wedding.3000.b.success
left_icon = scope:my_spouse
scope:activity = {
add_activity_log_entry = {
key = ep2_wedding_3000_log_b
tags = { good }
score = 20
character = root
target = scope:my_spouse
# Effect
root = {
if = {
limit = {
NOT = { has_relation_friend = scope:my_spouse }
}
set_relation_friend = {
target = scope:my_spouse
reason = lover_wnight_talk
}
}
else_if = {
limit = { NOT = { has_relation_lover = scope:my_spouse } }
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_talk
OPINION = default_lover_opinion
}
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = romance_opinion
opinion = 5
}
}
}
add_opinion = {
target = scope:my_spouse
modifier = wnight_common_things_opinion
}
}
}
}
}
}
50 = { #they dont
desc = ep2_wedding.3000.b.failure
show_chance = no
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = shy
has_trait = reclusive
}
}
}
modifier = {
add = 50
scope:my_spouse = {
OR = {
has_trait = lisping
has_trait = stuttering
}
}
}
send_interface_toast = {
title = ep2_wedding.3000.b.failure
left_icon = scope:my_spouse
scope:my_spouse = {
add_opinion = {
target = root
modifier = bored_opinion
opinion = -10
}
}
add_opinion = {
target = scope:my_spouse
modifier = wnight_nothing_in_common_opinion
}
}
}
}
stress_impact = {
reclusive = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = reclusive
}
}
}
#Let's just sleep
option = {
name = ep2_wedding.3000.c
scope:my_spouse = {
add_opinion = {
target = root
modifier = friendliness_opinion
opinion = 5
}
}
stress_impact = {
impatient = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = impatient
has_trait = gregarious
}
}
}
}
}
# Spouse with a secret has a breakdown and confesses their secret
ep2_wedding.3010 = {
type = activity_event
title = ep2_wedding.3010.t
desc = {
desc = ep2_wedding.3010.desc.intro
first_valid = { #some vague flavour in case you choose the option to not hear about it (you still know the secret in the tooltip
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_murder
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.murder
}
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_murder_attempt
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.murder_attempt
}
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_cannibal
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.cannibal
}
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_deviant
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.deviant
}
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_witch
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.witch
}
triggered_desc = {
trigger = {
scope:my_spouse = {
any_secret = {
type = secret_non_believer
NOT = { is_known_by = root }
}
}
}
desc = ep2_wedding.3010.desc.non_believer
}
desc = ep2_wedding.3010.desc.fallback
}
}
theme = wedding_night_activity
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:my_spouse
animation = grief
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
OR = { #the other spouse has a secret
scope:activity.special_guest:spouse_1 = {
this != root
any_secret = {
NOT = { is_known_by = root }
}
}
scope:activity.special_guest:spouse_2 = {
this != root
any_secret = {
NOT = { is_known_by = root }
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_trait = shy
}
}
immediate = {
if = {
limit = {
scope:activity.special_guest:spouse_1 = { this != root }
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = my_spouse
}
}
else = {
scope:activity.special_guest:spouse_2 = {
save_scope_as = my_spouse
}
}
scope:my_spouse = {
random_secret = {
limit = { NOT = { is_known_by = root } }
save_scope_as = secret_to_reveal
}
}
}
#You can trust me
option = {
name = ep2_wedding.3010.a
scope:activity = {
add_activity_log_entry = {
key = wedding_confession_log
tags = { good }
score = 25
character = root
target = scope:my_spouse
# Effect
root = {
scope:secret_to_reveal = { reveal_to = root }
if = {
limit = { NOT = { has_relation_lover = scope:my_spouse } }
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_secret_accepted
OPINION = default_lover_opinion
}
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = grateful_opinion
opinion = 5
}
}
scope:my_spouse = {
if = {
limit = {
NOT = { has_character_modifier = wnight_confider_modifier }
}
add_character_modifier = {
modifier = wnight_confider_modifier
years = 10
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = grateful_opinion
opinion = 15
}
}
}
}
root = {
stress_impact = { #intended to be a very stressful moment
calm = medium_stress_impact_gain
content = medium_stress_impact_gain
diligent = medium_stress_impact_gain
temperate = medium_stress_impact_gain
paranoid = major_stress_impact_gain #they can hurt you
just = major_stress_impact_gain
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = content
has_trait = diligent
has_trait = temperate
has_trait = paranoid
has_trait = just
}
}
}
}
#I don't wanna hear the rest
option = {
name = ep2_wedding.3010.b
add_character_modifier = {
modifier = wnight_clear_conscience_modifier
years = 10
}
stress_impact = {
deceitful = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = deceitful
}
}
}
#confess YOUR secret
option = {
name = ep2_wedding.3010.c
trigger = {
any_secret = {
NOT = { is_known_by = scope:my_spouse }
}
}
if = {
limit = { NOT = { has_relation_lover = scope:my_spouse } }
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_secret_shared
OPINION = 20
}
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
}
if = {
limit = {
scope:my_spouse = {
NOT = { has_character_modifier = wnight_confider_modifier }
}
}
scope:my_spouse = {
add_character_modifier = {
modifier = wnight_confider_modifier
years = 10
}
}
}
stress_impact = {
deceitful = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
}
scope:activity = {
add_activity_log_entry = {
key = wedding_confession_joint_log
tags = { good }
score = 25
character = root
target = scope:my_spouse
# Effect
root = {
scope:secret_to_reveal = { reveal_to = root }
random_secret = {
limit = { NOT = { is_known_by = scope:my_spouse } }
reveal_to = scope:my_spouse
}
if = {
limit = { NOT = { has_relation_soulmate = scope:my_spouse } }
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_secret_shared
OPINION = 20
}
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = grateful_opinion
opinion = 20
}
}
if = {
limit = {
scope:my_spouse = {
NOT = { has_character_modifier = wnight_confider_modifier }
}
}
scope:my_spouse = {
add_character_modifier = {
modifier = wnight_confider_modifier
years = 10
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = grateful_opinion
opinion = 20
}
}
}
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = deceitful
has_trait = paranoid
}
}
}
}
}
# You find out that your spouse fancies the other gender
scripted_effect ep2_wedding.3020.reveal_secret_effect = {
if = {
limit = {
scope:my_spouse = {
any_secret = {
type = secret_homosexual
NOT = { is_known_by = root }
}
}
}
scope:my_spouse = {
random_secret = {
type = secret_homosexual
limit = {
NOT = { is_known_by = root }
}
reveal_to = root
}
}
}
}
ep2_wedding.3020 = {
type = activity_event
title = ep2_wedding.3020.t
desc = ep2_wedding.3020.desc
theme = wedding_night_activity
left_portrait = {
character = root
triggered_animation = {
trigger = { NOT = { is_attracted_to_gender_of = scope:my_spouse } }
animation = disbelief
}
animation = stress
}
right_portrait = {
character = scope:my_spouse
animation = worry
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
OR = { #the other spouse doesn't fancy you
scope:activity.special_guest:spouse_1 = {
this != root
NOT = { is_attracted_to_gender_of = root }
}
scope:activity.special_guest:spouse_2 = {
this != root
NOT = { is_attracted_to_gender_of = root }
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
if = {
limit = {
scope:activity.special_guest:spouse_1 = { this != root }
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = my_spouse
}
}
else = {
scope:activity.special_guest:spouse_2 = {
save_scope_as = my_spouse
}
}
add_character_flag = { #doesn't make sense for you to have sexy times after this revelation
flag = busy_in_wnight_event
days = 90
}
}
#Well... not my problem
option = {
name = ep2_wedding.3020.a
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lazy
has_trait = patient
}
}
}
}
#I get it - comfort them
option = {
name = ep2_wedding.3020.b
ep2_wedding.3020.reveal_secret_effect = yes
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:my_spouse }
}
set_relation_friend = {
reason = friend_wnight_homosexual
target = scope:my_spouse
}
}
if = {
limit = {
scope:my_spouse = {
NOT = { has_character_modifier = wnight_confider_modifier }
}
}
scope:my_spouse = {
add_character_modifier = {
modifier = wnight_confider_modifier
years = 10
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
stress_impact = {
lustful = medium_stress_impact_gain
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = callous
}
}
}
}
#You're also NOT attracted to them
option = {
name = ep2_wedding.3020.c
trigger = {
NOT = { is_attracted_to_gender_of = scope:my_spouse }
}
if = {
limit = {
can_set_relation_friend_trigger = { CHARACTER = scope:my_spouse }
}
set_relation_friend = {
reason = friend_wnight_homosexual_both
target = scope:my_spouse
}
}
if = {
limit = {
scope:my_spouse = {
NOT = { has_character_modifier = wnight_confider_modifier }
}
}
scope:my_spouse = {
add_character_modifier = {
modifier = wnight_confider_modifier
years = 10
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
ep2_wedding.3020.reveal_secret_effect = yes
ai_chance = {
base = 100
modifier = {
factor = 2
NOT = { is_attracted_to_gender_of = scope:my_spouse }
}
}
}
}
# Spouse gives you a cute memento to remember this night
ep2_wedding.3030 = {
type = activity_event
title = ep2_wedding.3030.t
desc = ep2_wedding.3030.desc
theme = wedding_night_activity
center_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = seducer
has_trait = lustful
has_trait = rakish
}
}
animation = flirtation_left
}
animation = love
}
right_portrait = {
character = scope:my_spouse
animation = flirtation
}
artifact = {
target = scope:love_memento
position = lower_center_portrait
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
OR = { #the other spouse likes you in any way
scope:activity.special_guest:spouse_1 = {
this != root
OR = {
has_any_good_relationship_with_root_trigger = yes
opinion = {
target = root
value >= default_friend_opinion #15
}
}
}
scope:activity.special_guest:spouse_2 = {
this != root
OR = {
has_any_good_relationship_with_root_trigger = yes
opinion = {
target = root
value >= default_friend_opinion #15
}
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 1.5
OR = {
scope:activity.special_guest:spouse_1 = {
this != root
has_relation_lover = root
}
scope:activity.special_guest:spouse_2 = {
this != root
has_relation_lover = root
}
}
}
modifier = {
factor = 2
OR = {
scope:activity.special_guest:spouse_1 = {
this != root
has_relation_soulmate = root
}
scope:activity.special_guest:spouse_2 = {
this != root
has_relation_soulmate = root
}
}
}
}
immediate = {
save_scope_as = itsa_me_scope #used in the artifact description
if = {
limit = {
scope:activity.special_guest:spouse_1 = { this != root }
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = my_spouse
}
}
else = {
scope:activity.special_guest:spouse_2 = {
save_scope_as = my_spouse
}
}
hidden_effect_new_object = {
generate_romantic_trinket_effect = { OWNER = scope:my_spouse }
if = {
# Checks required for error suppression
limit = { exists = scope:romantic_trinket }
scope:romantic_trinket = {
save_scope_as = love_memento
set_artifact_description = love_memento_desc
}
}
}
create_character_memory = {
type = wedding_night_trinket
participants = {
spouse_1 = root
spouse_2 = scope:my_spouse
}
}
if = {
limit = {
any_character_artifact = {
artifact_slot_type = miscellaneous
this != scope:love_memento
}
}
random_character_artifact = {
limit = {
artifact_slot_type = miscellaneous
this != scope:love_memento
}
save_scope_as = my_love_memento
}
}
add_character_flag = is_naked
scope:my_spouse = {
add_character_flag = is_naked
}
}
#I shall cherish this
option = {
name = ep2_wedding.3030.a
#get a bonus to court schemes targetting them
custom_tooltip = ep2_wedding.3030.a.tt
set_variable = {
name = wnight_court_memento_var
value = scope:my_spouse
}
custom_tooltip = ep2_wedding.3030.artifact_tt
scope:love_memento = {
add_artifact_history = {
type = given
actor = scope:my_spouse
recipient = root
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = romance_opinion
opinion = 10
}
}
}
if = {
limit = {
has_activity_intent = reduce_stress_intent
}
stress_impact = {
base = minor_stress_impact_loss
paranoid = minor_stress_impact_gain
}
}
else = {
stress_impact = {
paranoid = medium_stress_impact_gain
}
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = lustful
has_trait = paranoid
}
}
}
}
#I shall cherish /you/
option = {
name = ep2_wedding.3030.b
#get a bonus to seduce schemes targetting them
custom_tooltip = ep2_wedding.3030.b.tt
set_variable = {
name = wnight_seduce_memento_var
value = scope:my_spouse
}
custom_tooltip = ep2_wedding.3030.artifact_tt
scope:love_memento = {
add_artifact_history = {
type = given
actor = scope:my_spouse
recipient = root
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = romance_opinion
opinion = 10
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = paranoid
}
}
}
}
#I have something for you too!
option = {
name = ep2_wedding.3030.c
trigger = {
exists = scope:my_love_memento
}
scope:love_memento = { set_owner = root }
scope:my_love_memento = { set_owner = scope:my_spouse }
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_very_good_fertility = scope:my_spouse
}
else_if = {
limit = {
NOT = { has_relation_lover = scope:my_spouse }
}
progress_towards_lover_effect = {
CHARACTER = scope:my_spouse
REASON = lover_wnight_gifts
OPINION = default_lover_opinion
}
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = romance_opinion
opinion = 15
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
lustful = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = lustful
has_trait = paranoid
}
}
}
}
#Reject it
option = {
name = ep2_wedding.3030.d
trigger = {
has_trait = paranoid
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -10
}
}
}
stress_impact = {
base = major_stress_impact_loss
}
ai_chance = {
base = 100
}
}
after = {
remove_character_flag = is_naked
scope:my_spouse = {
remove_character_flag = is_naked
}
}
}
# Your spouse and you are having a nice time when the bed catches fire
ep2_wedding.3040 = {
type = activity_event
title = ep2_wedding.3040.t
desc = ep2_wedding.3040.desc
theme = wedding_night_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = brave
has_trait = reckless
}
}
animation = anger
}
animation = fear
}
right_portrait = {
character = scope:my_spouse
animation = shock
}
cooldown = { years = 10 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
scope:activity = {
has_activity_option = {
category = wedding_option_decoration
option = wedding_decoration_bad
}
}
#This is to check if you've been cheap in general
OR = {
scope:activity = {
has_activity_option = {
category = wedding_option_entertainment
option = wedding_entertainment_bad
}
}
scope:activity = {
has_activity_option = {
category = wedding_option_food
option = wedding_food_bad
}
}
}
trigger_if = {
limit = {
root = scope:activity.special_guest:spouse_1
}
#the other spouse likes you at least a tiny bit so you were having fun before the fire
scope:activity.special_guest:spouse_2 = {
OR = {
has_any_good_relationship_with_root_trigger = yes
opinion = {
target = root
value >= 0
}
}
is_attracted_to_gender_of = root
}
# And you like them too
root = {
is_attracted_to_gender_of = scope:activity.special_guest:spouse_2
}
}
trigger_else = {
#the other spouse likes you at least a tiny bit so you were having fun before the fire
scope:activity.special_guest:spouse_1 = {
OR = {
has_any_good_relationship_with_root_trigger = yes
opinion = {
target = root
value >= 0
}
}
is_attracted_to_gender_of = root
}
# And you like them too
root = {
is_attracted_to_gender_of = scope:activity.special_guest:spouse_1
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
has_trait = reckless #you wouldn't pay attention to the candles
}
modifier = {
scope:activity.special_guest:spouse_1 = {
has_relation_lover = scope:activity.special_guest:spouse_2
}
add = 1
}
}
immediate = {
if = {
limit = {
scope:activity.special_guest:spouse_1 = { this != root }
}
scope:activity.special_guest:spouse_1 = {
save_scope_as = my_spouse
}
}
else = {
scope:activity.special_guest:spouse_2 = {
save_scope_as = my_spouse
}
}
add_character_flag = is_naked
scope:my_spouse = {
add_character_flag = is_naked
}
}
#Save them!
option = {
name = ep2_wedding.3040.a
duel = {
skill = prowess
value = average_skill_rating
50 = { #you save them
desc = ep2_wedding.3040.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = ep2_wedding.3040.a.success
left_icon = root
right_icon = scope:my_spouse
}
}
50 = { #you get injured
desc = ep2_wedding.3040.a.failure
send_interface_toast = {
title = ep2_wedding.3040.a.failure
left_icon = root
right_icon = scope:my_spouse
increase_wounds_no_death_effect = { REASON = fire }
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 5
}
}
}
stress_impact = {
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
craven = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = callous
has_trait = sadistic
has_trait = craven
}
}
}
}
#Save yourself
option = {
name = ep2_wedding.3040.b
random_list = {
50 = { #spouse saves themselves
desc = ep2_wedding.3040.b.success
show_chance = no
send_interface_toast = {
title = ep2_wedding.3040.b.success
left_icon = scope:my_spouse
}
}
50 = { #spouse gets injured
desc = ep2_wedding.3040.b.failure
show_chance = no
send_interface_toast = {
title = ep2_wedding.3040.b.failure
left_icon = scope:my_spouse
scope:my_spouse = {
increase_wounds_no_death_effect = { REASON = fire }
}
}
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
else = {
scope:my_spouse = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -10
}
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
brave = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = just
has_trait = brave
}
}
}
}
#MY BODY IS MY WEAPON
option = {
name = ep2_wedding.3040.c
trigger = { has_lifestyle = martial_lifestyle }
duel = {
skill = prowess
value = average_skill_rating
70 = { #you save them
desc = ep2_wedding.3040.c.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
send_interface_toast = {
title = ep2_wedding.3040.c.success
left_icon = root
add_prowess_skill = 1
}
}
30 = { #you get injured
desc = ep2_wedding.3040.a.failure
send_interface_toast = {
title = ep2_wedding.3040.a.failure
left_icon = root
increase_wounds_no_death_effect = { REASON = fire }
add_prestige = minor_prestige_loss
}
}
}
if = {
limit = {
has_trait = tourney_participant
has_trait_xp = {
trait = tourney_participant
track = foot
value < 100
}
}
add_trait_xp = {
trait = tourney_participant
track = foot
value = tournament_hastiludes_xp_gain_medium_value
}
}
else = {
add_martial_lifestyle_xp = medium_lifestyle_xp
}
#no fertility gain because you're doing for yourself
stress_impact = {
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
craven = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 2
OR = {
has_trait = brave
has_trait = reckless
}
}
modifier = {
factor = 1.5
has_lifestyle = martial_lifestyle
}
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = callous
has_trait = sadistic
}
}
}
}
#Are you trying to kill your spouse?
option = {
name = ep2_wedding.3040.d
flavor = ep2_wedding.3040.d.flavor
trigger = {
has_activity_intent = murder_attendee_intent
scope:my_spouse = { is_ai = yes }
intent_target = scope:my_spouse
}
custom_tooltip = available_because_intent_tt
random_list = {
50 = { #spouse saves themselves
desc = ep2_wedding.3040.d.success
show_chance = no
send_interface_toast = { #but they know
title = ep2_wedding.3040.d.success
left_icon = scope:my_spouse
attempted_murder_opinion_effect = {
VICTIM = scope:my_spouse
MURDERER = root
}
add_secret = {
type = secret_murder_attempt
target = scope:my_spouse
}
}
}
50 = { #spouse dies
desc = ep2_wedding.3040.d.failure
show_chance = no
send_interface_toast = {
title = ep2_wedding.3040.d.failure
left_icon = scope:my_spouse
custom_tooltip = ep2_wedding.wedding_intent.success.tt
unknown_murder_effect = {
VICTIM = scope:my_spouse
MURDERER = root
REASON = death_burned
}
set_variable = just_widowed_var
complete_activity_intent = yes
}
give_nickname = nick_the_just_widowed
}
}
}
after = {
remove_character_flag = is_naked
scope:my_spouse = {
remove_character_flag = is_naked
}
}
}
# Non-spouse: Use the Wedding Night phase where almost no one is around to kill your target
# episode 1: CHANDELIER EXTRAVAGANZA
ep2_wedding.3050 = {
type = activity_event
title = ep2_wedding.3050.t
desc = ep2_wedding.3050.desc
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = scheme
}
right_portrait = {
character = scope:intent_victim
animation = drink_goblet
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
NOR = { #you are not one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
has_activity_intent = murder_attendee_intent #you're trying to kill someone
intent_target = { is_alive = yes } #they're not dead yet
intent_target = { #you're not trying to kill the spouses
NOR = {
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
OR = {
has_trait = callous
has_trait = deceitful
has_trait = sadistic
}
}
modifier = { #more likely for them to stay behind
factor = 1.5
intent_target ?= {
OR = {
has_trait = drunkard
has_trait = gregarious
has_trait = lifestyle_reveler
}
}
}
}
immediate = {
intent_target = { save_scope_as = intent_victim }
}
#Kill them immediately
option = {
name = ep2_wedding.3050.a
duel = {
skill = prowess
value = average_skill_rating
70 = { #you kill them
desc = ep2_wedding.3050.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = ep2_wedding.3050.a.success
left_icon = scope:intent_victim
custom_tooltip = ep2_wedding.wedding_intent.success.tt
unknown_murder_effect = {
VICTIM = scope:intent_victim
MURDERER = root
REASON = death_accident
}
}
complete_activity_intent = yes
}
30 = { #they catch you
desc = ep2_wedding.3050.a.failure
send_interface_toast = {
title = ep2_wedding.3050.a.failure
left_icon = root
right_icon = scope:intent_victim
attempted_murder_opinion_effect = {
VICTIM = scope:intent_victim
MURDERER = root
}
add_secret = {
type = secret_murder_attempt
target = scope:intent_victim
}
random_secret = {
type = secret_murder_attempt
limit = {
secret_target = scope:intent_victim
}
expose_secret = scope:intent_victim
}
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
patient = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
deceitful = medium_stress_impact_gain
calm = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = patient
has_trait = compassionate
has_trait = deceitful
has_trait = calm
}
}
}
}
#Use the chandelier
option = {
name = ep2_wedding.3050.b
duel = {
skill = intrigue
value = average_skill_rating
40 = { #you kill them
desc = ep2_wedding.3050.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = ep2_wedding.3050.b.success
left_icon = scope:intent_victim
custom_tooltip = ep2_wedding.wedding_intent.success.tt
unknown_murder_effect = {
VICTIM = scope:intent_victim
MURDERER = root
REASON = death_accident
}
}
complete_activity_intent = yes
}
60 = { #they suspect
desc = ep2_wedding.3050.b.failure
send_interface_toast = {
title = ep2_wedding.3050.b.failure
left_icon = root
right_icon = scope:intent_victim
scope:intent_victim = {
add_opinion = {
target = root
modifier = suspicion_opinion
opinion = -5
}
}
add_secret = {
type = secret_murder_attempt
target = scope:intent_victim
}
}
}
}
stress_impact = {
wrathful = medium_stress_impact_gain
vengeful = medium_stress_impact_gain
craven = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = vengeful
has_trait = craven
has_trait = compassionate
has_trait = impatient
}
}
}
}
#Not now, not now...
option = {
name = ep2_wedding.3050.c
custom_tooltip = ep2_wedding.3050.c.tt
set_variable = {
name = wnight_chandelier_murder_var
value = scope:intent_victim
}
stress_impact = {
wrathful = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = wrathful
has_trait = impatient
}
}
}
}
}
# Either you or spouse doesn't want to take part in bedding ceremony
scripted_trigger ep2_wedding_3200_is_shy_trigger = {
OR = {
has_trait = shy
has_trait = reclusive
has_trait = craven
has_trait = paranoid
}
NOT = { has_trait = gregarious }
}
scripted_trigger ep2_wedding_bedding_ceremony_witness_trigger = {
is_adult = yes
NOR = {
this = root
this = scope:my_spouse
scope:bedding_witness_1 ?= this
scope:bedding_witness_2 ?= this
}
OR = {
scope:host.cp:councillor_court_chaplain ?= this
is_close_family_of = root
is_close_family_of = scope:my_spouse
has_relation_friend = root
has_relation_friend = scope:my_spouse
any_court_position_employer = { this = root }
any_court_position_employer = { this = scope:my_spouse }
}
}
scripted_effect ep2_wedding_bedding_ceremony_witness_effect = {
hidden_effect = {
while = {
count = 3
scope:activity = {
if = {
limit = {
any_attending_character = { ep2_wedding_bedding_ceremony_witness_trigger = yes }
}
random_attending_character = {
limit = { ep2_wedding_bedding_ceremony_witness_trigger = yes }
weight = {
base = 1
modifier = {
scope:host.cp:councillor_court_chaplain ?= this
add = 1000
}
modifier = {
has_trait = lifestyle_reveler
add = 25
}
modifier = {
has_trait = gregarious
add = 25
}
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = scope:my_spouse }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = scope:my_spouse }
}
if = {
limit = { exists = scope:bedding_witness_2 }
save_scope_as = bedding_witness_3
}
else_if = {
limit = { exists = scope:bedding_witness_1 }
save_scope_as = bedding_witness_2
}
else = { save_scope_as = bedding_witness_1 }
add_to_list = bedding_witnesses
}
}
}
}
}
}
ep2_wedding.3200 = {
type = activity_event
title = ep2_wedding.3200.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:shy_both ?= this }
desc = ep2_wedding.3200.both
}
triggered_desc = {
trigger = { scope:shy_spouse ?= this }
desc = ep2_wedding.3200.self
}
desc = ep2_wedding.3200.other
}
}
theme = wedding_night_activity
left_portrait = {
character = root
outfit_tags = { nightgown }
triggered_animation = {
trigger = {
OR = {
scope:shy_spouse ?= this
exists = scope:shy_both
}
}
animation = worry
}
animation = disapproval
}
right_portrait = {
character = scope:my_spouse
outfit_tags = { nightgown }
triggered_animation = {
trigger = { scope:shy_spouse ?= this }
animation = worry
}
triggered_animation = {
trigger = { exists = scope:shy_both }
animation = stress
}
animation = disapproval
}
lower_left_portrait = scope:bedding_witness_1
lower_center_portrait = scope:bedding_witness_2
lower_right_portrait = scope:bedding_witness_3
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
scope:activity.special_guest:spouse_1 ?= this
scope:activity.special_guest:spouse_2 ?= this
}
OR = {
scope:activity.special_guest:spouse_1 ?= {
NOT = { has_trait = gregarious }
}
scope:activity.special_guest:spouse_2 ?= {
NOT = { has_trait = gregarious }
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
scope:activity.special_guest:spouse_1 = { ep2_wedding_3200_is_shy_trigger = yes }
}
modifier = {
factor = 2
scope:activity.special_guest:spouse_2 = { ep2_wedding_3200_is_shy_trigger = yes }
}
}
immediate = {
# Identify root
if = {
limit = { root = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = my_spouse }
}
else = {
scope:activity.special_guest:spouse_1 = { save_scope_as = my_spouse }
}
# Determine shy beddiness
if = {
limit = {
ep2_wedding_3200_is_shy_trigger = yes
scope:my_spouse = { ep2_wedding_3200_is_shy_trigger = yes }
}
save_scope_as = shy_both
}
else_if = {
limit = { ep2_wedding_3200_is_shy_trigger = yes }
save_scope_as = shy_spouse
}
else = {
scope:my_spouse = { save_scope_as = shy_spouse }
}
# Save witnesses
ep2_wedding_bedding_ceremony_witness_effect = yes
}
#Bar the doors
option = {
name = ep2_wedding.3200.a
flavor = ep2_wedding.3200.a.flavor
trigger = {
# Has door privileges
OR = {
location.county.holder = root
highest_held_title_tier > scope:my_spouse.highest_held_title_tier
}
}
scope:activity = {
add_activity_log_entry = {
key = wedding_barred_bedding_log
character = root
target = scope:my_spouse
# Effect
root = {
add_character_modifier = {
modifier = wedding_barred_doors_modifier
years = 5
}
if = {
limit = { scope:shy_spouse ?= this }
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = -20
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = 20
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 75
}
}
}
}
}
every_in_list = {
list = bedding_witnesses
custom = ep2_wedding_witnesses_tt
add_opinion = {
target = root
modifier = wedding_barred_bedding_doors_opinion
opinion = -10
}
if = {
limit = { exists = scope:shy_both }
add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = -10
}
}
}
stress_impact = {
shy = minor_stress_impact_loss
reclusive = minor_stress_impact_loss
paranoid = minor_stress_impact_loss
craven = minor_stress_impact_loss
compassionate = minor_stress_impact_loss
gregarious = miniscule_stress_impact_gain
trusting = miniscule_stress_impact_gain
brave = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
ai_boldness = 1
ai_sociability = -1
}
}
}
#Convince to bar
option = {
name = ep2_wedding.3200.c
trigger = {
OR = {
scope:shy_spouse ?= this
exists = scope:shy_both
}
NOR = {
location.county.holder = root
highest_held_title_tier > scope:my_spouse.highest_held_title_tier
}
}
duel = {
skill = diplomacy
target = scope:my_spouse
40 = { #they accept
desc = ep2_wedding.3200.c.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
modifier = {
factor = 2
exists = scope:shy_both
}
send_interface_toast = {
title = ep2_wedding.3200.c.success
left_icon = scope:my_spouse
scope:activity = {
add_activity_log_entry = {
key = wedding_barred_bedding_log
character = root
target = scope:my_spouse
# Effect
root = {
add_character_modifier = {
modifier = wedding_barred_doors_modifier
years = 5
}
if = {
limit = { scope:shy_spouse ?= this }
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = 10
}
}
else = {
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = 20
}
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 25
}
}
}
}
every_in_list = {
list = bedding_witnesses
custom = ep2_wedding_witnesses_tt
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = -10
}
if = {
limit = { exists = scope:shy_both }
add_opinion = {
target = scope:my_spouse
modifier = wedding_barred_bedding_doors_opinion
opinion = -10
}
}
}
stress_impact = {
shy = minor_stress_impact_loss
reclusive = medium_stress_impact_loss
paranoid = minor_stress_impact_loss
craven = minor_stress_impact_loss
}
}
}
60 = { #they refuse
desc = ep2_wedding.3200.c.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
title = ep2_wedding.3200.c.failure
left_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_forced_bedding_ceremony_opinion
opinion = -10
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
stress_impact = {
shy = miniscule_stress_impact_gain
reclusive = minor_stress_impact_gain
paranoid = miniscule_stress_impact_gain
craven = miniscule_stress_impact_gain
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 1
ai_boldness = 0.5
ai_sociability = -1
}
}
}
#Convince to take part
option = {
name = ep2_wedding.3200.d
trigger = {
NOT = { scope:shy_spouse ?= root }
}
duel = {
skill = diplomacy
target = scope:my_spouse
40 = { #
desc = ep2_wedding.3200.d.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
send_interface_toast = {
title = ep2_wedding.3200.d.success
left_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_caved_to_bedding_opinion
opinion = 10
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 75
}
}
}
60 = { #
desc = ep2_wedding.3200.d.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
send_interface_toast = {
title = ep2_wedding.3200.d.failure
left_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_forced_bedding_ceremony_opinion
opinion = -10
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
}
}
}
stress_impact = {
stubborn = miniscule_stress_impact_gain
compassionate = minor_stress_impact_loss
callous = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
ai_boldness = 0.5
ai_sociability = 1
}
}
}
#Force to take part
option = {
name = ep2_wedding.3200.e
trigger = { scope:shy_spouse ?= scope:my_spouse }
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_forced_bedding_ceremony_opinion
opinion = -10
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 20
}
stress_impact = {
gregarious = medium_stress_impact_loss
zealous = medium_stress_impact_loss
diligent = medium_stress_impact_loss
callous = minor_stress_impact_loss
fickle = miniscule_stress_impact_gain
compassionate = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -0.5
ai_boldness = 0.5
ai_sociability = 1
}
}
}
#Do your duty
option = {
name = ep2_wedding.3200.b
trigger = { scope:shy_spouse ?= this }
if = {
limit = {
NOT = { exists = scope:shy_both }
}
reverse_add_opinion = {
target = scope:my_spouse
modifier = wedding_caved_to_bedding_opinion
opinion = 20
}
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 20
}
stress_impact = {
shy = minor_stress_impact_gain
reclusive = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
craven = minor_stress_impact_gain
gregarious = medium_stress_impact_loss
zealous = medium_stress_impact_loss
diligent = medium_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
ai_sociability = 0.5
}
}
}
}
scripted_trigger wedding_3300_flavor_character_trigger = {
is_participant_in_activity = scope:activity
NOR = {
this = scope:my_spouse
this = root
}
}
ep2_wedding.3300 = {
type = activity_event
title = ep2_wedding.3300.t
desc = {
desc = ep2_wedding.3300.opening
# Ceremony flavor 1
first_valid = {
triggered_desc = {
trigger = {
scope:officiant ?= { is_clergy = yes }
}
desc = ep2_wedding.3300.blessing
}
triggered_desc = {
trigger = { exists = scope:officiant }
desc = ep2_wedding.3300.decorate
}
desc = ep2_wedding.3300.flowers
}
# Ceremony flavor 2
first_valid = {
triggered_desc = {
trigger = {
drinks_alcohol_trigger = yes
scope:my_spouse = { drinks_alcohol_trigger = yes }
}
desc = ep2_wedding.3300.wine
}
desc = ep2_wedding.3300.anointing
}
# Spouse flavor
first_valid = {
triggered_desc = {
trigger = { has_relation_lover = scope:my_spouse }
desc = ep2_wedding.3300.lover
}
triggered_desc = {
trigger = { has_relation_friend = scope:my_spouse }
desc = ep2_wedding.3300.friend
}
triggered_desc = {
trigger = {
OR = {
has_relation_rival = scope:my_spouse
reverse_opinion = { target = scope:my_spouse value < -50 }
}
}
desc = ep2_wedding.3300.hatred
}
triggered_desc = {
trigger = {
OR = {
has_relation_rival = scope:my_spouse
reverse_opinion = { target = scope:my_spouse value < -10 }
}
}
desc = ep2_wedding.3300.unfriendly
}
triggered_desc = {
trigger = {
OR = {
has_relation_rival = scope:my_spouse
reverse_opinion = { target = scope:my_spouse value >= 25 }
}
}
desc = ep2_wedding.3300.friendly
}
desc = ep2_wedding.3300.polite
}
# Party flavor
random_valid = {
triggered_desc = {
trigger = { scope:jester.employer ?= root }
desc = ep2_wedding.3300.jester_self
}
triggered_desc = {
trigger = {
exists = scope:jester
scope:jester.employer != root
}
desc = ep2_wedding.3300.jester
}
triggered_desc = {
trigger = {
scope:friend ?= { has_relation_friend = root }
}
desc = ep2_wedding.3300.other_friend_self
}
triggered_desc = {
trigger = {
exists = scope:friend
NOT = {
scope:friend = { has_relation_friend = root }
}
}
desc = ep2_wedding.3300.other_friend
}
triggered_desc = {
trigger = {
scope:other_spouse ?= { is_spouse_of = root }
}
desc = ep2_wedding.3300.other_spouse_self
}
triggered_desc = {
trigger = {
exists = scope:other_spouse
NOT = {
scope:other_spouse ?= { is_spouse_of = root }
}
}
desc = ep2_wedding.3300.other_spouse
}
triggered_desc = {
trigger = {
scope:family ?= { is_close_family_of = root }
}
desc = ep2_wedding.3300.family_self
}
triggered_desc = {
trigger = {
scope:family ?= { is_close_family_of = scope:my_spouse }
}
desc = ep2_wedding.3300.family
}
desc = ep2_wedding.3300.fallback
}
}
theme = wedding_night_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_relation_rival = scope:my_spouse
opinion = { target = scope:my_spouse value < -50 }
}
}
animation = dismissal
}
triggered_animation = {
trigger = {
OR = {
has_relation_lover = scope:my_spouse
opinion = { target = scope:my_spouse value >= 25 }
}
}
animation = flirtation_left
}
animation = idle
}
right_portrait = {
character = scope:my_spouse
triggered_animation = {
trigger = {
OR = {
has_relation_rival = root
opinion = { target = root value < -10 }
}
}
animation = disapproval
}
triggered_animation = {
trigger = {
OR = {
has_relation_lover = root
opinion = { target = root value >= 25 }
}
}
animation = flirtation
}
animation = idle
}
lower_left_portrait = scope:bedding_witness_1
lower_center_portrait = scope:bedding_witness_2
lower_right_portrait = scope:bedding_witness_3
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
OR = { #you are one of the spouses
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
immediate = {
# Identify root
if = {
limit = { root = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = my_spouse }
}
else = {
scope:activity.special_guest:spouse_1 = { save_scope_as = my_spouse }
}
# Save witnesses
ep2_wedding_bedding_ceremony_witness_effect = yes
# Save officiant
if = {
limit = {
scope:host.cp:councillor_court_chaplain ?= { is_participant_in_activity = scope:activity }
}
scope:host.cp:councillor_court_chaplain = { save_scope_as = officiant }
}
# Save jester
if = {
limit = {
employs_court_position = court_jester_court_position
court_position:court_jester_court_position ?= { wedding_3300_flavor_character_trigger = yes }
}
court_position:court_jester_court_position = { save_scope_as = jester }
}
else_if = {
limit = {
scope:my_spouse = {
employs_court_position = court_jester_court_position
court_position:court_jester_court_position ?= { wedding_3300_flavor_character_trigger = yes }
}
}
scope:my_spouse.court_position:court_jester_court_position = { save_scope_as = jester }
}
else_if = {
limit = {
scope:host = {
employs_court_position = court_jester_court_position
court_position:court_jester_court_position ?= { wedding_3300_flavor_character_trigger = yes }
}
}
scope:host.court_position:court_jester_court_position = { save_scope_as = jester }
}
# Save friend
if = {
limit = {
any_relation = {
type = friend
wedding_3300_flavor_character_trigger = yes
}
}
random_relation = {
type = friend
limit = { wedding_3300_flavor_character_trigger = yes }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = other_friend
}
}
else_if = {
limit = {
scope:my_spouse = {
any_relation = {
type = friend
wedding_3300_flavor_character_trigger = yes
}
}
}
scope:my_spouse = {
random_relation = {
type = friend
limit = { wedding_3300_flavor_character_trigger = yes }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = other_friend
}
}
}
# Save other spouse
if = {
limit = {
any_spouse = { wedding_3300_flavor_character_trigger = yes }
}
random_spouse = {
limit = { wedding_3300_flavor_character_trigger = yes }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = other_spouse
}
}
else_if = {
limit = {
scope:my_spouse = {
any_spouse = { wedding_3300_flavor_character_trigger = yes }
}
}
scope:my_spouse = {
random_spouse = {
limit = { wedding_3300_flavor_character_trigger = yes }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = other_spouse
}
}
}
# Save family
random_list = {
10 = {
trigger = {
any_in_list = {
list = bedding_witnesses
is_close_family_of = root
}
}
random_in_list = {
list = bedding_witnesses
limit = { is_close_family_of = root }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = family
}
}
10 = {
trigger = {
any_in_list = {
list = bedding_witnesses
is_close_family_of = scope:my_spouse
}
}
random_in_list = {
list = bedding_witnesses
limit = { is_close_family_of = scope:my_spouse }
weight = {
base = 1
modifier = { add = ai_sociability }
modifier = { add = ai_boldness }
}
save_scope_as = family
}
}
}
# Save scopes for portraits
if = {
limit = {
exists = scope:jester
scope:jester != scope:bedding_witness_1
}
scope:jester = { save_scope_as = bedding_witness_1 }
}
else_if = {
limit = {
exists = scope:other_friend
scope:other_friend != scope:bedding_witness_1
}
scope:other_friend = { save_scope_as = bedding_witness_1 }
}
else_if = {
limit = {
exists = scope:other_spouse
scope:other_spouse != scope:bedding_witness_1
}
scope:other_spouse = { save_scope_as = bedding_witness_1 }
}
else_if = {
limit = {
exists = scope:family
scope:family != scope:bedding_witness_1
}
scope:family = { save_scope_as = bedding_witness_1 }
}
add_character_flag = is_naked
scope:my_spouse = {
add_character_flag = is_naked
}
}
#Hurry up!
option = {
name = ep2_wedding.3300.a
random_list = {
1 = {
desc = ep2_wedding.3300.a.success
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = 1
}
modifier = { add = attraction }
modifier = {
scope:my_spouse = { has_trait = trusting }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = humble }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.a.success
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = feast_had_good_time_together_opinion
opinion = 10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 75
}
}
}
1 = {
desc = ep2_wedding.3300.a.failure
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = -1
}
modifier = {
scope:my_spouse = { has_trait = paranoid }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = arrogant }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.a.failure
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = disgusted_opinion
opinion = -10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
}
}
}
stress_impact = {
impatient = minor_stress_impact_loss
rakish = minor_stress_impact_loss
lustful = minor_stress_impact_loss
chaste = miniscule_stress_impact_gain
humble = miniscule_stress_impact_gain
craven = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:my_spouse
multiplier = 1
}
ai_value_modifier = {
ai_boldness = 1
ai_sociability = 1
ai_compassion = 0.5
}
}
}
#Tired
option = {
name = ep2_wedding.3300.b
random_list = {
1 = {
desc = ep2_wedding.3300.b.success
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = 0.5
}
modifier = {
scope:my_spouse = { has_trait = compassionate }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = lustful }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.b.success
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = insulted_opinion
opinion = -10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
}
}
1 = {
desc = ep2_wedding.3300.b.failure
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = -0.5
}
modifier = {
scope:my_spouse = { has_trait = chaste }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = callous }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.b.failure
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = relieved_opinion
opinion = 10
}
}
}
}
stress_impact = {
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
compassionate = miniscule_stress_impact_gain
lustful = miniscule_stress_impact_gain
rakish = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:my_spouse
multiplier = -1
}
ai_value_modifier = {
ai_boldness = 0.5
ai_compassion = -1
ai_sociability = -1
}
}
}
#Need more wine
option = {
name = ep2_wedding.3300.c
trigger = { drinks_alcohol_trigger = yes }
random_list = {
1 = {
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = 0.25
}
modifier = {
scope:my_spouse = { has_trait = gluttonous }
factor = 1.25
}
modifier = {
scope:my_spouse = { has_trait = shy }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.c.success
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = relieved_opinion
opinion = 10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 75
}
}
}
1 = {
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = -0.25
}
modifier = {
scope:my_spouse = { drinks_alcohol_trigger = no }
factor = 2
}
modifier = {
scope:my_spouse = { has_trait = temperate }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = gregarious }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.c.failure
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = insulted_opinion
opinion = -10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
}
}
}
stress_impact = {
drunkard = minor_stress_impact_loss
honest = minor_stress_impact_loss
temperate = miniscule_stress_impact_gain
compassionate = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:my_spouse
multiplier = -0.5
}
ai_value_modifier = {
ai_boldness = 0.5
ai_compassion = -0.5
ai_sociability = 0.5
}
}
}
#I'll do it, but I won't like it
option = {
name = ep2_wedding.3300.d
trigger = {
OR = {
has_relation_rival = scope:my_spouse
opinion = {
target = scope:my_spouse
value < -10
}
}
}
random_list = {
1 = {
desc = ep2_wedding.3300.d.success
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = 0.5
}
modifier = { add = attraction }
modifier = { add = scope:my_spouse.attraction }
modifier = {
scope:my_spouse = { has_trait = lustful }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.d.success
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = feast_had_good_time_together_opinion
opinion = 10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_good_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 75
}
}
}
1 = {
desc = ep2_wedding.3300.d.failure
opinion_modifier = {
who = scope:my_spouse
opinion_target = root
multiplier = -0.5
}
modifier = {
scope:my_spouse = { has_trait = shy }
factor = 1.5
}
modifier = {
scope:my_spouse = { has_trait = chaste }
factor = 1.5
}
min = 5
send_interface_toast = {
title = ep2_wedding.3300.d.failure
left_icon = root
right_icon = scope:my_spouse
reverse_add_opinion = {
target = scope:my_spouse
modifier = seduce_bad_time_opinion
opinion = -10
}
if = {
limit = {
scope:my_spouse = { has_any_fertility_relationship_with_root_trigger = no }
}
set_relation_wedding_bad_fertility = scope:my_spouse
}
had_sex_with_effect = {
CHARACTER = scope:my_spouse
PREGNANCY_CHANCE = 5
}
}
}
}
stress_impact = {
ambitious = minor_stress_impact_loss
stubborn = minor_stress_impact_loss
fickle = miniscule_stress_impact_gain
arrogant = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:my_spouse
multiplier = 0.5
}
ai_value_modifier = {
ai_honor = 0.5
ai_boldness = -0.5
ai_sociability = 0.5
}
}
}
after = {
remove_character_flag = is_naked
scope:my_spouse = {
remove_character_flag = is_naked
}
}
}
scripted_trigger wedding_3400_shared_trigger = {
is_adult = yes
is_participant_in_activity = scope:activity
NOR = {
this = root
has_any_scripted_relation = root
scope:activity.special_guest:spouse_1 ?= this
scope:activity.special_guest:spouse_2 ?= this
is_child_of = root
is_nibling_of = root
is_uncle_or_aunt_of = root
is_sibling_of = root
is_parent_of = root
is_grandparent_of = root
is_great_grandparent_of = root
is_grandchild_of = root
is_great_grandchild_of = root
}
}
scripted_trigger wedding_3400_suitor_trigger = {
age < 50
is_participant_in_activity = scope:activity
is_attracted_to_gender_of = $SUITOR$
age >= $SUITOR$.age_minus_25
age < $SUITOR$.age_plus_25
OR = {
is_married = no
allowed_more_spouses = yes
trigger_if = {
limit = { is_female = yes }
faith = { has_doctrine = doctrine_adultery_women_accepted }
root.faith = { has_doctrine = doctrine_adultery_women_accepted }
$SUITOR$.faith = { has_doctrine = doctrine_adultery_women_accepted }
}
trigger_else = {
faith = { has_doctrine = doctrine_adultery_men_accepted }
root.faith = { has_doctrine = doctrine_adultery_men_accepted }
$SUITOR$.faith = { has_doctrine = doctrine_adultery_men_accepted }
}
}
}
scripted_effect wedding_3400_save_relative_effect = {
save_scope_as = other_family_spouse
random_close_or_extended_family_member = {
limit = {
is_close_family_of = scope:other_family_spouse
wedding_3400_shared_trigger = yes
save_temporary_scope_as = other_relative_temp
}
alternative_limit = {
wedding_3400_shared_trigger = yes
save_temporary_scope_as = other_relative_temp
}
weight = {
base = 1
wedding_similiar_family_member_modifier = yes
modifier = {
add = 50
scope:my_family_spouse = {
any_close_family_member = {
wedding_3400_suitor_trigger = { SUITOR = scope:other_relative_temp }
save_temporary_scope_as = family_suitor_temp
}
}
wedding_3400_suitor_trigger = { SUITOR = scope:family_suitor_temp }
}
}
save_scope_as = other_family_relative
}
}
scripted_effect wedding_3400_knowledge_effect = {
random_list = {
0 = {
trigger = { diplomacy < $OTHER$.diplomacy }
modifier = { add = $OTHER$.diplomacy }
add_diplomacy_skill = 1
}
0 = {
trigger = { martial < $OTHER$.martial }
modifier = { add = $OTHER$.martial }
add_martial_skill = 1
}
0 = {
trigger = { stewardship < $OTHER$.stewardship }
modifier = { add = $OTHER$.stewardship }
add_stewardship_skill = 1
}
0 = {
trigger = { intrigue < $OTHER$.intrigue }
modifier = { add = $OTHER$.intrigue }
add_intrigue_skill = 1
}
0 = {
trigger = { learning < $OTHER$.learning }
modifier = { add = $OTHER$.learning }
add_learning_skill = 1
}
}
}
ep2_wedding.3400 = {
type = activity_event
title = ep2_wedding.3400.t
desc = {
desc = ep2_wedding.3400.opening
first_valid = {
triggered_desc = {
trigger = { drinks_alcohol_trigger = yes }
desc = ep2_wedding.3400.drink_self
}
triggered_desc = {
trigger = { can_be_hashishiyah = yes }
desc = ep2_wedding.3400.hashish_self
}
desc = ep2_wedding.3400.fallback_self
}
first_valid = {
triggered_desc = {
trigger = {
scope:other_family_relative = { drinks_alcohol_trigger = yes }
}
desc = ep2_wedding.3400.drink
}
triggered_desc = {
trigger = {
scope:other_family_relative = { can_be_hashishiyah = yes }
}
desc = ep2_wedding.3400.hashish
}
desc = ep2_wedding.3400.fallback
}
random_valid = {
triggered_desc = {
trigger = {
scope:other_family_relative = {
drinks_alcohol_trigger = yes
NOR = {
is_child_of = scope:my_family_spouse
is_sibling_of = scope:my_family_spouse
is_parent_of = scope:my_family_spouse
is_grandparent_of = scope:my_family_spouse
}
}
}
desc = ep2_wedding.3400.drink_family
}
triggered_desc = {
trigger = {
scope:other_family_relative = {
drinks_alcohol_trigger = no
NOR = {
is_child_of = scope:my_family_spouse
is_sibling_of = scope:my_family_spouse
is_parent_of = scope:my_family_spouse
is_grandparent_of = scope:my_family_spouse
}
}
}
desc = ep2_wedding.3400.family
}
triggered_desc = {
trigger = {
exists = house
exists = scope:other_family_relative.house
house != scope:other_family_relative.house
scope:other_family_relative = { drinks_alcohol_trigger = yes }
}
desc = ep2_wedding.3400.drink_house
}
triggered_desc = {
trigger = {
exists = house
exists = scope:other_family_relative.house
house != scope:other_family_relative.house
scope:other_family_relative = { drinks_alcohol_trigger = no }
}
desc = ep2_wedding.3400.house
}
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
drinks_alcohol_trigger = yes
NOT = { has_trait = temperate }
}
animation = drink_goblet
}
animation = happiness
}
right_portrait = {
character = scope:other_family_relative
triggered_animation = {
trigger = {
drinks_alcohol_trigger = yes
NOT = { has_trait = temperate }
}
animation = toast_goblet
}
animation = laugh
}
lower_right_portrait = scope:activity.special_guest:spouse_1
lower_center_portrait = scope:my_family_suitor
lower_left_portrait = scope:activity.special_guest:spouse_2
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
is_adult = yes
# Spouse 1 and 2 are not root
NOR = {
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_2 = root
}
# Spouse 1 is related to root and someone related to Spouse 2 is kicking around
trigger_if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_2 = {
any_close_or_extended_family_member = { wedding_3400_shared_trigger = yes }
}
}
# Spouse 2 is related to root and someone related to Spouse 1 is kicking around
trigger_else_if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_2 }
scope:activity.special_guest:spouse_1 = {
any_close_or_extended_family_member = { wedding_3400_shared_trigger = yes }
}
}
# No dice
trigger_else = { always = no }
}
immediate = {
# Save someone related to Spouse 2
save_scope_as = my_family_relative
if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_1 = { save_scope_as = my_family_spouse }
scope:activity.special_guest:spouse_2 = { wedding_3400_save_relative_effect = yes }
}
# Save someone related to Spouse 1
else = {
scope:activity.special_guest:spouse_2 = { save_scope_as = my_family_spouse }
scope:activity.special_guest:spouse_1 = { wedding_3400_save_relative_effect = yes }
}
# Save suitor if relevant
if = {
limit = {
any_close_family_member = {
wedding_3400_suitor_trigger = { SUITOR = scope:other_family_relative }
save_temporary_scope_as = family_suitor_temp
}
scope:other_family_relative = {
wedding_3400_suitor_trigger = { SUITOR = scope:family_suitor_temp }
}
}
random_close_family_member = {
limit = {
wedding_3400_suitor_trigger = { SUITOR = scope:other_family_relative }
save_temporary_scope_as = family_suitor_temp
scope:other_family_relative = {
wedding_3400_suitor_trigger = { SUITOR = scope:family_suitor_temp }
}
}
weight = {
base = 1
modifier = {
add = 50
age >= scope:other_family_relative.age_minus_5
age < scope:other_family_relative.age_plus_5
}
modifier = {
add = 25
age >= scope:other_family_relative.age_minus_10
age < scope:other_family_relative.age_plus_10
}
modifier = { add = attraction }
}
save_scope_as = my_family_suitor
}
}
}
#Oh lemme bore you
option = {
name = ep2_wedding.3400.a
send_interface_toast = {
title = ep2_wedding.3400.tt
left_icon = root
right_icon = scope:other_family_relative
wedding_3400_knowledge_effect = { OTHER = scope:other_family_relative }
scope:other_family_relative = {
wedding_3400_knowledge_effect = { OTHER = root }
}
}
stress_impact = {
ambitious = minor_stress_impact_loss
diligent = minor_stress_impact_loss
content = miniscule_stress_impact_gain
lazy = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 1
}
}
}
#Family matchmaker
option = {
name = ep2_wedding.3400.b
trigger = { exists = scope:my_family_suitor }
random_list = {
10 = {
desc = ep2_wedding.3400.b.success
opinion_modifier = {
who = scope:my_family_suitor
opinion_target = scope:other_family_relative
multiplier = 0.5
}
send_interface_toast = {
title = ep2_wedding.3400.b.tt
left_icon = scope:other_family_relative
right_icon = scope:my_family_suitor
scope:other_family_relative = {
progress_towards_lover_effect = {
CHARACTER = scope:my_family_suitor
REASON = lover_wedding_relation_suitor
OPINION = default_lover_opinion
}
}
}
}
10 = {
desc = ep2_wedding.3400.b.failure
opinion_modifier = {
who = scope:my_family_suitor
opinion_target = scope:other_family_relative
multiplier = -0.5
}
send_interface_toast = {
title = ep2_wedding.3400.b.failure
left_icon = scope:other_family_relative
right_icon = scope:my_family_suitor
}
}
}
stress_impact = {
compassionate = minor_stress_impact_loss
trusting = minor_stress_impact_loss
callous = miniscule_stress_impact_gain
paranoid = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:my_family_suitor
multiplier = 0.5
}
opinion_modifier = {
opinion_target = scope:other_family_relative
multiplier = 0.5
}
ai_value_modifier = {
ai_compassion = 1
}
}
}
#More wine!
option = {
name = {
trigger = { drinks_alcohol_trigger = yes }
text = ep2_wedding.3400.c.drink
}
name = {
trigger = { drinks_alcohol_trigger = no }
text = ep2_wedding.3400.c.hashish
}
trigger = {
OR = {
drinks_alcohol_trigger = yes
can_be_hashishiyah = yes
}
}
add_prestige = medium_prestige_gain
if = {
limit = { has_trait = lifestyle_reveler }
add_trait_xp = {
trait = lifestyle_reveler
value = medium_trait_xp
}
}
else = { add_trait = lifestyle_reveler }
if = {
limit = { drinks_alcohol_trigger = yes }
if = {
limit = {
NOT = { has_trait = drunkard }
}
random = {
chance = 1
add_trait = drunkard
}
stress_impact = {
base = minor_stress_impact_loss
drunkard = minor_stress_impact_loss
lifestyle_reveler = minor_stress_impact_loss
lazy = minor_stress_impact_loss
temperate = miniscule_stress_impact_gain
diligent = miniscule_stress_impact_gain
}
}
}
else_if = {
limit = { can_be_hashishiyah = yes }
random = {
chance = 1
add_trait = hashishiyah
}
stress_impact = {
base = minor_stress_impact_loss
hashishiyah = minor_stress_impact_loss
lifestyle_reveler = minor_stress_impact_loss
lazy = minor_stress_impact_loss
temperate = miniscule_stress_impact_gain
diligent = miniscule_stress_impact_gain
}
}
ai_chance = {
base = 50
modifier = {
has_trait = drunkard
add = 50
}
modifier = {
has_trait = hashishiyah
add = 50
}
ai_value_modifier = {
ai_boldness = 1
ai_rationality = -0.5
}
}
}
#Befriend
option = {
name = ep2_wedding.3400.d
trigger = {
OR = {
NOT = { exists = scope:my_family_suitor }
NOT = { is_attracted_to_gender_of = scope:other_family_relative }
}
}
progress_towards_friend_effect = {
REASON = friend_wedding_relation_bond
CHARACTER = scope:other_family_relative
OPINION = default_friend_opinion
}
stress_impact = {
gregarious = minor_stress_impact_loss
humble = minor_stress_impact_loss
shy = miniscule_stress_impact_gain
arrogant = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:other_family_relative
multiplier = 1
}
ai_value_modifier = {
ai_sociability = 1
}
modifier = {
num_of_relation_friend >= 2
factor = 0
}
}
}
#Woo
option = {
name = ep2_wedding.3400.e
trigger = {
is_attracted_to_gender_of = scope:other_family_relative
NOT = { has_trait = celibate }
}
duel = {
skill = intrigue
value = medium_skill_rating
10 = {
desc = ep2_wedding.3400.e.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
add = 5
has_trait = seducer
}
modifier = { add = attraction }
modifier = {
add = 50
scope:other_family_relative = {
would_attempt_to_seduce_trigger = { CHARACTER = root }
}
}
send_interface_toast = {
title = ep2_wedding.3400.e.success
progress_towards_lover_effect = {
REASON = lover_wedding_relation_bond
CHARACTER = scope:other_family_relative
OPINION = default_lover_opinion
}
if = {
limit = {
might_cheat_on_every_partner_trigger = yes
scope:other_family_relative = { might_cheat_on_every_partner_trigger = yes }
}
had_sex_with_effect = {
CHARACTER = scope:other_family_relative
PREGNANCY_CHANCE = pregnancy_chance
}
}
}
min = 5
}
10 = {
desc = ep2_wedding.3400.e.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = {
add = 50
NOT = {
scope:other_family_relative = {
would_attempt_to_seduce_trigger = { CHARACTER = root }
}
}
}
min = 5
send_interface_toast = {
title = ep2_wedding.3400.e.failure
reverse_add_opinion = {
target = scope:other_family_relative
modifier = disgusted_opinion
opinion = -10
}
}
}
}
stress_impact = {
lustful = minor_stress_impact_loss
rakish = minor_stress_impact_loss
chaste = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
opinion_modifier = {
opinion_target = scope:other_family_relative
multiplier = 1
}
ai_value_modifier = {
ai_boldness = 0.5
ai_sociability = 0.5
}
modifier = {
num_of_relation_lover >= 2
factor = 0
}
modifier = {
NOT = {
would_attempt_to_seduce_trigger = { CHARACTER = scope:other_family_relative }
}
factor = 0
}
}
}
}
ep2_wedding.3410 = {
type = activity_event
title = ep2_wedding.3410.t
desc = {
desc = ep2_wedding.3410.opening
first_valid = {
triggered_desc = { # Double trouble
trigger = { exists = scope:double_jealousy }
desc = ep2_wedding.3410.double
}
triggered_desc = { # Primary spouse
trigger = {
OR = {
has_relation_lover = scope:jealousy_focus
any_secret = {
type = secret_lover
secret_target = scope:jealousy_focus
}
}
}
desc = ep2_wedding.3410.lover
}
triggered_desc = { # Primary spouse
trigger = { primary_spouse ?= scope:jealousy_focus }
desc = ep2_wedding.3410.primary
}
desc = ep2_wedding.3410.secondary
}
first_valid = {
triggered_desc = { # Double trouble
trigger = { exists = scope:double_jealousy }
desc = ep2_wedding.3410.double_opinion
}
triggered_desc = { # Primary spouse
trigger = {
reverse_opinion = {
target = scope:jealousy_focus
value >= 25
}
}
desc = ep2_wedding.3410.positive_opinion
}
triggered_desc = { # Primary spouse
trigger = {
reverse_opinion = {
target = scope:jealousy_focus
value <= 0
}
}
desc = ep2_wedding.3410.negative_opinion
}
desc = ep2_wedding.3410.indifferent_opinion
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
exists = scope:double_jealousy
AND = {
NOT = { exists = scope:double_jealousy }
reverse_opinion = {
target = scope:jealousy_focus
value > 0
}
}
}
}
animation = stress
}
animation = war_over_win
}
lower_right_portrait = scope:jealousy_focus
lower_left_portrait = scope:jealousy_usurper
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
is_adult = yes
# Spouse 1 and 2 are not root
NOR = {
scope:activity.special_guest:spouse_1 = root
scope:activity.special_guest:spouse_2 = root
}
# Has an intimate relationship with a spouse
OR = {
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_1
}
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_2
}
has_relation_lover = scope:activity.special_guest:spouse_1
has_relation_lover = scope:activity.special_guest:spouse_2
is_spouse_of = scope:activity.special_guest:spouse_1
is_spouse_of = scope:activity.special_guest:spouse_2
}
}
immediate = {
# Check for double
if = {
limit = {
OR = {
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_1
}
has_relation_lover = scope:activity.special_guest:spouse_1
is_spouse_of = scope:activity.special_guest:spouse_1
}
OR = {
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_2
}
has_relation_lover = scope:activity.special_guest:spouse_2
is_spouse_of = scope:activity.special_guest:spouse_2
}
}
save_scope_as = double_jealousy
}
# Save jealous focus, or preferred
hidden_effect = {
random_list = {
1 = {
trigger = {
OR = {
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_1
}
has_relation_lover = scope:activity.special_guest:spouse_1
is_spouse_of = scope:activity.special_guest:spouse_1
}
}
opinion_modifier = {
opinion_target = scope:activity.special_guest:spouse_1
multiplier = 1
}
scope:activity.special_guest:spouse_1 = { save_scope_as = jealousy_focus }
scope:activity.special_guest:spouse_2 = { save_scope_as = jealousy_usurper }
}
1 = {
trigger = {
OR = {
any_secret = {
type = secret_lover
secret_target = scope:activity.special_guest:spouse_2
}
has_relation_lover = scope:activity.special_guest:spouse_2
is_spouse_of = scope:activity.special_guest:spouse_2
}
}
opinion_modifier = {
opinion_target = scope:activity.special_guest:spouse_2
multiplier = 1
}
scope:activity.special_guest:spouse_2 = { save_scope_as = jealousy_focus }
scope:activity.special_guest:spouse_1 = { save_scope_as = jealousy_usurper }
}
}
}
}
#Make a scene
option = {
name = ep2_wedding.3410.a
flavor = ep2_wedding.3410.a.flavor
add_prestige = minor_prestige_gain
reverse_add_opinion = {
target = scope:jealousy_focus
modifier = ruined_wedding_night_opinion
opinion = -15
}
reverse_add_opinion = {
target = scope:jealousy_usurper
modifier = ruined_wedding_night_opinion
opinion = -15
}
if = {
limit = {
any_secret = {
type = secret_lover
secret_target = scope:jealousy_focus
}
}
scope:jealousy_usurper = {
every_close_family_member = {
custom = every_usurper_close_family_tt
add_opinion = {
target = scope:jealousy_focus
modifier = revealed_lover_wedding_night_opinion
opinion = -20
}
add_opinion = {
target = root
modifier = ruined_wedding_night_opinion
opinion = -10
}
}
}
}
expose_lover_secret_or_run_consequence_effect = {
TARGET = scope:jealousy_focus
EXPOSER = root
}
stress_impact = {
base = minor_stress_impact_loss
wrathful = minor_stress_impact_loss
calm = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
ai_vengefulness = 0.5
ai_boldness = 0.5
}
modifier = {
any_secret = {
type = secret_lover
secret_target = scope:jealousy_usurper
}
factor = 0.5
}
}
}
#Plot murder
option = {
name = ep2_wedding.3410.b
trigger = {
NOR = {
any_secret = {
type = secret_lover
secret_target = scope:jealousy_usurper
}
has_relation_lover = scope:jealousy_usurper
is_scheming_against = { target = scope:jealousy_usurper }
}
can_start_scheme = {
type = murder
target_character = scope:jealousy_usurper
}
}
start_scheme = {
target_character = scope:jealousy_usurper
type = murder
}
random_scheme = {
type = murder
limit = {
scheme_target_character = scope:jealousy_usurper
}
add_scheme_modifier = { type = wedding_consorts_envy_modifier }
}
custom_tooltip = ep2_wedding.3410.b.tt
stress_impact = {
vengeful = minor_stress_impact_loss
zealous = miniscule_stress_impact_gain
just = miniscule_stress_impact_gain
forgiving = miniscule_stress_impact_gain
}
ai_chance = {
base = 75
opinion_modifier = {
opinion_target = scope:jealousy_usurper
multiplier = -1
}
ai_value_modifier = {
ai_energy = 1
ai_vengefulness = 1
ai_boldness = 1
}
}
}
#Fed up with focus
option = {
name = ep2_wedding.3410.c
trigger = {
OR = {
has_relation_lover = scope:jealousy_focus
has_relation_lover = scope:jealousy_usurper
}
}
if = {
limit = { has_relation_lover = scope:jealousy_focus }
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:jealousy_focus
modifier = insulted_opinion
opinion = -20
}
}
lose_lover_effect = { LOVER = scope:jealousy_focus }
}
if = {
limit = { has_relation_lover = scope:jealousy_usurper }
if = {
limit = { is_ai = yes }
add_opinion = {
target = scope:jealousy_focus
modifier = insulted_opinion
opinion = -20
}
}
lose_lover_effect = { LOVER = scope:jealousy_usurper }
}
stress_impact = {
fickle = minor_stress_impact_loss
base = miniscule_stress_impact_gain
stubborn = miniscule_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 1
ai_compassion = 1
ai_boldness = 0.5
}
}
}
#Fine by me
option = {
name = ep2_wedding.3410.d
add_character_modifier = {
modifier = wedding_old_news_modifier
years = 5
}
stress_impact = {
humble = minor_stress_impact_loss
content = minor_stress_impact_loss
arrogant = miniscule_stress_impact_gain
ambitious = miniscule_stress_impact_gain
}
ai_chance = {
base = 50
opinion_modifier = {
opinion_target = scope:jealousy_focus
multiplier = -1
}
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
}
ep2_wedding.3420 = {
type = activity_event
title = ep2_wedding.3420.t
desc = {
desc = ep2_wedding.3420.opening
random_valid = {
triggered_desc = {
trigger = {
OR = {
has_trait = gluttonous
has_trait = comfort_eater
}
exists = scope:wedding_eat
}
desc = ep2_wedding.3420.eat
}
triggered_desc = {
trigger = {
OR = {
has_trait = drunkard
has_trait = hashishiyah
has_trait = lifestyle_reveler
}
exists = scope:wedding_drink
}
desc = ep2_wedding.3420.drink
}
triggered_desc = {
trigger = {
OR = {
has_trait = lustful
has_trait = rakish
}
exists = scope:wedding_lech
}
desc = ep2_wedding.3420.lech
}
triggered_desc = {
trigger = {
OR = {
has_trait = greedy
has_trait = avaricious
}
exists = scope:wedding_steal
}
desc = ep2_wedding.3420.steal
}
triggered_desc = {
trigger = {
OR = {
has_trait = shy
has_trait = reclusive
}
exists = scope:wedding_flee
}
desc = ep2_wedding.3420.flee
}
triggered_desc = {
trigger = {
OR = {
has_trait = generous
has_trait = improvident
}
exists = scope:wedding_charity
}
desc = ep2_wedding.3420.charity
}
triggered_desc = {
trigger = {
OR = {
has_trait = gregarious
has_trait = trusting
}
exists = scope:wedding_social
}
desc = ep2_wedding.3420.social
}
triggered_desc = {
trigger = {
OR = {
has_trait = arrogant
has_trait = ambitious
has_trait = august
}
exists = scope:wedding_posture
}
desc = ep2_wedding.3420.posture
}
triggered_desc = {
trigger = {
OR = {
has_trait = honest
has_trait = contrite
}
exists = scope:wedding_blab
scope:blab_guest = root
}
desc = ep2_wedding.3420.blab_self
}
triggered_desc = {
trigger = {
OR = {
has_trait = honest
has_trait = contrite
}
exists = scope:wedding_blab
}
desc = ep2_wedding.3420.blab
}
triggered_desc = {
trigger = {
OR = {
has_trait = deceitful
has_trait = schemer
}
exists = scope:wedding_scheme
}
desc = ep2_wedding.3420.scheme
}
triggered_desc = {
trigger = {
OR = {
has_trait = compassionate
has_trait = generous
}
exists = scope:wedding_help
}
desc = ep2_wedding.3420.help
}
triggered_desc = {
trigger = {
OR = {
has_trait = compassionate
has_trait = zealous
}
exists = scope:wedding_pray
}
desc = ep2_wedding.3420.pray
}
}
desc = ep2_wedding.3420.closing
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:social_guest
trigger = { exists = scope:wedding_social }
animation = happiness
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
is_adult = yes
exists = scope:activity
}
immediate = {
scope:activity = {
# Blab scopes
random_attending_character = {
limit = {
any_targeting_secret = {
OR = {
is_known_by = root
secret_owner = root
}
}
}
save_scope_as = blab_guest
random_targeting_secret = {
limit = { is_known_by = root }
alternative_limit = { secret_owner = root }
save_scope_as = blab_secret
}
}
# Scheme scopes
random_attending_character = {
limit = {
OR = {
any_secret = {
NOR = {
is_known_by = root
secret_owner ?= root
secret_target ?= root
}
}
any_targeting_secret = {
NOR = {
is_known_by = root
secret_owner ?= root
secret_target ?= root
}
}
}
}
weight = {
base = 100
modifier = {
factor = 0.1
scope:blab_guest ?= this
}
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
save_scope_as = scheme_guest
hidden_effect = {
random_list = {
1 = {
trigger = {
any_secret = {
NOR = {
is_known_by = root
secret_owner = root
trigger_if = {
limit = { exists = scope:scheme_target }
secret_target = root
}
}
}
}
random_secret = {
limit = {
NOR = {
is_known_by = root
secret_owner = root
trigger_if = {
limit = { exists = scope:scheme_target }
secret_target = root
}
}
}
save_scope_as = scheme_secret
}
}
1 = {
trigger = {
any_targeting_secret = {
NOR = {
is_known_by = root
secret_owner = root
trigger_if = {
limit = { exists = scope:scheme_target }
secret_target = root
}
}
}
}
random_targeting_secret = {
limit = {
NOR = {
is_known_by = root
secret_owner = root
trigger_if = {
limit = { exists = scope:scheme_target }
secret_target = root
}
}
}
save_scope_as = scheme_secret
}
}
}
}
}
# Social scopes
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
has_any_scripted_relation = root
}
opinion = {
target = root
value > -25
}
}
weight = {
base = 50
modifier = {
scope:blab_guest ?= this
factor = 0.1
}
modifier = {
scope:scheme_guest ?= this
factor = 0.1
}
modifier = {
has_trait = gregarious
add = 25
}
modifier = {
has_trait = lifestyle_reveler
add = 25
}
modifier = {
trait_compatibility = {
target = root
value >= low_positive_trait_compatibility
}
add = 25
}
modifier = {
trait_compatibility = {
target = root
value >= medium_positive_trait_compatibility
}
add = 25
}
modifier = {
trait_compatibility = {
target = root
value >= high_positive_trait_compatibility
}
add = 25
}
modifier = {
sex_same_as = root
add = 50
}
modifier = {
age >= root.age_minus_10
age < root.age_plus_10
add = 25
}
modifier = {
age >= root.age_minus_5
age < root.age_plus_5
add = 25
}
}
save_scope_as = social_guest
}
# Help scopes
random_attending_character = {
limit = {
NOR = {
this = root
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
}
weight = {
base = 50
modifier = {
scope:blab_guest ?= this
factor = 0.1
}
modifier = {
scope:scheme_guest ?= this
factor = 0.1
}
modifier = {
scope:social_guest ?= this
factor = 0.1
}
modifier = {
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
add = 25
}
modifier = {
is_healthy = no
add = 25
}
modifier = {
age >= 50
add = 25
}
modifier = {
is_close_family_of = root
factor = 2
}
modifier = {
ai_energy <= low_negative_ai_value
add = 25
}
modifier = {
ai_energy <= medium_negative_ai_value
add = 25
}
modifier = {
ai_energy <= high_negative_ai_value
add = 25
}
modifier = {
current_weight >= overweight_value
add = 25
}
modifier = {
age > 30
add = 25
}
modifier = {
age > 60
add = 25
}
}
save_scope_as = help_guest
}
}
hidden_effect = {
while = {
count = 4
random_list = {
10 = { # Eat
trigger = {
NOR = {
exists = scope:wedding_eat
has_trait = inappetetic
}
}
modifier = {
has_trait = temperate
add = -20
}
modifier = {
has_trait = gluttonous
add = 10
}
modifier = {
has_trait = comfort_eater
add = 10
}
modifier = {
has_trait = lazy
add = 10
}
modifier = {
add = {
value = ai_energy
multiply = -1
}
}
save_scope_as = wedding_eat
}
10 = { # Drink
trigger = {
NOT = { exists = scope:wedding_drink }
}
modifier = {
has_trait = temperate
add = -20
}
modifier = {
has_trait = drunkard
add = 10
}
modifier = {
has_trait = hashishiyah
add = 10
}
modifier = {
has_trait = lifestyle_reveler
add = 10
}
modifier = {
has_trait = lazy
add = 10
}
modifier = {
add = {
value = ai_energy
multiply = -1
}
}
save_scope_as = wedding_drink
}
10 = { # Lech
trigger = {
NOT = { exists = scope:wedding_lech }
would_attempt_to_seduce_married_trigger = yes
is_eunuch_trigger = no
NOR = {
has_trait = celibate
has_trait = devoted
}
}
modifier = {
has_trait = chaste
add = -20
}
modifier = {
has_trait = lustful
add = 10
}
modifier = {
has_trait = rakish
add = 10
}
modifier = {
add = {
value = ai_sociability
multiply = 0.5
}
}
modifier = {
add = {
value = ai_honor
multiply = -0.5
}
}
save_scope_as = wedding_lech
}
10 = { # Steal
trigger = {
NOT = { exists = scope:wedding_steal }
exists = root.capital_province
NOT = { scope:activity.activity_location ?= root.capital_province }
OR = {
has_trait = greedy
has_trait = avaricious
gold < 0
ai_honor < low_positive_honor
}
}
modifier = {
has_trait = generous
add = -20
}
modifier = {
has_trait = greedy
add = 10
}
modifier = {
has_trait = arbitrary
add = 10
}
modifier = {
has_trait = avaricious
add = 10
}
modifier = { add = ai_greed }
modifier = {
add = {
value = ai_honor
multiply = -1
}
}
save_scope_as = wedding_steal
}
10 = { # Flee
trigger = {
NOT = { exists = scope:wedding_flee }
OR = {
has_trait = shy
has_trait = reclusive
has_trait = paranoid
has_trait = impatient
}
}
modifier = {
has_trait = gregarious
add = -20
}
modifier = {
has_trait = brave
add = -20
}
modifier = {
has_trait = trusting
add = -20
}
modifier = {
has_trait = shy
add = 10
}
modifier = {
has_trait = paranoid
add = 10
}
modifier = {
has_trait = craven
add = 10
}
modifier = {
has_trait = reclusive
add = 10
}
modifier = {
has_trait = impatient
add = 10
}
modifier = {
add = {
value = ai_boldness
multiply = -1
}
}
save_scope_as = wedding_flee
}
10 = { # Charity
trigger = {
NOT = { exists = scope:wedding_charity }
}
modifier = {
has_trait = greedy
add = -20
}
modifier = {
has_trait = avaricious
add = -20
}
modifier = {
has_trait = callous
add = -20
}
modifier = {
has_trait = sadistic
add = -20
}
modifier = {
has_trait = generous
add = 10
}
modifier = {
has_trait = improvident
add = 10
}
modifier = {
add = {
value = ai_greed
multiply = -1
}
add = {
value = ai_zeal
multiply = 0.5
}
}
save_scope_as = wedding_charity
}
10 = { # Social
trigger = {
NOT = { exists = scope:wedding_social }
exists = scope:social_guest
}
modifier = {
has_trait = shy
add = -20
}
modifier = {
has_trait = reclusive
add = -20
}
modifier = {
has_trait = gregarious
add = 10
}
modifier = {
has_trait = confider
add = 10
}
modifier = { add = ai_sociability }
save_scope_as = wedding_social
}
10 = { # Posture
trigger = {
NOT = { exists = scope:wedding_posture }
}
modifier = {
has_trait = humble
add = -20
}
modifier = {
has_trait = content
add = -20
}
modifier = {
has_trait = arrogant
add = 10
}
modifier = {
has_trait = ambitious
add = 10
}
modifier = {
has_trait = august
add = 10
}
modifier = {
add = {
value = ai_boldness
multiply = 0.5
}
}
save_scope_as = wedding_posture
}
10 = { # Blab
trigger = {
NOT = { exists = scope:wedding_blab }
exists = scope:blab_guest
exists = scope:blab_secret
}
modifier = {
has_trait = deceitful
add = -20
}
modifier = {
has_trait = honest
add = 10
}
modifier = {
has_trait = contrite
add = 10
}
modifier = {
add = {
value = ai_honor
multiply = 0.5
}
}
save_scope_as = wedding_blab
}
10 = { # Scheme
trigger = {
NOT = { exists = scope:wedding_scheme }
}
modifier = {
has_trait = honest
add = -20
}
modifier = {
has_trait = contrite
add = -20
}
modifier = {
has_trait = deceitful
add = 10
}
modifier = {
has_trait = schemer
add = 10
}
modifier = {
add = {
value = ai_honor
multiply = -1
}
}
save_scope_as = wedding_scheme
}
10 = { # Help
trigger = {
NOT = { exists = scope:wedding_help }
exists = scope:help_guest
}
modifier = {
has_trait = callous
add = -20
}
modifier = {
has_trait = sadistic
add = -20
}
modifier = {
has_trait = compassionate
add = 10
}
modifier = {
has_trait = generous
add = 10
}
modifier = { add = ai_compassion }
save_scope_as = wedding_help
}
10 = { # Pray
trigger = {
NOT = { exists = scope:wedding_pray }
OR = {
is_close_or_extended_family_of = scope:activity.special_guest:spouse_1
is_close_or_extended_family_of = scope:activity.special_guest:spouse_2
has_trait = devoted
has_trait = zealous
}
}
modifier = {
has_trait = cynical
add = -20
}
modifier = {
has_trait = callous
add = -20
}
modifier = {
has_trait = zealous
add = 10
}
modifier = {
has_trait = compassionate
add = 10
}
modifier = { add = ai_zeal }
modifier = {
add = {
value = ai_compassion
multiply = 0.5
}
}
save_scope_as = wedding_pray
}
}
}
}
}
#Eat
option = {
name = ep2_wedding.3420.a
trigger = { exists = scope:wedding_eat }
trait = gluttonous
trait = comfort_eater
target_weight_modifier_effect = { VALUE = 2 }
stress_impact = {
gluttonous = medium_stress_impact_loss
comfort_eater = medium_stress_impact_loss
temperate = minor_stress_impact_gain
}
ai_chance = {
base = 75
ai_value_modifier = {
ai_energy = 1
ai_vengefulness = 1
ai_boldness = 1
}
}
}
#Drink
option = {
name = ep2_wedding.3420.b
trigger = { exists = scope:wedding_drink }
trait = drunkard
trait = hashishiyah
trait = lifestyle_reveler
if = {
limit = {
NOT = { has_trait = lifestyle_reveler }
}
add_trait = lifestyle_reveler
}
else = {
add_trait_xp = {
trait = lifestyle_reveler
value = medium_trait_xp
}
}
stress_impact = {
base = minor_stress_impact_loss
drunkard = medium_stress_impact_loss
hashishiyah = medium_stress_impact_loss
lifestyle_reveler = medium_stress_impact_loss
temperate = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 1
ai_compassion = 1
ai_boldness = 0.5
}
}
}
#Lech
option = {
name = ep2_wedding.3420.c
trigger = { exists = scope:wedding_lech }
trait = lustful
trait = rakish
if = {
limit = {
NOT = { is_attracted_to_men = yes }
}
had_sex_with_unknown_effect = { GENDER = female }
}
else = {
had_sex_with_unknown_effect = { GENDER = male }
}
stress_impact = {
lustful = medium_stress_impact_loss
rakish = medium_stress_impact_loss
chaste = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Steal
option = {
name = ep2_wedding.3420.d
trigger = { exists = scope:wedding_steal }
trait = greedy
trait = avaricious
add_gold = { 10 25 }
stress_impact = {
greedy = medium_stress_impact_loss
avaricious = medium_stress_impact_loss
generous = medium_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Flee
option = {
name = ep2_wedding.3420.e
trigger = { exists = scope:wedding_flee }
trait = shy
trait = reclusive
add_prestige = miniscule_prestige_loss
stress_impact = {
impatient = minor_stress_impact_loss
paranoid = minor_stress_impact_loss
shy = medium_stress_impact_loss
reclusive = medium_stress_impact_loss
gregarious = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = 0.5
ai_vengefulness = 0.5
ai_boldness = 0.5
}
}
}
#Charity
option = {
name = ep2_wedding.3420.f
trigger = { exists = scope:wedding_charity }
trait = generous
trait = improvident
remove_short_term_gold = { 10 25 }
add_piety = minor_piety_gain
stress_impact = {
generous = medium_stress_impact_loss
improvident = medium_stress_impact_loss
greedy = minor_stress_impact_gain
avaricious = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Socialize
option = {
name = ep2_wedding.3420.g
trigger = { exists = scope:wedding_social }
trait = gregarious
trait = trusting
progress_towards_friend_effect = {
REASON = friend_wedding_relation_bond
CHARACTER = scope:social_guest
OPINION = default_friend_opinion
}
stress_impact = {
gregarious = medium_stress_impact_loss
trusting = medium_stress_impact_loss
shy = minor_stress_impact_gain
paranoid = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Posture
option = {
name = ep2_wedding.3420.h
trigger = { exists = scope:wedding_posture }
trait = arrogant
trait = ambitious
add_prestige = minor_prestige_gain
stress_impact = {
arrogant = medium_stress_impact_loss
ambitious = medium_stress_impact_loss
humble = minor_stress_impact_gain
content = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Blab
option = {
name = ep2_wedding.3420.i
trigger = { exists = scope:wedding_blab }
trait = honest
trait = contrite
if = {
limit = {
root != scope:blab_guest
}
reverse_add_opinion = {
target = scope:blab_guest
modifier = exposed_my_secret_opinion
}
}
scope:blab_secret = { expose_secret = root }
stress_impact = {
honest = medium_stress_impact_loss
contrite = medium_stress_impact_loss
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Scheme
option = {
name = ep2_wedding.3420.j
trigger = { exists = scope:wedding_scheme }
trait = deceitful
trait = schemer
remove_short_term_gold = { 10 25 }
random = {
chance = 50
custom_tooltip = ep2_wedding.3420.j.tt
hidden_effect = {
if = {
limit = { exists = scope:scheme_secret }
send_interface_toast = {
title = secret_discovered_toast
scope:scheme_secret = { reveal_to = root }
}
}
}
}
stress_impact = {
deceitful = medium_stress_impact_loss
schemer = medium_stress_impact_loss
honest = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Help
option = {
name = {
text = ep2_wedding.3420.k.health
trigger = {
scope:help_guest = { is_healthy = no }
}
}
name = {
text = ep2_wedding.3420.k.drink
trigger = {
scope:help_guest = {
OR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
}
}
}
name = {
text = ep2_wedding.3420.k.fallback
trigger = {
scope:help_guest = {
is_healthy = yes
NOR = {
has_trait = drunkard
has_trait = lifestyle_reveler
}
}
}
}
trigger = { exists = scope:wedding_help }
trait = compassionate
flavor = ep2_wedding.3420.k.flavor
progress_towards_friend_effect = {
REASON = friend_wedding_relation_bond
CHARACTER = scope:help_guest
OPINION = default_friend_opinion
}
stress_impact = {
compassionate = medium_stress_impact_loss
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
#Pray
option = {
name = ep2_wedding.3420.l
trigger = { exists = scope:wedding_pray }
trait = zealous
add_piety = minor_piety_gain
stress_impact = {
compassionate = minor_stress_impact_loss
zealous = medium_stress_impact_loss
cynical = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -1
ai_boldness = -1
ai_vengefulness = -1
}
}
}
}
scripted_trigger wedding_3500_shared_trigger = {
is_adult = yes
is_participant_in_activity = scope:activity
NOR = {
this = root
scope:my_family_relative ?= this
scope:my_family_relative_1 ?= this
scope:my_family_relative_2 ?= this
this = scope:activity.special_guest:spouse_1
this = scope:activity.special_guest:spouse_2
}
}
scripted_trigger wedding_3500_same_relation_spouse_trigger = {
is_$RELATION$_of = scope:my_family_spouse
scope:my_family_relative_1 = { is_$RELATION$_of = scope:my_family_spouse }
scope:my_family_relative_2 = { is_$RELATION$_of = scope:my_family_spouse }
}
scripted_trigger ep2_wedding_3500_relations_spouse_shared_trigger = {
OR = {
wedding_3500_same_relation_spouse_trigger = { RELATION = great_grandchild }
wedding_3500_same_relation_spouse_trigger = { RELATION = grandchild }
wedding_3500_same_relation_spouse_trigger = { RELATION = child }
wedding_3500_same_relation_spouse_trigger = { RELATION = great_grandparent }
wedding_3500_same_relation_spouse_trigger = { RELATION = grandparent }
wedding_3500_same_relation_spouse_trigger = { RELATION = sibling }
wedding_3500_same_relation_spouse_trigger = { RELATION = nibling }
wedding_3500_same_relation_spouse_trigger = { RELATION = uncle_or_aunt }
wedding_3500_same_relation_spouse_trigger = { RELATION = cousin }
}
}
scripted_trigger ep2_wedding_3500_same_relation_root_trigger = {
scope:my_family_relative_1 = { is_$RELATION$_of = root }
scope:my_family_relative_2 = { is_$RELATION$_of = root }
}
scripted_trigger ep2_wedding_3500_relations_root_shared_trigger = {
OR = {
ep2_wedding_3500_same_relation_root_trigger = { RELATION = great_grandchild }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = grandchild }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = child }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = great_grandparent }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = grandparent }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = sibling }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = nibling }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = uncle_or_aunt }
ep2_wedding_3500_same_relation_root_trigger = { RELATION = cousin }
}
}
scripted_effect wedding_3500_save_family_effect = {
scope:activity.special_guest:$SPOUSE$ = { save_scope_as = my_family_spouse }
if = {
limit = { scope:my_family_spouse = scope:activity.special_guest:spouse_1 }
scope:activity.special_guest:spouse_2 = { save_scope_as = other_family_spouse }
}
else = {
scope:activity.special_guest:spouse_1 = { save_scope_as = other_family_spouse }
}
while = {
count = 2
random_close_or_extended_family_member = {
limit = {
trigger_if = {
limit = {
root = { is_close_family_of = scope:my_family_spouse }
}
is_close_family_of = scope:my_family_spouse
}
trigger_else = { is_extended_family_of = scope:my_family_spouse }
wedding_3500_shared_trigger = yes
NOR = {
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
alternative_limit = {
wedding_3500_shared_trigger = yes
NOR = {
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
weight = {
base = 1
wedding_family_member_compatibility_modifier = yes
is_of_minor_interest_to_weight_up_modifier = { CHARACTER = root }
is_of_major_interest_to_weight_up_modifier = { CHARACTER = root }
}
if = {
limit = { exists = scope:my_family_relative_1 }
save_scope_as = my_family_relative_2
}
else = { save_scope_as = my_family_relative_1 }
}
}
}
scripted_trigger ep2_wedding_3500_active_bedroom_trigger = {
scope:my_family_spouse = {
is_eunuch_trigger = no
NOT = { has_trait = celibate }
}
scope:other_family_spouse = {
is_eunuch_trigger = no
NOT = { has_trait = celibate }
}
}
scripted_trigger ep2_wedding_3500_dislikes_fornicators_trigger = {
scope:other_family_spouse = {
OR = {
has_trait = fornicator
has_trait = adulterer
}
}
scope:my_family_spouse = {
OR = {
has_trait = fornicator
has_trait = adulterer
}
}
trigger_if = {
limit = {
scope:other_family_spouse = { is_female = yes }
}
faith = {
NOT = { has_doctrine = doctrine_adultery_women_accepted }
}
}
trigger_else = {
faith = {
NOT = { has_doctrine = doctrine_adultery_men_accepted }
}
}
}
ep2_wedding.3500 = {
type = activity_event
title = ep2_wedding.3500.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:my_family_relative_1 = { sex_same_as = scope:my_family_relative_2 }
ep2_wedding_3500_relations_root_shared_trigger = yes
}
desc = ep2_wedding.3500.intro_plural
}
desc = ep2_wedding.3500.intro
}
desc = ep2_wedding.3500.intro_connector
first_valid = {
# BOTH
triggered_desc = {
trigger = { ep2_wedding_3500_relations_spouse_shared_trigger = yes }
desc = ep2_wedding.3500.relation_shared
}
desc = ep2_wedding.3500.relation
}
first_valid = {
# Personal concerns
triggered_desc = {
trigger = {
scope:my_family_relative_1 = {
OR = {
ep2_wedding_3500_dislikes_fornicators_trigger = yes
has_imprisonment_reason = scope:other_family_spouse
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
}
desc = {
random_valid = {
triggered_desc = {
trigger = { # Fornicator or adulterer trait, and not accepted in faith
scope:my_family_relative_1 = { ep2_wedding_3500_dislikes_fornicators_trigger = yes }
}
desc = ep2_wedding.3500.fornicator
}
triggered_desc = {
trigger = {
scope:my_family_relative_1 = { has_imprisonment_reason = scope:other_family_spouse }
NOT = {
scope:my_family_relative_1 = { has_imprisonment_reason = scope:my_family_spouse }
}
}
desc = ep2_wedding.3500.criminal
}
triggered_desc = {
trigger = {
OR = {
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
desc = ep2_wedding.3500.dislike
}
}
}
}
# Political concerns
triggered_desc = {
trigger = {
exists = scope:other_family_spouse.house
exists = scope:my_family_spouse.house
OR = {
scope:other_family_spouse.dynasty.dynasty_prestige_level < scope:my_family_spouse.dynasty.dynasty_prestige_level
scope:other_family_spouse.house.house_head ?= {
is_ruler = yes
OR = {
any_neighboring_top_liege_realm_owner = {scope:my_family_spouse.house.house_head.liege ?= this }
AND = {
exists = liege
scope:my_family_spouse.house.house_head.liege ?= liege
}
}
}
AND = {
NOT = {
scope:my_family_relative_1 = { has_trait = cynical }
}
scope:my_family_spouse.faith = {
NOR = {
this = scope:other_family_spouse.faith
faith_hostility_level = {
target = scope:other_family_spouse.faith
value = 0 # Accepted
}
}
}
}
}
}
desc = {
random_valid = {
triggered_desc = {
trigger = {
scope:other_family_spouse.dynasty.dynasty_prestige_level < scope:my_family_spouse.dynasty.dynasty_prestige_level
}
desc = ep2_wedding.3500.renown
}
triggered_desc = {
trigger = {
scope:other_family_spouse.house.house_head ?= {
is_ruler = yes
OR = {
any_neighboring_top_liege_realm_owner = {scope:my_family_spouse.house.house_head.liege ?= this }
AND = {
exists = liege
scope:my_family_spouse.house.house_head.liege ?= liege
}
}
}
}
desc = ep2_wedding.3500.realms
}
triggered_desc = {
trigger = {
NOT = {
scope:my_family_relative_1 = { has_trait = cynical }
}
scope:my_family_spouse.faith = {
NOR = {
this = scope:other_family_spouse.faith
faith_hostility_level = {
target = scope:other_family_spouse.faith
value = 0 # Accepted
}
}
}
}
desc = ep2_wedding.3500.faith
}
}
}
}
# Petty concerns
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:other_family_spouse = { is_healthy = no }
scope:my_family_spouse = { is_healthy = yes }
scope:my_family_relative_1 = { is_healthy = yes }
}
desc = ep2_wedding.3500.health
}
triggered_desc = {
trigger = {
scope:other_family_spouse.ai_boldness > low_positive_boldness
scope:my_family_spouse.ai_boldness < low_negative_boldness
scope:my_family_relative_1.ai_boldness < low_negative_boldness
}
desc = ep2_wedding.3500.bold
}
triggered_desc = {
trigger = {
scope:other_family_spouse.ai_boldness < low_negative_boldness
scope:my_family_spouse.ai_boldness > low_positive_boldness
scope:my_family_relative_1.ai_boldness > low_positive_boldness
}
desc = ep2_wedding.3500.shy
}
triggered_desc = {
trigger = {
scope:other_family_spouse.ai_honor < low_positive_honor
scope:my_family_relative_1.ai_honor >= low_positive_honor
}
desc = ep2_wedding.3500.dishonorable
}
triggered_desc = {
trigger = {
scope:my_family_spouse.age <= scope:other_family_spouse.age_minus_10
ep2_wedding_3500_active_bedroom_trigger = yes
}
desc = ep2_wedding.3500.old
}
triggered_desc = {
trigger = {
scope:my_family_spouse.age >= scope:other_family_spouse.age_plus_10
ep2_wedding_3500_active_bedroom_trigger = yes
}
desc = ep2_wedding.3500.young
}
triggered_desc = {
trigger = {
ep2_wedding_3500_active_bedroom_trigger = yes
scope:other_family_spouse = { has_trait = beauty_bad }
NOR = {
scope:my_family_spouse = { has_trait = beauty_bad }
scope:my_family_relative_1 = { has_trait = beauty_bad }
}
}
desc = ep2_wedding.3500.beauty
}
triggered_desc = {
trigger = {
NOR = {
AND = {
scope:other_family_spouse = { is_healthy = no }
scope:my_family_spouse = { is_healthy = yes }
scope:my_family_relative_1 = { is_healthy = yes }
}
AND = {
scope:other_family_spouse.ai_boldness > low_positive_boldness
scope:my_family_spouse.ai_boldness < low_negative_boldness
scope:my_family_relative_1.ai_boldness < low_negative_boldness
}
AND = {
scope:other_family_spouse.ai_boldness < low_negative_boldness
scope:my_family_spouse.ai_boldness > low_positive_boldness
scope:my_family_relative_1.ai_boldness > low_positive_boldness
}
AND = {
scope:other_family_spouse.ai_honor < low_positive_honor
scope:my_family_relative_1.ai_honor >= low_positive_honor
}
AND = {
ep2_wedding_3500_active_bedroom_trigger = yes
OR = {
scope:my_family_spouse.age <= scope:other_family_spouse.age_plus_10
scope:my_family_spouse.age >= scope:other_family_spouse.age_minus_10
AND = {
scope:other_family_spouse = { has_trait = beauty_bad }
NOR = {
scope:my_family_spouse = { has_trait = beauty_bad }
scope:my_family_relative_1 = { has_trait = beauty_bad }
}
}
}
}
}
}
desc = ep2_wedding.3500.fallback
}
}
}
}
first_valid = {
triggered_desc = {
trigger = {
scope:my_family_relative_2 = {
ep2_wedding_3500_dislikes_fornicators_trigger = yes
has_imprisonment_reason = scope:other_family_spouse
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
desc = ep2_wedding.3500.agree
}
triggered_desc = {
trigger = {
exists = scope:my_family_spouse
scope:other_family_spouse.house.house_head = { is_allied_to = scope:my_family_spouse.house.house_head }
}
desc = ep2_wedding.3500.alliance
}
triggered_desc = {
trigger = {
OR = {
AND = {
scope:other_family_spouse = { has_trait = beauty_bad }
scope:my_family_spouse = {
NOT = { has_trait = beauty_bad }
}
}
AND = {
scope:other_family_spouse = { is_healthy = no }
scope:my_family_spouse = { is_healthy = yes }
}
}
}
desc = ep2_wedding.3500.compromise
}
desc = ep2_wedding.3500.time
}
}
theme = marriage
override_background = { reference = feast }
left_portrait = {
character = scope:my_family_relative_1
animation = worry
}
center_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:my_family_relative_2
animation = thinking
}
lower_right_portrait = scope:activity.special_guest:spouse_1
lower_left_portrait = scope:activity.special_guest:spouse_2
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
is_adult = yes
# Spouse 1 and 2 are not root
NOR = {
scope:activity.special_guest:spouse_1 ?= root
scope:activity.special_guest:spouse_2 ?= root
}
# More relatives of your family's spouse are about
trigger_if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_1 }
NOR = {
has_relation_rival = scope:activity.special_guest:spouse_1
opinion = {
target = scope:activity.special_guest:spouse_1
value <= -25
}
}
scope:activity.special_guest:spouse_1 = {
any_close_or_extended_family_member = {
count >= 2
wedding_3500_shared_trigger = yes
NOR = {
has_relation_rival = scope:activity.special_guest:spouse_2
opinion = {
target = scope:activity.special_guest:spouse_2
value <= -25
}
}
}
}
}
trigger_else_if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_2 }
NOR = {
has_relation_rival = scope:activity.special_guest:spouse_2
opinion = {
target = scope:activity.special_guest:spouse_2
value <= -25
}
}
scope:activity.special_guest:spouse_2 = {
any_close_or_extended_family_member = {
count >= 2
wedding_3500_shared_trigger = yes
NOR = {
has_relation_rival = scope:activity.special_guest:spouse_2
opinion = {
target = scope:activity.special_guest:spouse_2
value <= -25
}
}
}
}
}
# No dice
trigger_else = { always = no }
}
immediate = {
save_scope_as = my_family_relative
# Save family members related to spouse
hidden_effect = {
if = {
limit = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_1 }
wedding_3500_save_family_effect = { SPOUSE = spouse_1 }
}
else = {
wedding_3500_save_family_effect = { SPOUSE = spouse_2 }
}
}
}
# Agree
option = {
name = ep2_wedding.3500.a
trigger = { exists = scope:my_family_relative_1 }
progress_towards_friend_effect = {
REASON = friend_wedding_relation_bond
CHARACTER = scope:my_family_relative_1
OPINION = default_friend_opinion
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
}
}
}
# Rebuff
option = {
name = ep2_wedding.3500.b
trigger = {
scope:my_family_relative_2 ?= {
NOR = {
ep2_wedding_3500_dislikes_fornicators_trigger = yes
has_imprisonment_reason = scope:other_family_spouse
has_relation_rival = scope:other_family_spouse
opinion = {
target = scope:other_family_spouse
value <= -25
}
}
}
}
progress_towards_friend_effect = {
REASON = friend_wedding_relation_bond
CHARACTER = scope:my_family_relative_2
OPINION = default_friend_opinion
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -0.5
}
}
}
#It matters not
option = {
name = ep2_wedding.3500.d
add_prestige = minor_prestige_gain
stress_impact = {
compassionate = miniscule_stress_impact_gain
content = miniscule_stress_impact_gain
callous = minor_stress_impact_loss
ambitious = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -0.5
}
}
}
#It is in god's hands now
option = {
name = ep2_wedding.3500.e
add_piety = minor_prestige_gain
stress_impact = {
cynical = miniscule_stress_impact_gain
diligent = miniscule_stress_impact_gain
zealous = minor_stress_impact_loss
lazy = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_zeal = 0.5
}
}
}
}
############################
## Wedding Ceremony Events
## 4000-4999
## by Veronica Pazos
############################
scripted_trigger ep2_wedding_4000_valid_betrothed = {
feast_default_adult_participant_trigger = yes #includes is_ai = yes
can_marry_character_trigger = { CHARACTER = root.intent_target }
NOR = {
age < root.intent_target.age_minus_10
age > root.intent_target.age_plus_10
}
}
# Non-spouse: Matchmaking Intent - This wedding is so cool, you guys should also get married
ep2_wedding.4000 = {
type = activity_event
title = ep2_wedding.4000.t
desc = {
desc = ep2_wedding.4000.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:matchmaked_scope = {
exists = var:wedding_good_match
var:wedding_good_match = scope:objective_scope
}
}
desc = ep2_wedding.4000.desc.good_match
}
triggered_desc = {
trigger = {
scope:matchmaked_scope = {
exists = var:wedding_no_match
var:wedding_no_match = scope:objective_scope
}
}
desc = ep2_wedding.4000.desc.no_match
}
}
}
theme = wedding_ceremony_activity
left_portrait = {
character = root
animation = scheme
}
right_portrait = {
character = scope:matchmaked_scope
animation = personality_rational
}
lower_center_portrait = scope:objective_scope
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
NOT = { has_variable = had_ep2_wedding_matchmaking_event_var }
NOR = { #you are not one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
has_activity_intent = matchmaking_intent #you're trying to matchmake someone
intent_target = { is_alive = yes } #they're not dead yet
scope:activity = { #there's someone to pair them with
any_attending_character = {
ep2_wedding_4000_valid_betrothed = yes
}
}
}
weight_multiplier = {
base = 1
}
immediate = {
intent_target = { save_scope_as = matchmaked_scope }
scope:activity = {
random_attending_character = {
limit = { ep2_wedding_4000_valid_betrothed = yes }
save_scope_as = objective_scope
}
}
set_variable = {
name = had_ep2_wedding_matchmaking_event_var
days = 90 #enough to not affect this wedding
}
}
#Go for it
option = {
name = ep2_wedding.4000.a
duel = {
skill = diplomacy
target = scope:matchmaked_scope
50 = { # success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
add = 20
attraction >= medium_positive_attraction
}
modifier = {
add = 30
attraction >= high_positive_attraction
}
desc = ep2_wedding.4000.a.success
send_interface_toast = {
title = ep2_wedding.4000.a.success
left_icon = scope:matchmaked_scope
right_icon = scope:objective_scope
scope:activity = {
add_activity_log_entry = {
key = ep2_wedding_4000_log_success
character = root
target = scope:matchmaked_scope
# Effect
root = { custom_tooltip = ep2_wedding.wedding_intent.success.tt }
scope:matchmaked_scope = { create_betrothal = scope:objective_scope }
}
}
}
complete_activity_intent = yes
}
50 = { # fail
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.4000.a.failure
send_interface_toast = {
title = ep2_wedding.4000.a.failure
left_icon = scope:matchmaked_scope
add_prestige = minor_prestige_loss
scope:matchmaked_scope = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -10
}
}
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
patient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = craven
has_trait = patient
}
}
}
}
#Be subtle
option = {
name = ep2_wedding.4000.b
duel = {
skill = intrigue
target = scope:matchmaked_scope
30 = { # success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.4000.b.success
send_interface_toast = {
title = ep2_wedding.4000.b.success
left_icon = scope:matchmaked_scope
right_icon = scope:objective_scope
scope:activity = {
add_activity_log_entry = {
key = ep2_wedding_4000_log_success
character = root
target = scope:matchmaked_scope
# Effect
custom_tooltip = ep2_wedding.wedding_intent.success.tt
scope:matchmaked_scope = { create_betrothal = scope:objective_scope }
}
}
}
complete_activity_intent = yes
}
70 = { # fail
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.4000.a.failure
send_interface_toast = {
title = ep2_wedding.4000.a.failure
left_icon = scope:matchmaked_scope
scope:matchmaked_scope = {
add_opinion = {
target = root
modifier = annoyed_opinion
opinion = -10
}
}
}
}
}
stress_impact = {
brave = medium_stress_impact_gain
impatient = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = brave
has_trait = impatient
}
}
}
}
#Nahhh
option = {
name = ep2_wedding.4000.c
ai_chance = {
base = 100
modifier = {
factor = 1.25
OR = {
has_trait = callous
has_trait = sadistic
}
}
modifier = {
factor = 0
scope:matchmaked_scope = {
trait_compatibility = {
target = scope:objective_scope
value >= high_positive_trait_compatibility
}
}
}
}
}
}
# Host: Gain Renown Intent - Bring a white animal to the Banquet to flex (it's painted)
scripted_trigger ep2_wedding_2010_impressed = {
OR = { #what kind of people would be impressed by a legendary animal?
has_trait = gregarious
has_trait = brave
has_trait = lifestyle_reveler
has_trait = lifestyle_hunter
has_trait = drunkard
has_trait = gallant #white animals were a pretty chivalrous thing to find/hunt
}
}
ep2_wedding.2010 = {
type = activity_event
title = ep2_wedding.2010.t
desc = {
desc = ep2_wedding.2010.desc.intro
first_valid = {
triggered_desc = {
trigger = {
OR = { #you are one of the spouses
root = scope:activity.special_guest:spouse_1
root = scope:activity.special_guest:spouse_2
}
}
desc = ep2_wedding.2010.desc_spouse
}
}
}
theme = wedding_banquet_activity
left_portrait = {
character = root
animation = personality_rational
}
cooldown = { years = 5 }
trigger = {
this = scope:host #you're the host
has_activity_intent = diplomatic_intent
intent_target = { ep2_wedding_2010_impressed = yes }
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_trait = deceitful
}
modifier = {
factor = 0.5
has_trait = honest
}
}
immediate = {
select_local_animal_effect = { TYPE = big } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
intent_target = {
add_to_list = ep2_wedding_2010_impressed_list
save_scope_as = diplo_target
}
if = {
limit = {
scope:activity = { #there's someone else to impress
any_attending_character = {
feast_default_adult_participant_trigger = yes
NOR = {
this = root
this = root.intent_target
}
ep2_wedding_2010_impressed = yes
}
}
}
scope:activity = {
every_attending_character = {
limit = {
feast_default_adult_participant_trigger = yes
NOR = {
this = root
this = root.intent_target
}
ep2_wedding_2010_impressed = yes
}
add_to_list = ep2_wedding_2010_impressed_list
}
}
}
}
#Yeah
option = {
name = ep2_wedding.2010.a
custom_tooltip = ep2_wedding.2010.a.tt
every_in_list = {
list = ep2_wedding_2010_impressed_list
custom = ep2_wedding.2010.impressed_list
add_opinion = {
modifier = wbanquet_white_animal_opinion
target = root
opinion = 20
}
}
#Does anyone suspect?
hidden_effect = {
if = {
limit = {
scope:diplo_target = {
feast_default_adult_participant_trigger = yes
OR = {
has_trait = cynical
has_trait = callous
}
has_any_good_relationship_with_root_trigger = no
}
}
random_list = {
50 = { #they don't notice
remove_variable = animal_type
if = {
limit = {
scope:diplo_target = { activity_wedding_diplomatic_intent_impressible_target = yes }
}
send_interface_toast = {
title = ep2_wedding.2000.after.subjugate
left_icon = scope:diplo_target
custom_tooltip = {
text = ep2_wedding.2000.after.subjugate.tt
complete_activity_intent = yes
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = title_change
add_claim_on_loss = no
}
scope:diplo_target = {
change_liege = {
liege = root
change = scope:title_change
}
}
resolve_title_and_vassal_change = scope:title_change
}
}
}
}
50 = { #they do
trigger_event = ep2_wedding.2011
}
}
}
else_if = {
limit = {
scope:activity = {
any_attending_character = {
feast_default_adult_participant_trigger = yes
OR = {
has_trait = cynical
has_trait = callous
}
has_any_good_relationship_with_root_trigger = no
}
}
}
random_list = {
50 = { #they don't notice
remove_variable = animal_type
}
50 = { #they do
trigger_event = ep2_wedding.2011
}
}
}
}
remove_short_term_gold = minor_gold_value
stress_impact = {
greedy = medium_stress_impact_gain
honest = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
short_term_gold <= minor_gold_value
}
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = honest
}
}
}
}
#Nah
option = {
name = ep2_wedding.2010.b
remove_variable = animal_type
stress_impact = {
gallant = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
lifestyle_reveler = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = gallant
has_trait = gregarious
has_trait = lifestyle_reveler
}
}
modifier = {
factor = 1.25
has_trait = deceitful
}
}
}
}
# Follow up: You get called out
ep2_wedding.2011 = {
type = activity_event
title = ep2_wedding.2011.t
desc = ep2_wedding.2011.desc
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = arrogant
has_trait = wrathful
has_trait = vengeful
has_trait = callous
has_trait = brave
}
}
animation = anger
}
animation = stress
}
right_portrait = {
character = scope:doubting_guest
animation = schadenfreude
}
immediate = {
scope:activity = {
random_attending_character = {
limit = {
feast_default_adult_participant_trigger = yes
OR = {
has_trait = cynical
has_trait = callous
}
has_any_good_relationship_with_root_trigger = no
}
save_scope_as = doubting_guest
}
}
}
#Confess
option = {
name = ep2_wedding.2011.a
add_prestige = minor_prestige_loss
add_piety = minor_piety_gain
scope:doubting_guest = {
add_opinion = {
target = root
opinion = 10
modifier = pleased_opinion
}
}
stress_impact = {
arrogant = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
deceitful = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = greedy
has_trait = honest
}
}
}
}
#Double down
option = {
name = ep2_wedding.2011.b
duel = { #they believe you
skill = intrigue
target = scope:doubting_guest
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = {
factor = 2
scope:doubting_guest = {
OR = {
has_trait = trusting
has_trait = loyal
}
}
}
desc = ep2_wedding.2011.b.success
send_interface_toast = {
left_icon = scope:doubting_guest
title = ep2_wedding.2011.b.success
custom_tooltip = ep2_wedding.wedding_intent.success.tt
complete_activity_intent = yes
}
}
50 = { #they don't
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.2011.b.failure
send_interface_toast = {
left_icon = scope:doubting_guest
title = ep2_wedding.2011.b.failure
scope:doubting_guest = {
add_opinion = {
target = root
opinion = -10
modifier = annoyed_opinion
}
}
}
}
}
stress_impact = {
trusting = medium_stress_impact_gain
just = medium_stress_impact_gain
honest = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = honest
has_trait = trusting
has_trait = just
}
}
}
}
after = {
remove_variable = animal_type
}
}
# Spouse/Non-spouse: Someone is dangerously close to a well of wine
scripted_trigger ep2_wedding_2020_would_fall_trigger = {
is_adult = yes
is_alive = yes
feast_default_adult_participant_trigger = yes
drinks_alcohol_trigger = yes
OR = {
has_trait = lifestyle_reveler
has_trait = drunkard
has_trait = gregarious
has_trait = arbitrary
}
}
ep2_wedding.2020 = {
type = activity_event
title = ep2_wedding.2020.t
desc = ep2_wedding.2020.desc
theme = wedding_banquet_activity
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_activity_intent = banquet_mischief_intent
has_trait = callous
has_trait = sadistic
has_trait = deceitful
}
}
animation = scheme
}
animation = worry
}
right_portrait = {
character = scope:drunk_guest
animation = drink_goblet
}
cooldown = { years = 5 }
trigger = {
#DLC check.
has_ep2_dlc_trigger = yes
this != scope:host
scope:activity = {
any_attending_character = {
ep2_wedding_2020_would_fall_trigger = yes
}
has_activity_option = {
category = wedding_option_food
option = wedding_food_good
}
NOT = {
has_variable = has_had_2020_event
}
}
scope:activity = { NOT = { has_variable = ep2_wedding_2020_well_var } }
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
has_activity_intent = banquet_mischief_intent
}
modifier = {
factor = 2
scope:activity = {
any_attending_character = {
has_trait = drunkard
}
}
}
modifier = {
is_ai = yes
factor = 0.1
}
}
immediate = {
scope:activity = {
set_variable = ep2_wedding_2020_well_var
random_attending_character = {
limit = {
ep2_wedding_2020_would_fall_trigger = yes
}
weight = {
base = 1
modifier = {
add = 50
has_trait = drunkard
}
}
save_scope_as = drunk_guest
}
set_variable = has_had_2020_event
}
}
#Tell them
option = {
name = ep2_wedding.2020.a
duel = {
skill = diplomacy
target = scope:drunk_guest
50 = { #they listen to you
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.2020.a.success
send_interface_toast = {
left_icon = scope:drunk_guest
title = ep2_wedding.2020.a.success
progress_towards_friend_effect = {
REASON = friend_wbanquet_saved_from_well
CHARACTER = scope:drunk_guest
OPINION = 20
}
add_piety = minor_piety_gain
}
}
50 = { #they fall down
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.2020.a.failure
send_interface_toast = {
left_icon = scope:drunk_guest
title = ep2_wedding.2020.a.failure
scope:drunk_guest = {
add_prestige = minor_prestige_loss
increase_wounds_effect = { REASON = fall }
}
}
}
}
stress_impact = {
deceitful = medium_stress_impact_gain
callous = medium_stress_impact_gain
sadistic = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = deceitful
has_trait = callous
has_trait = sadistic
}
}
}
}
#Don't
option = {
name = ep2_wedding.2020.b
random_list = {
50 = { #they don't fall
desc = ep2_wedding.2020.b.success
send_interface_toast = {
left_icon = scope:drunk_guest
title = ep2_wedding.2020.b.success
#nothing happens
}
}
50 = { #they fall down
modifier = {
factor = 2
scope:drunk_guest = { has_trait = drunkard }
}
desc = ep2_wedding.2020.a.failure
send_interface_toast = {
left_icon = scope:drunk_guest
title = ep2_wedding.2020.a.failure
add_stress = major_stress_impact_loss
scope:drunk_guest = {
add_prestige = minor_prestige_loss
increase_wounds_effect = { REASON = fall }
}
}
}
}
stress_impact = {
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
has_trait = compassionate
}
}
}
#Crash Wedding Intent - Push them
option = {
name = ep2_wedding.2020.c
trigger = {
OR = {
has_activity_intent = banquet_mischief_intent
AND = {
has_activity_intent = murder_attendee_intent
intent_target = scope:drunk_guest
}
}
}
custom_tooltip = available_because_intent_tt
duel = {
skill = prowess
target = scope:drunk_guest
50 = { #you push them
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep2_wedding.2020.c.success
send_interface_toast = {
left_icon = scope:drunk_guest
title = ep2_wedding.2020.c.success
custom_tooltip = ep2_wedding.wedding_intent.success.tt
add_stress = major_stress_impact_loss
scope:drunk_guest = {
add_prestige = minor_prestige_loss
increase_wounds_effect = { REASON = fall }
}
complete_activity_intent = yes
}
}
50 = { #they kick you back
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.2020.c.failure
send_interface_toast = {
left_icon = root
right_icon = scope:drunk_guest
title = ep2_wedding.2020.c.failure
increase_wounds_effect = { REASON = fight }
}
}
10 = { #they die
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep2_wedding.2020.c.death
send_interface_toast = {
left_icon = root
right_icon = scope:drunk_guest
title = ep2_wedding.2020.c.death
scope:drunk_guest = {
death = { death_reason = death_accident }
}
known_murder_effect = {
VICTIM = scope:drunk_guest
MURDERER = root
EXPOSER = root
}
}
}
}
stress_impact = {
calm = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = major_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0
OR = {
has_trait = calm
has_trait = forgiving
has_trait = compassionate
}
}
}
}
}