Scripted effect
start_infidelity_confrontation_story_exposure_effect
start_infidelity_confrontation_story_exposure_effect = { EXPOSER = … LOVER_1 = … LOVER_2 = … }game/common/scripted_effects/00_secret_effects.txt, line 1983 (91 lines). Parameters: $EXPOSER$, $LOVER_1$, $LOVER_2$.
start_infidelity_confrontation_story_exposure_effect is a scripted effect in Crusader Kings III, written at line 1983 of its file. A call passes 3 parameters: EXPOSER, LOVER_1 and LOVER_2. The game's script calls it in 1 place, among them Lover (secret types). Patch 1.20.1.2, from game/common/scripted_effects/00_secret_effects.txt.
The comment above it in the file
Creates a story about confrontations/choices after discovered infidelity (lover secret exposure)
What it does
If
NOT = { $EXPOSER$ = $LOVER_2$ }NOT = { $EXPOSER$ = $LOVER_1$ }One of these
$LOVER_1$ = { … }or
$LOVER_2$ = { … }
Then
infidelity_confrontation_story_creation_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }$LOVER_1$ = { … }$LOVER_2$ = { … }
• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists
“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.
The script as written (91 lines of game script)
start_infidelity_confrontation_story_exposure_effect = {
if = {
limit = {
NOR = {
$EXPOSER$ = $LOVER_2$
$EXPOSER$ = $LOVER_1$
}
OR = {
$LOVER_1$ = {
OR = {
any_spouse = { NOT = { this = $LOVER_2$ } }
any_relation = {
type = lover
NOT = { this = $LOVER_2$ }
}
}
}
$LOVER_2$ = {
OR = {
any_spouse = { NOT = { this = $LOVER_1$ } }
any_relation = {
type = lover
NOT = { this = $LOVER_1$ }
}
}
}
}
}
#Set up story
infidelity_confrontation_story_creation_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }
scope:infidelity_story = {
set_variable = {
name = exposer
value = $EXPOSER$
}
}
#Add all confronting partners
$LOVER_1$ = {
every_spouse = {
infidelity_confrontation_story_add_to_list_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }
}
every_relation = {
type = lover
infidelity_confrontation_story_add_to_list_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }
}
}
$LOVER_2$ = {
every_spouse = {
infidelity_confrontation_story_add_to_list_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }
}
every_relation = {
type = lover
infidelity_confrontation_story_add_to_list_effect = { LOVER_1 = $LOVER_1$ LOVER_2 = $LOVER_2$ }
}
}
#Save a list of the confronting partners who already knew
scope:infidelity_story = {
every_in_list = {
variable = confronting_partners
limit = {
save_temporary_scope_as = confronting_partner_knowledge_check
OR = {
$LOVER_1$ = {
any_secret = {
type = secret_lover
secret_target = $LOVER_2$
any_secret_knower = { this = scope:confronting_partner_knowledge_check }
}
}
$LOVER_2$ = {
any_secret = {
type = secret_lover
secret_target = $LOVER_1$
any_secret_knower = { this = scope:confronting_partner_knowledge_check }
}
}
}
}
save_temporary_scope_as = knowing_confronting_partner
scope:infidelity_story = {
add_to_variable_list = {
name = knowing_confronting_partners
target = scope:knowing_confronting_partner
}
}
}
}
}
}As written in game/common/scripted_effects/00_secret_effects.txt.
Where it is used
Every place in common/, events/ and history/ that calls start_infidelity_confrontation_story_exposure_effect.
Secret types (1)
- Lover
Source: game/common/scripted_effects/00_secret_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.