CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

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

• 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.

Spotted a mistake on this page?