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

Scripted effect

progress_towards_lover_effect

progress_towards_lover_effect = { CHARACTER = … OPINION = … REASON = … }

game/common/scripted_effects/00_relation_effects.txt, line 488 (91 lines). Parameters: $CHARACTER$, $OPINION$, $REASON$.

progress_towards_lover_effect is a scripted effect in Crusader Kings III, written at line 488 of its file. A call passes 3 parameters: CHARACTER, OPINION and REASON. The game's script calls it in 112 places, among them seductive_exchange (activity pulse), ... From My Friends (event imperial_examination.4030) and …: Caught! (event tour_general.4004). Patch 1.20.1.2, from game/common/scripted_effects/00_relation_effects.txt.

The comment above it in the file

Sets potential lover + opinion or upgrades potential lover to full lover

What it does

  • If

    Then

    • If a check the game hides passes: the same again (1 line)
      Else if a check the game hides passes: the same again (1 line)
      Else if a check the game hides passes: the same again (1 line)

      Otherwise

    • If

      • has_activity_intent = woo_attendee_intent
      • intent_target ?= $CHARACTER$
      • intent_target.involved_activity ?= this.involved_activity

      Then

      • complete_activity_intent = yes

    Otherwise

    • If

      Then

      • set_relation_potential_lover = $CHARACTER$
    • If

      • NOT = { scope:lover_opinion = 0 }

      Then

      • reverse_add_opinion = { target = $CHARACTER$ modifier = romance_opinion opinion = scope:lover_opinion }

• 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)
progress_towards_lover_effect = {
	#If potential lover, set lover!
	if = {
		limit = {
			has_relation_potential_lover = $CHARACTER$
			can_set_relation_lover_trigger = { CHARACTER = $CHARACTER$ }
		}
		if = {
			limit = {
				exists = scope:relationship_reason_involved_character
				exists = scope:relationship_reason_province
			}
			set_relation_lover = { 
				reason = $REASON$ 
				target = $CHARACTER$ 
				involved_character = scope:relationship_reason_involved_character 
				province = scope:relationship_reason_province 
			}
		}
		else_if = {
			limit = {
				exists = scope:relationship_reason_province
			}
			set_relation_lover = { 
				reason = $REASON$ 
				target = $CHARACTER$ 
				province = scope:relationship_reason_province 
			}
		}
		else_if = {
			limit = {
				exists = scope:relationship_reason_involved_character
			}
			set_relation_lover = { 
				reason = $REASON$ 
				target = $CHARACTER$ 
				involved_character = scope:relationship_reason_involved_character 
			}
		}
		else = {
			set_relation_lover = { 
				reason = $REASON$ 
				target = $CHARACTER$ 
			}
		}
		# Complete activity intent if relevant
		if = {
			limit = {
				exists = involved_activity
				has_activity_intent = woo_attendee_intent
				intent_target ?= $CHARACTER$
				intent_target.involved_activity ?= this.involved_activity
			}
			save_scope_as = intent_completer
			send_interface_toast = {
				title = activity_intent_complete_toast
				left_icon = $CHARACTER$ 
				complete_activity_intent = yes
			}
		}
	}
	# If not...
	else = {
		# ... set potential relation if we're not already rivals!
		if = {
			limit = { can_set_relation_potential_lover_trigger = { CHARACTER = $CHARACTER$ } }
			set_relation_potential_lover = $CHARACTER$
		}

		# ... add opinion if we should!
		save_temporary_scope_value_as = {
			name = lover_opinion
			value = $OPINION$
		}
		if = {
			limit = { NOT = { scope:lover_opinion = 0 } }
			reverse_add_opinion = {
				target = $CHARACTER$
				modifier = romance_opinion
				opinion = scope:lover_opinion
			}
			hidden_effect = {
				add_opinion = {
					target = $CHARACTER$
					modifier = romance_opinion
					opinion = scope:lover_opinion
				}
			}
		}
	}
}

As written in game/common/scripted_effects/00_relation_effects.txt.

Where it is used

Every place in common/, events/ and history/ that calls progress_towards_lover_effect.

Activity pulse actions (1)

  • seductive_exchange

Events (101)

95 more

Scripted effects inside an event file (4)

  • coronation_events_1019_memory_reward_effect
  • intrigue_temptation_3022_great_outcome_effect
  • tour_grounds_events_6000_sex_effect
  • tournament_gift_relationship_effect

Source: game/common/scripted_effects/00_relation_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?