6109 lines
159 KiB
Text
6109 lines
159 KiB
Text
@ep2_wedding_ewan_0052_dolt_pay_out_value = root.massive_gold_value
|
|
@ep2_wedding_ewan_0061_high_skill_value = extremely_high_skill_rating
|
|
@ep2_wedding_ewan_0061_old_value = 80
|
|
@ep2_wedding_ewan_0061_very_old = 90
|
|
|
|
namespace = ep2_wedding_ewan
|
|
|
|
##################################################
|
|
# #Banquet Phase
|
|
# 0001 - 0010 Quite the Spectacle - Connect with various types of characters over the entertainment.
|
|
# 0011 - 0020 Food Fit for a... - Connect with various types of characters over the food.
|
|
# 0021 - 0030 Shimmering, Shining - Connect with various types of characters over the venue & its decorations.
|
|
# 0031 - 0040 A Sociable Supper - Meet one of your neighbouring rulers and form a fast friendship.
|
|
# 0041 - 0050 Speech! Speech! - Make a speech to the happy couple, adjusting the meaning to your intent.
|
|
# 0051 - 0060 And Another Thing - Someone is pitching questionable ideas at you, and you can go along with them or not, but they keep coming at you.
|
|
# 0061 - 0070 To My Beloved GetRelation - Embarrassing older relation speech.
|
|
# 0071 - 0080 Oath in Moment - Your liege offers you a favour for your support.
|
|
##################################################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##################################################
|
|
# MISC SCRIPTED TRIGGERS & EFFECTS
|
|
|
|
# Filter out characters who aren't appropriate to be giving their unasked opinions on the activity's setup options.
|
|
scripted_trigger ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = {
|
|
# Filter out players immediately.
|
|
is_ai = yes
|
|
# Now let's make sure it's no one who wouldn't be having this conversation or who we might want to reserve for something else.
|
|
NOR = {
|
|
this = root
|
|
this = scope:activity.activity_host
|
|
this = scope:activity.special_guest:spouse_1
|
|
this = scope:activity.special_guest:spouse_2
|
|
this ?= root.intent_target
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
}
|
|
|
|
# Standard stress loss for hosts agreeing with criticisms.
|
|
scripted_effect ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = {
|
|
# Host reacts a bit differently to feedback.
|
|
if = {
|
|
limit = { this = scope:activity.activity_host }
|
|
stress_impact = {
|
|
gregarious = miniscule_stress_impact_loss
|
|
humble = minor_stress_impact_loss
|
|
arrogant = miniscule_stress_impact_gain
|
|
}
|
|
}
|
|
else = {
|
|
stress_impact = { gregarious = miniscule_stress_impact_loss }
|
|
}
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
# Progress heavily towards friendship.
|
|
progress_towards_friend_effect = {
|
|
CHARACTER = $FAVOURED_CHAR$
|
|
REASON = friend_dinner
|
|
OPINION = 35
|
|
}
|
|
reverse_add_opinion = {
|
|
target = $REJECTED_CHAR$
|
|
modifier = respect_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0000_host_approves_effect = {
|
|
# If you're the host, gain some prestige for ignoring them.
|
|
if = {
|
|
limit = { this = scope:activity.activity_host }
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
# Otherwise, gain some opinion with the host.
|
|
else = {
|
|
reverse_add_opinion = {
|
|
target = scope:activity.activity_host
|
|
modifier = friendliness_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = {
|
|
$TARGET$ = {
|
|
# Diplomacy.
|
|
if = {
|
|
limit = { has_trait = education_diplomacy }
|
|
# T1.
|
|
if = {
|
|
limit = { has_trait = education_diplomacy_1 }
|
|
root = { add_diplomacy_lifestyle_xp = minor_lifestyle_xp }
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = { has_trait = education_diplomacy_2 }
|
|
root = { add_diplomacy_lifestyle_xp = medium_lifestyle_xp }
|
|
}
|
|
# T3.
|
|
else_if = {
|
|
limit = { has_trait = education_diplomacy_3 }
|
|
root = { add_diplomacy_lifestyle_xp = major_lifestyle_xp }
|
|
}
|
|
# T4.
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_diplomacy_4
|
|
has_trait = education_diplomacy_5
|
|
}
|
|
}
|
|
root = { add_diplomacy_lifestyle_xp = massive_lifestyle_xp }
|
|
}
|
|
}
|
|
# Martial.
|
|
if = {
|
|
limit = { has_trait = education_martial }
|
|
# T1.
|
|
if = {
|
|
limit = { has_trait = education_martial_1 }
|
|
root = { add_martial_lifestyle_xp = minor_lifestyle_xp }
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = { has_trait = education_martial_2 }
|
|
root = { add_martial_lifestyle_xp = medium_lifestyle_xp }
|
|
}
|
|
# T3.
|
|
else_if = {
|
|
limit = { has_trait = education_martial_3 }
|
|
root = { add_martial_lifestyle_xp = major_lifestyle_xp }
|
|
}
|
|
# T4.
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_martial_4
|
|
has_trait = education_martial_5
|
|
}
|
|
}
|
|
root = { add_martial_lifestyle_xp = massive_lifestyle_xp }
|
|
}
|
|
}
|
|
# Stewardship.
|
|
if = {
|
|
limit = { has_trait = education_stewardship }
|
|
# T1.
|
|
if = {
|
|
limit = { has_trait = education_stewardship_1 }
|
|
root = { add_stewardship_lifestyle_xp = minor_lifestyle_xp }
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = { has_trait = education_stewardship_2 }
|
|
root = { add_stewardship_lifestyle_xp = medium_lifestyle_xp }
|
|
}
|
|
# T3.
|
|
else_if = {
|
|
limit = { has_trait = education_stewardship_3 }
|
|
root = { add_stewardship_lifestyle_xp = major_lifestyle_xp }
|
|
}
|
|
# T4.
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_stewardship_4
|
|
has_trait = education_stewardship_5
|
|
}
|
|
}
|
|
root = { add_stewardship_lifestyle_xp = massive_lifestyle_xp }
|
|
}
|
|
}
|
|
# Intrigue.
|
|
if = {
|
|
limit = { has_trait = education_intrigue }
|
|
# T1.
|
|
if = {
|
|
limit = { has_trait = education_intrigue_1 }
|
|
root = { add_intrigue_lifestyle_xp = minor_lifestyle_xp }
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = { has_trait = education_intrigue_2 }
|
|
root = { add_intrigue_lifestyle_xp = medium_lifestyle_xp }
|
|
}
|
|
# T3.
|
|
else_if = {
|
|
limit = { has_trait = education_intrigue_3 }
|
|
root = { add_intrigue_lifestyle_xp = major_lifestyle_xp }
|
|
}
|
|
# T4.
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_intrigue_4
|
|
has_trait = education_intrigue_5
|
|
}
|
|
}
|
|
root = { add_intrigue_lifestyle_xp = massive_lifestyle_xp }
|
|
}
|
|
}
|
|
# Learning.
|
|
if = {
|
|
limit = { has_trait = education_learning }
|
|
# T1.
|
|
if = {
|
|
limit = { has_trait = education_learning_1 }
|
|
root = { add_learning_lifestyle_xp = minor_lifestyle_xp }
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = { has_trait = education_learning_2 }
|
|
root = { add_learning_lifestyle_xp = medium_lifestyle_xp }
|
|
}
|
|
# T3.
|
|
else_if = {
|
|
limit = { has_trait = education_learning_3 }
|
|
root = { add_learning_lifestyle_xp = major_lifestyle_xp }
|
|
}
|
|
# T4.
|
|
else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = education_learning_4
|
|
has_trait = education_learning_5
|
|
}
|
|
}
|
|
root = { add_learning_lifestyle_xp = massive_lifestyle_xp }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##################################################
|
|
# BANQUET PHASE
|
|
|
|
##################################################
|
|
# Quite the Spectacle
|
|
# by Ewan Cowhig Croft
|
|
# 0001 - 0010
|
|
##################################################
|
|
|
|
# Character likes T1 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t1_likes_trigger = {
|
|
OR = {
|
|
# Thinks too much entertainment is frivolous.
|
|
has_trait = diligent
|
|
# Prefers 1-on-1 conversations to showy jugglers.
|
|
## N-not that I'm sad because I can't juggle.
|
|
### My hands are just stupid.
|
|
has_trait = shy
|
|
# Prefers lagom entertainment.
|
|
has_trait = humble
|
|
has_trait = content
|
|
# Doesn't respect any entertaining profession.
|
|
has_trait = honest
|
|
## Just characters are kill-joys. Change my mind.
|
|
has_trait = just
|
|
# Likes safe entertainment that doesn't give them the jitters.
|
|
has_trait = craven
|
|
# Doesn't trust large bands of strangers.
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
# Character hates T1 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t1_hates_trigger = {
|
|
OR = {
|
|
# Likes a good joke/acrobat/actor.
|
|
has_trait = lazy
|
|
has_trait = gregarious
|
|
# Prefers big, upscale-everything.
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
# Appreciates the entertainer's art.
|
|
has_trait = deceitful
|
|
has_trait = arbitrary
|
|
# Wants bombastic, dangerous entertainment.
|
|
has_trait = brave
|
|
# Loves large bands of dangerous strangers.
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
# Character likes T2 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t2_likes_trigger = {
|
|
OR = {
|
|
# Accepting of the average.
|
|
has_trait = content
|
|
has_trait = compassionate
|
|
# Likes that money was spent.
|
|
has_trait = generous
|
|
# Likes the atmosphere being high-effort but not _too_ bustling.
|
|
has_trait = calm
|
|
has_trait = patient
|
|
# Likes a middling option.
|
|
has_trait = fickle
|
|
has_trait = cynical
|
|
}
|
|
}
|
|
# Character hates T2 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t2_hates_trigger = {
|
|
OR = {
|
|
# Hates the average.
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
# Would have preferred all the money, to take advantage, or else none, not to waste any.
|
|
has_trait = greedy
|
|
# Want a more bustling atmosphere that goes further than this.
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
# Feels that if it was worth doing, it's worth doing to its best.
|
|
has_trait = stubborn
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
# Character likes T3 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t3_likes_trigger = {
|
|
OR = {
|
|
# Loves excellent entertainment.
|
|
has_trait = lazy
|
|
has_trait = gregarious
|
|
# Prefers big, upscale-everything.
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
# Appreciates the entertainer's art.
|
|
has_trait = deceitful
|
|
has_trait = arbitrary
|
|
# Wants bombastic, dangerous entertainment.
|
|
has_trait = brave
|
|
# Loves large bands of dangerous strangers.
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
# Character hates T3 entertainment.
|
|
scripted_trigger ep2_wedding_ewan_0001_entertainment_t3_hates_trigger = {
|
|
OR = {
|
|
# So much entertainment is frivolous.
|
|
has_trait = diligent
|
|
# This is way, way too loud.
|
|
has_trait = shy
|
|
# Wants entertainment to be more lagom.
|
|
has_trait = humble
|
|
has_trait = content
|
|
# Doesn't respect any entertaining profession.
|
|
has_trait = honest
|
|
## Just characters are kill-joys. Change my mind.
|
|
has_trait = just
|
|
# Likes safe entertainment that doesn't give them the jitters.
|
|
has_trait = craven
|
|
# Doesn't trust large bands of strangers.
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
|
|
# Connect with various types of characters over the entertainment.
|
|
ep2_wedding_ewan.0001 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0001.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0001.desc.intro.bad
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = diligent }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.diligent
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = shy }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.shy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = honest }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.honest
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = just }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.just
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = craven }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.craven
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = paranoid }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.love.paranoid
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0001.desc.intro.normal
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = compassionate }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = generous }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.generous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = calm }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.calm
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = fickle }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.fickle
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = cynical }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.love.cynical
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0001.desc.intro.good
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = lazy }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.lazy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = gregarious }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.gregarious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = deceitful }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.deceitful
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = arbitrary }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = brave }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.brave
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = trusting }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.love.trusting
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.midtro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = lazy }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.lazy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = gregarious }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.gregarious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = deceitful }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.deceitful
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arbitrary }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = brave }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.brave
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = trusting }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t1.hate.trusting
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = lazy
|
|
has_trait = gregarious
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
has_trait = deceitful
|
|
has_trait = arbitrary
|
|
has_trait = brave
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = greedy }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = wrathful }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.wrathful
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = stubborn }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.stubborn
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = zealous }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t2.hate.zealous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
has_trait = greedy
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
has_trait = stubborn
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = diligent }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.diligent
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = shy }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.shy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = honest }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.honest
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = just }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.just
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = craven }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.craven
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = paranoid }
|
|
}
|
|
desc = ep2_wedding_ewan.0001.desc.t3.hate.paranoid
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = diligent
|
|
has_trait = shy
|
|
has_trait = humble
|
|
has_trait = content
|
|
has_trait = honest
|
|
has_trait = just
|
|
has_trait = craven
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = scope:char_1
|
|
animation = throne_room_applaud_1
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = happiness
|
|
}
|
|
right_portrait = {
|
|
character = scope:char_2
|
|
animation = boredom
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
scope:activity = {
|
|
# T1.
|
|
trigger_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T2.
|
|
trigger_else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T3.
|
|
trigger_else = {
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Try to grab our actors.
|
|
scope:activity = {
|
|
# T1.
|
|
if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_likes_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_hates_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t1_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_entertainment
|
|
option = wedding_entertainment_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_likes_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_hates_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t2_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
# T3.
|
|
else = {
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_likes_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_hates_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0001_entertainment_t3_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
}
|
|
# If relevant, grab our intent target.
|
|
if = {
|
|
limit = { has_activity_intent = murder_attendee_intent }
|
|
intent_target = { save_scope_as = intent_target }
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_1.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0001.a
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0001.a.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_1
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_1
|
|
REJECTED_CHAR = scope:char_2
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_1 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_2.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0001.b
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0001.b.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_2
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_2
|
|
REJECTED_CHAR = scope:char_1
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_2 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Murder: my eyes are on scope:intent_target.
|
|
option = {
|
|
name = ep2_wedding_ewan.0001.c
|
|
flavor = ep2_wedding_ewan.0001.c.tt
|
|
trigger = { has_activity_intent = murder_attendee_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
scope:intent_target = {
|
|
# They're unsettled by your staring.
|
|
add_stress = medium_stress_gain
|
|
# Then we add a little concern.
|
|
add_opinion = {
|
|
target = root
|
|
modifier = suspicion_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
|
|
stress_impact = { vengeful = minor_stress_impact_loss }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_vengefulness = 1
|
|
ai_sociability = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Focus on the acts.
|
|
option = {
|
|
name = ep2_wedding_ewan.0001.d
|
|
|
|
# Opinion with the activty_host, or else prestige.
|
|
ep2_wedding_ewan_0000_host_approves_effect = yes
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
shy = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_energy = -0.5
|
|
ai_sociability = -2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# Food Fit for a...
|
|
# by Ewan Cowhig Croft
|
|
# 0011 - 0020
|
|
##################################################
|
|
|
|
# Character likes T1 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t1_likes_trigger = {
|
|
OR = {
|
|
# Has more sedate food preferences.
|
|
has_trait = temperate
|
|
# Is ok with an only moderately fancy meal.
|
|
has_trait = humble
|
|
has_trait = content
|
|
# Appreciates something with a few fewer courses than usual
|
|
has_trait = impatient
|
|
# Less food, and less fancy food, means a harder time hiding poisons and other mischiefs.
|
|
has_trait = paranoid
|
|
# Prefers to eat mostly the same food, if possible.
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
# Character hates T1 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t1_hates_trigger = {
|
|
OR = {
|
|
# Likes plenty of exotic foods.
|
|
has_trait = gluttonous
|
|
# Prefers a large, fancy meal.
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
# Has the patience for incredibly long meals.
|
|
has_trait = patient
|
|
# Doesn't see why they wouldn't have more variety.
|
|
has_trait = trusting
|
|
has_trait = fickle
|
|
}
|
|
}
|
|
# Character likes T2 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t2_likes_trigger = {
|
|
OR = {
|
|
# Accepting of the average.
|
|
has_trait = content
|
|
has_trait = compassionate
|
|
# Likes that money was spent.
|
|
has_trait = generous
|
|
# Likes the atmosphere being high-effort but not _too_ bustling.
|
|
has_trait = calm
|
|
has_trait = patient
|
|
# Likes a middling option.
|
|
has_trait = cynical
|
|
}
|
|
}
|
|
# Character hates T2 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t2_hates_trigger = {
|
|
OR = {
|
|
# Hates the average.
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
# Would have preferred all the money, to take advantage, or else none, not to waste any.
|
|
has_trait = greedy
|
|
# Want a more bustling atmosphere that goes further than this.
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
# Feels that if it was worth doing, it's worth doing to its best.
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
# Character likes T3 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t3_likes_trigger = {
|
|
OR = {
|
|
# Likes plenty of exotic foods.
|
|
has_trait = gluttonous
|
|
# Prefers a large, fancy meal.
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
# Has the patience for incredibly long meals.
|
|
has_trait = patient
|
|
# Loves the scope and variety of strange foodstuffs.
|
|
has_trait = trusting
|
|
# Really likes variety and being able to flit.
|
|
has_trait = fickle
|
|
}
|
|
}
|
|
# Character hates T3 food.
|
|
scripted_trigger ep2_wedding_ewan_0011_food_t3_hates_trigger = {
|
|
OR = {
|
|
# Has more sedate food preferences.
|
|
has_trait = temperate
|
|
# Doesn't like showing off this much.
|
|
has_trait = humble
|
|
has_trait = content
|
|
# Can't stand the sheer number of courses.
|
|
has_trait = impatient
|
|
# Less food, and less fancy food, means a harder time hiding poisons and other mischiefs.
|
|
has_trait = paranoid
|
|
# Prefers to eat mostly the same food, if possible.
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
|
|
# Connect with various types of characters over the food.
|
|
ep2_wedding_ewan.0011 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0011.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0011.desc.intro.bad
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = temperate }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.temperate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = paranoid }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.paranoid
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = stubborn }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.love.stubborn
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0011.desc.intro.normal
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = compassionate }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = generous }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.generous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = calm }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.calm
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = cynical }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.love.cynical
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0011.desc.intro.good
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = gluttonous }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.gluttonous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = trusting }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.trusting
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = fickle }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.love.fickle
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.midtro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = gluttonous }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.gluttonous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = trusting }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.trusting
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = fickle }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t1.hate.fickle
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = gluttonous
|
|
has_trait = arrogant
|
|
has_trait = ambitious
|
|
has_trait = patient
|
|
has_trait = trusting
|
|
has_trait = fickle
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = greedy }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = wrathful }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.wrathful
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = zealous }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t2.hate.zealous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
has_trait = greedy
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = temperate }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.temperate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = paranoid }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.paranoid
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = stubborn }
|
|
}
|
|
desc = ep2_wedding_ewan.0011.desc.t3.hate.stubborn
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = temperate
|
|
has_trait = humble
|
|
has_trait = content
|
|
has_trait = impatient
|
|
has_trait = paranoid
|
|
has_trait = stubborn
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = scope:char_1
|
|
animation = drink_goblet
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:char_2
|
|
animation = disapproval
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
scope:activity = {
|
|
# T1.
|
|
trigger_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T2.
|
|
trigger_else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T3.
|
|
trigger_else = {
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
scope:activity = {
|
|
# Try to grab our actors.
|
|
## T1.
|
|
if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_likes_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_hates_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t1_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
## T2.
|
|
else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_food
|
|
option = wedding_food_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_likes_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_hates_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t2_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
## T3.
|
|
else = {
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_likes_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_hates_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0011_food_t3_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
# Now we try to process a decent activity target.
|
|
if = {
|
|
limit = {
|
|
root = { has_activity_intent = banquet_mischief_intent }
|
|
}
|
|
ordered_attending_character = {
|
|
limit = {
|
|
NOR = {
|
|
this = root
|
|
this = scope:char_1
|
|
this = scope:char_2
|
|
this = scope:activity.special_guest:spouse_1
|
|
this = scope:activity.special_guest:spouse_2
|
|
}
|
|
# No players.
|
|
is_ai = yes
|
|
}
|
|
order_by = {
|
|
# Nab opinion.
|
|
add = "opinion(root)"
|
|
# Invert it, as we want characters who hate us ranked first.
|
|
multiply = -1
|
|
# Aaaand multiply by tier to get more interesting characters who hate us.
|
|
if = {
|
|
# Unlanded have a rank of zero, so filter this a bit.
|
|
limit = { is_landed = yes }
|
|
multiply = highest_held_title_tier
|
|
}
|
|
}
|
|
save_scope_as = intent_target
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_1.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0011.a
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0011.a.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_1
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_1
|
|
REJECTED_CHAR = scope:char_2
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_1 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_2.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0011.b
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0011.b.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_2
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_2
|
|
REJECTED_CHAR = scope:char_1
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_2 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Mischief: spill something on someone.
|
|
option = {
|
|
name = ep2_wedding_ewan.0011.c
|
|
# Check for target directly, rather than just the intent, because there isn't a pre-defined intent target and we may have failed to acquire someone suitable.
|
|
trigger = { exists = scope:intent_target }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# You try to trip a server onto someone.
|
|
duel = {
|
|
skill = intrigue
|
|
target = scope:intent_target
|
|
# You're successful.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0011.c.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0011.c.tt.success
|
|
left_icon = scope:intent_target
|
|
scope:intent_target = {
|
|
# Lose some prestige.
|
|
add_prestige = minor_prestige_loss
|
|
# Gain some stress.
|
|
add_stress = medium_stress_gain
|
|
}
|
|
}
|
|
}
|
|
# The server rights themselves.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0011.c.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0011.c.tt.failure
|
|
left_icon = scope:intent_target
|
|
# Considered borish.
|
|
add_prestige = miniscule_prestige_loss
|
|
# Plus scope:intent_target notices.
|
|
reverse_add_opinion = {
|
|
target = scope:intent_target
|
|
modifier = suspicion_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = medium_stress_impact_loss
|
|
deceitful = minor_stress_impact_loss
|
|
honest = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_compassion = -0.25
|
|
ai_rationality = -0.25
|
|
}
|
|
}
|
|
}
|
|
|
|
# Nod along without paying attention.
|
|
option = {
|
|
name = ep2_wedding_ewan.0011.d
|
|
|
|
# Opinion with the activty_host, or else prestige.
|
|
ep2_wedding_ewan_0000_host_approves_effect = yes
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
shy = minor_stress_impact_loss
|
|
eccentric = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_energy = -0.5
|
|
ai_sociability = -2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# Shimmering, Shining
|
|
# by Ewan Cowhig Croft
|
|
# 0021 - 0030
|
|
##################################################
|
|
|
|
# Character likes T1 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t1_likes_trigger = {
|
|
OR = {
|
|
# Appreciate it for being low-key.
|
|
has_trait = content
|
|
has_trait = lazy
|
|
has_trait = humble
|
|
# Understand that effort still went into it.
|
|
has_trait = forgiving
|
|
has_trait = compassionate
|
|
# Contrarian.
|
|
has_trait = arbitrary
|
|
# Approves of frugality.
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
# Character hates T1 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t1_hates_trigger = {
|
|
OR = {
|
|
# Hates it for being low-key.
|
|
has_trait = ambitious
|
|
has_trait = diligent
|
|
has_trait = arrogant
|
|
# Thinks they could've done better or not hyped it up so much.
|
|
has_trait = honest
|
|
has_trait = generous
|
|
# Thinks it's just not what they expected.
|
|
has_trait = just
|
|
}
|
|
}
|
|
# Character likes T2 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t2_likes_trigger = {
|
|
OR = {
|
|
# Accepting of the average.
|
|
has_trait = content
|
|
has_trait = compassionate
|
|
# Likes that money was spent.
|
|
has_trait = generous
|
|
# Likes the atmosphere being high-effort but not _too_ bustling.
|
|
has_trait = calm
|
|
has_trait = patient
|
|
# Likes a middling option.
|
|
has_trait = fickle
|
|
has_trait = cynical
|
|
}
|
|
}
|
|
# Character hates T2 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t2_hates_trigger = {
|
|
OR = {
|
|
# Hates the average.
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
# Would have preferred all the money, to take advantage, or else none, not to waste any.
|
|
has_trait = greedy
|
|
# Want a more bustling atmosphere that goes further than this.
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
# Feels that if it was worth doing, it's worth doing to its best.
|
|
has_trait = stubborn
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
# Character likes T3 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t3_likes_trigger = {
|
|
OR = {
|
|
# Loves an over-the-top wedding.
|
|
has_trait = ambitious
|
|
has_trait = diligent
|
|
has_trait = arrogant
|
|
# Think it had the appropriate amount of effort put in.
|
|
has_trait = honest
|
|
has_trait = just
|
|
# Happy to see all the money being spent.
|
|
has_trait = greedy
|
|
has_trait = generous
|
|
}
|
|
}
|
|
# Character hates T3 decorations.
|
|
scripted_trigger ep2_wedding_ewan_0021_decoration_t3_hates_trigger = {
|
|
OR = {
|
|
# Think this might all be a bit much.
|
|
has_trait = content
|
|
has_trait = lazy
|
|
has_trait = humble
|
|
# Worry that the marriage is getting lost amidst all of this pomp.
|
|
has_trait = compassionate
|
|
# Contrarian.
|
|
has_trait = arbitrary
|
|
}
|
|
}
|
|
|
|
# Connect with various types of characters over the venue & its decorations.
|
|
ep2_wedding_ewan.0021 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0021.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0021.desc.intro.bad
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = lazy }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.lazy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = forgiving }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.forgiving
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = compassionate }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = arbitrary }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = greedy }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.love.greedy
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0021.desc.intro.normal
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = compassionate }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = generous }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.generous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = calm }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.calm
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.patient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = fickle }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.fickle
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = cynical }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.love.cynical
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0021.desc.intro.good
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = diligent }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.diligent
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = honest }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.honest
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = just }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.just
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = greedy }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_1 = { has_trait = generous }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.love.generous
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.midtro
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_bad
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = diligent }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.diligent
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = honest }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.honest
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = generous }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.generous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = just }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t1.hate.just
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = ambitious
|
|
has_trait = diligent
|
|
has_trait = arrogant
|
|
has_trait = honest
|
|
has_trait = generous
|
|
has_trait = just
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:activity = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_normal
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.ambitious
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.arrogant
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = greedy }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.greedy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = wrathful }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.wrathful
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.impatient
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = stubborn }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.stubborn
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = zealous }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t2.hate.zealous
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = ambitious
|
|
has_trait = arrogant
|
|
has_trait = greedy
|
|
has_trait = wrathful
|
|
has_trait = impatient
|
|
has_trait = stubborn
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = content }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.hate.content
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = lazy }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.hate.lazy
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = humble }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.hate.humble
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = compassionate }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.hate.compassionate
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = { has_trait = arbitrary }
|
|
}
|
|
desc = ep2_wedding_ewan.0021.desc.t3.hate.arbitrary
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:char_2 = {
|
|
NOR = {
|
|
has_trait = content
|
|
has_trait = lazy
|
|
has_trait = humble
|
|
has_trait = compassionate
|
|
has_trait = arbitrary
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0000.desc.hate.fallback
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = scope:char_1
|
|
animation = admiration
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:char_2
|
|
animation = disapproval
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
scope:activity = {
|
|
# T1.
|
|
trigger_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T2.
|
|
trigger_else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# T3.
|
|
trigger_else = {
|
|
# Check for a character who likes the setup.
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_likes_trigger = yes
|
|
# Now we need to wiggle a bit to make sure they don't overlap with one who _dislikes_ the setup.
|
|
save_temporary_scope_as = char_temp
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_hates_trigger = yes
|
|
this != scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Try to grab our actors.
|
|
scope:activity = {
|
|
# T1.
|
|
if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_bad
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_likes_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_hates_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t1_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
# T2.
|
|
else_if = {
|
|
limit = {
|
|
has_activity_option = {
|
|
category = wedding_option_decoration
|
|
option = wedding_decoration_normal
|
|
}
|
|
}
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_likes_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_hates_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t2_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
# T3.
|
|
else = {
|
|
# Check for a character who likes the setup.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_likes_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_hates_trigger = no
|
|
}
|
|
# Failing that, grab anyone valid.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_likes_trigger = yes
|
|
}
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_1
|
|
}
|
|
# And for one who dislikes it.
|
|
ordered_attending_character = {
|
|
# Try to grab opposing characters first.
|
|
limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_hates_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_likes_trigger = no
|
|
}
|
|
# Failing that, grab anyone appropriate.
|
|
alternative_limit = {
|
|
ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes
|
|
ep2_wedding_ewan_0021_decoration_t3_hates_trigger = yes
|
|
}
|
|
# Failing _that_, grab anyone at all.
|
|
alternative_limit = { ep2_wedding_ewan_0000_activity_option_opinion_characters_standard_filter_trigger = yes }
|
|
# Make sure we're looking at interesting people.
|
|
order_by = highest_held_title_tier
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
}
|
|
# If relevant, grab our intent target.
|
|
if = {
|
|
limit = { has_activity_intent = woo_attendee_intent }
|
|
intent_target = { save_scope_as = intent_target }
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_1.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0021.a
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0021.a.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_1
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_1
|
|
REJECTED_CHAR = scope:char_2
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_1 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Agree with scope:char_2.
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
this != scope:activity.activity_host
|
|
}
|
|
text = ep2_wedding_ewan.0021.b
|
|
}
|
|
name = {
|
|
trigger = { this = scope:activity.activity_host }
|
|
text = ep2_wedding_ewan.0021.b.host
|
|
}
|
|
flavor = ep2_wedding_ewan.0000.flavour.hobnob.char_2
|
|
|
|
# Apply opinion.
|
|
ep2_wedding_ewan_0000_opinion_swap_effect = {
|
|
FAVOURED_CHAR = scope:char_2
|
|
REJECTED_CHAR = scope:char_1
|
|
}
|
|
# Give some lifestyle XP for who you hobnob with.
|
|
ep2_wedding_ewan_0000_award_lifestyle_xp_per_conversationalist_effect = { TARGET = scope:char_2 }
|
|
|
|
ep2_wedding_ewan_0000_host_takes_criticism_stress_gain_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_2
|
|
multiplier = 0.5
|
|
}
|
|
opinion_modifier = {
|
|
opinion_target = scope:char_1
|
|
multiplier = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Seduce: try to chat your target up.
|
|
option = {
|
|
name = ep2_wedding_ewan.0021.c
|
|
trigger = { has_activity_intent = woo_attendee_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# Sprinkle a bit of opinion in there.
|
|
reverse_add_opinion = {
|
|
target = scope:intent_target
|
|
modifier = flattered_opinion
|
|
opinion = 30
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
root = scope:activity.special_guest:spouse_1
|
|
root = scope:activity.special_guest:spouse_2
|
|
}
|
|
OR = {
|
|
scope:intent_target = scope:activity.special_guest:spouse_1
|
|
scope:intent_target = scope:activity.special_guest:spouse_2
|
|
}
|
|
can_set_relation_soulmate_trigger = { CHARACTER = scope:intent_target }
|
|
}
|
|
random = {
|
|
chance = 5
|
|
set_relation_soulmate = { reason = soulmate_wedding_accepting_partner target = scope:intent_target }
|
|
# Achievements
|
|
player_succeeded_at_a_thousand_and_one_nights_achievement_effect = yes
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
chaste = miniscule_stress_impact_gain
|
|
lustful = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Don't get involved.
|
|
option = {
|
|
name = ep2_wedding_ewan.0021.d
|
|
|
|
# Opinion with the activty_host, or else prestige.
|
|
ep2_wedding_ewan_0000_host_approves_effect = yes
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
shy = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_energy = -0.5
|
|
ai_sociability = -2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# A Sociable Supper
|
|
# by Ewan Cowhig Croft
|
|
# 0031 - 0040
|
|
##################################################
|
|
|
|
scripted_trigger ep2_wedding_ewan_0031_appropriate_ruler_trigger = {
|
|
# Are they an appropriately landed ruler?
|
|
highest_held_title_tier >= {
|
|
# Grab root's tier.
|
|
value = root.highest_held_title_tier
|
|
# Now subtract one so that we allow for direct vassals.
|
|
add = -1
|
|
# Counts & above only.
|
|
min = 2
|
|
}
|
|
# Make sure they don't hate root's guts already?
|
|
opinion = {
|
|
target = root
|
|
value >= high_negative_opinion
|
|
}
|
|
NOR = {
|
|
# No family.
|
|
is_close_family_of = root
|
|
is_consort_of = root
|
|
# No prior relations.
|
|
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
# No players.
|
|
is_ai = no
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0031_social_climber_stress_effect = {
|
|
stress_impact = {
|
|
gregarious = minor_stress_impact_loss
|
|
ambitious = minor_stress_impact_loss
|
|
shy = miniscule_stress_impact_gain
|
|
content = miniscule_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0031_make_friend_effect = {
|
|
# Become friends.
|
|
set_relation_friend = {
|
|
target = $TARGET$
|
|
reason = befriended_at_feast
|
|
province = scope:activity.activity_location
|
|
}
|
|
# Plus some opinion for the sake of it.
|
|
reverse_add_opinion = {
|
|
target = $TARGET$
|
|
modifier = friendliness_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
|
|
# Meet one of your neighbouring rulers and form a fast friendship.
|
|
ep2_wedding_ewan.0031 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0031.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0031.desc.intro
|
|
# Our first character.
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_neighbour ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_neighbour
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_covassal ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_covassal
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_vassal ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_vassal
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_liege ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_liege
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_other_ruler ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_other_ruler
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_backup ?= scope:char_1 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_1.conversationalist_backup
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0031.desc.midro
|
|
# Our second character.
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_neighbour ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_neighbour
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_covassal ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_covassal
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_vassal ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_vassal
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_liege ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_liege
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_other_ruler ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_other_ruler
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:conversationalist_backup ?= scope:char_2 }
|
|
desc = ep2_wedding_ewan.0031.desc.char_2.conversationalist_backup
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0031.desc.outro
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = scope:char_1
|
|
animation = boredom
|
|
}
|
|
right_portrait = {
|
|
character = scope:char_2
|
|
animation = happiness
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = {
|
|
is_ai = yes
|
|
}
|
|
static_group_filter = {
|
|
group = ep2_wedding_ewan.0031
|
|
match = 0.1
|
|
}
|
|
}
|
|
scope:activity = {
|
|
any_attending_character = {
|
|
count >= 2
|
|
ep2_wedding_ewan_0031_appropriate_ruler_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Let's pick some characters!
|
|
## First, grab everyone we might want to pick through.
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = { ep2_wedding_ewan_0031_appropriate_ruler_trigger = yes }
|
|
add_to_list = potential_conversationalists_list
|
|
}
|
|
}
|
|
## Now, we need to try and filter them out by categories.
|
|
### Neighbouring rulers.
|
|
#### This one is expensive, so we restrict it to players.
|
|
if = {
|
|
limit = { is_ai = no }
|
|
# Right, we're actually going to post-filter by these guys later on too, so we want to grab all of them the first time we iterate rather than do it twice.
|
|
every_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = {
|
|
OR = {
|
|
any_neighboring_and_across_water_realm_same_rank_owner = { this = root }
|
|
any_neighboring_and_across_water_top_liege_realm_owner = { this = root }
|
|
}
|
|
}
|
|
add_to_list = neighbouring_conversationalists_list
|
|
}
|
|
# Now we can go through and grab the best one.
|
|
ordered_in_list = {
|
|
list = neighbouring_conversationalists_list
|
|
# Order by military strength for the most interesting realpolitik choice.
|
|
order_by = max_military_strength
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_neighbour
|
|
add_to_list = contending_characters_list
|
|
}
|
|
}
|
|
### Fellow vassals or one of your lieges.
|
|
#### No point iterating through the list repeatedly if we aren't independent.
|
|
if = {
|
|
limit = { exists = liege }
|
|
# Fellow vassals.
|
|
ordered_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = { liege ?= root.liege }
|
|
# Order by military strength for the most interesting realpolitik choice.
|
|
order_by = max_military_strength
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_covassal
|
|
add_to_list = contending_characters_list
|
|
}
|
|
# Lieges.
|
|
ordered_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = {
|
|
save_temporary_scope_as = char_temp
|
|
root = {
|
|
any_liege_or_above = { this = scope:char_temp }
|
|
}
|
|
}
|
|
# Lieges use a slightly weirder prio-order, since their military strength is less relevant.
|
|
order_by = {
|
|
# We want to befriend the most powerful person we can, as they're the most interesting.
|
|
value = highest_held_title_tier
|
|
# _But_, your direct liege is still the best, as they have much more impact on your general rule.
|
|
if = {
|
|
limit = { this = root.liege }
|
|
add = 10
|
|
}
|
|
}
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_liege
|
|
add_to_list = contending_characters_list
|
|
}
|
|
}
|
|
### Direct vassals.
|
|
ordered_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = { liege ?= root }
|
|
# Order by military strength for the most interesting realpolitik choice.
|
|
order_by = max_military_strength
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_vassal
|
|
add_to_list = contending_characters_list
|
|
}
|
|
### Distant rulers.
|
|
ordered_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = {
|
|
NOR = {
|
|
top_liege = root.top_liege
|
|
# If we don't have a neighbouring conversationalists list, then this allows the AI to befriend non-realm rulers, and if we do, then this stops us checking through all that smeg again.
|
|
trigger_if = {
|
|
limit = {
|
|
any_in_list = {
|
|
list = neighbouring_conversationalists_list
|
|
count >= 1
|
|
}
|
|
}
|
|
is_in_list = neighbouring_conversationalists_list
|
|
}
|
|
}
|
|
}
|
|
# Order by military strength for the most interesting realpolitik choice.
|
|
order_by = max_military_strength
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_other_ruler
|
|
add_to_list = contending_characters_list
|
|
}
|
|
## If we didn't have multiple interesting categories, generate a backup.
|
|
if = {
|
|
limit = {
|
|
calc_true_if = {
|
|
amount <= 1
|
|
NOT = { exists = scope:conversationalist_neighbour }
|
|
NOT = { exists = scope:conversationalist_covassal }
|
|
NOT = { exists = scope:conversationalist_vassal }
|
|
NOT = { exists = scope:conversationalist_liege }
|
|
NOT = { exists = scope:conversationalist_other_ruler }
|
|
}
|
|
}
|
|
ordered_in_list = {
|
|
list = potential_conversationalists_list
|
|
limit = {
|
|
NOR = {
|
|
scope:conversationalist_neighbour ?= this
|
|
scope:conversationalist_covassal ?= this
|
|
scope:conversationalist_vassal ?= this
|
|
scope:conversationalist_liege ?= this
|
|
scope:conversationalist_other_ruler ?= this
|
|
}
|
|
}
|
|
# Grab the most suitable for later checks & randomisation.
|
|
save_scope_as = conversationalist_backup
|
|
add_to_list = contending_characters_list
|
|
}
|
|
}
|
|
# Ok, characters are assembled. Grab our favourite candidates.
|
|
## Grab one.
|
|
random_in_list = {
|
|
list = contending_characters_list
|
|
# This character isn't having a great time at the party, so we try to pick the less sociable char first.
|
|
limit = { has_trait = shy }
|
|
alternative_limit = {
|
|
NOT = { has_trait = gregarious }
|
|
}
|
|
alternative_limit = { always = yes }
|
|
save_scope_as = char_1
|
|
}
|
|
## Then another.
|
|
random_in_list = {
|
|
list = contending_characters_list
|
|
limit = {
|
|
this != scope:char_1
|
|
# No trait checks needed here — there's only one character remaining in the list now.
|
|
}
|
|
save_scope_as = char_2
|
|
}
|
|
}
|
|
|
|
# Neighbouring ruler.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.a
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_neighbour ?= scope:char_1
|
|
scope:conversationalist_neighbour ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_neighbour }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_neighbour }
|
|
}
|
|
}
|
|
|
|
# Fellow vassal.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.b
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_covassal ?= scope:char_1
|
|
scope:conversationalist_covassal ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_covassal }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_covassal }
|
|
}
|
|
}
|
|
|
|
# Direct vassal.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.c
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_vassal ?= scope:char_1
|
|
scope:conversationalist_vassal ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_vassal }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_vassal }
|
|
}
|
|
}
|
|
|
|
# Liege.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.d
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_liege ?= scope:char_1
|
|
scope:conversationalist_liege ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_liege }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_liege }
|
|
}
|
|
}
|
|
|
|
# Distant ruler.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.e
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_other_ruler ?= scope:char_1
|
|
scope:conversationalist_other_ruler ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_other_ruler }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_other_ruler }
|
|
}
|
|
}
|
|
|
|
# Backup option.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.f
|
|
trigger = {
|
|
OR = {
|
|
scope:conversationalist_backup ?= scope:char_1
|
|
scope:conversationalist_backup ?= scope:char_2
|
|
}
|
|
}
|
|
|
|
# Become friends.
|
|
ep2_wedding_ewan_0031_make_friend_effect = { TARGET = scope:conversationalist_backup }
|
|
|
|
ep2_wedding_ewan_0031_social_climber_stress_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = 1 }
|
|
opinion_modifier = { opinion_target = scope:conversationalist_backup }
|
|
}
|
|
}
|
|
|
|
# Recreation: this isn't the time for such ladder-climbing.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.g
|
|
trigger = { has_activity_intent = reduce_stress_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# Decent middling prestige.
|
|
add_prestige = medium_prestige_gain
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = major_stress_impact_loss
|
|
shy = medium_stress_impact_loss
|
|
lazy = medium_stress_impact_loss
|
|
gregarious = miniscule_stress_impact_gain
|
|
ambitious = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_sociability = -0.25
|
|
ai_energy = -0.5
|
|
ai_boldness = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Mmm. They're not that interesting.
|
|
option = {
|
|
name = ep2_wedding_ewan.0031.h
|
|
trigger = {
|
|
NOT = { has_activity_intent = reduce_stress_intent }
|
|
}
|
|
|
|
# Consolation prestige.
|
|
add_prestige = minor_prestige_gain
|
|
|
|
stress_impact = {
|
|
shy = minor_stress_impact_loss
|
|
gregarious = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = { ai_sociability = -2 }
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# Speech! Speech!
|
|
# by Ewan Cowhig Croft
|
|
# 0041 - 0050
|
|
##################################################
|
|
|
|
scripted_effect ep2_wedding_ewan_0041_offended_couple_effect = {
|
|
# You hath offended them.
|
|
if = {
|
|
limit = {
|
|
# Double-check we're not double-dipping on opinion.
|
|
scope:host != scope:spouse_1
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_1
|
|
modifier = insult_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
# Double-check we're not double-dipping on opinion.
|
|
scope:host != scope:spouse_2
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_2
|
|
modifier = insult_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect ep2_wedding_ewan_0041_duel_with_highest_social_skill_effect = {
|
|
duel = {
|
|
skill = $SKILL$
|
|
value = high_skill_rating
|
|
# I can't BELIEVE that's true!
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0041.g.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.g.tt.success
|
|
# Your finger is clearly on the pulse.
|
|
add_prestige = medium_prestige_gain
|
|
# Plus gain some XP in the relevant lifestyle.
|
|
add_$SKILL$_lifestyle_xp = major_lifestyle_xp
|
|
}
|
|
}
|
|
# Salacious, but clearly bollocks.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0041.g.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.g.tt.failure
|
|
# No one believes you.
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Make a speech to the happy couple, adjusting the meaning to your intent.
|
|
ep2_wedding_ewan.0041 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0041.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0041.desc.intro
|
|
first_valid = {
|
|
# Murder.
|
|
triggered_desc = {
|
|
trigger = { has_activity_intent = murder_attendee_intent }
|
|
desc = ep2_wedding_ewan.0041.desc.murder
|
|
}
|
|
# Seduce.
|
|
triggered_desc = {
|
|
trigger = { has_activity_intent = woo_attendee_intent }
|
|
desc = ep2_wedding_ewan.0041.desc.seduce
|
|
}
|
|
# Diplomacy.
|
|
triggered_desc = {
|
|
trigger = { has_activity_intent = diplomatic_intent }
|
|
desc = ep2_wedding_ewan.0041.desc.diplomacy
|
|
}
|
|
# Matchmaking.
|
|
triggered_desc = {
|
|
trigger = { has_activity_intent = matchmaking_intent }
|
|
desc = ep2_wedding_ewan.0041.desc.matchmaking
|
|
}
|
|
# Mischief.
|
|
triggered_desc = {
|
|
trigger = { has_activity_intent = banquet_mischief_intent }
|
|
desc = ep2_wedding_ewan.0041.desc.mischief
|
|
}
|
|
# Recreation.
|
|
desc = ep2_wedding_ewan.0041.desc.recreation
|
|
}
|
|
desc = ep2_wedding_ewan.0041.desc.outro
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = root
|
|
animation = admiration
|
|
}
|
|
right_portrait = {
|
|
character = scope:spouse_1
|
|
animation = personality_honorable
|
|
}
|
|
center_portrait = {
|
|
character = scope:spouse_2
|
|
animation = happiness
|
|
}
|
|
lower_right_portrait = scope:intent_target
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
NOR = {
|
|
this = scope:activity.special_guest:spouse_1
|
|
this = scope:activity.special_guest:spouse_2
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Save the spouses for ease of reference.
|
|
scope:activity.special_guest:spouse_1 = { save_scope_as = spouse_1 }
|
|
scope:activity.special_guest:spouse_2 = { save_scope_as = spouse_2 }
|
|
# And, if we've got one, our intent target.
|
|
intent_target ?= { save_scope_as = intent_target }
|
|
}
|
|
|
|
# Praise the happy couple, as expected.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.a
|
|
|
|
# Gain opinion with the happy couple.
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_1
|
|
modifier = kindness_opinion
|
|
opinion = 30
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_2
|
|
modifier = kindness_opinion
|
|
opinion = 30
|
|
}
|
|
|
|
stress_impact = {
|
|
just = miniscule_stress_impact_loss
|
|
compassionate = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_honor = 1
|
|
ai_compassion = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Recreation: praise the party.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.b
|
|
trigger = { has_activity_intent = reduce_stress_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# If you're the host, gain prestige.
|
|
if = {
|
|
limit = { this = scope:host }
|
|
add_prestige = medium_prestige_gain
|
|
}
|
|
# Otherwise, gain some prestige + opinion with the host.
|
|
else = {
|
|
add_prestige = minor_prestige_gain
|
|
reverse_add_opinion = {
|
|
target = scope:host
|
|
modifier = pleased_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
gregarious = minor_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_sociability = 0.75
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Murder: stare at your target to cause them stress.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.c
|
|
trigger = { has_activity_intent = murder_attendee_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
scope:intent_target = {
|
|
# They're a bit freaked out.
|
|
add_stress = major_stress_gain
|
|
# And concerned about what you're implying.
|
|
add_opinion = {
|
|
target = root
|
|
modifier = suspicion_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
greedy = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_vengefulness = 1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Seduce: make eyes at your seduction target.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.d
|
|
trigger = { has_activity_intent = woo_attendee_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# You try to keep it juuuuust about down-low.
|
|
duel = {
|
|
skill = intrigue
|
|
target = scope:intent_target
|
|
# They appreciate the hints.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0041.d.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.d.tt.success
|
|
left_icon = scope:intent_target
|
|
# Always gain opinion with them.
|
|
reverse_add_opinion = {
|
|
target = scope:intent_target
|
|
modifier = flustered_opinion
|
|
opinion = 20
|
|
}
|
|
# If possible, they grow interested in you.
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
root = scope:activity.special_guest:spouse_1
|
|
root = scope:activity.special_guest:spouse_2
|
|
}
|
|
OR = {
|
|
scope:intent_target = scope:activity.special_guest:spouse_1
|
|
scope:intent_target = scope:activity.special_guest:spouse_2
|
|
}
|
|
can_set_relation_soulmate_trigger = { CHARACTER = scope:intent_target }
|
|
}
|
|
random = {
|
|
chance = 5
|
|
set_relation_soulmate = { reason = soulmate_wedding_accepting_partner target = scope:intent_target }
|
|
# Achievements
|
|
player_succeeded_at_a_thousand_and_one_nights_achievement_effect = yes
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
can_set_relation_potential_lover_trigger = { CHARACTER = scope:intent_target }
|
|
}
|
|
set_relation_potential_lover = scope:intent_target
|
|
}
|
|
}
|
|
}
|
|
# They're publically embarrassed.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0041.d.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.d.tt.failure
|
|
left_icon = scope:intent_target
|
|
add_prestige = minor_prestige_loss
|
|
reverse_add_opinion = {
|
|
target = scope:intent_target
|
|
modifier = disgusted_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
lustful = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Diplomacy: opinion gain with every landed ruler attending.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.e
|
|
trigger = { has_activity_intent = diplomatic_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# Try to give a big, impressive speech.
|
|
duel = {
|
|
skill = diplomacy
|
|
value = extremely_high_skill_rating
|
|
# You gain opinion with every attending landed character, plus some prestige.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0041.e.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.e.tt.success
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = {
|
|
is_ruler = yes
|
|
this != root
|
|
}
|
|
custom = custom.every_landed_activity_guest
|
|
reverse_add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
}
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
}
|
|
# You just gain the prestige.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0041.e.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0041.e.tt.failure
|
|
# Consolation prestige.
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
}
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
ambitious = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Matchmaking: talk up your char of choice.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.f
|
|
trigger = { has_activity_intent = matchmaking_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# Gain opinion with scope:activity_intent.
|
|
reverse_add_opinion = {
|
|
target = scope:intent_target
|
|
modifier = pleased_opinion
|
|
opinion = 20
|
|
}
|
|
# Plus they get a neat modifier.
|
|
scope:intent_target = {
|
|
add_character_modifier = {
|
|
modifier = ep2_wedding_ewan_0041_attraction_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Mischief: try to start some rumours.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.g
|
|
trigger = { has_activity_intent = banquet_mischief_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# We take your highest of diplomacy or intrigue and let you duel against it.
|
|
if = {
|
|
limit = { diplomacy > intrigue }
|
|
ep2_wedding_ewan_0041_duel_with_highest_social_skill_effect = { SKILL = diplomacy }
|
|
}
|
|
else = {
|
|
ep2_wedding_ewan_0041_duel_with_highest_social_skill_effect = { SKILL = intrigue }
|
|
}
|
|
# Annoy the spouses.
|
|
ep2_wedding_ewan_0041_offended_couple_effect = yes
|
|
|
|
stress_impact = {
|
|
arbitrary = miniscule_stress_impact_loss
|
|
deceitful = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Shy: awkwardly sit back down without saying anything.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.h
|
|
trigger = { has_trait = shy }
|
|
trait = shy
|
|
|
|
# The couple are confused.
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_1
|
|
modifier = confusion_opinion
|
|
opinion = -10
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_2
|
|
modifier = confusion_opinion
|
|
opinion = -10
|
|
}
|
|
|
|
# SWEET RELIEF.
|
|
stress_impact = { shy = massive_stress_impact_loss }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = -1
|
|
ai_sociability = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Say something sweet but perfunctory.
|
|
option = {
|
|
name = ep2_wedding_ewan.0041.i
|
|
trigger = {
|
|
NOT = { has_trait = shy }
|
|
}
|
|
|
|
# They're pleased, but not _as_pleased.
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_1
|
|
modifier = kindness_opinion
|
|
opinion = 10
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:spouse_2
|
|
modifier = kindness_opinion
|
|
opinion = 10
|
|
}
|
|
|
|
# We most give base stress loss for this'un.
|
|
stress_impact = {
|
|
base = medium_stress_loss
|
|
lazy = miniscule_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_loss
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_honor = 0.5
|
|
ai_energy = -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# And Another Thing
|
|
# by Ewan Cowhig Croft
|
|
# 0051 - 0060
|
|
##################################################
|
|
|
|
# Zealous same-faith chars don't mind hearing these things.
|
|
scripted_trigger ep2_wedding_ewan_0051_boring_zeal_trigger = {
|
|
has_trait = zealous
|
|
NOT = {
|
|
faith = root.faith
|
|
root = { has_trait = zealous }
|
|
}
|
|
}
|
|
|
|
# Make sure a rakish character wouldn't get in legal trouble talking about this (fornication is included in adultery logic).
|
|
scripted_trigger ep2_wedding_ewan_0051_legal_rake_trigger = {
|
|
has_trait = rakish
|
|
save_temporary_scope_as = char_temp
|
|
NOT = {
|
|
trait_is_criminal_in_faith_trigger = {
|
|
TRAIT = adulterer
|
|
FAITH = scope:char_temp.faith
|
|
GENDER_CHARACTER = scope:char_temp
|
|
}
|
|
}
|
|
}
|
|
|
|
# Profligates fall for someone else's scam, so paranoid profligates are immune to this *specific* form of money loss.
|
|
scripted_trigger ep2_wedding_ewan_0051_foolish_profligate_trigger = {
|
|
has_trait = profligate
|
|
NOT = { has_trait = paranoid }
|
|
}
|
|
|
|
# Pick someone with nothing interesting to say.
|
|
scripted_trigger ep2_wedding_ewan_0051_dolt_trigger = {
|
|
# We don't want important characters.
|
|
highest_held_title_tier <= tier_barony
|
|
# Must be verifiably a yawn.
|
|
## Filter out anyone who can probably hold an interesting conversation.
|
|
NOR = {
|
|
has_trait = gregarious
|
|
has_trait = diplomat
|
|
diplomacy >= high_skill_rating
|
|
learning >= high_skill_rating
|
|
# Shy characters will also never do this.
|
|
has_trait = shy
|
|
}
|
|
## Filter out people who don't make sense or who you might listen to.
|
|
NOR = {
|
|
this = root
|
|
root.intent_target ?= this
|
|
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
## Now, ensure they've got an actively boring quality to discuss.
|
|
OR = {
|
|
# Won't stop talking about work.
|
|
has_trait = diligent
|
|
# Won't stop talking at all, relentlessly.
|
|
has_trait = patient
|
|
# Won't stick to the same subject.
|
|
has_trait = impatient
|
|
# Doesn't see any of the obvious flaws in their idea.
|
|
has_trait = arrogant
|
|
# Idea makes no sense.
|
|
has_trait = arbitrary
|
|
# Boring religious talk.
|
|
ep2_wedding_ewan_0051_boring_zeal_trigger = yes
|
|
# Can't stick to an idea.
|
|
has_trait = fickle
|
|
# Idea is hyper-focused on disproportionately screwing someone over.
|
|
has_trait = vengeful
|
|
# Idea is long-winded.
|
|
has_trait = lifestyle_poet
|
|
# Stress traits want you to go in on their stress-related emporium.
|
|
## Pub.
|
|
has_trait = drunkard
|
|
## Cake shop.
|
|
has_trait = hashishiyah
|
|
## Brothel.
|
|
ep2_wedding_ewan_0051_legal_rake_trigger = yes
|
|
## Some kind of isolation tower.
|
|
has_trait = reclusive
|
|
## Whipping. Place. Whiptorium? Whiplaza?
|
|
has_trait = flagellant
|
|
## It's someone else's idea and obviously a scam.
|
|
ep2_wedding_ewan_0051_foolish_profligate_trigger = yes
|
|
## Want to open a library for journals.
|
|
### Honestly this one is kinda rad, I feel, but I guess I'm boring.
|
|
has_trait = journaller
|
|
## Gym.
|
|
has_trait = athletic
|
|
}
|
|
}
|
|
|
|
# Triggers for whether you get the option to invest in a specific stress trait pitch.
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_drunkard_trigger = {
|
|
has_trait = drunkard
|
|
scope:stress_pitch ?= flag:drunkard
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_hashishiyah_trigger = {
|
|
has_trait = hashishiyah
|
|
scope:stress_pitch ?= flag:hashishiyah
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_rakish_trigger = {
|
|
has_trait = rakish
|
|
scope:stress_pitch ?= flag:rakish
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_reclusive_trigger = {
|
|
has_trait = reclusive
|
|
scope:stress_pitch ?= flag:reclusive
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_flagellant_trigger = {
|
|
OR = {
|
|
has_trait = flagellant
|
|
# *sigh* And we acknowledge ulterior motives.
|
|
has_trait = deviant
|
|
any_secret = { type = secret_deviant }
|
|
}
|
|
scope:stress_pitch ?= flag:flagellant
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_profligate_trigger = {
|
|
has_trait = profligate
|
|
scope:stress_pitch ?= flag:profligate
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_journaller_trigger = {
|
|
has_trait = journaller
|
|
scope:stress_pitch ?= flag:journaller
|
|
}
|
|
scripted_trigger ep2_wedding_ewan_0051_interested_stress_pitch_trait_athletic_trigger = {
|
|
has_trait = athletic
|
|
scope:stress_pitch ?= flag:athletic
|
|
}
|
|
|
|
# Stress for not being a dick to a boring, boring person.
|
|
scripted_effect ep2_wedding_ewan_0051_compassion_to_dolt_effect = {
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_loss
|
|
patient = minor_stress_impact_loss
|
|
calm = minor_stress_impact_loss
|
|
callous = miniscule_stress_impact_gain
|
|
sadistic = miniscule_stress_impact_gain
|
|
impatient = miniscule_stress_impact_gain
|
|
wrathful = miniscule_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
# Loss stress when indulging a stress coping trait.
|
|
scripted_effect ep2_wedding_ewan_0051_stress_trait_stress_effect = {
|
|
stress_impact = {
|
|
$STRESS_TRAIT$ = massive_stress_impact_loss
|
|
trusting = miniscule_stress_impact_loss
|
|
diligent = miniscule_stress_impact_loss
|
|
paranoid = miniscule_stress_impact_gain
|
|
lazy = miniscule_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
# You start a business based around a shared stress coping trait.
|
|
scripted_effect ep2_wedding_ewan_0051_start_business_together_effect = {
|
|
# Up-front costs for the both of you.
|
|
remove_short_term_gold = major_gold_value
|
|
scope:dolt = { remove_short_term_gold = major_gold_value }
|
|
# Inform that this may not bear fruit for many years.
|
|
custom_tooltip = ep2_wedding_ewan.0051.business_venture.tt
|
|
hidden_effect = {
|
|
# Log that we're waiting on our last venture.
|
|
add_character_flag = awaiting_ep2_wedding_ewan_0051_results_flag
|
|
# Now, do a hidden duel for this'un.
|
|
duel = {
|
|
skill = stewardship
|
|
value = dolt_stewardship_adjusted_difficulty_value
|
|
# It goes well.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
# Weight down if this is a profligacy thing, as that's the surest-loss.
|
|
modifier = {
|
|
add = -10
|
|
scope:stress_pitch ?= flag:profligate
|
|
}
|
|
# You always have a very, very slight shot.
|
|
min = 2
|
|
# Congrats!
|
|
trigger_event = {
|
|
id = ep2_wedding_ewan.0052
|
|
years = { 15 25 }
|
|
}
|
|
}
|
|
# It goes poorly.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
# Weight up if this is a profligacy thing, as that's the surest-loss.
|
|
modifier = {
|
|
add = 10
|
|
scope:stress_pitch ?= flag:profligate
|
|
}
|
|
# This is not a well-structured proposition for either of you.
|
|
min = 25
|
|
# Better luck next time.
|
|
trigger_event = {
|
|
id = ep2_wedding_ewan.0053
|
|
years = { 15 25 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Your business is incompatible with your faith.
|
|
scripted_effect ep2_wedding_ewan_0051_business_piety_consequences_effect = {
|
|
if = {
|
|
limit = { this ?= faith.religious_head }
|
|
add_piety = medium_piety_loss
|
|
}
|
|
else = { add_piety = minor_piety_loss }
|
|
}
|
|
|
|
# Someone is pitching questionable ideas at you, and you can go along with them or not, but they keep coming at you.
|
|
ep2_wedding_ewan.0051 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0051.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0051.desc.intro
|
|
first_valid = {
|
|
# Do we have a stress pitch to make, and thus special option shenanigans to account for?
|
|
triggered_desc = {
|
|
trigger = { exists = scope:stress_pitch }
|
|
desc = {
|
|
first_valid = {
|
|
# Drunkard
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:drunkard }
|
|
desc = ep2_wedding_ewan.0051.desc.drunkard
|
|
}
|
|
# Hashishiyah
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:hashishiyah }
|
|
desc = ep2_wedding_ewan.0051.desc.hashishiyah
|
|
}
|
|
# Rakish
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:rakish }
|
|
desc = ep2_wedding_ewan.0051.desc.rakish
|
|
}
|
|
# Reclusive
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:reclusive }
|
|
desc = ep2_wedding_ewan.0051.desc.reclusive
|
|
}
|
|
# Flagellant
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:flagellant }
|
|
desc = ep2_wedding_ewan.0051.desc.flagellant
|
|
}
|
|
# Profligate
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:profligate }
|
|
desc = ep2_wedding_ewan.0051.desc.profligate
|
|
}
|
|
# Journaller
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:journaller }
|
|
desc = ep2_wedding_ewan.0051.desc.journaller
|
|
}
|
|
# Athletic
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:athletic }
|
|
desc = ep2_wedding_ewan.0051.desc.athletic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Nope? Right, random roll it.
|
|
desc = {
|
|
random_valid = {
|
|
# Diligent
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = diligent }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.diligent
|
|
}
|
|
# Patient
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = patient }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.patient
|
|
}
|
|
# Impatient
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = impatient }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.impatient
|
|
}
|
|
# Arrogant
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.arrogant
|
|
}
|
|
# Arbitrary
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = arbitrary }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.arbitrary
|
|
}
|
|
# Zealous
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { ep2_wedding_ewan_0051_boring_zeal_trigger = yes }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.zealous
|
|
}
|
|
# Fickle
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = fickle }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.fickle
|
|
}
|
|
# Vengeful
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = vengeful }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.vengeful
|
|
}
|
|
# Poet
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { has_trait = lifestyle_poet }
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.poet
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0051.desc.outro
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = root
|
|
animation = boredom
|
|
}
|
|
right_portrait = {
|
|
character = scope:dolt
|
|
animation = admiration
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
NOT = { has_character_flag = awaiting_ep2_wedding_ewan_0051_results_flag }
|
|
scope:activity = {
|
|
any_attending_character = { ep2_wedding_ewan_0051_dolt_trigger = yes }
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# We need root saved for dumb loc stuff.
|
|
save_scope_as = reference
|
|
# Right, let's sort our dolt.
|
|
## First, grab everyone applicable.
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = { ep2_wedding_ewan_0051_dolt_trigger = yes }
|
|
add_to_list = potential_boring_characters_list
|
|
}
|
|
}
|
|
## Then sort through them to find the _least_ interesting person.
|
|
ordered_in_list = {
|
|
list = potential_boring_characters_list
|
|
order_by = {
|
|
# Grab the two major talky skills.
|
|
value = diplomacy
|
|
add = learning
|
|
# Now, invert them to rank the chars with the worst scores highest.
|
|
multiply = -1
|
|
}
|
|
save_scope_as = dolt
|
|
}
|
|
# Ok, now that we've got our dolt, let's check to see if they're going to pitch a stress-based endeavour to you.
|
|
scope:dolt = {
|
|
# We don't bother to if statement this, because we're going to random roll with a chance of nothing anyway, so we may as well just put the triggers right on the random_list entries.
|
|
random_list = {
|
|
# Drunkard
|
|
20 = {
|
|
trigger = { has_trait = drunkard }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = drunkard }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:drunkard
|
|
}
|
|
}
|
|
# Hashishiyah
|
|
20 = {
|
|
trigger = { has_trait = hashishiyah }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = hashishiyah }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:hashishiyah
|
|
}
|
|
}
|
|
# Rakish
|
|
20 = {
|
|
trigger = { ep2_wedding_ewan_0051_legal_rake_trigger = yes }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { ep2_wedding_ewan_0051_legal_rake_trigger = yes }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:rakish
|
|
}
|
|
}
|
|
# Reclusive
|
|
20 = {
|
|
trigger = { has_trait = reclusive }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = reclusive }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:reclusive
|
|
}
|
|
}
|
|
# Flagellant
|
|
20 = {
|
|
trigger = { has_trait = flagellant }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = flagellant }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:flagellant
|
|
}
|
|
}
|
|
# Profligate
|
|
20 = {
|
|
trigger = { ep2_wedding_ewan_0051_foolish_profligate_trigger = yes }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { ep2_wedding_ewan_0051_foolish_profligate_trigger = yes }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:profligate
|
|
}
|
|
}
|
|
# Journaller
|
|
20 = {
|
|
trigger = { has_trait = journaller }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = journaller }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:journaller
|
|
}
|
|
}
|
|
# Athletic
|
|
20 = {
|
|
trigger = { has_trait = athletic }
|
|
# Weight up a bit if root shares this quality.
|
|
modifier = {
|
|
add = 20
|
|
root = { has_trait = athletic }
|
|
}
|
|
save_scope_value_as = {
|
|
name = stress_pitch
|
|
value = flag:athletic
|
|
}
|
|
}
|
|
# No stress coping pitch, so no effect.
|
|
## If they've got 1 stress trait, we want a roughly 20% chance they'll bring that up, so we weight at 20:80.
|
|
### If they have multiple stress traits, the numbers'll get progressively more stacked in favour of pitching such, but uhhh... clearly they have something to get off their chests.
|
|
80 = {
|
|
# We still need to check for the presence of some other boring quality so that we can fetch a desc key.
|
|
trigger = {
|
|
OR = {
|
|
has_trait = diligent
|
|
has_trait = patient
|
|
has_trait = impatient
|
|
has_trait = arrogant
|
|
has_trait = arbitrary
|
|
ep2_wedding_ewan_0051_boring_zeal_trigger = yes
|
|
has_trait = fickle
|
|
has_trait = vengeful
|
|
has_trait = lifestyle_poet
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Gently exit the conversation.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.a
|
|
|
|
# Let's give this a go!
|
|
duel = {
|
|
skill = diplomacy
|
|
value = high_skill_rating
|
|
# You extricate yourself.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0051.a.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0051.a.tt.success
|
|
left_icon = scope:dolt
|
|
add_diplomacy_lifestyle_perk_points = 1
|
|
}
|
|
}
|
|
# It never ends.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0051.a.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0051.a.tt.failure
|
|
left_icon = scope:dolt
|
|
reverse_add_opinion = {
|
|
target = scope:dolt
|
|
modifier = friendliness_opinion
|
|
opinion = 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ep2_wedding_ewan_0051_compassion_to_dolt_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_sociability = -0.25
|
|
}
|
|
}
|
|
}
|
|
|
|
# Wrathful: By all the denizens of NegativeAfterLife, will you cease this prattle?
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.b
|
|
trigger = { has_trait = wrathful }
|
|
trait = wrathful
|
|
|
|
# Your firmness is notable.
|
|
add_prestige = medium_prestige_gain
|
|
# Scope:dolt is hurt.
|
|
reverse_add_opinion = {
|
|
target = scope:dolt
|
|
modifier = hurt_opinion
|
|
opinion = -40
|
|
}
|
|
# Every wrathful character at the gathering sees your point.
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = {
|
|
has_trait = wrathful
|
|
NOR = {
|
|
this = root
|
|
this = scope:dolt
|
|
}
|
|
}
|
|
custom = ep2_wedding_ewan.0051.b.custom.every_wrathful_guest
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
callous = minor_stress_impact_loss
|
|
sadistic = minor_stress_impact_loss
|
|
impatient = minor_stress_impact_loss
|
|
wrathful = major_stress_impact_loss
|
|
patient = miniscule_stress_impact_gain
|
|
compassionate = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_compassion = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Shut. Up.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.c
|
|
trigger = {
|
|
NOT = { has_trait = wrathful }
|
|
}
|
|
|
|
# Your firmness is notable.
|
|
add_character_modifier = {
|
|
modifier = ep2_wedding_ewan_0051_snooty_modifier
|
|
years = 15
|
|
}
|
|
# Scope:dolt is hurt.
|
|
reverse_add_opinion = {
|
|
target = scope:dolt
|
|
modifier = hurt_opinion
|
|
opinion = -20
|
|
}
|
|
|
|
stress_impact = {
|
|
callous = minor_stress_impact_loss
|
|
sadistic = minor_stress_impact_loss
|
|
impatient = minor_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_gain
|
|
patient = miniscule_stress_impact_gain
|
|
calm = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_compassion = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Lazy: fall asleep.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.d
|
|
trigger = { has_trait = lazy }
|
|
trait = lazy
|
|
|
|
# Scope:dolt is hurt.
|
|
add_opinion = {
|
|
target = scope:dolt
|
|
modifier = hurt_opinion
|
|
opinion = -30
|
|
}
|
|
# Every lazy character at the gathering respects the hustle.
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = {
|
|
has_trait = lazy
|
|
NOR = {
|
|
this = root
|
|
this = scope:dolt
|
|
}
|
|
}
|
|
custom = ep2_wedding_ewan.0051.d.custom.every_lazy_guest
|
|
reverse_add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
}
|
|
|
|
# Lotta stress loss for this one too.
|
|
stress_impact = {
|
|
lazy = major_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_energy = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Drunkard: you buy a pub together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.e
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_drunkard_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = drunkard
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = drunkard }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Hashishiyah: you buy a cake shop together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.f
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_hashishiyah_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = hashishiyah
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = hashishiyah }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Rakish: you start a brothel together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.g
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_rakish_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = rakish
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = rakish }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Reclusive: you start a private retreat together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.h
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_reclusive_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = reclusive
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = reclusive }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Flagellant: you start a... whipping post field together. Apparently.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.i
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_flagellant_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = flagellant
|
|
trait = deviant
|
|
# Account for secret deviants.
|
|
if = {
|
|
limit = {
|
|
any_secret = { type = secret_deviant }
|
|
}
|
|
random_secret = {
|
|
type = secret_deviant
|
|
save_scope_as = secret
|
|
}
|
|
custom_tooltip = ep2_wedding_ewan.0051.i.tt.deviant
|
|
}
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = flagellant }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Profligate: you go in on a scam together, but will generally get scammed.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.j
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_profligate_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = profligate
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = profligate }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Journaller: you start a library/scriptorium together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.k
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_journaller_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = journaller
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = journaller }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# Athletic: you start a gym together.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.l
|
|
trigger = {
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_athletic_trigger = yes
|
|
NOT = { has_trait = lazy }
|
|
}
|
|
trait = athletic
|
|
|
|
# Roll the effect.
|
|
ep2_wedding_ewan_0051_start_business_together_effect = yes
|
|
|
|
ep2_wedding_ewan_0051_stress_trait_stress_effect = { STRESS_TRAIT = athletic }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_rationality = -0.75
|
|
}
|
|
}
|
|
}
|
|
|
|
# That's... very interesting...
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.m
|
|
trigger = {
|
|
NOR = {
|
|
has_trait = lazy
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_drunkard_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_hashishiyah_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_rakish_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_reclusive_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_flagellant_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_profligate_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_journaller_trigger = yes
|
|
ep2_wedding_ewan_0051_interested_stress_pitch_trait_athletic_trigger = yes
|
|
}
|
|
}
|
|
|
|
# Try to play along as best you can.
|
|
duel = {
|
|
skill = intrigue
|
|
value = extremely_high_skill_rating
|
|
# You pull off your bold-faced lie.
|
|
40 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0051.m.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0051.m.tt.success
|
|
left_icon = scope:dolt
|
|
add_intrigue_skill = 1
|
|
}
|
|
}
|
|
# Some people appreciate your tact.
|
|
60 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0051.m.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0051.m.tt.failure
|
|
left_icon = scope:dolt
|
|
add_character_modifier = {
|
|
modifier = ep2_wedding_ewan_0051_approachable_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ep2_wedding_ewan_0051_compassion_to_dolt_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.5
|
|
ai_sociability = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Grin and bear it.
|
|
option = {
|
|
name = ep2_wedding_ewan.0051.n
|
|
flavor = ep2_wedding_ewan.0051.n.tt
|
|
|
|
# They appreciate you listening.
|
|
reverse_add_opinion = {
|
|
target = scope:dolt
|
|
modifier = friendliness_opinion
|
|
opinion = 40
|
|
}
|
|
# Try to give a hook - they're likely uninteresting (y'know, inherently), which is why we put this in the opt-out.
|
|
if = {
|
|
limit = {
|
|
can_add_hook = {
|
|
target = scope:dolt
|
|
type = favor_hook
|
|
}
|
|
}
|
|
add_hook = {
|
|
target = scope:dolt
|
|
type = favor_hook
|
|
}
|
|
}
|
|
|
|
ep2_wedding_ewan_0051_compassion_to_dolt_effect = yes
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.5
|
|
ai_boldness = -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Investment success — your venture turned out to be worthwhile after all!
|
|
ep2_wedding_ewan.0052 = {
|
|
type = character_event
|
|
title = ep2_wedding_ewan.0052.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0052.desc.intro
|
|
# Is scope:dolt around?
|
|
first_valid = {
|
|
# Scope:dolt is dead.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { is_alive = no }
|
|
}
|
|
desc = ep2_wedding_ewan.0052.desc.dolt_availability.dead
|
|
}
|
|
# Scope:dolt is imprisoned.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { is_imprisoned = yes }
|
|
}
|
|
desc = ep2_wedding_ewan.0052.desc.dolt_availability.imprisoned
|
|
}
|
|
# Scope:dolt is available.
|
|
desc = ep2_wedding_ewan.0052.desc.dolt_availability.free
|
|
}
|
|
desc = ep2_wedding_ewan.0052.desc.midtro
|
|
# And what was your business again?
|
|
first_valid = {
|
|
# Drunkard
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:drunkard }
|
|
desc = ep2_wedding_ewan.0052.desc.drunkard
|
|
}
|
|
# Hashishiyah
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:hashishiyah }
|
|
desc = ep2_wedding_ewan.0052.desc.hashishiyah
|
|
}
|
|
# Rakish
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:rakish }
|
|
desc = ep2_wedding_ewan.0052.desc.rakish
|
|
}
|
|
# Reclusive
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:reclusive }
|
|
desc = ep2_wedding_ewan.0052.desc.reclusive
|
|
}
|
|
# Flagellant
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:flagellant }
|
|
desc = ep2_wedding_ewan.0052.desc.flagellant
|
|
}
|
|
# Profligate
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:profligate }
|
|
desc = ep2_wedding_ewan.0052.desc.profligate
|
|
}
|
|
# Journaller
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:journaller }
|
|
desc = ep2_wedding_ewan.0052.desc.journaller
|
|
}
|
|
# Athletic
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:athletic }
|
|
desc = ep2_wedding_ewan.0052.desc.athletic
|
|
}
|
|
}
|
|
# Who's sending the letter?
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = {
|
|
OR = {
|
|
is_alive = no
|
|
is_imprisoned = yes
|
|
}
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0052.desc.outro.dolt_unavailable
|
|
}
|
|
desc = ep2_wedding_ewan.0052.desc.outro
|
|
}
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = root
|
|
animation = disbelief
|
|
}
|
|
right_portrait = {
|
|
character = scope:dolt
|
|
animation = happiness
|
|
}
|
|
override_background = { reference = tavern }
|
|
|
|
trigger = {
|
|
# Standard checks.
|
|
is_available_adult = yes
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
trigger_event = {
|
|
id = ep2_wedding_ewan.0052
|
|
years = 1
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Clear the flag.
|
|
remove_character_flag = awaiting_ep2_wedding_ewan_0051_results_flag
|
|
# Cash for both of you!
|
|
add_gold = massive_gold_value
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_alive = yes }
|
|
add_gold = @ep2_wedding_ewan_0052_dolt_pay_out_value
|
|
}
|
|
}
|
|
# Faith concerns with these iniquities.
|
|
## We don't take off _too_ much for any of these — we're just trying to note them for responsiveness.
|
|
### Unless you're HoF, in which case, that's a bit of a downer.
|
|
## Some faiths would frown on a pub.
|
|
if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:drunkard
|
|
faith_forbids_alcohol_trigger = yes
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
## Some faiths frown on sloth.
|
|
else_if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:hashishiyah
|
|
# Diligent virtue excluded because you can definitely do work _and_ have a hashish indulging habit, but it's hard to see lots of people _on_ hashish as anything but a den of folks lazing around on cushions chatting about nothing in particular. The horror.
|
|
faith = { trait_is_sin = lazy }
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
## Some faiths frown on lust.
|
|
else_if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:rakish
|
|
faith = {
|
|
OR = {
|
|
trait_is_sin = lustful
|
|
trait_is_virtue = chaste
|
|
}
|
|
}
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
## Some faiths frown on isolation.
|
|
else_if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:reclusive
|
|
faith = {
|
|
OR = {
|
|
trait_is_sin = shy
|
|
trait_is_virtue = gregarious
|
|
}
|
|
}
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
## Some faiths frown on boondoggles.
|
|
else_if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:profligate
|
|
faith = { trait_is_virtue = greedy }
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
## Some faiths frown on non-gamer activities.
|
|
else_if = {
|
|
limit = {
|
|
scope:stress_pitch = flag:athletic
|
|
faith = { trait_is_virtue = lazy }
|
|
}
|
|
ep2_wedding_ewan_0051_business_piety_consequences_effect = yes
|
|
}
|
|
}
|
|
|
|
# Greedy/Callous/Sadistic/Arbitrary: take scope:dolt's gold too.
|
|
option = {
|
|
name = ep2_wedding_ewan.0052.a
|
|
trigger = {
|
|
# You have some sway over scope:dolt.
|
|
scope:dolt = {
|
|
is_alive = yes
|
|
any_liege_or_above = { this = root }
|
|
}
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = callous
|
|
has_trait = sadistic
|
|
has_trait = arbitrary
|
|
}
|
|
}
|
|
trait = greedy
|
|
trait = callous
|
|
trait = sadistic
|
|
trait = arbitrary
|
|
|
|
scope:dolt = {
|
|
# Forcibly transfer the gold.
|
|
pay_short_term_gold = {
|
|
target = root
|
|
gold = @ep2_wedding_ewan_0052_dolt_pay_out_value
|
|
}
|
|
# But be mad about it.
|
|
add_opinion = {
|
|
target = root
|
|
modifier = cruelty_opinion
|
|
opinion = -50
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_loss
|
|
callous = miniscule_stress_impact_loss
|
|
sadistic = miniscule_stress_impact_loss
|
|
arbitrary = miniscule_stress_impact_loss
|
|
generous = medium_stress_impact_gain
|
|
compassionate = medium_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_greed = 1
|
|
ai_honor = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Arrogant: Of course, I'm a business genius.
|
|
option = {
|
|
name = ep2_wedding_ewan.0052.b
|
|
trigger = { has_trait = arrogant }
|
|
trait = arrogant
|
|
|
|
# Scope:dolt appreciates that you believed in HerHim.
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_alive = yes }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = grateful_opinion
|
|
opinion = 50
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = { arrogant = massive_stress_impact_loss }
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_honor = 1
|
|
ai_greed = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# An unexpectedly pleasant surprise!
|
|
option = {
|
|
name = ep2_wedding_ewan.0052.c
|
|
trigger = {
|
|
NOT = { has_trait = arrogant }
|
|
}
|
|
|
|
# Scope:dolt appreciates that you believed in HerHim.
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_alive = yes }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = grateful_opinion
|
|
opinion = 50
|
|
}
|
|
}
|
|
}
|
|
|
|
# No stress for notification option.
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_honor = 1
|
|
ai_greed = -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Investment failure — semi-predictably, your venture dun goofed.
|
|
ep2_wedding_ewan.0053 = {
|
|
type = character_event
|
|
title = ep2_wedding_ewan.0053.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0053.desc.intro
|
|
# Is scope:dolt around?
|
|
first_valid = {
|
|
# Scope:dolt is dead.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { is_alive = no }
|
|
}
|
|
desc = ep2_wedding_ewan.0053.desc.dolt_availability.dead
|
|
}
|
|
# Scope:dolt is imprisoned.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dolt = { is_imprisoned = yes }
|
|
}
|
|
desc = ep2_wedding_ewan.0053.desc.dolt_availability.imprisoned
|
|
}
|
|
# Scope:dolt is available.
|
|
desc = ep2_wedding_ewan.0053.desc.dolt_availability.free
|
|
}
|
|
desc = ep2_wedding_ewan.0053.desc.midtro
|
|
# And what was your business again?
|
|
first_valid = {
|
|
# Drunkard
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:drunkard }
|
|
desc = ep2_wedding_ewan.0053.desc.drunkard
|
|
}
|
|
# Hashishiyah
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:hashishiyah }
|
|
desc = ep2_wedding_ewan.0053.desc.hashishiyah
|
|
}
|
|
# Rakish
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:rakish }
|
|
desc = ep2_wedding_ewan.0053.desc.rakish
|
|
}
|
|
# Reclusive
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:reclusive }
|
|
desc = ep2_wedding_ewan.0053.desc.reclusive
|
|
}
|
|
# Flagellant
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:flagellant }
|
|
desc = ep2_wedding_ewan.0053.desc.flagellant
|
|
}
|
|
# Profligate
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:profligate }
|
|
desc = ep2_wedding_ewan.0053.desc.profligate
|
|
}
|
|
# Journaller
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:journaller }
|
|
desc = ep2_wedding_ewan.0053.desc.journaller
|
|
}
|
|
# Athletic
|
|
triggered_desc = {
|
|
trigger = { scope:stress_pitch = flag:athletic }
|
|
desc = ep2_wedding_ewan.0053.desc.athletic
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0053.desc.outro
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = root
|
|
animation = disapproval
|
|
}
|
|
right_portrait = {
|
|
character = scope:dolt
|
|
animation = shame
|
|
}
|
|
override_background = { reference = tavern }
|
|
|
|
trigger = {
|
|
# Standard checks.
|
|
is_available_adult = yes
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
trigger_event = {
|
|
id = ep2_wedding_ewan.0053
|
|
years = 1
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Clear the flag.
|
|
remove_character_flag = awaiting_ep2_wedding_ewan_0051_results_flag
|
|
# Troublesome to be reminded of.
|
|
add_stress = medium_stress_gain
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_stress = massive_stress_gain
|
|
}
|
|
}
|
|
}
|
|
|
|
# Bring me that idiot in shackles!
|
|
option = {
|
|
name = {
|
|
trigger = {
|
|
scope:dolt = { is_alive = yes }
|
|
}
|
|
text = ep2_wedding_ewan.0053.a.alive
|
|
}
|
|
name = {
|
|
trigger = {
|
|
scope:dolt = { is_alive = no }
|
|
}
|
|
text = ep2_wedding_ewan.0053.a.dead
|
|
}
|
|
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_alive = yes }
|
|
# If you can imprison scope:dolt, you do.
|
|
if = {
|
|
limit = {
|
|
is_imprisoned = no
|
|
any_liege_or_above = { this = root }
|
|
}
|
|
rightfully_imprison_character_effect = {
|
|
TARGET = scope:dolt
|
|
IMPRISONER = root
|
|
}
|
|
}
|
|
# Plus they're upset with your lack of understanding.
|
|
add_opinion = {
|
|
target = root
|
|
modifier = cruelty_opinion
|
|
opinion = -30
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
vengeful = major_stress_impact_loss
|
|
wrathful = miniscule_stress_impact_loss
|
|
forgiving = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_vengefulness = 1
|
|
ai_compassion = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# This was probably to be expected.
|
|
option = {
|
|
name = ep2_wedding_ewan.0053.b
|
|
|
|
# They're grateful for your understanding.
|
|
scope:dolt = {
|
|
if = {
|
|
limit = { is_alive = yes }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = kindness_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
forgiving = minor_stress_impact_loss
|
|
wrathful = minor_stress_impact_gain
|
|
vengeful = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_vengefulness = -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# To My Beloved GetRelation
|
|
# by Ewan Cowhig Croft
|
|
# 0061 - 0070
|
|
##################################################
|
|
|
|
# Find an old coot to chatter on.
|
|
scripted_trigger ep2_wedding_ewan_0061_suitable_doddering_relative_trigger = {
|
|
is_ai = yes
|
|
# Right, make sure that they're old enough for a good ramble.
|
|
age >= 60
|
|
# Must be sufficiently older than our target also.
|
|
age >= {
|
|
value = $TARGET$.age
|
|
add = 20
|
|
}
|
|
# Shy characters will never do this.
|
|
NOT = { has_trait = shy }
|
|
# Must have some predilection for long public speeches.
|
|
OR = {
|
|
# Some traits make you want to talk.
|
|
## You love the sound of your own voice.
|
|
has_trait = arrogant
|
|
## Because you must tell your story to the world. Or something.
|
|
has_trait = honest
|
|
## Because you must tell _a_ story to the world. Or something.
|
|
has_trait = deceitful
|
|
## You love giving speeches.
|
|
has_trait = gregarious
|
|
has_trait = ambitious
|
|
has_trait = diplomat
|
|
has_trait = lifestyle_poet
|
|
## You love giving terrible speeches.
|
|
has_trait = sadistic
|
|
## It seemed like a good idea at the time.
|
|
### We've all been there.
|
|
#### ;_;.
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
# People with very high talky-skills are inclined to talking.
|
|
diplomacy >= @ep2_wedding_ewan_0061_high_skill_value
|
|
learning >= @ep2_wedding_ewan_0061_high_skill_value
|
|
# Really old people will give speeches.
|
|
age >= @ep2_wedding_ewan_0061_old_value
|
|
}
|
|
# And actually family - we check this last so that we iterate over as few characters as possible.
|
|
is_close_or_extended_family_of = $TARGET$
|
|
# Filter out candidates that don't make sense.
|
|
NOR = {
|
|
this = root
|
|
this = scope:activity.special_guest:spouse_1
|
|
this = scope:activity.special_guest:spouse_2
|
|
}
|
|
}
|
|
|
|
# Talk scope:oldling down without hurting HerHis feelings.
|
|
scripted_effect ep2_wedding_ewan_0061_diplomatically_stop_speech_effect = {
|
|
# Hook + prestige if we can.
|
|
if = {
|
|
limit = {
|
|
can_add_hook = {
|
|
target = scope:relative
|
|
type = favor_hook
|
|
}
|
|
}
|
|
add_hook = {
|
|
target = scope:relative
|
|
type = favor_hook
|
|
}
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
# Otherwise, double our prestige.
|
|
else = { add_prestige = medium_prestige_gain }
|
|
}
|
|
|
|
# How much does root prod scope:oldling into continuing, at the cost of scope:relative's mental health?
|
|
scripted_effect ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
# If this is the player, we give stress to scope:relative.
|
|
## The AI restriction is to stop scope:relative from being harassed into alcoholism/death if they accidentally invite too many dicks to their wedding.
|
|
if = {
|
|
limit = { is_ai = no }
|
|
scope:relative = { add_stress = $STRESS_AMOUNT$_stress_gain }
|
|
}
|
|
# Everyone gets to lose opinion though!
|
|
## (the AI is thus effectively just trading opinion for stress loss)
|
|
reverse_add_opinion = {
|
|
target = scope:relative
|
|
modifier = humiliated_opinion
|
|
opinion = $OPINION_LOSS$
|
|
}
|
|
}
|
|
|
|
# Embarrassing older relation speech.
|
|
ep2_wedding_ewan.0061 = {
|
|
type = activity_event
|
|
title = ep2_wedding_ewan.0061.t
|
|
desc = {
|
|
desc = ep2_wedding_ewan.0061.desc.intro
|
|
random_valid = {
|
|
# Arrogant
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = arrogant }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.arrogant
|
|
}
|
|
# Honest
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = honest }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.honest
|
|
}
|
|
# Deceitful
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = deceitful }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.deceitful
|
|
}
|
|
# Gregarious
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = gregarious }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.gregarious
|
|
}
|
|
# Ambitious
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = ambitious }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.ambitious
|
|
}
|
|
# Diplomat
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = diplomat }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.diplomat
|
|
}
|
|
# Poet
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = lifestyle_poet }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.poet
|
|
}
|
|
# Sadistic
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = sadistic }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.sadistic
|
|
}
|
|
# Drunkard
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = drunkard }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.drunkard
|
|
}
|
|
# Hashishiyah
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:oldling = { has_trait = hashishiyah }
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.hashishiyah
|
|
}
|
|
# High Diplomacy
|
|
triggered_desc = {
|
|
trigger = { scope:oldling.diplomacy >= @ep2_wedding_ewan_0061_high_skill_value }
|
|
desc = ep2_wedding_ewan.0061.desc.skill.diplomacy
|
|
}
|
|
# High Learning
|
|
triggered_desc = {
|
|
trigger = { scope:oldling.learning >= @ep2_wedding_ewan_0061_high_skill_value }
|
|
desc = ep2_wedding_ewan.0061.desc.skill.learning
|
|
}
|
|
# V. Old
|
|
triggered_desc = {
|
|
trigger = { scope:oldling.age >= @ep2_wedding_ewan_0061_old_value }
|
|
desc = ep2_wedding_ewan.0061.desc.old
|
|
}
|
|
# V. V. Old
|
|
triggered_desc = {
|
|
trigger = { scope:oldling.age >= @ep2_wedding_ewan_0061_very_old }
|
|
desc = ep2_wedding_ewan.0061.desc.very_old
|
|
}
|
|
}
|
|
desc = ep2_wedding_ewan.0061.desc.outro
|
|
}
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = scope:oldling
|
|
animation = toast_goblet
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = worry
|
|
}
|
|
right_portrait = {
|
|
character = scope:relative
|
|
animation = fear
|
|
}
|
|
|
|
cooldown = { years = 1 }
|
|
|
|
trigger = {
|
|
NOR = {
|
|
this = scope:activity.special_guest:spouse_1
|
|
this = scope:activity.special_guest:spouse_2
|
|
}
|
|
# Either special guest must have a relative who matches the criteria.
|
|
scope:activity = {
|
|
NOT = { exists = var:had_event_ewan_0061 }
|
|
any_attending_character = {
|
|
OR = {
|
|
ep2_wedding_ewan_0061_suitable_doddering_relative_trigger = { TARGET = scope:activity.special_guest:spouse_1 }
|
|
ep2_wedding_ewan_0061_suitable_doddering_relative_trigger = { TARGET = scope:activity.special_guest:spouse_2 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Save some scopes for loc and general sanity.
|
|
scope:activity = {
|
|
special_guest:spouse_1 = { save_scope_as = spouse_1 }
|
|
special_guest:spouse_2 = { save_scope_as = spouse_2 }
|
|
set_variable = {
|
|
name = had_event_ewan_0061
|
|
years = 5
|
|
}
|
|
}
|
|
# Alright, let's pick a doddering old relative!
|
|
scope:activity = {
|
|
ordered_attending_character = {
|
|
limit = {
|
|
OR = {
|
|
ep2_wedding_ewan_0061_suitable_doddering_relative_trigger = { TARGET = scope:spouse_1 }
|
|
ep2_wedding_ewan_0061_suitable_doddering_relative_trigger = { TARGET = scope:spouse_2 }
|
|
}
|
|
}
|
|
# Naturally, naturally.
|
|
order_by = age
|
|
# Ok, save 'em for reference.
|
|
save_scope_as = oldling
|
|
}
|
|
}
|
|
# Right, work out who they're related to.
|
|
random_list = {
|
|
# Related to scope:spouse_1.
|
|
100 = {
|
|
trigger = {
|
|
scope:spouse_1 = {
|
|
any_close_or_extended_family_member = { this = scope:oldling }
|
|
}
|
|
}
|
|
scope:spouse_1 = { save_scope_as = relative }
|
|
}
|
|
# Related to scope:spouse_2.
|
|
100 = {
|
|
trigger = {
|
|
scope:spouse_2 = {
|
|
any_close_or_extended_family_member = { this = scope:oldling }
|
|
}
|
|
}
|
|
scope:spouse_2 = { save_scope_as = relative}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Diplomacy: gently interrupt them.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.a
|
|
trigger = { diplomacy >= extremely_high_skill_rating }
|
|
skill = diplomacy
|
|
|
|
# Talk scope:oldling down without hurting HerHis feelings.
|
|
ep2_wedding_ewan_0061_diplomatically_stop_speech_effect = yes
|
|
# Scope:relative is _extremely_ grateful to you either way.
|
|
reverse_add_opinion = {
|
|
target = scope:relative
|
|
modifier = grateful_opinion
|
|
opinion = 40
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_loss
|
|
callous = miniscule_stress_impact_gain
|
|
sadistic = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_sociability = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Politely clap to stop them.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.b
|
|
trigger = { diplomacy < very_high_skill_rating }
|
|
|
|
# You give it your best shot.
|
|
duel = {
|
|
skill = diplomacy
|
|
value = high_skill_rating
|
|
# You force scope:oldling down.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0061.b.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.b.tt.success
|
|
left_icon = scope:oldling
|
|
# Talk scope:oldling down without hurting HerHis feelings.
|
|
ep2_wedding_ewan_0061_diplomatically_stop_speech_effect = yes
|
|
}
|
|
}
|
|
# Scope:oldling continues apace regardless.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0061.b.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.b.tt.failure
|
|
left_icon = scope:oldling
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
}
|
|
}
|
|
# Scope:relative is _extremely_ grateful to you either way.
|
|
reverse_add_opinion = {
|
|
target = scope:relative
|
|
modifier = grateful_opinion
|
|
opinion = 40
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_loss
|
|
callous = miniscule_stress_impact_gain
|
|
sadistic = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_sociability = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Grin and suffer through it.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.c
|
|
|
|
# Everyone can commiserate.
|
|
scope:activity = {
|
|
every_attending_character = {
|
|
limit = {
|
|
NOR = {
|
|
this = scope:oldling
|
|
this = root
|
|
}
|
|
}
|
|
custom = custom.every_activity_guest
|
|
reverse_add_opinion = {
|
|
target = root
|
|
modifier = commiseration_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_loss
|
|
lazy = minor_stress_impact_loss
|
|
patient = minor_stress_impact_loss
|
|
impatient = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_boldness = -1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Mischief: cheer and whoop for more.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.d
|
|
trigger = { has_activity_intent = banquet_mischief_intent }
|
|
custom_tooltip = available_because_intent_tt
|
|
|
|
# Same as the .e rolls, but we remove the minor result and just roll between success & crit success.
|
|
duel = {
|
|
skill = intrigue
|
|
value = very_high_skill_rating
|
|
# Critical success.
|
|
40 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0061.d.tt.crit_success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.d.tt.crit_success
|
|
left_icon = scope:oldling
|
|
right_icon = scope:relative
|
|
# Parse out our effects.
|
|
ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
STRESS_AMOUNT = massive
|
|
OPINION_LOSS = -40
|
|
}
|
|
}
|
|
}
|
|
# Success.
|
|
60 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0061.d.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.d.tt.success
|
|
left_icon = scope:oldling
|
|
right_icon = scope:relative
|
|
# Parse out our effects.
|
|
ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
STRESS_AMOUNT = major
|
|
OPINION_LOSS = -30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Plus scope:oldling appreciates the cheering.
|
|
reverse_add_opinion = {
|
|
target = scope:oldling
|
|
modifier = compliment_opinion
|
|
opinion = 40
|
|
}
|
|
|
|
# We give base stress loss for this'un too.
|
|
stress_impact = {
|
|
base = major_stress_impact_loss
|
|
deceitful = miniscule_stress_impact_loss
|
|
callous = miniscule_stress_impact_loss
|
|
sadistic = miniscule_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_compassion = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Prod them to continue.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.e
|
|
trigger = {
|
|
NOT = { has_activity_intent = banquet_mischief_intent }
|
|
}
|
|
|
|
# Commence the haranguing.
|
|
duel = {
|
|
skill = intrigue
|
|
value = very_high_skill_rating
|
|
# Critical success.
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0061.e.tt.crit_success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.e.tt.crit_success
|
|
left_icon = scope:oldling
|
|
right_icon = scope:relative
|
|
# Parse out our effects.
|
|
ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
STRESS_AMOUNT = massive
|
|
OPINION_LOSS = -40
|
|
}
|
|
}
|
|
}
|
|
# Success.
|
|
30 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 5
|
|
desc = ep2_wedding_ewan.0061.e.tt.success
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.e.tt.success
|
|
left_icon = scope:oldling
|
|
right_icon = scope:relative
|
|
# Parse out our effects.
|
|
ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
STRESS_AMOUNT = major
|
|
OPINION_LOSS = -30
|
|
}
|
|
}
|
|
}
|
|
# Slight success.
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep2_wedding_ewan.0061.e.tt.failure
|
|
send_interface_toast = {
|
|
title = ep2_wedding_ewan.0061.e.tt.failure
|
|
left_icon = scope:oldling
|
|
right_icon = scope:relative
|
|
# Parse out our effects.
|
|
ep2_wedding_ewan_0061_humiliation_rewards_effect = {
|
|
STRESS_AMOUNT = medium
|
|
OPINION_LOSS = -20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Plus scope:oldling appreciates the prompts.
|
|
reverse_add_opinion = {
|
|
target = scope:oldling
|
|
modifier = compliment_opinion
|
|
opinion = 10
|
|
}
|
|
|
|
stress_impact = {
|
|
base = major_stress_loss
|
|
deceitful = minor_stress_impact_loss
|
|
callous = minor_stress_impact_loss
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_boldness = 1
|
|
ai_compassion = -0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Stop paying attention.
|
|
option = {
|
|
name = ep2_wedding_ewan.0061.f
|
|
|
|
# Effect is stress loss.
|
|
stress_impact = {
|
|
base = medium_stress_loss
|
|
lazy = medium_stress_impact_loss
|
|
diligent = miniscule_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_energy = -0.5
|
|
ai_sociability = -0.5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# Oath in Moment
|
|
# by Ewan Cowhig Croft
|
|
# 0071 - 0080
|
|
##################################################
|
|
|
|
# Your liege offers you a favour for your support.
|
|
ep2_wedding_ewan.0071 = {
|
|
type = character_event
|
|
title = ep2_wedding_ewan.0071.t
|
|
desc = ep2_wedding_ewan.0071.desc
|
|
theme = feast_activity
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_bold
|
|
}
|
|
right_portrait = {
|
|
character = scope:liege
|
|
animation = admiration
|
|
}
|
|
|
|
trigger = {
|
|
# DLC check.
|
|
has_ep2_dlc_trigger = yes
|
|
# Vassals only please.
|
|
top_liege != this
|
|
# Decent prestige level, as you can't be a nobody.
|
|
prestige_level >= medium_prestige_level
|
|
# Dynastic cooldowns.
|
|
trigger_if = {
|
|
limit = { exists = dynasty }
|
|
dynasty = {
|
|
OR = {
|
|
# AI cooldown.
|
|
AND = {
|
|
root = { is_ai = yes }
|
|
NOT = { has_variable = ep2_wedding_ewan_0071_ai_cooldown }
|
|
}
|
|
# Player cooldown.
|
|
AND = {
|
|
root = { is_ai = no }
|
|
NOT = { has_variable = ep2_wedding_ewan_0071_player_cooldown }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# If you're factioning, they won't give ye diddly.
|
|
NOR = {
|
|
is_a_faction_leader = yes
|
|
is_a_faction_member = yes
|
|
}
|
|
# Must have a liege who...
|
|
liege ?= {
|
|
NOR = {
|
|
has_imprisonment_reason = root
|
|
has_banish_reason = root
|
|
has_execute_reason = root
|
|
}
|
|
# ... has a prestige level no higher than yours.
|
|
prestige_level <= root.prestige_level
|
|
# ... really likes you.
|
|
OR = {
|
|
opinion = {
|
|
target = root
|
|
value >= 100
|
|
}
|
|
AND = {
|
|
dynasty ?= { has_dynasty_perk = ep2_activities_legacy_2 }
|
|
opinion = {
|
|
target = root
|
|
value >= 50
|
|
}
|
|
}
|
|
has_trait = trusting
|
|
}
|
|
# ... juuuust let's double-check you haven't managed this whilst having a bad relationship.
|
|
NOT = {
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
# ... and is an AI.
|
|
is_ai = yes
|
|
# Plus, filter out stuff that'd look real weird.
|
|
NOR = {
|
|
# No crime reasons.
|
|
has_imprisonment_reason = root
|
|
has_banish_reason = root
|
|
has_revoke_title_reason = root
|
|
has_execute_reason = root
|
|
has_divorce_reason = root
|
|
# No terrible opinions you might've overridden.
|
|
has_any_major_negative_opinion_against_character_trigger = { CHARACTER = root }
|
|
# Paranoid lieges don't make themselves this vulnerable.
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
# No use if you already have a strong hook on 'em.
|
|
NOT = { has_strong_hook = liege }
|
|
}
|
|
|
|
weight_multiplier = {
|
|
base = 1
|
|
|
|
# Weight up for the dynasty legacy that generally enables this.
|
|
modifier = {
|
|
# This number is deliberately high — it brings it up to about the standard weighting in the on_action, going from 1 to 100.
|
|
add = 99
|
|
dynasty ?= { has_dynasty_perk = ep2_activities_legacy_2 }
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Grab the liege immediately for mildly easier loc - we don't worry about a scripted trigger because we only have one liege who can have passed this gate.
|
|
liege = { save_scope_as = liege }
|
|
# We don't want to see this again for a century or so.
|
|
if = {
|
|
limit = { exists = dynasty }
|
|
# AI get one cooldown...
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
dynasty = {
|
|
set_variable = {
|
|
name = ep2_wedding_ewan_0071_ai_cooldown
|
|
value = yes
|
|
years = 100
|
|
}
|
|
}
|
|
}
|
|
# ... and the player gets another, so that the AI doesn't block them.
|
|
dynasty = {
|
|
set_variable = {
|
|
name = ep2_wedding_ewan_0071_player_cooldown
|
|
value = yes
|
|
years = 100
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Sounds like a fair trade to me!
|
|
option = {
|
|
name = ep2_wedding_ewan.0071.a
|
|
|
|
# You get your hook.
|
|
add_hook = {
|
|
type = liege_favour_strong_hook
|
|
target = scope:liege
|
|
}
|
|
# Liege gains prestige!
|
|
scope:liege = {
|
|
add_prestige = major_prestige_gain
|
|
add_opinion = {
|
|
target = root
|
|
modifier = grateful_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
humble = major_stress_impact_loss
|
|
arbitrary = minor_stress_impact_gain
|
|
arrogant = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_rationality = 2
|
|
ai_honor = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
# Thank you, but no thank you.
|
|
option = {
|
|
name = ep2_wedding_ewan.0071.b
|
|
|
|
# You gain prestige.
|
|
add_prestige = major_prestige_gain
|
|
# Plus dynasty prestige if you're not the same dynasty.
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
AND = {
|
|
exists = liege.dynasty
|
|
NOT = { dynasty ?= liege.dynasty }
|
|
}
|
|
AND = {
|
|
exists = dynasty
|
|
NOT = { exists = liege.dynasty }
|
|
}
|
|
}
|
|
}
|
|
dynasty = { add_dynasty_prestige = massive_dynasty_prestige_value }
|
|
}
|
|
# Liege loses a little opinion of you.
|
|
reverse_add_opinion = {
|
|
target = scope:liege
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
|
|
stress_impact = {
|
|
arbitrary = minor_stress_impact_loss
|
|
arrogant = minor_stress_impact_loss
|
|
humble = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_compassion = -0.5
|
|
ai_energy = -0.75
|
|
}
|
|
}
|
|
}
|
|
}
|