N3OW/events/scheme_events/court_scheme/court_scheme_ongoing_events.txt
2026-01-06 14:25:21 +01:00

5518 lines
117 KiB
Text

namespace = court_ongoing
# ONGOING MANAGEMENT
# court_ongoing.0001 - Generic "player target opted out"-event
# START EVENTS
# court_ongoing.0500 -
# ONGOING EVENTS
# court_ongoing.1000 - Someone farted!
# court_ongoing.1010 - Defend their honor through duel or diplomacy
# court_ongoing.1020 - Fetch gift
# court_ongoing.1022 - Gift: Wolf pelt
# court_ongoing.1030 - Gift: cat or dog or eagle
# court_ongoing.1040 - Gift: necklace
# court_ongoing.1050 - Gift: flower
# court_ongoing.1100 - Compliment poem
# court_ongoing.1110 - Dealing with competition
# court_ongoing.1120 - Boring party guest
# court_ongoing.1200 - Extreme request
######################
# ONGOING MANAGEMENT #
######################
#Generic "player target opted out"-event
court_ongoing.0001 = { #by Linnéa Thimrén
type = character_event
title = court_ongoing.0001.t
desc = court_ongoing.0001.desc
theme = romance_scheme
left_portrait = scope:target
option = {
name = court_ongoing.0001.a
scope:scheme = { end_scheme = yes }
}
}
################
# START EVENTS #
################
#Pick a method
scripted_effect court_ongoing_0501_option_randomizer_effect = {
random_list = {
10 = { #Song
trigger = {
NOR = {
has_character_flag = court_start_song
#Nothing shunned/criminal, as song text is public and explicitly about love
court_love_is_shunned_or_criminal_trigger = yes
}
}
modifier = {
add = {
value = diplomacy
multiply = 10
}
}
add_character_flag = court_start_song
}
10 = { #Sneaky love letter
trigger = { NOT = { has_character_flag = court_start_sneaky_love_letter } }
modifier = {
add = {
value = intrigue
multiply = 10
}
}
add_character_flag = court_start_sneaky_love_letter
}
10 = { #Poem love letter
trigger = { NOT = { has_character_flag = court_start_poem_love_letter } }
modifier = {
add = {
value = learning
multiply = 10
}
}
add_character_flag = court_start_poem_love_letter
}
10 = { #Sparring
trigger = {
NOT = { has_character_flag = court_start_sparring }
can_be_warrior_trigger = { ARMY_OWNER = root }
}
modifier = {
add = {
value = prowess
multiply = 10
}
}
add_character_flag = court_start_sparring
}
}
}
court_ongoing.0501 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.0501.t
desc = court_ongoing.0501.desc
theme = romance_scheme
left_portrait = {
character = root
animation = admiration
}
right_portrait = {
character = scope:target
animation = personality_compassionate
camera = camera_event_right_forward
}
cooldown = { years = 1 }
trigger = {
OR = {
scope:owner = { is_ai = no }
scope:target = { is_ai = no }
}
}
immediate = {
#Randomize options
court_ongoing_0501_option_randomizer_effect = yes
court_ongoing_0501_option_randomizer_effect = yes
court_ongoing_0501_option_randomizer_effect = yes
}
#Song
option = {
trigger = { has_character_flag = court_start_song }
name = court_ongoing.0501.a
custom_tooltip = court_ongoing.0501.tt
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_song
}
ai_chance = {
base = 1
modifier = {
add = { value = diplomacy }
}
}
}
#sneaky love letter
option = {
trigger = { has_character_flag = court_start_sneaky_love_letter }
name = court_ongoing.0501.b
custom_tooltip = court_ongoing.0501.tt
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_sneaky_love_letter
}
ai_chance = {
base = 1
modifier = {
add = { value = intrigue }
}
}
}
#poem love letter
option = {
trigger = { has_character_flag = court_start_poem_love_letter }
name = court_ongoing.0501.c
custom_tooltip = court_ongoing.0501.tt
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_poem_love_letter
}
ai_chance = {
base = 1
modifier = {
add = { value = learning }
}
}
}
#drill
option = {
trigger = { has_character_flag = court_start_sparring }
name = court_ongoing.0501.d
custom_tooltip = court_ongoing.0501.tt
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_sparring
}
ai_chance = {
base = 1
modifier = {
add = { value = prowess }
}
}
}
#go with the flow
option = {
name = court_ongoing.0501.x
custom_tooltip = court_ongoing.0501.tt
hidden_effect = {
random_list = {
1 = {
trigger = { #Nothing shunned/criminal, as song text is public and explicitly about love
court_love_is_shunned_or_criminal_trigger = no
}
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_song
}
}
1 = {
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_sneaky_love_letter
}
}
1 = {
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_poem_love_letter
}
}
1 = {
save_scope_value_as = {
name = starting_event_flavor
value = flag:court_start_sparring
}
}
}
}
}
after = {
remove_character_flag = court_start_song
remove_character_flag = court_start_sneaky_love_letter
remove_character_flag = court_start_poem_love_letter
remove_character_flag = court_start_sparring
if = {
limit = {
exists = scope:starting_event_flavor
scope:starting_event_flavor = flag:court_start_poem_love_letter
}
scope:target = { trigger_event = court_ongoing.0512 }
}
else = {
scope:target = { trigger_event = court_ongoing.0502 }
}
}
}
#Start narrative event for target (for everything but love poem)
court_ongoing.0502 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.0502.t
desc = {
first_valid = {
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_song }
desc = {
desc = court_ongoing.court_start_song.start.0502.desc
first_valid = {
triggered_desc = {
trigger = { scope:owner.diplomacy < mediocre_skill_rating }
desc = court_ongoing.court_start_song.bad.0502.desc
}
desc = court_ongoing.court_start_song.good.0502.desc
}
}
}
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_sneaky_love_letter }
desc = {
desc = court_ongoing.court_start_sneaky_love_letter.start.0502.desc
first_valid = {
triggered_desc = {
trigger = { is_close_or_extended_family_of = scope:owner }
desc = court_ongoing.court_start_sneaky_love_letter.relative.0502.desc
}
desc = court_ongoing.court_start_sneaky_love_letter.compliment.0502.desc
}
desc = court_ongoing.court_start_sneaky_love_letter.end.0502.desc
}
}
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_sparring }
desc = {
desc = court_ongoing.court_start_sparring.start.0502.desc
first_valid = {
triggered_desc = {
trigger = { scope:owner.prowess < mediocre_skill_rating }
desc = court_ongoing.court_start_sparring.bad.0502.desc
}
triggered_desc = {
trigger = { scope:owner.prowess < high_skill_rating }
desc = court_ongoing.court_start_sparring.good.0502.desc
}
desc = court_ongoing.court_start_sparring.great.0502.desc
}
desc = court_ongoing.court_start_sparring.end.0502.desc
}
}
}
}
theme = romance_scheme
override_background = {
trigger = { is_travelling = yes }
reference = terrain_travel
}
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_sparring }
reference = courtyard
}
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_sneaky_love_letter }
reference = sitting_room
}
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_song }
reference = garden
}
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = {
OR = {
scope:starting_event_flavor = flag:court_start_song
scope:starting_event_flavor = flag:court_start_sparring
}
}
animation = flirtation
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
trigger = {
exists = scope:scheme
scope:scheme = {
scheme_type = courting
}
}
immediate = {
#Stuff for the desc
if = {
limit = { scope:starting_event_flavor = flag:court_start_sparring }
scope:owner = { set_signature_weapon_effect = yes }
}
}
#How delightful! Yes please
option = {
name = court_ongoing.0502.a
custom_tooltip = court_ongoing.0502.a.tt
# If you already have a soulmate, they get very mad
every_relation = {
type = soulmate
limit = { soulmate_relation_is_exclusive_trigger = yes }
add_opinion = {
modifier = betrayed_our_promise
target = root
}
}
ai_chance = {
base = 100
incest_acceptance_modifier = { #Factor between 1 and 0
SEDUCER = scope:owner
TARGET = scope:target
}
modifier = {
num_of_relation_soulmate = 1
factor = {
value = 0
add = {
value = ai_honor
multiply = -0.005 # 0.5 at -100
}
add = {
value = ai_compassion
multiply = -0.005 # 0.5 at -100
}
if = {
limit = {
has_trait = lustful
}
add = 0.2
}
min = 0
max = 1
}
}
modifier = {
has_relation_lover = scope:owner
add = 1000
}
}
}
#Ew, no!
option = {
name = {
trigger = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
text = court_ongoing.0502.b.incest
}
name = {
trigger = { NOT = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } } }
text = court_ongoing.0502.b
}
save_scope_value_as = {
name = hard_court_reject
value = yes
}
show_as_tooltip = {
scope:scheme = { end_scheme = yes }
}
ai_chance = {
base = 0
modifier = {
is_close_or_extended_family_of = scope:owner
add = 50
}
modifier = {
relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner }
add = 200
}
modifier = {
relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner }
add = 200
}
modifier = {
has_relation_rival = scope:owner
add = 200
}
modifier = {
has_relation_lover = scope:owner
factor = 0.01
}
}
}
after = {
scope:owner = { trigger_event = court_ongoing.0503 }
}
}
#Start narrative event for target (love poem)
court_ongoing.0512 = {
type = letter_event
opening = court_ongoing.1101.t
desc = court_ongoing.court_start_poem_love_letter.0502.desc
sender = {
character = scope:owner
animation = flirtation
}
immediate = {
scope:owner = { love_letter_calculation_effect = yes }
}
#How delightful! Yes please
option = {
name = court_ongoing.0502.a
custom_tooltip = court_ongoing.0502.a.tt
ai_chance = {
base = 100
incest_acceptance_modifier = { #Factor between 1 and 0
SEDUCER = scope:owner
TARGET = scope:target
}
modifier = {
num_of_relation_soulmate = 1
factor = {
value = 0
add = {
value = ai_honor
multiply = -0.005 # 0.5 at -100
}
add = {
value = ai_compassion
multiply = -0.005 # 0.5 at -100
}
if = {
limit = {
has_trait = lustful
}
add = 0.2
}
min = 0
max = 1
}
}
modifier = {
has_relation_lover = scope:owner
add = 1000
}
}
}
#Ew, no!
option = {
name = {
trigger = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
text = court_ongoing.0502.b.incest
}
name = {
trigger = { NOT = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } } }
text = court_ongoing.0502.b
}
save_scope_value_as = {
name = hard_court_reject
value = yes
}
show_as_tooltip = {
scope:scheme = { end_scheme = yes }
}
ai_chance = {
base = 0
modifier = {
relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner }
add = {
if = {
limit = { sexually_liberal_trigger = yes }
value = 200
}
else = {
value = 500
}
}
}
modifier = {
relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner }
add = 200
}
modifier = {
has_relation_rival = scope:owner
add = 200
}
modifier = {
has_relation_lover = scope:owner
factor = 0.01
}
}
}
after = {
scope:owner = { trigger_event = court_ongoing.0503 }
}
}
#Start narrative event for owner
court_ongoing.0503 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.0501.t
desc = {
first_valid = {
#SONG
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_song }
desc = {
desc = court_ongoing.court_start_song.intro.0503.desc
first_valid = {
triggered_desc = {
trigger = { #Sodomy reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.public_sodomy_rejection.0503.desc
}
triggered_desc = {
trigger = { #Incest reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.public_incest_rejection.0503.desc
}
triggered_desc = {
trigger = { #Regular reject
exists = scope:hard_court_reject
}
desc = court_ongoing.public_regular_rejection.0503.desc
}
desc = court_ongoing.court_start_song.success.0503.desc
}
}
}
#SNEAKY LOVE LETTER
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_sneaky_love_letter }
desc = {
desc = court_ongoing.court_start_sneaky_love_letter.intro.0503.desc
first_valid = {
triggered_desc = {
trigger = { #Sodomy reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.written_sodomy_rejection.0503.desc
}
triggered_desc = {
trigger = { #Incest reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.written_incest_rejection.0503.desc
}
triggered_desc = {
trigger = { #Regular reject
exists = scope:hard_court_reject
}
desc = court_ongoing.written_regular_rejection.0503.desc
}
desc = court_ongoing.court_start_sneaky_love_letter.success.0503.desc
}
}
}
#LOVE POEM
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_poem_love_letter }
desc = {
desc = court_ongoing.court_start_poem_love_letter.intro.0503.desc
first_valid = {
triggered_desc = {
trigger = { #Sodomy reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.written_sodomy_rejection.0503.desc
}
triggered_desc = {
trigger = { #Incest reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.written_incest_rejection.0503.desc
}
triggered_desc = {
trigger = { #Regular reject
exists = scope:hard_court_reject
}
desc = court_ongoing.written_regular_rejection.0503.desc
}
desc = court_ongoing.court_start_sneaky_love_letter.success.0503.desc
}
}
}
#DRILL
triggered_desc = {
trigger = { scope:starting_event_flavor = flag:court_start_sparring }
desc = {
first_valid = {
triggered_desc = {
trigger = { location = scope:target.location }
desc = court_ongoing.court_start_sparring.same_locaton_intro.0503.desc
}
desc = court_ongoing.court_start_sparring.other_locaton_intro.0503.desc
}
first_valid = {
triggered_desc = {
trigger = { #Sodomy reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_sodomy_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.public_sodomy_rejection.0503.desc
}
triggered_desc = {
trigger = { #Incest reject
exists = scope:hard_court_reject
scope:target = { relation_with_character_is_incestuous_in_my_or_lieges_faith_trigger = { CHARACTER = scope:owner } }
NOT = { scope:owner = { has_relation_lover = scope:target } }
NOT = { scope:owner = { is_spouse_of = scope:target } }
}
desc = court_ongoing.public_incest_rejection.0503.desc
}
triggered_desc = {
trigger = { #Regular reject
exists = scope:hard_court_reject
}
desc = court_ongoing.public_regular_rejection.0503.desc
}
desc = court_ongoing.court_start_sparring.success.0503.desc
}
}
}
}
}
theme = romance_scheme
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_sparring }
reference = courtyard
}
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_sneaky_love_letter }
reference = sitting_room
}
override_background = {
trigger = { scope:starting_event_flavor = flag:court_start_song }
reference = garden
}
left_portrait = {
character = root
animation = storyteller
}
right_portrait = {
character = scope:target
animation = admiration
}
immediate = {
scope:target.location = { save_scope_as = target_location }
#Stuff for the desc
if = {
limit = { scope:starting_event_flavor = flag:court_start_sparring }
random_dummy_gender_soldier_effect = { SCOPE_NAME = sparring_soldier }
}
}
option = {
trigger = { NOT = { exists = scope:hard_court_reject } }
name = court_ongoing.0503.a
custom_tooltip = court_ongoing.0503.a.tt
}
option = {
trigger = { exists = scope:hard_court_reject }
name = court_ongoing.0503.b
end_court_scheme_effect = { OUTCOME = failure_hard REASON = saved_from_wolf }
}
after = {
if = {
limit = {
scope:starting_event_flavor = flag:court_start_poem_love_letter
}
remove_variable = love_letter_quality
}
}
}
##################
# ONGOING EVENTS #
##################
####################################
###SAVE TARGET FROM FART SHAME <3###
####################################
#court_ongoing.1000 = { #by Mathilda Bjarnehed
# type = character_event
# title = court_ongoing.1000.t
# desc = court_ongoing.1000.desc
#
# theme = romance_scheme
# left_portrait = scope:target
# right_portrait = scope:scapegoat
# widget = {
# gui = "event_window_widget_scheme"
# container = "custom_widgets_container"
# }
#
# trigger = {
# exists = scope:target.court_owner
# # Account for landless court owners.
# scope:target.court_owner = { is_landed = yes }
# NOT = {
# scope:scheme = {
# has_scheme_modifier = courting_kindness_modifier
# }
# }
# }
#
# weight_multiplier = {
# base = 1
# modifier = {
# exists = scope:scheme.var:court_milestone_event
# add = { #0 at milestone 1, -0.45 at milestone 2, -0.9 at milestone 3
# value = scope:scheme.var:court_milestone_event
# multiply = -0.45
# add = 0.45
# }
# }
# }
#
# immediate = {
# #Savin' some scopes
# scope:target = {
# if = {
# limit = { is_ruler = no }
# court_owner = { save_scope_as = scapegoat }
# }
# else_if = {
# limit = { exists = primary_spouse }
# primary_spouse = { save_scope_as = scapegoat }
# }
#
# court_owner.capital_province = { save_scope_as = location }
# }
# }
#
# #It was me!
# option = {
# name = court_ongoing.1000.a
#
# add_prestige = medium_prestige_loss
#
# random_list = {
# 67 = {
# desc = court_ongoing.1000.a.success
# send_interface_toast = {
# left_icon = scope:target
# title = court_ongoing.1000.a.success
# reverse_add_opinion = {
# target = scope:target
# modifier = grateful_opinion
# opinion = 15
# }
# scope:scheme = {
# add_scheme_modifier = {
# type = courting_kindness_modifier
# }
# }
# }
# }
# 33 = {
# desc = court_ongoing.1000.a.failure
# send_interface_toast = {
# left_icon = scope:target
# title = court_ongoing.1000.a.failure
# reverse_add_opinion = {
# target = scope:target
# modifier = disgusted_opinion
# opinion = -10
# }
# }
# }
# }
#
# stress_impact = {
# craven = minor_stress_impact_gain
# gregarious = minor_stress_impact_gain
# arrogant = minor_stress_impact_gain
# shy = minor_stress_impact_gain
# }
# }
#
# #It was this other dude!
# option = {
# trigger = {
# exists = scope:scapegoat
# this != scope:scapegoat
# }
# name = court_ongoing.1000.b
#
# reverse_add_opinion = {
# target = scope:target
# modifier = amused_opinion
# opinion = 15
# }
# reverse_add_opinion = {
# target = scope:scapegoat
# modifier = insulted_opinion
# opinion = -15
# }
#
# stress_impact = {
# compassionate = minor_stress_impact_gain
# honest = minor_stress_impact_gain
# }
# }
#
# #Don't do anything
# option = {
# name = court_ongoing.1000.c
#
# stress_impact = {
# brave = minor_stress_impact_gain
# compassionate = minor_stress_impact_gain
# deceitful = minor_stress_impact_gain
# }
# }
#}
###DEFEND THEIR HONOR###
scripted_trigger court_ongoing_1010_insulter_trigger = {
save_temporary_scope_as = potential_insulter
basic_is_available_ai = yes
is_adult = yes
exists = liege
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:potential_insulter.liege }
this != scope:target
OR = {
opinion = {
target = scope:target
value <= neutral_opinion
}
AND = {
opinion = {
target = scope:target
value <= low_positive_opinion
}
number_of_opposing_traits = {
target = scope:target
value >= 1
}
}
}
}
court_ongoing.1010 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1010.t
desc = court_ongoing.1010.desc
theme = romance_scheme
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:insulter
animation = manic
}
lower_right_portrait = scope:target
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
cooldown = { years = 1 }
trigger = {
NOR = {
has_trait_rank = {
trait = wounded
rank >= 2
}
scope:scheme = {
has_scheme_modifier = courting_act_of_heroism_modifier
}
}
scope:target = {
OR = {
AND = {
court_owner ?= {
OR = {
any_courtier = { court_ongoing_1010_insulter_trigger = yes }
any_vassal = { court_ongoing_1010_insulter_trigger = yes }
}
}
}
any_relation = { type = rival court_ongoing_1010_insulter_trigger = yes }
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:scheme.var:court_milestone_event = 1
add = -0.75
}
}
immediate = {
scope:target = {
if = {
limit = { root = { is_ai = no } }
assign_quirk_effect = yes
}
court_owner = {
every_vassal = {
limit = { court_ongoing_1010_insulter_trigger = yes }
add_to_list = insulter_list
}
every_courtier = {
limit = { court_ongoing_1010_insulter_trigger = yes }
add_to_list = insulter_list
}
}
every_relation = { type = rival
limit = { court_ongoing_1010_insulter_trigger = yes }
add_to_list = insulter_list
}
random_in_list = {
list = insulter_list
weight = {
base = 1
modifier = {
is_ruler = yes
add = 10
}
ai_value_modifier = {
ai_compassion = { #20 for high negative compassion, -20 for high positive compassion
value = high_negative_ai_value_inverse
multiply = 20
}
}
opinion_modifier = {
opinion_target = scope:target
multiplier = -0.3
}
}
save_scope_as = insulter
}
}
}
#Duel them!
option = {
name = court_ongoing.1010.a
reverse_add_opinion = {
target = scope:insulter
modifier = angry_opinion
opinion = -20
}
duel = {
skill = prowess
target = scope:insulter
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
}
desc = court_ongoing.1010.a.success
show_as_tooltip = { court_ongoing_1010_good_duel_outcome_effect = yes }
trigger_event = {
days = 1
id = court_ongoing.1011
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
}
desc = court_ongoing.1010.a.failure
send_interface_toast = {
title = court_ongoing.1010.a.failure
left_icon = scope:insulter
right_icon = scope:target
add_prestige = medium_prestige_loss
increase_wounds_no_death_effect = { REASON = duel }
reverse_add_opinion = {
target = scope:target
modifier = pity_opinion
opinion = 15
}
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
lazy = minor_stress_impact_gain
calm = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_boldness_target_modifier = { VALUE = 40 }
ai_energy_target_modifier = { VALUE = 20 }
ai_vengefulness_target_modifier = { VALUE = 20 }
}
}
#Convince them to apologize
option = {
name = court_ongoing.1010.b
duel = {
skill = diplomacy
target = scope:insulter
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
}
desc = court_ongoing.1010.b.success
send_interface_toast = {
title = court_ongoing.1010.b.success
left_icon = scope:insulter
right_icon = scope:target
reverse_add_opinion = {
target = scope:target
modifier = grateful_opinion
opinion = 15
}
reverse_add_opinion = {
target = scope:insulter
modifier = respect_opinion
opinion = 15
}
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
}
desc = court_ongoing.1010.b.failure
send_interface_toast = {
title = court_ongoing.1010.b.failure
left_icon = scope:insulter
right_icon = scope:target
reverse_add_opinion = {
target = scope:insulter
modifier = refusal_opinion
opinion = -15
}
}
}
}
stress_impact = {
wrathful = medium_stress_impact_gain
vengeful = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_compassion_target_modifier = { VALUE = 30 }
ai_vengefulness_target_modifier = { VALUE = -30 }
ai_boldness_target_modifier = { VALUE = -30 }
}
}
#Say a kind word
option = {
name = court_ongoing.1010.c
reverse_add_opinion = {
target = scope:target
modifier = kindness_opinion
opinion = 15
}
stress_impact = {
wrathful = medium_stress_impact_gain
vengeful = minor_stress_impact_gain
callous = minor_stress_impact_gain
sadistic = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_compassion_target_modifier = { VALUE = 50 }
ai_vengefulness_target_modifier = { VALUE = -30 }
ai_boldness_target_modifier = { VALUE = -50 }
}
}
}
#You won the duel! Go you!
court_ongoing.1011 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1010.t
desc = court_ongoing.1011.desc
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = personality_honorable
}
right_portrait = {
character = scope:target
animation = flirtation_left
}
lower_right_portrait = scope:insulter
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
option = {
name = court_ongoing.1011.a
court_ongoing_1010_good_duel_outcome_effect = yes
}
}
###FETCH GIFT###
scripted_trigger court_ongoing_1020_necklace_owner_trigger = {
sex_same_as = scope:target
basic_is_available_ai = yes
NOR = {
is_spouse_of = scope:target
this = scope:target
this = scope:owner
}
}
scripted_effect court_ongoing_1020_save_necklace_owner_effect = {
scope:target = {
if = {
limit = { exists = liege }
liege = {
every_spouse = {
limit = { court_ongoing_1020_necklace_owner_trigger = yes }
add_to_temporary_list = necklace_owner_list
}
every_powerful_vassal = {
if = {
limit = { court_ongoing_1020_necklace_owner_trigger = yes }
add_to_temporary_list = necklace_owner_list
}
every_spouse = {
limit = { court_ongoing_1020_necklace_owner_trigger = yes }
add_to_temporary_list = necklace_owner_list
}
}
}
random_in_list = {
list = necklace_owner_list
save_scope_as = necklace_owner
}
}
}
}
scripted_trigger court_ongoing_1020_necklace_option_trigger = {
exists = scope:target.liege
scope:target.liege = {
OR = {
any_spouse = {
court_ongoing_1020_necklace_owner_trigger = yes
}
any_powerful_vassal = {
OR = {
court_ongoing_1020_necklace_owner_trigger = yes
any_spouse = { court_ongoing_1020_necklace_owner_trigger = yes }
}
}
}
}
}
court_ongoing.1020 = {
hidden = yes
trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_gift_modifier
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:scheme.var:court_milestone_event >= 3
add = -0.75
}
}
immediate = {
#Lets a player target chose gift or randomizes one for ai targets
if = {
limit = { scope:target = { is_ai = no } }
scope:target = { trigger_event = court_ongoing.1021 }
}
else = {
random_list = {
#Wolf pelt
2 = {
trigger = {
scope:target = { NOT = { has_character_flag = court_ongoing_wolf_pelt_flag } }
#Target will not request a pregnant woman to go hunting unless they allow women to be combatants
OR = {
NOT = { has_trait = pregnant }
AND = {
has_trait = pregnant
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:target }
}
}
}
trigger_event = court_ongoing.1022
scope:target = { add_character_flag = court_ongoing_wolf_pelt_flag }
}
#Cat or dog or eagle
1 = {
trigger = {
scope:target = {
NOR = {
has_character_modifier = cat_story_modifier
has_character_modifier = dog_story_modifier
AND = {
has_character_modifier = eagle_story_modifier
location = { geographical_region = world_steppe }
}
}
}
}
trigger_event = court_ongoing.1030
}
#Necklace
3 = { #Higher to compensate for trigger
trigger = {
court_ongoing_1020_necklace_option_trigger = yes
scope:target = { NOT = { has_character_flag = court_ongoing_necklace_flag } }
}
trigger_event = court_ongoing.1040
scope:target = { add_character_flag = court_ongoing_necklace_flag }
}
#Orchid
2 = {
trigger = { scope:target = { NOT = { has_character_flag = court_ongoing_orchid_flag } } }
trigger_event = court_ongoing.1050
scope:target = { add_character_flag = court_ongoing_orchid_flag }
}
}
}
}
}
#Player target picks gift
scripted_effect court_ongoing_1021_save_gift_option_effect = {
random_list = {
10 = { #Wolf pelt
trigger = {
NOR = {
has_character_flag = court_ongoing_wolf_pelt_flag
exists = scope:court_ongoing_1021_wolf_pelt_option
}
#Cannot request a pregnant woman to go hunting unless the target's faith allow women to be combatants
OR = {
scope:owner = { NOT = { has_trait = pregnant } }
scope:owner = {
AND = {
has_trait = pregnant
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:target }
}
}
}
}
save_scope_value_as = {
name = court_ongoing_1021_wolf_pelt_option
value = yes
}
}
2 = { #Cat/dog/eagle
trigger = {
NOR = {
any_owned_story = {
type = story_cycle_pet_cat
}
any_owned_story = {
type = story_cycle_pet_dog
}
AND = {
any_owned_story = {
story_type = story_cycle_pet_eagle
}
location = { geographical_region = world_steppe }
}
exists = scope:court_ongoing_1021_cat_dog_option
}
}
save_scope_value_as = {
name = court_ongoing_1021_cat_dog_option
value = yes
}
}
10 = { #Necklace
trigger = {
NOR = {
has_character_flag = court_ongoing_necklace_flag
exists = scope:court_ongoing_1021_necklace_gift_option
}
court_ongoing_1020_necklace_option_trigger = yes
}
save_scope_value_as = {
name = court_ongoing_1021_necklace_gift_option
value = yes
}
court_ongoing_1020_save_necklace_owner_effect = yes
}
10 = { #Orchid
trigger = {
NOR = {
has_character_flag = court_ongoing_orchid_flag
exists = scope:court_ongoing_1021_orchid_option
}
}
save_scope_value_as = {
name = court_ongoing_1021_orchid_option
value = yes
}
}
}
}
court_ongoing.1021 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1021.t
desc = court_ongoing.1021.desc
theme = romance_scheme
left_portrait = {
character = scope:target
animation = flirtation_left
}
right_portrait = {
character = scope:owner
animation = beg
}
cooldown = { years = 1 }
immediate = {
#What gift can you ask for (set 3 options)
court_ongoing_1021_save_gift_option_effect = yes
court_ongoing_1021_save_gift_option_effect = yes
court_ongoing_1021_save_gift_option_effect = yes
}
#Wolf pelt
option = {
name = court_ongoing.1021.a
trigger = { exists = scope:court_ongoing_1021_wolf_pelt_option }
show_as_tooltip = {
random_list = {
1 = {
show_chance = no
desc = court_ongoing.1021.wolf_pelt.success
court_ongoing_fetch_gift_modifier_effect = { GIFT = wolf_pelt }
}
1 = {
show_chance = no
desc = court_ongoing.1021.wolf_pelt.failure
}
}
}
hidden_effect = {
scope:owner = { trigger_event = court_ongoing.1022 }
}
}
#Cat/dog/eagle
option = {
trigger = { exists = scope:court_ongoing_1021_cat_dog_option }
name = court_ongoing.1021.b
show_as_tooltip = {
random_list = {
1 = {
show_chance = no
desc = court_ongoing.1021.cat_pet.success
show_as_tooltip = { court_ongoing_1030_cat_modifier_effect = yes }
}
1 = {
show_chance = no
desc = court_ongoing.1021.dog_pet.success
show_as_tooltip = { court_ongoing_1030_dog_modifier_effect = yes }
}
1 = {
show_chance = no
trigger = {
location = { geographical_region = world_steppe }
}
desc = court_ongoing.1021.eagle_pet.success
show_as_tooltip = { court_ongoing_1030_eagle_modifier_effect = yes }
}
1 = {
show_chance = no
desc = court_ongoing.1021.pet.failure
}
}
}
hidden_effect = {
scope:owner = { trigger_event = court_ongoing.1030 }
}
}
#Necklace
option = {
trigger = { exists = scope:court_ongoing_1021_necklace_gift_option }
name = court_ongoing.1021.c
show_as_tooltip = {
random_list = {
1 = {
show_chance = no
desc = court_ongoing.1021.necklace.success
court_ongoing_fetch_gift_modifier_effect = { GIFT = necklace }
}
1 = {
show_chance = no
desc = court_ongoing.1021.necklace.failure
}
}
}
hidden_effect = {
scope:owner = { trigger_event = court_ongoing.1040 }
}
}
#Orchid
option = {
trigger = { exists = scope:court_ongoing_1021_orchid_option }
name = court_ongoing.1021.d
show_as_tooltip = {
random_list = {
1 = {
show_chance = no
desc = court_ongoing.1021.orchid.success
court_ongoing_fetch_gift_modifier_effect = { GIFT = orchid }
}
1 = {
show_chance = no
desc = court_ongoing.1021.orchid.failure
}
}
}
hidden_effect = {
scope:owner = { trigger_event = court_ongoing.1050 }
}
}
#Stop pestering me!
option = {
name = court_ongoing.1021.x
show_as_tooltip = { scope:scheme = { end_scheme = yes } }
scope:owner = { trigger_event = court_ongoing.0001 }
}
}
###GIFT: WOLF PELT###
court_ongoing.1022 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1022.t
desc = {
desc = court_ongoing.1022.start.desc
desc = court_ongoing.1022.end.desc
}
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = personality_callous
}
lower_left_portrait = {
trigger = {
exists = scope:master_of_hunt
}
character = scope:master_of_hunt
}
trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_gift_modifier
}
}
}
immediate = {
#Save Master of the Hunt
if = {
limit = {
employs_court_position = master_of_hunt_court_position
any_court_position_holder = {
type = master_of_hunt_court_position
is_physically_able = yes
}
}
random_court_position_holder = {
type = master_of_hunt_court_position
limit = { is_physically_able = yes }
save_scope_as = master_of_hunt
}
}
}
#Hunt down a wolf
option = {
name = court_ongoing.1022.a
duel = {
skill = prowess
value = medium_skill_rating
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
}
modifier = {
has_trait = lifestyle_hunter
add = 2
}
desc = court_ongoing.1022.a.success
send_interface_toast = {
title = court_ongoing.1022.a.success
left_icon = scope:target
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = success }
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
}
desc = court_ongoing.1022.a.failure
send_interface_toast = {
title = court_ongoing.1022.a.failure
left_icon = scope:target
add_prestige = minor_prestige_loss
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = failure }
}
}
stress_impact = {
craven = medium_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_honor_target_modifier = { VALUE = 40 }
ai_boldness_target_modifier = { VALUE = 40 }
ai_energy_target_modifier = { VALUE = 20 }
ai_vengefulness_target_modifier = { VALUE = 20 }
}
}
#Kill a dog in the kennels
option = {
trigger = {
OR = {
intrigue >= decent_skill_rating
has_trait = deceitful
}
}
skill = intrigue
trait = deceitful
name = court_ongoing.1022.b
duel = {
skill = intrigue
target = scope:target
30 = { #You trick them
compare_modifier = {
value = scope:duel_value
multiplier = 0.1
}
desc = court_ongoing.1022.b.success
send_interface_toast = {
title = court_ongoing.1022.b.success
left_icon = scope:target
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = success }
}
20 = { #They know what you did
compare_modifier = {
value = scope:duel_value
multiplier = -0.1
}
desc = court_ongoing.1022.b.failure
show_as_tooltip = {
reverse_add_opinion = {
modifier = suspicion_opinion
target = scope:target
opinion = -10
}
}
hidden_effect = {
random_list = {
85 = {
send_interface_toast = {
title = court_ongoing.1022.b.failure
left_icon = scope:target
reverse_add_opinion = {
modifier = suspicion_opinion
target = scope:target
opinion = -10
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = failure }
}
15 = {
modifier = {
scope:target = { ai_compassion >= 0 }
add = {
value = scope:target.ai_compassion
multiply = 2
}
}
scope:target = {
trigger_event = {
id = court_ongoing.1023
days = 3
}
}
}
}
}
}
}
stress_impact = {
honest = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_honor_target_modifier = { VALUE = -100 }
ai_energy_target_modifier = { VALUE = -20 }
ai_compassion_target_modifier = { VALUE = -50 }
}
}
#Buy a pelt
option = {
trigger = {
OR = {
is_ai = no
short_term_gold >= minor_gold_value
}
NOT = { exists = scope:master_of_hunt }
}
name = court_ongoing.1022.c
remove_short_term_gold = minor_gold_value
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
stress_impact = {
honest = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = success }
ai_chance = {
base = 100
ai_greed_target_modifier = { VALUE = -80 }
ai_energy_target_modifier = { VALUE = -20 }
ai_honor_target_modifier = { VALUE = -20 }
}
}
#Buy a pelt; Master of the Hunt version
option = {
trigger = {
OR = {
is_ai = no
short_term_gold >= minor_gold_value
}
exists = scope:master_of_hunt
}
name = court_ongoing.1022.c.master_of_hunt
scope:master_of_hunt = {
duel = {
skill = martial
value = average_skill_rating
30 = {
desc = court_ongoing.1022.c.master_of_hunt.success
compare_modifier = {
value = scope:duel_value
multiplier = 0.5
}
root = {
send_interface_toast = {
title = court_ongoing.1022.c.master_of_hunt.success
left_icon = scope:target
right_icon = scope:master_of_hunt
custom_tooltip = court_ongoing.1022.c.master_of_hunt.success.tt
}
}
}
20 = {
desc = court_ongoing.1022.c.master_of_hunt.failure
compare_modifier = {
value = scope:duel_value
multiplier = -0.5
}
root = {
send_interface_toast = {
title = court_ongoing.1022.c.master_of_hunt.failure
left_icon = scope:target
right_icon = scope:master_of_hunt
remove_short_term_gold = minor_gold_value
}
}
}
}
}
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
stress_impact = {
honest = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = success }
ai_chance = {
base = 100
ai_greed_target_modifier = { VALUE = -80 }
ai_energy_target_modifier = { VALUE = -20 }
ai_honor_target_modifier = { VALUE = -20 }
}
}
#Asking too much
option = {
name = court_ongoing.1022.d
stress_impact = {
brave = minor_stress_impact_gain
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = wolf_pelt OUTCOME = failure }
ai_chance = {
base = 50
}
}
}
#Owner killed target's favorite dog (target perspective)
court_ongoing.1023 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1021.t
desc = court_ongoing.1023.desc
theme = romance_scheme
override_background = { reference = ep2_dog_kennels }
left_portrait = {
character = scope:target
animation = shock
}
right_portrait = {
character = scope:owner
animation = happiness
}
immediate = {
random_dummy_gender_effect = yes
scope:dummy_gender = { save_scope_as = dog_gender }
random_dummy_gender_soldier_effect = { SCOPE_NAME = dummy_gender }
}
#Forgive
option = {
name = court_ongoing.1023.a
}
#End scheme
option = {
trigger = { is_ai = no }
name = court_ongoing.1023.b
show_as_tooltip = {
scope:scheme = { end_scheme = yes }
}
save_temporary_scope_as = scheme_ended
}
after = {
scope:owner = { trigger_event = court_ongoing.1024 }
}
}
#Owner killed target's favorite dog (owner perspective)
court_ongoing.1024 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1022.t
desc = court_ongoing.1024.desc
theme = romance_scheme
left_portrait = {
character = scope:target
animation = grief
}
right_portrait = {
character = scope:owner
animation = shame
}
#Forgive
option = {
name = court_ongoing.1024.a
if = {
limit = { exists = scope:scheme_ended }
scope:scheme = { end_scheme = yes }
}
reverse_add_opinion = {
modifier = angry_opinion
target = scope:target
opinion = -25
}
}
}
###GIFT: PET###
scripted_trigger court_ongoing_1030_cat_lover = {
OR = {
ai_compassion >= high_positive_ai_value
ai_rationality >= high_positive_ai_value
ai_zeal <= high_negative_ai_value
has_trait = intellect_good
has_trait = shrewd
has_trait_introverted_trigger = yes
has_trait_submissive_trigger = yes
}
}
scripted_trigger court_ongoing_1030_dog_lover = {
OR = {
ai_compassion >= high_positive_ai_value
ai_energy >= high_positive_ai_value
ai_boldness >= high_positive_ai_value
ai_honor >= high_positive_ai_value
has_trait = intellect_bad
has_trait = dull
has_trait_extroverted_trigger = yes
has_trait_dominant_trigger = yes
}
}
court_ongoing.1030 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1030.t
desc = {
desc = court_ongoing.1030.desc
triggered_desc = {
trigger = {
location = {
geographical_region = world_steppe
}
}
desc = court_ongoing.1030.desc.eagle
}
}
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = personality_callous
}
cooldown = { years = 1 }
trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_gift_modifier
}
}
}
immediate = {
scope:target.location = { save_scope_as = location }
}
#Cat
option = {
name = court_ongoing.1030.a
show_as_tooltip = {
random_list = {
1 = {
desc = court_ongoing.1030.a.success
show_chance = no
show_as_tooltip = {
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
scope:target = {
court_ongoing_1030_cat_modifier_effect = yes
}
}
}
1 = {
desc = court_ongoing.1030.a.failure
show_chance = no
show_as_tooltip = {
court_ongoing_1030_failure_effect = yes
}
}
}
}
hidden_effect = {
scope:target = {
trigger_event = {
id = court_ongoing.1032
days = 2
}
}
}
ai_chance = {
base = 100
modifier = {
scope:target = { court_ongoing_1030_cat_lover = yes }
add = 50
}
}
}
#Dog
option = {
name = court_ongoing.1030.b
show_as_tooltip = {
random_list = {
1 = {
desc = court_ongoing.1030.b.success
show_chance = no
show_as_tooltip = {
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
scope:target = {
court_ongoing_1030_dog_modifier_effect = yes
}
}
}
1 = {
desc = court_ongoing.1030.b.failure
show_chance = no
show_as_tooltip = {
court_ongoing_1030_failure_effect = yes
}
}
}
}
hidden_effect = {
scope:target = {
trigger_event = {
id = court_ongoing.1031
days = 2
}
}
}
ai_chance = {
base = 100
modifier = {
scope:target = { court_ongoing_1030_dog_lover = yes }
add = 50
}
}
}
#Eagle
option = {
name = court_ongoing.1030.d
trigger = {
location = {
geographical_region = world_steppe
}
}
show_as_tooltip = {
random_list = {
1 = {
desc = court_ongoing.1030.d.success
show_chance = no
show_as_tooltip = {
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
scope:target = {
court_ongoing_1030_eagle_modifier_effect = yes
}
}
}
1 = {
desc = court_ongoing.1030.d.failure
show_chance = no
show_as_tooltip = {
court_ongoing_1030_failure_effect = yes
}
}
}
}
hidden_effect = {
scope:target = {
trigger_event = {
id = court_ongoing.1033
days = 2
}
}
}
ai_chance = {
base = 100
}
}
#Me!
option = {
name = court_ongoing.1030.c
reverse_add_opinion = {
target = scope:target
modifier = pleased_opinion
opinion = 10
}
hidden_effect = {
scope:target = {
send_interface_toast = {
title = court_ongoing.1021.pet.failure
left_icon = scope:owner
}
}
}
ai_chance = {
base = 0
}
}
}
#Target gets offered a dog
court_ongoing.1031 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1021.t
desc = court_ongoing.1031.start.desc
theme = romance_scheme
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = happiness
}
#yes dog!
option = {
name = court_ongoing.1031.a
court_ongoing_1030_dog_modifier_effect = yes
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.b.success
left_icon = scope:target
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
show_as_tooltip = { scope:target = { court_ongoing_1030_dog_modifier_effect = yes } }
}
}
}
ai_chance = {
base = 50
ai_compassion_target_modifier = { VALUE = 50 }
ai_energy_target_modifier = { VALUE = 50 }
ai_boldness_target_modifier = { VALUE = 50 }
ai_honor_target_modifier = { VALUE = 20 }
}
}
#Yeah, that's gonna be a no for me, dawg
option = {
name = court_ongoing.1031.b
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.b.failure
left_icon = scope:target
court_ongoing_1030_failure_effect = yes
}
}
}
ai_chance = {
base = 50
modifier = {
court_ongoing_1030_dog_lover = yes
add = -1000
}
}
}
}
#Target gets offered a cat
court_ongoing.1032 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1021.t
desc = court_ongoing.1032.desc
theme = romance_scheme
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = happiness
}
immediate = {
assign_cat_eye_color_effect = { COLOR = random }
}
#yes cat!
option = {
name = court_ongoing.1031.a
court_ongoing_1030_cat_modifier_effect = yes
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.a.success
left_icon = scope:target
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
show_as_tooltip = { scope:target = { court_ongoing_1030_cat_modifier_effect = yes } }
}
}
}
ai_chance = {
base = 50
ai_compassion_target_modifier = { VALUE = 50 }
ai_zeal_target_modifier = { VALUE = -50 }
ai_rationality_target_modifier = { VALUE = 50 }
ai_honor_target_modifier = { VALUE = -20 }
}
}
#no cat, because I'm an awful human being
option = {
name = court_ongoing.1031.b
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.a.failure
left_icon = scope:target
court_ongoing_1030_failure_effect = yes
}
}
}
ai_chance = {
base = 50
modifier = {
court_ongoing_1030_cat_lover = yes
add = -1000
}
}
}
after = {
remove_variable = cat_eye_color
}
}
#Target gets offered an eagle
court_ongoing.1033 = { #by Ariana Tranumn
type = character_event
title = court_ongoing.1021.t
desc = court_ongoing.1033.desc
theme = romance_scheme
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = happiness
}
option = {
name = court_ongoing.1031.a
court_ongoing_1030_eagle_modifier_effect = yes
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.d.success
left_icon = scope:target
scope:scheme = { add_scheme_modifier = { type = courting_gift_modifier } }
show_as_tooltip = { scope:target = { court_ongoing_1030_eagle_modifier_effect = yes } }
}
}
}
ai_chance = {
base = 50
ai_compassion_target_modifier = { VALUE = 50 }
ai_zeal_target_modifier = { VALUE = -50 }
ai_rationality_target_modifier = { VALUE = 50 }
ai_honor_target_modifier = { VALUE = -20 }
modifier = {
has_trait = lifestyle_hunter
add = 50
}
}
}
option = {
name = court_ongoing.1031.b
hidden_effect = {
scope:owner = {
send_interface_toast = {
title = court_ongoing.1030.d.failure
left_icon = scope:target
court_ongoing_1030_failure_effect = yes
}
}
}
ai_chance = {
base = 50
}
}
}
###GIFT:NECKLACE##
court_ongoing.1040 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1040.t
desc = {
desc = court_ongoing.1022.start.desc
desc = court_ongoing.1040.end.desc
}
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = personality_callous
}
lower_right_portrait = scope:necklace_owner
cooldown = { years = 1 }
trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_gift_modifier
}
}
}
immediate = {
if = {
limit = { NOT = { exists = scope:necklace_owner } }
court_ongoing_1020_save_necklace_owner_effect = yes
}
}
#Buy
option = {
name = court_ongoing.1040.a
trigger = {
OR = {
is_ai = no
short_term_gold >= minor_gold_value
}
}
remove_short_term_gold = minor_gold_value
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = necklace OUTCOME = success }
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_greed_target_modifier = { VALUE = -90 }
}
}
#Offer favor
option = {
trigger = {
NOT = { scope:necklace_owner = { has_hook = root } }
}
name = court_ongoing.1040.b
scope:necklace_owner = {
add_hook = {
target = root
type = favor_hook
}
}
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = necklace OUTCOME = success }
stress_impact = {
paranoid = minor_stress_impact_gain
deceitful = minor_stress_impact_gain
}
ai_chance = {
base = 70
ai_honor_target_modifier = { VALUE = 40 }
}
}
#Steal
option = {
name = court_ongoing.1040.c
duel = {
target = scope:necklace_owner
skill = intrigue
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 4
min = -40
}
desc = court_ongoing.1040.c.success
send_interface_toast = {
title = court_ongoing.1040.c.success
left_icon = scope:target
right_icon = scope:necklace_owner
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = necklace OUTCOME = success }
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -4
min = -40
}
desc = court_ongoing.1040.c.failure
send_interface_toast = {
title = court_ongoing.1040.c.failure
left_icon = scope:target
right_icon = scope:necklace_owner
reverse_add_opinion = {
target = scope:necklace_owner
modifier = angry_opinion
opinion = -20
}
if = {
limit = {
exists = scope:necklace_owner.primary_spouse
this != scope:necklace_owner.primary_spouse
scope:necklace_owner.primary_spouse = { is_ruler = yes }
}
reverse_add_opinion = {
target = scope:necklace_owner.primary_spouse
modifier = angry_opinion
opinion = -20
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = necklace OUTCOME = failure }
}
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
honest = medium_stress_impact_gain
generous = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_honor_target_modifier = { VALUE = -80 }
ai_compassion_target_modifier = { VALUE = -80 }
}
}
#Never mind...
option = {
name = court_ongoing.1040.d
reverse_add_opinion = {
target = scope:target
modifier = pleased_opinion
opinion = 5
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = necklace OUTCOME = failure }
ai_chance = {
base = 50
}
}
}
### GIFT: FLOWER ###
court_ongoing.1050 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1050.t
desc = {
desc = court_ongoing.1050.start.desc
first_valid = {
triggered_desc = {
trigger = {
scope:target_host.faith = {
OR = {
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
religion = religion:buddhism_religion
religion = religion:hinduism_religion
religion = religion:jainism_religion
}
}
}
desc = court_ongoing.1050.monastery.desc
}
desc = court_ongoing.1050.temple.desc
}
}
theme = romance_scheme
override_background = {
reference = garden
}
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = flirtation
}
lower_right_portrait = scope:helpful_friend
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
cooldown = { years = 1 }
trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_gift_modifier
}
}
exists = scope:target.location
}
immediate = {
# Location & host
scope:target.location = { save_scope_as = target_location }
if = {
limit = { exists = scope:target.host }
scope:target.host = { save_scope_as = target_host }
}
else = {
scope:target.location.province_owner = { save_scope_as = target_host }
}
# Where is the bloom from?
if = {
limit = { root = { is_ai = no } } #Only needed for text and a bit costly so only players
random_independent_ruler = {
limit = {
highest_held_title_tier >= tier_kingdom
NOT = { in_diplomatic_range = scope:target }
}
alternative_limit = {
highest_held_title_tier >= tier_kingdom
}
primary_title = { save_scope_as = orchid_origin }
}
}
# Where does it grow?
scope:target_host = {
random_sub_realm_barony = {
limit = {
title_province = {
faith = scope:target_host.faith
has_holding_type = church_holding
}
}
alternative_limit = {
title_province = { faith = scope:target_host.faith }
}
title_province = { save_scope_as = orchid_location }
}
}
# Do you have a better friend?
random_relation = {
type = friend
limit = {
has_trait = lifestyle_herbalist
basic_is_available_ai = yes
this != scope:target
}
alternative_limit = {
basic_is_available_ai = yes
prowess > root.prowess
this != scope:target
}
save_scope_as = helpful_friend
}
}
# Buy
option = {
name = court_ongoing.1050.a
remove_short_term_gold = minor_gold_value
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = success }
stress_impact = {
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_greed_target_modifier = { VALUE = -90 }
modifier = {
is_ai = yes
short_term_gold <= minor_gold_value
add = -200
}
}
}
# Adventure
option = {
name = court_ongoing.1050.b
stress_impact = {
craven = major_stress_impact_gain
lazy = medium_stress_impact_gain
}
duel = {
skill = prowess
value = average_skill_rating
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 4
min = -55
}
desc = court_ongoing.1050.b.success
send_interface_toast = {
title = court_ongoing.1050.b.success
left_icon = scope:target
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = success }
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
add_prestige = medium_prestige_gain
}
}
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2
min = -25
}
desc = court_ongoing.1050.b.soft_failure
send_interface_toast = {
title = court_ongoing.1050.b.soft_failure
left_icon = scope:target
add_stress = minor_stress_gain
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
}
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
min = -9
}
desc = court_ongoing.1050.b.hard_failure
send_interface_toast = {
title = court_ongoing.1050.b.hard_failure
left_icon = scope:target
increase_wounds_effect = { REASON = fall }
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
}
}
}
}
# Friend adventure
option = {
trigger = {
exists = scope:helpful_friend
scope:helpful_friend = { NOT = { has_trait = lifestyle_herbalist } }
}
name = court_ongoing.1050.b.friend
custom_tooltip = court_ongoing.1050.b.friend.f
add_internal_flag = special
scope:helpful_friend = {
duel = {
skill = prowess
value = average_skill_rating
60 = {
compare_modifier = {
value = scope:duel_value
multiplier = 4
min = -50
}
desc = court_ongoing.1050.b.friend.success
root = {
send_interface_toast = {
title = court_ongoing.1050.b.friend.success
left_icon = scope:helpful_friend
right_icon = scope:target
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = success }
}
}
}
30 = {
compare_modifier = {
value = scope:duel_value
multiplier = -2
min = -20
}
desc = court_ongoing.1050.b.friend.soft_failure
root = {
send_interface_toast = {
title = court_ongoing.1050.b.friend.soft_failure
left_icon = scope:helpful_friend
right_icon = scope:target
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
}
}
}
10 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
min = -1
}
desc = court_ongoing.1050.b.friend.hard_failure
root = {
send_interface_toast = {
title = court_ongoing.1050.b.friend.hard_failure
left_icon = scope:helpful_friend
right_icon = scope:target
scope:helpful_friend = { increase_wounds_effect = { REASON = fall } }
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
}
}
}
}
}
ai_chance = {
base = 100
}
}
# Grow it yourself
option = {
name = court_ongoing.1050.c
trigger = {
OR = {
has_trait = lifestyle_herbalist
has_trait = lifestyle_gardener
}
}
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = success }
}
# Friend can grow it
option = {
name = court_ongoing.1050.b.friend
trigger = {
exists = scope:helpful_friend
scope:helpful_friend = {
OR = {
has_trait = lifestyle_herbalist
has_trait = lifestyle_gardener
}
}
}
custom_tooltip = court_ongoing.1050.c.friend.f
scope:scheme = {
add_scheme_modifier = {
type = courting_gift_modifier
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = success }
}
# No thanks (coward)
option = {
name = court_ongoing.1050.d
trigger = {
has_trait = craven
diplomacy < decent_skill_rating
}
trait = craven
reverse_add_opinion = {
target = scope:target
modifier = weak_opinion
opinion = -5
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
ai_chance = {
base = 100
}
}
# No thanks (compliment)
option = {
name = court_ongoing.1050.e
trigger = { diplomacy >= decent_skill_rating }
skill = diplomacy
reverse_add_opinion = {
target = scope:target
modifier = pleased_opinion
opinion = 10
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
ai_chance = {
base = 100
}
}
# No thanks (regular)
option = {
name = court_ongoing.1050.f
trigger = {
NOR = {
has_trait = craven
diplomacy >= decent_skill_rating
}
}
court_ongoing_fetch_gift_target_outcome_effect = { GIFT = orchid OUTCOME = failure }
ai_chance = {
base = 50
}
}
}
### COMPLIMENT POEM ###
#What compliment should I use...
court_ongoing.1100 = {
type = character_event
title = court_ongoing.1100.t
desc = court_ongoing.1100.desc
theme = romance_scheme
left_portrait = {
character = root
animation = writing
}
right_portrait = {
character = scope:target
animation = flirtation
}
cooldown = { years = 1 }
trigger = {
scope:target = {
can_receieve_good_available_compliment_trigger = yes
}
NOT = {
scope:scheme = {
has_scheme_modifier = courting_charm_modifier
}
}
}
weight_multiplier = {
base = 1
modifier = {
scope:scheme.var:court_milestone_event >= 3
add = -0.75
}
}
immediate = {
hidden_effect = {
#Randomize 3 compliment types
randomize_available_compliment_effect = { COMPLIMENT_RECEIVER = scope:target }
randomize_available_compliment_effect = { COMPLIMENT_RECEIVER = scope:target }
randomize_good_available_compliment_effect = { COMPLIMENT_RECEIVER = scope:target }
}
}
#Compassionate
option = {
trigger = { has_character_flag = available_compliment_compassionate }
name = court_ongoing.1100.compassionate
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = compassionate COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#bold
option = {
trigger = { has_character_flag = available_compliment_bold }
name = court_ongoing.1100.bold
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = bold COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#honorable
option = {
trigger = { has_character_flag = available_compliment_honorable }
name = court_ongoing.1100.honorable
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = honorable COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#greed
option = {
trigger = { has_character_flag = available_compliment_greedy }
name = court_ongoing.1100.greed
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = greed COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#rational
option = {
trigger = { has_character_flag = available_compliment_rational }
name = court_ongoing.1100.rational
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = rational COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#zealous
option = {
trigger = { has_character_flag = available_compliment_zealous }
name = court_ongoing.1100.zealous
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = zealous COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#energetic
option = {
trigger = { has_character_flag = available_compliment_energetic }
name = court_ongoing.1100.energetic
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = energetic COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#forgiving
option = {
trigger = { has_character_flag = available_compliment_forgiving }
name = court_ongoing.1100.forgiving
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = forgiving COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#beautiful
option = {
trigger = { has_character_flag = available_compliment_beautiful }
name = court_ongoing.1100.beautiful
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = beautiful COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#strong
option = {
trigger = { has_character_flag = available_compliment_strong }
name = court_ongoing.1100.strong
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = strong COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#extroverted
option = {
trigger = { has_character_flag = available_compliment_extroverted }
name = court_ongoing.1100.extroverted
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = extroverted COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#dominant
option = {
trigger = { has_character_flag = available_compliment_dominant }
name = court_ongoing.1100.dominant
flavor = court_ongoing.1100.compliment.tt #Explanation of what outcome is based on
hidden_effect = {
scope:target = { evaluate_compliment_effect = { COMPLIMENT_TYPE = dominant COMPLIMENT_GIVER = root } }
}
court_ongoing_1100_outcome_effect = yes #Mus be in every options but fallback for tooltip reasons
}
#No thanks
option = {
name = court_ongoing.1100.fallback
}
after = {
clear_available_compliments_effect = yes
compliment_to_love_letter_effect = yes
}
}
#Target responds to poem
court_ongoing.1101 = { #by Mathilda Bjarnehed
type = letter_event
opening = court_ongoing.1101.t
desc = court_ongoing.1101.desc
sender = scope:owner
trigger = {
exists = scope:scheme
}
#I like
option = {
name = {
trigger = { scope:compliment_outcome = flag:good }
text = court_ongoing.1101.a.good
}
name = {
trigger = { NOT = { scope:compliment_outcome = flag:good } }
text = court_ongoing.1101.a.bad
}
set_variable = {
name = love_letter_quality
value = 4
days = 150
}
scope:owner = {
add_opinion = {
target = scope:target
modifier = romance_opinion
opinion = 15
}
trigger_event = court_ongoing.1102
}
ai_chance = {
base = 0
modifier = {
scope:compliment_outcome = flag:good
add = 100
}
}
}
#Neutral (ai only)
option = {
trigger = { is_ai = yes }
scope:owner = {
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1100.neutral.tt
}
}
ai_chance = {
base = 0
modifier = {
scope:compliment_outcome = flag:neutral
add = 100
}
}
}
#I dislike
option = {
name = {
trigger = { scope:compliment_outcome = flag:good }
text = court_ongoing.1101.c.good
}
name = {
trigger = { NOT = { scope:compliment_outcome = flag:good } }
text = court_ongoing.1101.c.bad
}
set_variable = {
name = love_letter_quality
value = 1
days = 150
}
scope:owner = {
add_opinion = {
target = scope:target
modifier = disappointed_opinion
opinion = -10
}
trigger_event = court_ongoing.1103
}
ai_chance = {
base = 0
modifier = {
scope:compliment_outcome = flag:bad
add = 100
}
}
}
after = {
scope:owner = {
compliment_to_love_letter_cleanup_effect = yes
}
}
}
#I get a response, target liked the poem!
court_ongoing.1102 = { #by Mathilda Bjarnehed
type = letter_event
opening = court_ongoing.1102.t
desc = court_ongoing.1102.desc
sender = scope:target
trigger = {
exists = scope:scheme
}
option = {
name = court_ongoing.1102.a
scope:scheme = {
add_scheme_modifier = {
type = courting_charm_modifier
}
}
}
after = {
scope:target = {
compliment_to_love_letter_cleanup_effect = yes
}
}
}
#I get a response, disliked the poem... :(
court_ongoing.1103 = { #by Mathilda Bjarnehed
type = letter_event
opening = court_ongoing.1103.t
desc = court_ongoing.1102.desc
sender = scope:target
trigger = {
exists = scope:scheme
}
option = {
name = court_ongoing.1103.a
reverse_add_opinion = {
target = scope:target
modifier = insult_opinion
opinion = -10
}
}
after = {
scope:target = {
compliment_to_love_letter_cleanup_effect = yes
}
}
}
###################################
# Dealing with competition
# by Mathilda Bjarnehed
###################################
scripted_trigger court_ongoing_1110_can_court_target_trigger = {
is_adult = yes
this != scope:owner
this != scope:target
basic_is_available_ai = yes
save_temporary_scope_as = can_court
matching_gender_and_sexuality_trigger = {
CHARACTER_1 = scope:can_court
CHARACTER_2 = scope:target
}
opinion = {
target = scope:target
value >= 0
}
reverse_opinion = {
target = scope:target
value >= 0
}
NOR = {
is_close_or_extended_family_of = scope:target
is_consort_of = scope:target
has_relation_lover = scope:target
}
}
#Outcome effects
scripted_effect court_ongoing_1110_remove_competitor_effect = {
scope:scheme = {
remove_scheme_modifier = court_competitor_modifier
}
scope:target = {
hidden_effect = {
if = {
limit = { has_relation_potential_lover = scope:competitor }
remove_relation_potential_lover = scope:competitor
}
}
}
}
scripted_effect court_ongoing_1110_duel_success_effect = {
court_ongoing_1110_remove_competitor_effect = yes
add_prestige = medium_prestige_gain
}
scripted_effect court_ongoing_1110_duel_failure_effect = {
add_prestige = minor_prestige_loss
custom_tooltip = court_ongoing_1110.competitor_remains.tt
}
scripted_effect court_ongoing_1110_poison_success_effect = {
court_ongoing_1110_remove_competitor_effect = yes
add_intrigue_lifestyle_perk_points = 1
scope:competitor = {
contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = yes }
}
}
scripted_effect court_ongoing_1110_poison_failure_effect = {
custom_tooltip = court_ongoing_1110.competitor_remains.tt
reverse_add_opinion = {
target = scope:target
modifier = disappointed_opinion
opinion = -10
}
reverse_add_opinion = {
target = scope:competitor
modifier = suspicion_opinion
opinion = -20
}
}
scripted_effect court_ongoing_1110_poison_murder_effect = {
court_ongoing_1110_remove_competitor_effect = yes
unknown_murder_effect = {
MURDERER = scope:owner
VICTIM = scope:competitor
REASON = death_murder
}
}
# What to do about competitor?
court_ongoing.1110 = {
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1110.desc
theme = romance_scheme
left_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:competitor
animation = disapproval
}
lower_right_portrait = scope:target
cooldown = { years = 1 }
trigger = {
OR = {
any_relation = {
type = rival
court_ongoing_1110_can_court_target_trigger = yes
}
AND = {
exists = scope:target.court_owner #The recipient or their liege if unlanded
scope:target.court_owner = {
OR = {
any_knight = { court_ongoing_1110_can_court_target_trigger = yes }
any_vassal = { court_ongoing_1110_can_court_target_trigger = yes }
}
}
}
scope:target = {
any_relation = {
type = potential_lover
court_ongoing_1110_can_court_target_trigger = yes
}
}
}
}
immediate = {
#If I have a rival(s), add them to list
if = {
limit = {
any_relation = {
type = rival
court_ongoing_1110_can_court_target_trigger = yes
}
}
every_relation = {
type = rival
limit = { court_ongoing_1110_can_court_target_trigger = yes }
add_to_list = competitors_list
}
}
#Else, add knights/vassals of recipient/host + potential lovers
else = {
if = {
limit = {
exists = scope:target.court_owner #The recipient or their liege if unlanded
}
scope:target.court_owner = {
every_knight = {
limit = { court_ongoing_1110_can_court_target_trigger = yes }
add_to_list = competitors_list
}
every_vassal = {
limit = { court_ongoing_1110_can_court_target_trigger = yes }
add_to_list = competitors_list
}
}
}
scope:target = {
every_relation = {
type = potential_lover
limit = { court_ongoing_1110_can_court_target_trigger = yes }
add_to_list = competitors_list
}
}
}
#Randomize from list
random_in_list = {
list = competitors_list
weight = {
base = 5
modifier = {
add = {
value = attraction
divide = medium_positive_attraction
multiply = 20
}
}
modifier = {
add = {
value = ai_sociability
multiply = 0.2
}
}
modifier = {
has_trait = lustful
add = 20
}
modifier = {
OR = {
has_focus_or_focus_trait_trigger = { FOCUS = intrigue_temptation_focus }
has_focus_or_focus_trait_trigger = { FOCUS = martial_chivalry_focus }
}
add = 20
}
opinion_modifier = {
opinion_target = scope:owner
multiplier = -0.3
}
opinion_modifier = {
opinion_target = scope:target
multiplier = 0.5
}
}
save_scope_as = competitor
}
scope:scheme = {
add_scheme_modifier = {
type = court_competitor_modifier
}
}
hidden_effect = {
if = {
limit = {
scope:target = { might_cheat_on_every_partner_trigger = yes }
scope:competitor = { might_cheat_on_every_partner_trigger = yes }
}
scope:target = {
progress_towards_lover_effect = {
CHARACTER = scope:competitor
REASON = lover_followed_around
OPINION = 0
}
}
}
}
}
#Duel
option = {
name = court_ongoing.1110.a
trigger = {
OR = {
AND = {
exists = liege
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = liege }
}
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
}
}
duel = {
skill = prowess
target = scope:competitor
60 = {
desc = court_ongoing.1110.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 5
}
modifier = {
add = {
value = ai_boldness
divide = high_positive_ai_value
multiply = 20
}
}
show_as_tooltip = { court_ongoing_1110_duel_success_effect = yes }
save_scope_value_as = {
name = competitor_outcome
value = flag:duel_success
}
}
40 = {
desc = court_ongoing.1110.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3
}
modifier = {
add = {
value = scope:competitor.ai_boldness
divide = high_positive_ai_value
multiply = 20
}
}
show_as_tooltip = { court_ongoing_1110_duel_failure_effect = yes }
save_scope_value_as = {
name = competitor_outcome
value = flag:duel_failure
}
}
}
stress_impact = {
craven = medium_stress_impact_gain
calm = minor_stress_impact_gain
deceitful = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 2
ai_energy = 1
ai_honor = 2
}
}
}
#Poision
option = {
name = court_ongoing.1110.b
duel = {
skill = intrigue
target = scope:competitor
60 = {
desc = court_ongoing.1110.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 5
}
show_as_tooltip = { court_ongoing_1110_poison_success_effect = yes }
save_scope_value_as = {
name = competitor_outcome
value = flag:poison_success
}
}
35 = {
desc = court_ongoing.1110.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3
}
modifier = {
scope:competitor = { has_trait = paranoid }
}
show_as_tooltip = { court_ongoing_1110_poison_failure_effect = yes }
save_scope_value_as = {
name = competitor_outcome
value = flag:poison_failure
}
}
5 = {
desc = court_ongoing.1110.b.murder
trigger = { root = { is_ai = no } } # Only available for players
show_as_tooltip = { court_ongoing_1110_poison_murder_effect = yes }
trigger_event = court_ongoing.1116
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
honest = medium_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -2
ai_honor = -2
}
}
}
#Pay off
option = {
trigger = {
OR = {
is_ai = no
short_term_gold >= tiny_gold_value
}
}
name = court_ongoing.1110.c
pay_short_term_gold = {
target = scope:competitor
gold = tiny_gold_value
}
random_list = {
90 = { #Success
desc = court_ongoing.1110.c.success
modifier = {
scope:competitor.ai_greed > 0
add = {
value = scope:competitor.ai_greed
divide = high_positive_ai_value
multiply = 20
}
}
modifier = {
scope:competitor.ai_honor < 0
add = {
value = scope:competitor.ai_honor
divide = high_negative_ai_value
multiply = 20
}
}
send_interface_toast = {
title = court_ongoing.1110.c.success
left_icon = scope:competitor
right_icon = scope:target
court_ongoing_1110_remove_competitor_effect = yes
}
}
10 = { #Failure
min = 5
desc = court_ongoing.1110.c.failure
modifier = {
scope:competitor.ai_honor > 0
add = {
value = scope:competitor.ai_honor
divide = high_positive_ai_value
multiply = 5
}
}
modifier = {
scope:competitor.ai_greed < 0
add = {
value = scope:competitor.ai_greed
divide = high_negative_ai_value
multiply = 5
}
}
send_interface_toast = {
title = court_ongoing.1110.c.failure
left_icon = scope:competitor
right_icon = scope:target
reverse_add_opinion = {
target = scope:target
modifier = disappointed_opinion
opinion = -10
}
}
}
}
stress_impact = {
greedy = medium_stress_impact_gain
honest = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = -1
ai_honor = -1
ai_energy = -1
}
}
}
after = {
if = {
limit = { exists = scope:competitor_outcome }
scope:target = {
trigger_event = court_ongoing.1111
}
}
}
}
#Recipient perspective on outcome
court_ongoing.1111 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1111.t
desc = {
desc = court_ongoing.1111.start.desc
first_valid = {
triggered_desc = {
trigger = { scope:competitor_outcome = flag:duel_success }
desc = court_ongoing.1111.duel_success.desc
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:duel_failure }
desc = court_ongoing.1111.duel_failure.desc
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:poison_success }
desc = court_ongoing.1111.poison_success.desc
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:poison_failure }
desc = court_ongoing.1111.poison_failure.desc
}
}
}
theme = romance_scheme
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = {
OR = {
scope:competitor_outcome = flag:duel_success
scope:competitor_outcome = flag:poison_success
}
}
animation = personality_bold
}
triggered_animation = {
trigger = { scope:competitor_outcome = flag:duel_failure }
animation = pain
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
right_portrait = {
character = scope:competitor
triggered_animation = {
trigger = { scope:competitor_outcome = flag:duel_success }
animation = pain
}
triggered_animation = {
trigger = { scope:competitor_outcome = flag:duel_failure }
animation = personality_bold
}
triggered_animation = {
trigger = { scope:competitor_outcome = flag:poison_success }
animation = shame
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
trigger = {
exists = scope:scheme
}
#Target did well/should keep trying
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
scope:competitor_outcome = flag:duel_success
scope:competitor_outcome = flag:poison_success
}
}
desc = court_ongoing.1111.a.success
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:duel_failure }
desc = court_ongoing.1111.a.duel_failure
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:poison_failure }
desc = court_ongoing.1111.a.poison_failure
}
}
}
}
reverse_add_opinion = {
target = scope:owner
modifier = romance_opinion
opinion = 20
}
scope:owner = {
if = {
limit = {
OR = {
scope:competitor_outcome = flag:duel_success
scope:competitor_outcome = flag:duel_failure
}
}
trigger_event = court_ongoing.1112 #Duel success
}
else = {
trigger_event = court_ongoing.1114 #Poison success
}
}
ai_chance = {
base = 0
modifier = {
OR = {
scope:competitor_outcome = flag:duel_success
scope:competitor_outcome = flag:poison_success
}
add = 100
}
}
}
#I'm not impressed
option = {
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { scope:competitor_outcome = flag:poison_success }
desc = court_ongoing.1111.b.poison_success
}
triggered_desc = {
trigger = { scope:competitor_outcome = flag:poison_failure }
desc = court_ongoing.1111.b.poison_failure
}
desc = court_ongoing.1111.b
}
}
}
scope:owner = {
if = {
limit = {
OR = {
scope:competitor_outcome = flag:duel_success
scope:competitor_outcome = flag:duel_failure
}
}
trigger_event = court_ongoing.1113 #Duel failure
}
else = {
trigger_event = court_ongoing.1115 #Poison failure
}
}
ai_chance = {
base = 0
modifier = {
OR = {
scope:competitor_outcome = flag:duel_failure
scope:competitor_outcome = flag:poison_failure
}
add = 100
}
}
}
#I prefer competitor! (ends scheme, player only)
option = {
trigger = { is_ai = no }
name = {
text = {
first_valid = {
triggered_desc = {
trigger = { scope:competitor_outcome = flag:duel_failure }
desc = court_ongoing.1111.c.duel_failure
}
desc = court_ongoing.1111.c
}
}
}
reverse_add_opinion = {
target = scope:competitor
modifier = romance_opinion
opinion = 20
}
show_as_tooltip = { scope:scheme = { end_scheme = yes } }
scope:owner = { trigger_event = court_ongoing.0001 }
}
#be gone, both of you! (ends scheme, player only)
option = {
trigger = { is_ai = no }
name = court_ongoing.1111.d
show_as_tooltip = { scope:scheme = { end_scheme = yes } }
scope:owner = { trigger_event = court_ongoing.0001 }
}
}
#Duel success for owner
court_ongoing.1112 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1112.desc
theme = romance_scheme
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:competitor
animation = pain
}
lower_right_portrait = scope:target
trigger = {
exists = scope:scheme
}
option = {
name = court_ongoing.1112.a
court_ongoing_1110_duel_success_effect = yes
}
}
#Duel failure for owner
court_ongoing.1113 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1113.desc
theme = romance_scheme
left_portrait = {
character = root
animation = pain
}
right_portrait = {
character = scope:competitor
animation = personality_bold
}
lower_right_portrait = scope:target
trigger = {
exists = scope:scheme
}
#OK...
option = {
name = court_ongoing.1113.a
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
}
}
}
#Rivalry!
option = {
trigger = {
NOT = { has_relation_rival = scope:competitor }
}
name = court_ongoing.1113.b
set_relation_rival = {
target = scope:competitor
reason = rival_duel_vengeance
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 5
}
}
}
after = {
court_ongoing_1110_duel_failure_effect = yes
}
}
#Poison success for owner
court_ongoing.1114 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1114.desc
theme = romance_scheme
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:competitor
animation = sick
}
lower_right_portrait = scope:target
trigger = {
exists = scope:scheme
}
option = {
name = court_ongoing.1114.a
court_ongoing_1110_poison_success_effect = yes
}
}
#Poison failure for owner
court_ongoing.1115 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1115.desc
theme = romance_scheme
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:competitor
animation = dismissal
}
lower_right_portrait = scope:target
trigger = {
exists = scope:scheme
}
#OK...
option = {
name = court_ongoing.1115.a
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 0.5
}
}
}
#Rivalry!
option = {
trigger = {
NOT = { has_relation_rival = scope:competitor }
}
name = court_ongoing.1113.b
set_relation_rival = {
target = scope:competitor
reason = rival_poison_vengeance
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_vengefulness = 5
}
}
}
after = {
court_ongoing_1110_poison_failure_effect = yes
}
}
#Poison murder for owner
court_ongoing.1116 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1110.t
desc = court_ongoing.1116.desc
theme = romance_scheme
left_portrait = {
character = root
animation = schadenfreude
}
right_portrait = {
character = scope:competitor
animation = dead
}
lower_right_portrait = scope:target
trigger = {
exists = scope:scheme
}
immediate = { court_ongoing_1110_poison_murder_effect = yes }
option = {
name = court_ongoing.1116.a
}
}
##############################
# Boring party guest
# by Mathilda Bjarnehed
##############################
scripted_trigger court_ongoing_1120_unpleasant_guest_trigger = {
basic_is_available_ai = yes
NOR = {
has_relation_friend = root
has_relation_lover = root
opinion = {
target = root
value > low_positive_opinion
}
}
NOR = {
this = scope:owner
this = scope:target
}
}
court_ongoing.1120 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1120.t
desc = court_ongoing.1120.desc
theme = romance_scheme
override_background = {
reference = throne_room_scope
}
left_portrait = {
character = root
animation = disgust
}
right_portrait = {
character = scope:unpleasant_guest
animation = wedding_drunk
}
lower_right_portrait = scope:target
cooldown = { years = 1 }
trigger = {
trigger_if = {
limit = { exists = scope:target.host }
scope:target.host = { save_temporary_scope_as = target_host_temp }
}
trigger_else_if = {
limit = {
exists = scope:target.location.province_owner
}
scope:target.location.province_owner = { save_temporary_scope_as = target_host_temp }
}
trigger_else = { always = no }
scope:target_host_temp.top_liege ?= {
OR = {
court_ongoing_1120_unpleasant_guest_trigger = yes
any_vassal_or_below = { court_ongoing_1120_unpleasant_guest_trigger = yes }
}
}
}
immediate = {
# Location & host
scope:target.location = { save_scope_as = target_location }
if = {
limit = { exists = scope:target.host }
scope:target.host = { save_scope_as = target_host }
}
else = {
scope:target.location.province_owner = { save_scope_as = target_host }
}
# Save all potential guests
scope:target_host = {
save_scope_as = background_throne_room_scope
# Host themselves
if = {
limit = { court_ongoing_1120_unpleasant_guest_trigger = yes }
add_to_list = important_guests
}
# Host's liege
if = {
limit = {
top_liege != this
liege = { court_ongoing_1120_unpleasant_guest_trigger = yes }
}
liege = { add_to_list = important_guests }
}
# Host's powerful vassals
every_powerful_vassal = {
limit = { court_ongoing_1120_unpleasant_guest_trigger = yes }
add_to_list = important_guests
}
}
# Your powerful vassals, if same realm
every_powerful_vassal = {
limit = {
top_liege = scope:target_host.top_liege
court_ongoing_1120_unpleasant_guest_trigger = yes
}
add_to_list = important_guests
}
# Pick a guest
random_in_list = {
list = important_guests
limit = {
OR = {
is_powerful_vassal_of = root
AND = {
exists = root.liege
this = root.liege
}
highest_held_title_tier >= root.highest_held_title_tier
}
}
alternative_limit = { always = yes }
weight = {
base = 10
modifier = {
add = {
value = ai_compassion
add = ai_rationality
add = ai_honor
multiply = -1
}
}
compatibility_modifier = {
who = scope:target
compatibility_target = this
multiplier = -2
}
compatibility_modifier = {
who = root
compatibility_target = this
multiplier = -2
}
opinion_modifier = {
who = root
opinion_target = this
multiplier = -1
}
modifier = {
add = {
value = diplomacy
subtract = high_skill_rating
multiply = -5
}
}
}
save_scope_as = unpleasant_guest
}
if = {
limit = { NOT = { exists = scope:unpleasant_guest } }
# Still no guest? Look further
scope:target_host.top_liege = {
random_vassal_or_below = {
limit = { court_ongoing_1120_unpleasant_guest_trigger = yes }
weight = {
base = 10
modifier = {
add = {
value = ai_compassion
add = ai_rationality
add = ai_honor
multiply = -1
}
}
modifier = {
add = {
value = diplomacy
subtract = high_skill_rating
multiply = -5
}
}
}
save_scope_as = unpleasant_guest
}
}
# The top liege might be the only possible candidate
if = {
limit = { NOT = { exists = scope:unpleasant_guest } }
if = {
limit = { scope:target_host.top_liege = { court_ongoing_1120_unpleasant_guest_trigger = yes } }
scope:target_host.top_liege = { save_scope_as = unpleasant_guest }
}
}
}
}
# Subterfuge distraction
option = {
name = court_ongoing.1120.a
skill = intrigue
trigger = {
intrigue >= high_skill_rating
intrigue > scope:unpleasant_guest.intrigue
}
scope:scheme = {
add_scheme_modifier = {
type = courting_kindness_modifier
}
}
scope:target = {
save_scope_value_as = {
name = unpleasant_guest_outcome
value = flag:intrigue
}
trigger_event = court_ongoing.1121
}
stress_impact = {
honest = minor_stress_impact_gain
craven = minor_stress_impact_gain
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_boldness = 2
ai_honor = -2
ai_compassion = 1
}
}
}
# Strike up a really nice conversation
option = {
name = court_ongoing.1120.b
skill = diplomacy
trigger = {
diplomacy >= high_skill_rating
diplomacy > scope:unpleasant_guest.diplomacy
}
scope:scheme = {
add_scheme_modifier = {
type = courting_kindness_modifier
}
}
scope:target = {
save_scope_value_as = {
name = unpleasant_guest_outcome
value = flag:diplomacy
}
trigger_event = court_ongoing.1121
}
stress_impact = {
shy = medium_stress_impact_gain
}
ai_chance = {
base = 200
ai_value_modifier = {
ai_sociability = 2
ai_boldness = 2
ai_honor = 1
ai_compassion = 2
}
}
}
# Distract them (boring)
option = {
name = court_ongoing.1120.c
add_stress = medium_stress_gain
send_interface_toast = {
title = court_ongoing.1120.a.failure
add_character_modifier = {
modifier = chronic_headaches_modifier
years = 10
}
}
scope:scheme = {
add_scheme_modifier = {
type = courting_kindness_modifier
}
}
scope:target = {
save_scope_value_as = {
name = unpleasant_guest_outcome
value = flag:diplomacy
}
trigger_event = court_ongoing.1121
}
stress_impact = {
shy = medium_stress_impact_gain
lazy = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = 2
ai_honor = 1
ai_energy = 1
ai_sociability = 2
}
}
}
# Insult them
option = {
name = court_ongoing.1120.d
add_prestige = miniscule_prestige_loss
reverse_add_opinion = {
target = scope:unpleasant_guest
modifier = insulted_opinion
opinion = -15
}
progress_towards_rival_effect = { CHARACTER = scope:unpleasant_guest OPINION = 0 REASON = rival_boring_party_guest }
scope:scheme = {
add_scheme_modifier = {
type = courting_kindness_modifier
}
}
scope:target = {
save_scope_value_as = {
name = unpleasant_guest_outcome
value = flag:insult
}
trigger_event = court_ongoing.1121
}
stress_impact = {
compassionate = medium_stress_impact_gain
shy = medium_stress_impact_gain
craven = medium_stress_impact_gain
forgiving = minor_stress_impact_gain
calm = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = -2
ai_boldness = 2
ai_honor = -1
}
}
}
# Nothing can be done
option = {
trigger = {
NOR = {
AND = {
intrigue >= high_skill_rating
intrigue > scope:unpleasant_guest.intrigue
}
AND = {
diplomacy >= high_skill_rating
diplomacy > scope:unpleasant_guest.diplomacy
}
}
}
name = court_ongoing.1120.e
ai_chance = {
base = 50
}
}
}
# Target outcome event (unpleasant guest)
court_ongoing.1121 = { #by Mathilda Bjarnehed
type = character_event
title = court_ongoing.1121.t
desc = {
desc = court_ongoing.1121.start.desc
first_valid = {
triggered_desc = {
trigger = { scope:unpleasant_guest_outcome = flag:diplomacy }
desc = court_ongoing.1121.diplomacy.desc
}
triggered_desc = {
trigger = { scope:unpleasant_guest_outcome = flag:intrigue }
desc = court_ongoing.1121.intrigue.desc
}
triggered_desc = {
trigger = { scope:unpleasant_guest_outcome = flag:insult }
desc = court_ongoing.1121.insult.desc
}
}
}
theme = romance_scheme
override_background = {
reference = throne_room
}
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = { scope:unpleasant_guest_outcome = flag:diplomacy }
animation = personality_compassionate
}
triggered_animation = {
trigger = { scope:unpleasant_guest_outcome = flag:intrigue }
animation = personality_dishonorable
}
triggered_animation = {
trigger = { scope:unpleasant_guest_outcome = flag:insult }
animation = boredom
}
}
right_portrait = {
character = scope:unpleasant_guest
triggered_animation = {
trigger = { scope:unpleasant_guest_outcome = flag:intrigue }
animation = worry
}
triggered_animation = {
trigger = { scope:unpleasant_guest_outcome = flag:insult }
animation = disapproval
}
animation = idle
}
# Study owner's diplomatic skills
option = {
name = court_ongoing.1121.a
trigger = { scope:unpleasant_guest_outcome = flag:diplomacy }
#Stress and opinion
add_stress = minor_stress_gain
#Diplomacy experience
random_list = {
10 = {
modifier = {
add = {
value = scope:owner.diplomacy
subtract = average_skill_rating
multiply = 2
}
}
desc = court_ongoing.1121.a.critical_success
send_interface_toast = {
left_icon = scope:owner
title = court_ongoing.1121.a.critical_success
add_diplomacy_lifestyle_perk_points = 1
}
}
90 = {
desc = court_ongoing.1121.a.success
send_interface_toast = {
left_icon = scope:owner
title = court_ongoing.1121.a.success
add_character_modifier = {
modifier = diplomacy_student_modifier
years = 5
}
}
}
}
}
# Study owner's intrigue skills
option = {
trigger = { scope:unpleasant_guest_outcome = flag:intrigue }
name = court_ongoing.1121.b
#Stress and opinion
add_stress = minor_stress_gain
#Diplomacy experience
random_list = {
10 = {
modifier = {
add = {
value = scope:owner.intrigue
subtract = average_skill_rating
multiply = 2
}
}
desc = court_ongoing.1121.b.critical_success
send_interface_toast = {
left_icon = scope:owner
title = court_ongoing.1121.b.critical_success
add_intrigue_lifestyle_perk_points = 1
}
}
90 = {
desc = court_ongoing.1121.b.success
send_interface_toast = {
left_icon = scope:owner
title = court_ongoing.1121.b.success
add_character_modifier = {
modifier = intrigue_student_modifier
years = 5
}
}
}
}
}
# Join in with owner's insults
option = {
trigger = { scope:unpleasant_guest_outcome = flag:insult }
name = court_ongoing.1121.c
#Owner opinion
reverse_add_opinion = {
target = scope:owner
modifier = respect_opinion
opinion = 10
}
#Unpleasant opinion
random_list = {
50 = {
modifier = {
scope:unpleasant_guest = { has_trait = honest }
add = 50
}
modifier = {
scope:unpleasant_guest = { has_trait = humble }
add = 50
}
desc = court_ongoing.1121.c.success
send_interface_toast = {
left_icon = scope:unpleasant_guest
title = court_ongoing.1121.c.success
reverse_add_opinion = {
target = scope:unpleasant_guest
modifier = respect_opinion
opinion = 10
}
}
}
50 = {
desc = court_ongoing.1121.c.failure
modifier = {
scope:unpleasant_guest = { has_trait = arrogant }
add = 50
}
send_interface_toast = {
left_icon = scope:unpleasant_guest
title = court_ongoing.1121.c.failure
reverse_add_opinion = {
target = scope:unpleasant_guest
modifier = insulted_opinion
opinion = -10
}
}
}
}
stress_impact = {
shy = medium_stress_impact_gain
craven = medium_stress_impact_gain
compassionate = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
}
# Stay with unpleasant guest
option = {
add_stress = minor_stress_gain
name = court_ongoing.1121.d
reverse_add_opinion = {
target = scope:unpleasant_guest
modifier = friendliness_opinion
opinion = 15
}
reverse_add_opinion = {
target = scope:owner
modifier = disappointed_opinion
opinion = -5
}
}
# Get out while you can
option = {
name = court_ongoing.1121.e
add_stress = minor_stress_loss
}
}
### EXTREME REQUEST ###
# by Linnéa Thimrén
######################
scripted_trigger court_ongoing_1211_trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_devotion
}
}
}
scripted_trigger court_ongoing_1221_trigger = {
NOT = {
scope:scheme = {
has_scheme_modifier = courting_devotion
}
}
}
court_ongoing.1200 = { #by Linnéa Thimrén
hidden = yes
trigger = {
OR = {
court_ongoing_1211_trigger = yes
court_ongoing_1221_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = { #more likely to fire later on in the scheme
scope:scheme.var:court_milestone_event < 2
add = -0.5
}
}
immediate = {
if = {
limit = {
scope:target = { is_ai = no }
}
scope:target = { trigger_event = court_ongoing.1201 }
}
else = {
random_list = {
10 = {
trigger = { court_ongoing_1211_trigger = yes }
trigger_event = {
id = court_ongoing.1211
days = { 7 9 }
}
}
10 = {
trigger = { court_ongoing_1221_trigger = yes }
trigger_event = {
id = court_ongoing.1221
days = { 7 9 }
}
}
}
}
}
}
### EXTREME REQUEST - TARGET PLAYER CHOOSE ###
scripted_effect court_ongoing_1211_a_success_target_effect = {
scope:target = {
add_character_modifier = {
modifier = seduce_rested_modifier
years = 5
}
}
}
scripted_effect court_ongoing_1211_a_success_effect = {
court_ongoing_1211_a_success_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = grateful_opinion
opinion = 20
}
scope:scheme = {
add_scheme_modifier = {
type = courting_devotion
}
}
}
scripted_effect court_ongoing_1211_failure_target_effect = {
scope:target = {
add_character_modifier = {
modifier = sleep_deprived_modifier
years = 5
}
}
}
scripted_effect court_ongoing_1211_a_failure_effect = {
court_ongoing_1211_failure_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = disgusted_opinion
opinion = -10
}
}
scripted_effect court_ongoing_1211_b_failure_effect = {
court_ongoing_1211_failure_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = insult_opinion
opinion = -15
}
}
scripted_effect court_ongoing_1221_a_success_target_effect = {
scope:target = {
add_prestige = medium_prestige_gain
}
}
scripted_effect court_ongoing_1221_a_success_effect = {
court_ongoing_1221_a_success_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = grateful_opinion
opinion = 15
}
scope:scheme = {
add_scheme_modifier = {
type = courting_devotion
}
}
}
scripted_effect court_ongoing_1221_a_failure_target_effect = {
scope:target = {
add_prestige = minor_prestige_loss
}
}
scripted_effect court_ongoing_1221_a_failure_effect = {
court_ongoing_1221_a_failure_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = disgusted_opinion
opinion = -10
}
}
scripted_effect court_ongoing_1221_b_failure_effect = {
court_ongoing_1221_a_failure_target_effect = yes
reverse_add_opinion = {
target = scope:target
modifier = insult_opinion
opinion = -15
}
}
court_ongoing.1201 = { #by Linnéa Thimrén
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1201.desc
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = flirtation
}
cooldown = { years = 1 }
#sleep
option = {
trigger = { court_ongoing_1211_trigger = yes }
name = court_ongoing.1201.a
show_as_tooltip = {
random_list = {
10 = {
show_chance = no
desc = court_ongoing.1201.a_success
court_ongoing_1211_a_success_target_effect = yes
}
10 = {
show_chance = no
desc = court_ongoing.1201.a_failure
court_ongoing_1211_failure_target_effect = yes
}
}
}
scope:owner = {
trigger_event = {
id = court_ongoing.1211
days = { 7 9 }
}
}
}
#food
option = {
trigger = { court_ongoing_1221_trigger = yes }
name = court_ongoing.1201.b
show_as_tooltip = {
random_list = {
10 = {
show_chance = no
desc = court_ongoing.1201.b_success
court_ongoing_1221_a_success_target_effect = yes
}
10 = {
show_chance = no
desc = court_ongoing.1201.a_failure
court_ongoing_1221_a_failure_target_effect = yes
}
}
}
scope:owner = {
trigger_event = {
id = court_ongoing.1221
days = { 7 9 }
}
}
}
#I don't want you to do anything
option = {
name = court_ongoing.1201.c
}
}
### EXTREME REQUEST - SLEEP ###
court_ongoing.1211 = { #by Linnéa Thimrén
type = character_event
title = court_ongoing.1211.t
desc = {
desc = court_ongoing.1211.desc_opening
desc = court_ongoing.1211.desc
}
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = flirtation
}
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
#I'll do it!
option = {
name = court_ongoing.1211.a
add_character_modifier = {
modifier = sleep_deprived_modifier
years = 2
}
random_list = {
60 = {
desc = court_ongoing.1211.a.success
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.a.success
scope:target = {
trigger_event = court_ongoing.1212
}
court_ongoing_1211_a_success_effect = yes
}
}
10 = {
desc = court_ongoing.1211.a.failure
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.a.failure
scope:target = {
trigger_event = court_ongoing.1213
}
court_ongoing_1211_a_failure_effect = yes
}
}
}
stress_impact = {
lazy = medium_stress_impact_gain
}
}
#Tell them you'll do it (liar!)
option = {
name = court_ongoing.1211.b
flavor = court_ongoing.1211.b.tt
duel = {
skill = intrigue
target = scope:target
67 = {
desc = court_ongoing.1211.b.success
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.b.success
scope:target = {
trigger_event = court_ongoing.1214
}
court_ongoing_1211_a_success_effect = yes
}
}
33 = {
desc = court_ongoing.1211.b.failure
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.b.failure
scope:target = {
trigger_event = court_ongoing.1215
}
court_ongoing_1211_b_failure_effect = yes
}
}
}
stress_impact = {
honest = minor_stress_impact_gain
}
}
#I won't do it!
option = {
name = court_ongoing.1211.c
reverse_add_opinion = {
target = scope:target
modifier = refusal_opinion
opinion = -5
}
}
}
#success - for target
court_ongoing.1212 = {
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1212.desc
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = personality_bold
}
theme = romance_scheme
option = {
name = court_ongoing.1212.a
show_as_tooltip = {
court_ongoing_1211_a_success_target_effect = yes
}
}
}
#failure - for target
court_ongoing.1213 = {
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1213.desc
left_portrait = {
character = scope:target
animation = eyeroll
}
right_portrait = {
character = scope:owner
animation = dead
}
theme = romance_scheme
option = {
name = court_ongoing.1213.a
show_as_tooltip = {
court_ongoing_1211_failure_target_effect = yes
}
}
}
#trickery success - for target
court_ongoing.1214 = {
type = character_event
title = court_ongoing.1201.t
desc = {
desc = court_ongoing.1212.desc
desc = court_ongoing.1214.desc
}
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = personality_bold
}
theme = romance_scheme
option = {
name = court_ongoing.1212.a
show_as_tooltip = {
court_ongoing_1211_a_success_target_effect = yes
}
}
}
#trickery failure - for target
court_ongoing.1215 = {
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1215.desc
left_portrait = {
character = scope:target
animation = eyeroll
}
theme = romance_scheme
option = {
name = court_ongoing.1215.a
show_as_tooltip = {
court_ongoing_1211_failure_target_effect = yes
}
}
}
### EXTREME REQUEST - FOOD ###
court_ongoing.1221 = { #by Linnéa Thimrén
type = character_event
title = court_ongoing.1211.t
desc = {
desc = court_ongoing.1211.desc_opening
desc = court_ongoing.1221.desc
}
theme = romance_scheme
left_portrait = {
character = scope:owner
animation = beg
}
right_portrait = {
character = scope:target
animation = flirtation
}
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
cooldown = { years = 1 }
#I'll do it!
option = {
name = court_ongoing.1221.a
add_character_modifier = {
modifier = court_starved_modifier
years = 2
}
random_list = {
67 = {
desc = court_ongoing.1221.a.success
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1221.a.success
scope:target = { trigger_event = court_ongoing.1222 }
court_ongoing_1221_a_success_effect = yes
}
}
33 = {
desc = court_ongoing.1221.a.failure
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1221.a.failure
scope:target = { trigger_event = court_ongoing.1223 }
court_ongoing_1221_a_failure_effect = yes
}
}
}
stress_impact = {
gluttonous = medium_stress_impact_gain
}
}
#Tell them you'll do it (liar!)
option = {
name = court_ongoing.1221.b
flavor = court_ongoing.1221.b.tt
duel = {
skill = intrigue
target = scope:target
67 = {
desc = court_ongoing.1211.b.success
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.b.success
scope:target = { trigger_event = court_ongoing.1224 }
court_ongoing_1221_a_success_effect = yes
}
}
33 = {
desc = court_ongoing.1211.b.failure
send_interface_toast = {
left_icon = scope:target
title = court_ongoing.1211.b.failure
scope:target = { trigger_event = court_ongoing.1225 }
court_ongoing_1221_b_failure_effect = yes
}
}
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = -0.5
}
}
stress_impact = {
honest = minor_stress_impact_gain
}
}
#I won't do it!
option = {
name = court_ongoing.1211.c
reverse_add_opinion = {
target = scope:target
modifier = refusal_opinion
opinion = -5
}
}
}
#success - for target
court_ongoing.1222 = {
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1222.desc
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = sick
}
theme = romance_scheme
option = {
name = court_ongoing.1222.a
show_as_tooltip = {
court_ongoing_1221_a_success_target_effect = yes
}
}
}
#failure - for target
court_ongoing.1223 = {
type = character_event
title = court_ongoing.1201.t
desc = {
desc = court_ongoing.1223.desc
desc = court_ongoing.1223.desc_ending
}
left_portrait = {
character = scope:target
animation = eyeroll
}
right_portrait = {
character = scope:owner
animation = wedding_drunk
}
theme = romance_scheme
option = {
name = court_ongoing.1223.a
show_as_tooltip = {
court_ongoing_1221_a_failure_target_effect = yes
}
}
}
#trickery success - for target
court_ongoing.1224 = {
type = character_event
title = court_ongoing.1201.t
desc = court_ongoing.1222.desc
left_portrait = {
character = scope:target
animation = love
}
right_portrait = {
character = scope:owner
animation = sick
}
theme = romance_scheme
option = {
name = court_ongoing.1222.a
show_as_tooltip = {
court_ongoing_1221_a_success_target_effect = yes
}
}
}
#trickery failure - for target
court_ongoing.1225 = {
type = character_event
title = court_ongoing.1201.t
desc = {
desc = court_ongoing.1225.desc
desc = court_ongoing.1223.desc_ending
}
left_portrait = {
character = scope:target
animation = eyeroll
}
right_portrait = {
character = scope:owner
animation = wedding_drunk
}
theme = romance_scheme
option = {
name = court_ongoing.1215.a
show_as_tooltip = {
court_ongoing_1221_a_failure_target_effect = yes
}
}
}