Scripted effect
concubine_on_accept_effect
concubine_on_accept_effect = yesgame/common/scripted_effects/00_marriage_interaction_effects.txt, line 453 (129 lines). No parameters.
concubine_on_accept_effect is a scripted effect in Crusader Kings III, written at line 453 of its file. It takes no parameters: concubine_on_accept_effect = yes. The game's script calls it in 3 places, among them ai_make_concubine_interaction (interaction), Find Concubine (interaction) and Make Concubine (interaction). Patch 1.20.1.2, from game/common/scripted_effects/00_marriage_interaction_effects.txt.
What it does
scope:recipient:- Event marriage_interaction.0040
If
Then
release_from_prison = yes- Opinion: Forced Me to Serve as a Concubine
- Every close family member:
If
a check the game hides
Then
- Opinion: Forced My Relative to Serve as a Concubine
If
One of these
None of these
- Their rite: Has the Concubines Doctrine
or
None of these
- Their rite: The rite has the tenet Polyamory
or
All of these
allowed_to_marry_same_sex_trigger = noscope:recipient:sex_same_as = scope:secondary_actor
Then
- Opinion: Forced My Relative into a Blasphemous Union
- If has the Trait: Celibate: Loses the Trait Celibate
- If married › Every spouse:
- Opinion: Forced My Spouse to Serve as a Concubine
divorce = scope:recipient- Event marriage_interaction.0041
- If concubine:
this.concubinist = { … }
If
a check the game hides
Then
- Their betrothed: Event marriage_interaction.0041
break_betrothal = betrothed
- If number of concubines more than 0 › Every concubine › scope:recipient:
remove_concubine = prev
• 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 (120 lines of game script)
concubine_on_accept_effect = {
scope:recipient = {
save_scope_as = concubine_victim
trigger_event = marriage_interaction.0040
if = {
# Victim is angry for being forced into concubinage.
limit = {
OR = {
has_trait = celibate
is_imprisoned = yes
}
}
release_from_prison = yes
add_opinion = {
target = scope:puppet_or_actor
modifier = forced_me_concubine_marriage_opinion
}
# Family members of victim are also angry that you've forced them into concubinage.
every_close_family_member = {
if = {
limit = {
this != scope:puppet_or_actor # Don't hate yourself.
}
add_opinion = {
target = scope:puppet_or_actor
modifier = forced_family_concubine_marriage_opinion
}
hidden_effect = {
send_interface_message = {
type = msg_family_became_concubine
title = msg_close_family_member_taken_as_concubine_title
right_icon = scope:puppet_or_actor
left_icon = scope:recipient
show_as_tooltip = { scope:puppet_or_actor = { make_concubine = scope:recipient } }
}
}
# Family members are even *more* angry if they don't believe in concubines/polyamory (different from polygamy). Also if they don't accept same-sex relationships
if = {
limit = {
OR = {
NOT = { rite = { rite_has_doctrine = doctrine_concubines } }
NOT = { rite = { rite_has_tenet = tenet_polyamory } }
AND = {
allowed_to_marry_same_sex_trigger = no
scope:recipient = { sex_same_as = scope:secondary_actor }
}
}
}
add_opinion = {
target = scope:puppet_or_actor
modifier = relative_in_blasphemous_union_opinion
}
}
}
}
# Not up to them anymore...
if = {
limit = { has_trait = celibate }
remove_trait = celibate
}
# Spouses, if any exist, are also furious.
if = {
limit = {
is_married = yes
}
every_spouse = {
show_as_tooltip = {
add_opinion = {
target = scope:puppet_or_actor
modifier = forced_spouse_concubine_marriage_opinion
}
divorce = scope:recipient # no additional opinion hit, no scripted effect
}
trigger_event = marriage_interaction.0041
}
}
# Stealing concubines pisses the former concubinist off.
if = {
limit = {
is_concubine = yes
}
this.concubinist = {
show_as_tooltip = {
add_opinion = {
target = scope:secondary_actor
modifier = stole_concubine_opinion
}
remove_concubine = scope:recipient # no additional opinion hit, no scripted effect
}
trigger_event = marriage_interaction.0041
}
}
# Break any betrothals which may exist (without additional opinion penalties).
if = {
limit = { exists = betrothed }
betrothed = { trigger_event = marriage_interaction.0041 }
break_betrothal = betrothed
}
# Having concubines means they're now no longer yours.
if = {
limit = { number_of_concubines > 0 }
every_concubine = {
scope:recipient = {
remove_concubine = prev
}
}
}
}
}
# Send us a notification about what we just did.
scope:secondary_actor = {
hidden_effect = {As written in game/common/scripted_effects/00_marriage_interaction_effects.txt.
The first 120 of its 129 lines; the rest is in game/common/scripted_effects/00_marriage_interaction_effects.txt from line 453.
Where it is used
Every place in common/, events/ and history/ that calls concubine_on_accept_effect.
Character interactions (3)
- ai_make_concubine_interaction
- Find Concubine
- Make Concubine
Source: game/common/scripted_effects/00_marriage_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.