N3OW/events/death_events/death_management_events.txt
2026-09-04 17:32:19 -03:00

6494 lines
145 KiB
Text

#Events for managing death of characters
namespace = death_management
# Finds everyone who should care about the death and clean stuff up
scripted_trigger death_management_0001_valid_for_death_event_trigger = {
NOR = {
this = scope:dead_character
block_death_event_trigger = { DEAD = scope:dead_character }
is_player_heir_of = scope:dead_character
is_in_list = send_death_management_0002
}
}
# Calculates how much Stress a character should gain/lose from the death of someone they care about (in some fashion, love or hate) and saves that value for later event usage.
# This must be run before the character actually dies, as death removes all extant relationships and opinion modifiers.
scripted_effect calculate_stress_gain_loss_from_deceased_character_effect = {
save_scope_value_as = {
name = deceased_character_stress
value = {
# Dying characters was the centre of this character's world.
if = {
limit = {
has_character_flag = dead_ritual_best_friend
has_relation_best_friend = $DYING_CHARACTER$
}
value = monumental_stress_gain
}
# Dying character was extremely close to this character.
else_if = {
limit = {
OR = {
has_relation_soulmate = $DYING_CHARACTER$
has_relation_best_friend = $DYING_CHARACTER$
}
}
value = major_stress_gain
}
# Dying character was close and/or otherwise important to this character.
else_if = {
limit = {
OR = {
has_relation_lover = $DYING_CHARACTER$
has_relation_friend = $DYING_CHARACTER$
AND = {
reverse_opinion = {
target = $DYING_CHARACTER$
value >= 75
}
NOT = { has_relation_rival = $DYING_CHARACTER$ }
}
}
}
value = medium_stress_gain
}
# Dying character was strongly disliked, rivaled, or was an obstacle to this character's ambitions.
else_if = {
limit = {
OR = {
has_relation_rival = $DYING_CHARACTER$
reverse_opinion = {
target = $DYING_CHARACTER$
value < -20
}
AND = {
is_heir_of = $DYING_CHARACTER$
ai_greed >= 50
}
}
}
if = {
limit = {
NOT = { has_trait = forgiving }
}
value = minor_stress_loss
}
}
# Dying character was only moderately important to this character (siblings who weren't very close, for example).
## Characters who are less important than this shouldn't gain/lose stress at all (councillors, vassals, lieges, etc.).
else = {
value = minor_stress_gain
}
# Callous characters are less affected by the deaths of others, both positively and negatively.
if = {
limit = { has_trait = callous }
multiply = 0.5
}
# Sadistic and Vengeful characters are fully affected (but will probably have fewer friends and more enemies to begin with).
}
}
}
death_management.0001 = {
type = character_event
hidden = yes
immediate = {
save_scope_as = dead_character
### CHECKING STATUSES & HANDLING LOANS ###
#To save imprisoner & prisons status
if = {
limit = {
is_in_prison_type = dungeon
exists = imprisoner
}
imprisoner = {
save_scope_as = prison_holder
}
}
else_if = {
limit = {
is_in_prison_type = house_arrest
}
imprisoner = {
save_scope_as = house_arrest_holder
}
}
#To save battle
if = {
limit = { has_variable = battle_death_enemy }
var:battle_death_enemy = { save_scope_as = battle_death_enemy }
remove_variable = battle_death_enemy
}
if = {
limit = { has_variable = battle_death_leader }
var:battle_death_leader = { save_scope_as = battle_death_leader }
remove_variable = battle_death_leader
}
if = {
limit = { has_variable = battle_death_location }
var:battle_death_location = { save_scope_as = battle_death_location }
remove_variable = battle_death_location
}
# Dead character has debtors who their heir should inherit (make them have a money claim)
if = {
limit = {
any_in_list = { variable = owes_me_money }
}
every_in_list = {
variable = owes_me_money
limit = {
is_alive = yes
NOR = {
this = scope:dead_character
is_player_heir_of = scope:dead_character
exists = var:loan_holder # cannot support owing two loans to different people at the same time, so we just wipe this inherited debt for simplicity
}
}
save_temporary_scope_as = loanee_temp
scope:dead_character.player_heir ?= {
save_scope_as = new_loan_holder
add_to_variable_list = {
name = owes_me_money
target = scope:loanee_temp
}
}
set_variable = {
name = loan_holder
value = scope:new_loan_holder
}
}
}
#Dead character has a loan that an heir should inherit (make them owe someone money)
if = {
limit = {
exists = var:loan_amount_owed
var:loan_holder ?= {
is_alive = yes
NOR = {
this = scope:dead_character
is_player_heir_of = scope:dead_character
}
}
player_heir ?= {
NOT = { exists = var:loan_holder } # cannot support owing two loans to different people at the same time, so we just wipe this inherited debt for simplicity
}
}
save_scope_as = loan_passer
player_heir = {
save_scope_as = loan_inheritor
set_variable = {
name = loan_holder
value = scope:loan_passer.var:loan_holder
}
set_variable = {
name = loan_amount_owed
value = scope:loan_passer.var:loan_amount_owed
}
if = {
limit = { exists = scope:loan_passer.var:original_loan_holder }
set_variable = {
name = original_loan_holder
value = scope:loan_passer.var:original_loan_holder
}
}
else = {
set_variable = {
name = original_loan_holder
value = scope:loan_passer
}
}
if = {
limit = { exists = scope:loan_passer.var:original_lender }
set_variable = {
name = original_lender
value = scope:loan_passer.var:original_lender
}
}
else = {
set_variable = {
name = original_lender
value = scope:loan_passer.var:loan_holder
}
}
trigger_event = {
id = death_management.0003
delayed = yes
}
}
var:loan_holder ?= {
send_interface_toast = {
type = event_toast_effect_neutral
title = ho_loan_inherited_title
left_icon = scope:loan_passer
right_icon = scope:loan_passer.var:loan_holder
custom_tooltip = ho_loan_inherited_loaner_tt
remove_list_variable = {
name = owes_me_money
target = scope:loan_passer
}
add_to_variable_list = {
name = owes_me_money
target = scope:loan_inheritor
}
}
}
}
# Wipe invalid loans
else_if = {
limit = {
exists = var:loan_amount_owed
exists = var:loan_holder
}
var:loan_holder = {
remove_list_variable = {
name = owes_me_money
target = scope:dead_character
}
}
clear_loanee_variables_effect = yes
}
#SEND EVENT ABOUT DEATH
#Send event about relevant death to consorts
every_consort = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
#If heir's spouse dies
if = {
limit = {
any_parent = {
primary_heir ?= { is_consort_of = scope:dead_character }
death_management_0001_valid_for_death_event_trigger = yes
}
}
random_parent = {
limit = {
primary_heir ?= { is_consort_of = scope:dead_character }
death_management_0001_valid_for_death_event_trigger = yes
any_courtier = { is_consort_of = scope:dead_character }
is_ai = no #priority to players, who are the only people these are *really* relevant for
}
alternative_limit = {
primary_heir ?= { is_consort_of = scope:dead_character }
death_management_0001_valid_for_death_event_trigger = yes
is_ai = no #priority to players, who are the only people these are *really* relevant for
}
alternative_limit = {
primary_heir ?= { is_consort_of = scope:dead_character }
death_management_0001_valid_for_death_event_trigger = yes
}
primary_heir = { save_scope_as = spouse_of_dead_character }
save_scope_as = parent_of_spouse_of_dead_character
add_to_list = send_death_management_0002
}
}
}
#Send event about relevant death to betrothed
if = {
limit = {
exists = betrothed
# Grand Weddings and their betrothals have their own invalidation
has_been_promised_grand_wedding = no
trigger_if = {
limit = {
betrothed = {
is_alive = yes
}
}
betrothed = { has_been_promised_grand_wedding = no }
}
}
betrothed = {
if = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
save_scope_as = betrothed_of_dead_character
add_to_list = send_death_management_0002_betrothed
random_parent = { #The parent who most likely set up/agreed to the betrothal
limit = {
any_courtier = { this = scope:betrothed_of_dead_character }
death_management_0001_valid_for_death_event_trigger = yes
is_ai = no #priority to players, who are the only people these are *really* relevant for
}
alternative_limit = {
any_courtier = { this = scope:betrothed_of_dead_character }
death_management_0001_valid_for_death_event_trigger = yes
}
save_scope_as = parent_of_betrothed_of_dead_character
add_to_list = send_death_management_0002
}
}
}
#Send event about relevant death to parents
every_parent = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
#Send event about relevant death to "predecessor" if heir
if = {
limit = {
any_heir_title = { }
}
every_heir_title = {
limit = { exists = holder }
holder = {
if = {
limit = {
player_heir = scope:dead_character
NOT = {
is_in_list = title_holder_list
}
death_management_0001_valid_for_death_event_trigger = yes
}
add_to_list = title_holder_list
}
}
}
}
every_in_list = {
list = title_holder_list
add_to_list = send_death_management_0002
}
#Send event about relevant death to children
every_child = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
#Send event about relevant death to siblings
every_sibling = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
#Send event about relevant death to lovers
every_relation = {
type = lover
limit = {
is_alive = yes
death_management_0001_valid_for_death_event_trigger = yes
}
add_to_list = send_death_management_0002_lover
if = {
limit = {
OR = {
has_relation_soulmate = scope:dead_character
has_opinion_modifier = {
target = scope:dead_character
modifier = love_opinion
value >= 40
}
}
}
add_character_flag = {
flag = important_lover
days = 3
}
}
add_to_list = send_death_management_0002
}
#Send event about relevant death to friends
every_relation = {
type = friend
limit = {
is_alive = yes
death_management_0001_valid_for_death_event_trigger = yes
NOT = { has_relation_best_friend = scope:dead_character }
}
add_to_list = send_death_management_0002_friend
add_to_list = send_death_management_0002
}
#Send event about relevant death to best friends
every_relation = {
type = best_friend
limit = {
is_alive = yes
OR = {
death_management_0001_valid_for_death_event_trigger = yes
has_character_flag = dead_ritual_best_friend
}
}
add_to_list = send_death_management_0002_best_friend
add_to_list = send_death_management_0002
}
#Send event about relevant death to rivals
every_relation = {
type = rival
limit = {
is_alive = yes
death_management_0001_valid_for_death_event_trigger = yes
NOT = {
has_relation_nemesis = scope:dead_character
}
}
add_to_list = send_death_management_0002_rival
add_to_list = send_death_management_0002
}
#Send event about relevant death to Wards
every_relation = {
type = ward
limit = {
is_alive = yes
}
if = {
limit = { is_foreign_court_guest = yes }
return_to_court = yes
}
if = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
#Send event about relevant death to Ward's parent if they have no other relationship to the Educator
every_parent = {
limit = {
is_ai = no
is_alive = yes
death_management_0001_valid_for_death_event_trigger = yes
}
add_to_list = send_death_management_0002 #Child's educator's death notification
}
}
every_relation = {
type = disciple
limit = {
is_ai = no
is_available_adult = no
}
if = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002_elder
add_to_list = send_death_management_0002
}
}
#For liege if they're a councillor
if = {
limit = {
liege ?= {
this != root
death_management_0001_valid_for_death_event_trigger = yes
}
is_councillor_of = liege
}
liege = {
save_scope_as = liege_of_dead_character_councillor
add_to_list = send_death_management_0002
}
}
##For liege if they're a powerful vassal
#if = {
# limit = {
# exists = liege
# liege = {
# NOT = {
# this = root
# }
# death_management_0001_valid_for_death_event_trigger = yes
# }
# is_powerful_vassal_of = liege
# }
# liege = {
# save_scope_as = liege_of_dead_character
# add_to_list = send_death_management_0002
# }
#}
#Check for a prison owner
if = {
limit = {
exists = scope:prison_holder
}
scope:prison_holder = {
if = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
}
}
#For pinned characters
every_pinning_character = {
limit = { death_management_0001_valid_for_death_event_trigger = yes }
add_to_list = send_death_management_0002
}
#Send death_management.0002
every_in_list = {
list = send_death_management_0002
# Calculate and save how much stress we should gain/lose from this character's death.
calculate_stress_gain_loss_from_deceased_character_effect = {
DYING_CHARACTER = root
}
if = {
limit = {
NOT = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
}
OR = {
opinion = {
target = root
value >= 10
}
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
}
}
add_to_variable_list = {
name = like
target = root
}
}
else_if = {
limit = {
OR = {
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
opinion = {
target = root
value < -30
}
}
}
add_to_variable_list = {
name = dislike
target = root
}
}
# Queue up a death notification event.
trigger_event = {
id = death_management.0002
delayed = yes
}
#To block any death notification events sent after this for 3 days
add_death_event_blocker_effect = { DEAD = root }
}
}
}
#Someone you care about (in some capacity) has died
death_management.0002 = {
type = character_event
hidden = yes
trigger = {
trigger_if = {
limit = {
exists = scope:killer
}
this != scope:killer #Killers already know
}
NOT = { has_character_flag = bp1_yearly_2020_suppress_death_events }
}
on_trigger_fail = {
if = {
limit = {
has_character_flag = bp1_yearly_2020_suppress_death_events
}
remove_character_flag = bp1_yearly_2020_suppress_death_events
}
}
immediate = { #Finds most important relation for notification & mourning events
if = {
limit = { #To block the player from getting events about themselves dying
NOT = { is_player_heir_of = scope:dead_character }
}
if = { #Spouse
limit = {
exists = scope:prison_holder
this != scope:prison_holder
any_consort = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.2000 #Spouse death in dungeon notification
}
else_if = { #Spouse
limit = {
exists = scope:prison_holder
this = scope:prison_holder
any_consort = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.3000 #Spouse death in YOUR dungeon notification
}
else_if = { #Spouse
limit = {
exists = scope:house_arrest_holder
any_consort = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.4000 #Spouse death in house arrest notification
}
else_if = { #Spouse
limit = {
exists = scope:battle_death_leader
any_consort = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1200 #Spouse death in battle
}
else_if = { #Spouse
limit = {
any_consort = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1000 #Spouse death notification
}
else_if = { #Heir
limit = {
exists = scope:prison_holder
this != scope:prison_holder
is_in_list = title_holder_list
}
trigger_event = death_management.2007 #Heir death in dungeon notification
}
else_if = { #Heir
limit = {
exists = scope:prison_holder
this = scope:prison_holder
is_in_list = title_holder_list
is_close_or_extended_family_of = scope:dead_character
}
trigger_event = death_management.3007 #Heir death in YOUR dungeon notification
}
else_if = { #Heir
limit = {
exists = scope:house_arrest_holder
is_in_list = title_holder_list
is_close_or_extended_family_of = scope:dead_character
}
trigger_event = death_management.4007 #Heir death in house arrest notification
}
else_if = { #Heir
limit = {
exists = scope:battle_death_leader
is_in_list = title_holder_list
is_close_or_extended_family_of = scope:dead_character
}
trigger_event = death_management.1207 #Heir death in battle notification
}
else_if = { #Heir
limit = {
is_in_list = title_holder_list
is_close_or_extended_family_of = scope:dead_character
}
trigger_event = death_management.1007 #Heir death notification (for family)
}
else_if = { #Heir
limit = {
is_in_list = title_holder_list
}
send_interface_message = { #Heir death notification (for others)
type = family_has_died
desc = death_management.1007.a.tt
left_icon = scope:dead_character
}
}
else_if = { #Betrothed
limit = {
exists = scope:prison_holder
this != scope:prison_holder
is_in_list = send_death_management_0002_betrothed
}
trigger_event = death_management.2008 #Betrothed death in dungeon notification
}
else_if = { #Betrothed
limit = {
exists = scope:prison_holder
this = scope:prison_holder
is_in_list = send_death_management_0002_betrothed
}
trigger_event = death_management.3008 #Betrothed death in YOUR dungeon notification
}
else_if = { #Betrothed
limit = {
exists = scope:house_arrest_holder
is_in_list = send_death_management_0002_betrothed
}
trigger_event = death_management.4008 #Betrothed death in house arrest notification
}
else_if = { #Betrothed
limit = {
is_in_list = send_death_management_0002_betrothed
}
send_interface_message = {
type = notable_has_died
desc = death_management.betrothed.desc
left_icon = scope:dead_character
}
}
else_if = { #Child
limit = {
exists = scope:prison_holder
this != scope:prison_holder
any_child = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.2001 #Child death in dungeon notification
}
else_if = { #Child
limit = {
exists = scope:prison_holder
this = scope:prison_holder
any_child = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.3001 #Child death in YOUR dungeon notification
}
else_if = { #Child
limit = {
exists = scope:house_arrest_holder
any_child = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.4001 #Child death in house arrest notification
}
else_if = { #Child
limit = {
exists = scope:battle_death_leader
any_child = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1201 #Child death in battle notification
}
else_if = { #Child
limit = {
any_child = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1001 #Child death notification
}
else_if = { #Parent
limit = {
exists = scope:prison_holder
this != scope:prison_holder
any_parent = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.2002 #Parent death in dungeon notification
}
else_if = { #Parent
limit = {
exists = scope:prison_holder
this = scope:prison_holder
any_parent = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.3002 #Parent death in YOUR dungeon notification
}
else_if = { #Parent
limit = {
exists = scope:house_arrest_holder
any_parent = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.4002 #Parent death in house arrest notification
}
else_if = { #Parent died in battle
limit = {
exists = scope:battle_death_leader
any_parent = { even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1202 #Parent death in battle notification
}
else_if = { #Parent
limit = {
any_parent = { even_if_dead = yes this = scope:dead_character }
}
send_interface_message = {
type = family_has_died
desc = death_management.parent.desc
left_icon = scope:dead_character
if = {
limit = {
NOT = {
scope:dead_character = {
age >= 65
death_reason = death_old_age
}
}
}
add_stress = scope:deceased_character_stress
}
}
}
else_if = { #Sibling
limit = {
any_sibling = { even_if_dead = yes this = scope:dead_character }
}
send_interface_message = {
type = family_has_died
desc = death_management.sibling.desc
left_icon = scope:dead_character
if = {
limit = {
scope:dead_character = {
age < 40
}
}
add_stress = scope:deceased_character_stress
}
}
}
else_if = { #Best friend died in battle
limit = {
exists = scope:battle_death_leader
is_in_list = send_death_management_0002_lover
}
trigger_event = death_management.1204 #Lover death in battle notification
}
else_if = { #Lover
limit = {
is_in_list = send_death_management_0002_lover
}
if = {
limit = {
has_character_flag = important_lover
}
remove_character_flag = important_lover
trigger_event = death_management.1004 #Lover death notification
}
else = {
send_interface_message = {
type = lover_has_died
desc = death_management.lover.desc
left_icon = scope:dead_character
add_stress = scope:deceased_character_stress
}
}
}
else_if = { #Friend
limit = {
is_in_list = send_death_management_0002_friend
}
send_interface_message = {
type = friend_has_died
title = friend_death_notification_title
desc = death_management.friend.desc
left_icon = scope:dead_character
add_stress = scope:deceased_character_stress
}
}
else_if = { #Best friend died in battle
limit = {
exists = scope:battle_death_leader
is_in_list = send_death_management_0002_best_friend
}
trigger_event = death_management.1205 #Best friend death in battle notification
}
else_if = { #Best Friend
limit = {
is_in_list = send_death_management_0002_best_friend
has_bp1_dlc_trigger = no
}
trigger_event = death_management.1005 #Best Friend death notification
}
else_if = { #Rival in your dungeon
limit = {
exists = scope:prison_holder
scope:prison_holder = root
is_in_list = send_death_management_0002_rival
}
trigger_event = death_management.3006 #Rival death notification
}
else_if = { #Rival died in battle
limit = {
exists = scope:battle_death_leader
is_in_list = send_death_management_0002_rival
}
trigger_event = death_management.1206 #Rival death in battle notification
}
else_if = { #Rival
limit = {
is_in_list = send_death_management_0002_rival
}
trigger_event = death_management.1006 #Rival death notification
}
else_if = { # Guardian
limit = {
any_relation = { type = guardian even_if_dead = yes this = scope:dead_character }
}
trigger_event = death_management.1010 #Educator death notification
}
else_if = { #Parent of spouse (if primary heir)
limit = {
exists = scope:parent_of_spouse_of_dead_character
this = scope:parent_of_spouse_of_dead_character
}
if = {
limit = {
tier_difference = {
target = scope:dead_character
value >= 4
}
}
trigger_event = death_management.1008 #Spouse of child death notification
}
else = {
send_interface_message = {
type = notable_has_died
desc = death_management.spouse_child.desc
left_icon = scope:dead_character
}
}
}
else_if = { #Parent of betrothed
limit = {
exists = scope:parent_of_betrothed_of_dead_character
this = scope:parent_of_betrothed_of_dead_character
}
if = {
limit = {
tier_difference = {
target = scope:dead_character
value >= 4
}
}
trigger_event = death_management.1009 #Betrothed of child death notification
}
else = {
send_interface_message = {
type = notable_has_died
desc = death_management.betrothed_child.desc
left_icon = scope:dead_character
}
}
}
else_if = { # Child's Guardian
limit = {
any_child = {
any_relation = { type = guardian even_if_dead = yes this = scope:dead_character }
}
}
random_child = {
limit = { any_relation = { type = guardian even_if_dead = yes this = scope:dead_character } }
save_scope_as = ward_of_dead_character
}
send_interface_message = { #Child's educator's death notification
type = notable_has_died
desc = death_management.educator.desc
left_icon = scope:dead_character
right_icon = scope:ward_of_dead_character
}
}
else_if = { # Prisoner
limit = {
exists = scope:prison_holder
this = scope:prison_holder
}
send_interface_message = { #A prisoner died notification
type = prisoner_has_died
desc = death_management.prisoner.desc
left_icon = scope:dead_character
}
}
else_if = { # Councillor
limit = {
exists = scope:liege_of_dead_character_councillor
this = scope:liege_of_dead_character_councillor
NOT = {
scope:liege_of_dead_character_councillor = { has_government = landless_adventurer_government }
}
}
send_interface_message = {
type = councillor_has_died
desc = death_management.liege_councillor.desc
left_icon = scope:dead_character
}
}
else_if = { # Elder
limit = {
is_in_list = send_death_management_0002_elder
}
send_interface_message = { #Heir death notification (for others)
type = elder_has_died
desc = death_management.elder.desc
left_icon = scope:dead_character
}
}
#else_if = {
# limit = {
# exists = scope:liege_of_dead_character
# this = scope:liege_of_dead_character
# }
# send_interface_message = {
# type = family_has_died
# desc = death_management.liege.desc
# left_icon = scope:dead_character
# }
#}
else_if = { # Pinned
limit = {
any_pinned_character = { this = scope:dead_character }
}
send_interface_message = {
type = notable_has_died
desc = death_management.pinned.desc
left_icon = scope:dead_character
}
}
}
}
}
death_management.0003 = {
type = character_event
hidden = yes
immediate = {
send_interface_toast = {
type = event_toast_effect_neutral
title = ho_loan_inherited_title
left_icon = scope:loan_passer
right_icon = var:loan_holder
custom_tooltip = ho_loan_inherited_debtor_tt
}
}
}
######################################################
# NOTIFICATION EVENTS
# 1000-1999
######################################################
#Notification about dead spouse
death_management.1000 = {
type = character_event
title = death_management.1000.t
desc = {
triggered_desc = {
trigger = {
exists = scope:killer
}
desc = death_management.1000.murder
}
first_valid = {
triggered_desc = {
trigger = {
has_variable = bloody_wedding_murder
}
desc = death_management.1000.murder_wedding
}
triggered_desc = { #Plague killed them: You liked your spouse
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
scope:dead_character = {
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1000.plaguespouse
desc = death_management.1000.like
}
}
triggered_desc = { #Plague killed them: You disliked them
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
scope:dead_character = {
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1000.plaguespouse
desc = death_management.1000.dislike
}
}
triggered_desc = { #Plague killed them: They were just your spouse, nothing more
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
scope:dead_character = {
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1000.plaguespouse
desc = death_management.1000.neutral
}
}
triggered_desc = {
trigger = {
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
}
desc = death_management.1000.like
}
triggered_desc = {
trigger = {
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
}
desc = death_management.1000.dislike
}
desc = death_management.1000.neutral
}
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
}
animation = grief
}
triggered_animation = {
trigger = {
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
}
animation = dismissal
}
animation = sadness
}
right_portrait = {
character = scope:dead_character
animation = dead
}
lower_right_portrait = {
character = scope:killer
trigger = { exists = scope:known_killer }
}
trigger = {
NOT = { has_character_flag = knows_of_spouse_death_flag }
}
immediate = {
play_music_cue = mx_cue_death
root.primary_title ?= {
save_scope_as = realm
}
if = {
limit = {
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
}
save_scope_value_as = {
name = like
value = yes
}
}
else_if = {
limit = {
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
}
save_scope_value_as = {
name = dislike
value = yes
}
}
if = {
limit = {
exists = scope:killer
scope:killer = {
OR = {
# No Secret because everyone knows
NOT = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
}
}
# Secret, but you happen to know
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
}
save_scope_value_as = {
name = known_killer
value = yes
}
}
}
#My beloved spouse!
option = {
trigger = {
exists = scope:like
}
name = death_management.1000.a
stress_impact = {
base = medium_stress_impact_gain
callous = minor_stress_impact_loss
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#That's a shame
option = {
trigger = {
NOR = {
exists = scope:like
exists = scope:dislike
}
}
name = death_management.1000.b
if = {
limit = {
OR = {
has_any_bad_relationship_with_root_trigger = yes
opinion = {
target = scope:dead_character
value < -30
}
}
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
callous = minor_stress_impact_loss
}
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#What a relief!
option = {
trigger = {
exists = scope:dislike
}
exclusive = yes
name = death_management.1000.c
stress_impact = {
base = minor_stress_impact_loss
}
}
after = {
# We change your legend in case you really loved your spouse
if = {
limit = {
exists = scope:like
has_legend_chapter_trigger = { CHAPTER = conclusion }
NOT = {
promoted_legend ?= {
has_legend_chapter = {
name = conclusion
localization_key = legend_chapter_conclusion_dead_loved_spouse
}
}
}
NOT = { # Unless you killed them yourself
scope:killer ?= root
}
}
random = {
chance = 75
send_interface_toast = {
title = legend_chapter_change_toast
left_icon = root
right_icon = scope:dead_character
promoted_legend = {
set_legend_chapter = {
name = conclusion
localization_key = legend_chapter_conclusion_dead_loved_spouse
}
}
}
}
}
if = {
limit = {
exists = scope:known_killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1001.tt
}
clear_variable_list = like
clear_variable_list = dislike
}
}
#Notification for parent of dead child
death_management.1001 = {
type = character_event
title = death_management.1001.t
desc = {
triggered_desc = {
trigger = {
exists = scope:killer
}
desc = death_management.1001.murder
}
first_valid = {
triggered_desc = {
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
scope:dead_character = {
age < 16
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1001.plaguechild
}
}
triggered_desc = {
trigger = {
scope:dead_character = {
age < 16
}
}
desc = death_management.1001.child
}
triggered_desc = {
trigger = {
reverse_opinion = {
target = scope:dead_character
value >= 40
}
}
desc = death_management.1001.like
}
triggered_desc = {
trigger = {
reverse_opinion = {
target = scope:dead_character
value < 0
}
}
desc = death_management.1001.dislike
}
desc = death_management.1001.neutral
}
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:dead_character
animation = dead
}
lower_right_portrait = {
character = scope:killer
trigger = { exists = scope:known_killer }
}
immediate = {
play_music_cue = mx_cue_death
root.primary_title ?= {
save_scope_as = realm
}
if = {
limit = {
exists = scope:killer
scope:killer = {
OR = {
# No Secret because everyone knows
NOT = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
}
}
# Secret, but you happen to know
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
}
save_scope_value_as = {
name = known_killer
value = yes
}
}
}
#Good child
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
reverse_opinion = {
target = scope:dead_character
value >= 40
}
}
name = death_management.1001.a
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
#Neutral
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
reverse_opinion = {
target = scope:dead_character
value < 40
}
reverse_opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.1000.b
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
#Relieved
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
reverse_opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.1001.c
stress_impact = {
base = minor_stress_impact_loss
}
}
#Little child...
option = {
trigger = {
scope:dead_character = {
is_adult = no
}
}
name = death_management.1001.d
if = {
limit = {
any_child = {
count >= 10
}
}
stress_impact = {
base = minor_stress_impact_gain
}
}
else = {
stress_impact = {
base = medium_stress_impact_gain
}
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
after = {
if = {
limit = {
exists = scope:known_killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1001.tt
}
}
}
# Sound Foundations stat removal
death_management.1002 = {
hidden = yes
orphan = yes
immediate = {
every_parent = { sound_foundations_random_removal_effect = yes }
}
}
# Friendly Counsel
# Called from on action: death & on action: remove friendship
death_management.1003 = {
hidden = yes
immediate = {
every_relation = {
type = friend
add_to_temporary_list = death_management_1002_friendly_counsel_friends
}
every_relation = {
type = best_friend
add_to_temporary_list = death_management_1002_friendly_counsel_friends
}
every_in_list = {
list = death_management_1002_friendly_counsel_friends
friendly_counsel_random_removal_effect = yes
}
}
}
#Dead lover
death_management.1004 = {
type = character_event
title = death_management.1004.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
scope:dead_character = {
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1004.desc
}
}
desc = death_management.1004.desc
}
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:dead_character
animation = dead
}
immediate = {
play_music_cue = mx_cue_death
root.primary_title ?= {
save_scope_as = realm
}
}
option = {
name = death_management.1004.a
add_stress = scope:deceased_character_stress
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = lover
}
}
after = {
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1004.a.tt
}
}
}
#Dead best friend
death_management.1005 = {
type = character_event
title = death_management.1005.t
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:dead_ritual_best_friend }
desc = death_management.1005.desc.ritual_best_friend
}
triggered_desc = {
trigger = {
NOT = { #Ensure not murdered
exists = scope:killer
}
scope:dead_character = {
OR = {
has_trait = bubonic_plague
has_trait = smallpox
has_trait = typhus
has_trait = consumption
has_trait = measles
has_trait = dysentery
has_trait = ergotism
}
}
}
desc = {
desc = death_management.1000.plaguestart
desc = death_management.1005.desc
}
}
desc = death_management.1005.desc
}
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:dead_character
animation = dead
}
immediate = {
play_music_cue = mx_cue_death
# Remove the best friend flag, if it's around, but note that it was here for loc.
if = {
limit = { has_character_flag = dead_ritual_best_friend }
remove_character_flag = dead_ritual_best_friend
save_scope_as = dead_ritual_best_friend
}
}
option = {
name = death_management.1005.a
add_stress = scope:deceased_character_stress
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = friend
}
}
after = {
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1005.a.tt
}
}
}
#Dead rival
death_management.1006 = {
type = character_event
title = death_management.1006.t
desc = death_management.1006.desc
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = happiness
}
right_portrait = {
character = scope:dead_character
animation = dead
}
immediate = {
play_music_cue = mx_cue_death
add_stress = scope:deceased_character_stress
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
if = {
limit = {
scope:killer = root
}
add_prestige = medium_prestige_gain
}
}
else = {
custom_tooltip = death_management.1006.a.tt
}
}
option = {
name = death_management.1000.c
trigger = {
NOT = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
}
}
}
option = { # Continue
name = death_management.1006.d
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
NOT = {
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
custom_tooltip = house_feud_continue_tt
ai_chance = {
base = 25
ai_value_modifier = {
ai_vengefulness = 1
ai_boldness = 1
}
}
}
option = { # End
name = death_management.1006.e
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
NOT = {
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
house ?= {
change_house_relation_effect = {
HOUSE = scope:dead_character.house
VALUE = house_relation_improve_major_value
REASON = de_escalation
CHAR = root
TARGET_CHAR = scope:dead_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_vengefulness = -1
ai_boldness = -1
}
}
}
option = { # Wipe end
name = death_management.1006.f
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
}
#Dead heir
death_management.1007 = {
type = character_event
title = death_management.1007.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:killer
}
desc = death_management.1007.start_murder
}
desc = death_management.1007.start
}
first_valid = {
triggered_desc = {
trigger = { scope:dead_character.highest_held_title_tier >= root.highest_held_title_tier }
desc = death_management.1007.same_or_higher_tier
}
triggered_desc = {
trigger = {
OR = {
AND = {
is_male = yes
scope:dead_character = { is_male = yes }
}
AND = {
is_female = yes
scope:dead_character = { is_female = yes }
}
}
}
desc = death_management.1007.mytitle
}
desc = death_management.1007.ruler
}
desc = death_management.1007.end
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:dead_character
animation = dead
}
lower_right_portrait = {
trigger = { exists = scope:known_killer }
character = scope:killer
}
trigger = {
exists = player_heir
}
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = scope:killer
scope:killer = {
OR = {
# No Secret because everyone knows
NOT = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
}
}
# Secret, but you happen to know
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
}
save_scope_value_as = {
name = known_killer
value = yes
}
}
}
option = {
name = death_management.1007.a
stress_impact = {
base = minor_stress_impact_gain
}
}
after = {
if = {
limit = {
exists = scope:known_killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1007.a.tt
}
}
}
#Death of child's spouse (if child is primary heir)
death_management.1008 = {
type = character_event
title = death_management.1009.t
desc = death_management.1008.desc
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = grief
}
right_portrait = {
character = scope:dead_character
animation = dead
}
lower_left_portrait = scope:spouse_of_dead_character
immediate = {
play_music_cue = mx_cue_death
}
option = {
name = death_management.1008.a
}
after = {
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1008.a.tt
}
}
}
#Death of child's betrothed
death_management.1009 = {
type = character_event
title = death_management.1009.t
desc = death_management.1009.desc
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
left_portrait = {
character = root
animation = sadness
}
right_portrait = {
character = scope:dead_character
animation = dead
}
lower_left_portrait = scope:betrothed_of_dead_character
trigger = {
}
immediate = {
play_music_cue = mx_cue_death
}
option = {
name = {
trigger = { age <= 16 }
text = death_management.1009.a
}
name = {
trigger = { age > 16 }
text = death_management.1008.a
}
}
after = {
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.1009.a.tt
}
}
}
#Death of child's Educator - event for child
death_management.1010 = {
type = character_event
title = death_management.1010.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer = root
}
desc = death_management.1010.murderer
}
triggered_desc = {
trigger = { age < 12 }
desc = death_management.1010.under_12
}
desc = death_management.1010.12_or_over
}
}
theme = death
override_background = {
trigger = { is_travelling = yes }
reference = terrain
}
immediate = {
play_music_cue = mx_cue_death
}
option = {
name = {
text = death_management.1010.under_12_liked_educator
trigger = {
age < 12
opinion = {
target = scope:dead_character
value > 0
}
trigger_if = {
limit = {
exists = scope:killer
}
scope:killer != root
}
}
}
name = {
text = death_management.1010.under_12_disliked_educator
trigger = {
age < 12
opinion = {
target = scope:dead_character
value <= 0
}
trigger_if = {
limit = {
exists = scope:killer
}
scope:killer != root
}
}
}
name = {
text = death_management.1010.over_12_liked_educator
trigger = {
age >= 12
opinion = {
target = scope:dead_character
value > 0
}
trigger_if = {
limit = {
exists = scope:killer
}
scope:killer != root
}
}
}
name = {
text = death_management.1010.over_12_disliked_educator
trigger = {
OR = {
AND = {
age >= 12
opinion = {
target = scope:dead_character
value <= 0
}
}
AND = {
exists = scope:killer
scope:killer = root
}
}
}
}
custom_tooltip = death_management.1010.a.tt
}
}
######################################################
# NOTIFICATION EVENTS - BATTLE DEATH EVENTS
# 1200-1207
######################################################
scripted_effect death_in_battle_memory_effect = {
if = {
limit = {
this = scope:portrait_scope
is_alive = yes
}
if = {
limit = { exists = scope:battle_death_killer }
create_character_memory = {
type = witnessed_death_battle_$TYPE$_killer
participants = {
dead_relation = scope:dead_character
relation_killer = scope:battle_death_killer
}
}
}
else = {
create_character_memory = {
type = witnessed_death_battle_$TYPE$
participants = {
dead_relation = scope:dead_character
}
}
}
random_memory = {
limit = {
OR = {
has_memory_type = witnessed_death_battle_good_killer
has_memory_type = witnessed_death_battle_bad_killer
has_memory_type = witnessed_death_battle_good
has_memory_type = witnessed_death_battle_bad
}
NOT = { has_variable = battle_location }
}
set_variable = {
name = battle_location
value = scope:battle_death_location
}
}
}
}
scripted_effect death_in_battle_scope_effect = {
if = {
limit = {
is_in_army = yes
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
save_scope_as = portrait_scope
}
else = {
scope:dead_character = { save_scope_as = portrait_scope }
}
scope:dead_character = {
if = {
limit = {
exists = killer
scope:killer = {
is_alive = yes
}
}
killer = {
save_scope_as = battle_death_killer
set_signature_weapon_effect = yes
}
show_as_tooltip = {
death = {
death_reason = death_battle
killer = scope:battle_death_killer
}
}
}
else = {
show_as_tooltip = {
death = { death_reason = death_battle }
}
}
}
}
scripted_effect set_and_inform_slayer_rivalry_effect = {
save_scope_as = avenger
scope:battle_death_killer = {
send_interface_message = {
type = send_interface_message_bad
left_icon = scope:avenger
right_icon = scope:dead_character
title = death_battle_new_rivalry_title
set_relation_rival = {
target = scope:avenger
reason = rival_killed_heir
involved_character = scope:dead_character
}
}
}
}
scripted_trigger set_and_inform_slayer_rivalry_trigger = {
exists = scope:battle_death_killer
can_set_relation_rival_trigger = { CHARACTER = scope:battle_death_killer }
}
# Spouse dies in battle
death_management.1200 = {
type = character_event
title = death_management.1200.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.spouse # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
first_valid = {
triggered_desc = { # You disliked them
trigger = {
exists = scope:dislike
}
desc = death_management.1200.desc_happy #happy
}
triggered_desc = { # You didn't dislike them
trigger = {
NOT = {
exists = scope:dislike
}
}
desc = death_management.1200.desc_sad #generic
}
}
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
# Taken from death.management.1000
if = {
limit = {
reverse_opinion = {
target = scope:dead_character
value >= 10
}
scope:dead_character = { has_any_bad_relationship_with_root_trigger = no }
OR = {
opinion = {
target = scope:dead_character
value >= 10
}
scope:dead_character = { has_friendly_relationship_with_root_trigger = yes }
}
}
add_to_variable_list = {
name = like
target = scope:dead_character
}
death_in_battle_memory_effect = { TYPE = good }
}
else_if = {
limit = {
OR = {
has_any_bad_relationship_with_root_trigger = yes
opinion = {
target = scope:dead_character
value < -30
}
}
}
add_to_variable_list = {
name = dislike
target = scope:dead_character
}
death_in_battle_memory_effect = { TYPE = bad }
}
else = {
death_in_battle_memory_effect = { TYPE = good }
}
if = {
limit = {
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
}
save_scope_value_as = {
name = like
value = yes
}
}
else_if = {
limit = {
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
}
save_scope_value_as = {
name = dislike
value = yes
}
}
}
# New rival
option = {
name = death_management.1200.a
trigger = {
NOT = {
exists = scope:dislike
}
set_and_inform_slayer_rivalry_trigger = yes
}
stress_impact = {
base = medium_stress_impact_gain
callous = minor_stress_impact_loss
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
set_and_inform_slayer_rivalry_effect = yes
}
#My beloved spouse!
option = {
name = death_management.1200.b
trigger = {
exists = scope:like
}
stress_impact = {
base = medium_stress_impact_gain
callous = minor_stress_impact_loss
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#That's a shame
option = {
trigger = {
NOR = {
exists = scope:like
exists = scope:dislike
}
}
name = death_management.1200.c
if = {
limit = {
OR = {
has_any_bad_relationship_with_root_trigger = yes
opinion = {
target = scope:dead_character
value < -30
}
}
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
callous = minor_stress_impact_loss
}
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#What a relief!
option = {
trigger = {
exists = scope:dislike
}
exclusive = yes
name = death_management.1200.d
stress_impact = {
base = minor_stress_impact_loss
}
}
after = {
clear_variable_list = like
clear_variable_list = dislike
}
}
# Child dies in battle
death_management.1201 = {
type = character_event
title = death_management.1201.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.family # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1201.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = good }
# Taken from death_management.1001
if = {
limit = {
reverse_opinion = {
target = scope:dead_character
value >= 0
}
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
if = {
limit = {
reverse_opinion = {
target = scope:dead_character
value >= 40
}
}
stress_impact = { base = medium_stress_impact_gain }
}
else_if = {
limit = {
reverse_opinion = {
target = scope:dead_character
value >= 0
}
}
stress_impact = { base = minor_stress_impact_gain }
}
}
else = {
stress_impact = { base = minor_stress_impact_loss }
}
}
# New rival
option = {
name = death_management.1201.a
trigger = {
reverse_opinion = {
target = scope:dead_character
value >= 0
}
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
#Good child
option = {
name = death_management.1201.b
trigger = {
scope:dead_character = { is_adult = yes }
reverse_opinion = {
target = scope:dead_character
value >= 40
}
}
}
#Neutral
option = {
name = death_management.1201.c
trigger = {
scope:dead_character = { is_adult = yes }
reverse_opinion = {
target = scope:dead_character
value < 40
}
reverse_opinion = {
target = scope:dead_character
value >= 0
}
}
}
#Relieved
option = {
name = death_management.1201.d
trigger = {
scope:dead_character = { is_adult = yes }
reverse_opinion = {
target = scope:dead_character
value < 0
}
}
}
}
# Parent dies in battle
death_management.1202 = {
type = character_event
title = death_management.1202.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.family # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1202.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = good }
if = {
limit = {
opinion = {
target = scope:dead_character
value >= 60
}
}
stress_impact = {
base = medium_stress_impact_gain
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
}
}
option = {
name = death_management.1202.a
}
option = {
name = death_management.1202.b
trigger = {
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
}
# Lover dies in battle
death_management.1204 = {
type = character_event
title = death_management.1204.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.lover # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1204.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = good }
# Taken from death_management.1004
add_stress = scope:deceased_character_stress
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = lover
}
}
option = {
name = death_management.1204.a
}
option = {
name = death_management.1204.b
trigger = {
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
}
# Best friend dies in battle
death_management.1205 = {
type = character_event
title = death_management.1205.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.friend # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1205.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = good }
add_stress = scope:deceased_character_stress
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = friend
}
}
# Oh no
option = {
name = death_management.1205.a
}
# New rival
option = {
name = death_management.1205.b
trigger = {
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
}
# Rival dies in battle
death_management.1206 = {
type = character_event
title = death_management.1206.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.rival # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1206.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
animation = schadenfreude
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = bad }
# Taken from death_management.1006
add_stress = scope:deceased_character_stress
}
option = {
name = death_management.1206.a
}
option = {
name = death_management.1206.b
trigger = {
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
option = {
name = death_management.1206.c
trigger = {
exists = scope:battle_death_killer
is_attracted_to_gender_of = scope:battle_death_killer
}
reverse_add_opinion = {
target = scope:battle_death_killer
modifier = flattered_opinion
opinion = 10
}
if = {
limit = {
can_start_scheme = {
type = seduce
target_character = scope:battle_death_killer
}
}
start_scheme = {
type = seduce
target_character = scope:battle_death_killer
}
hidden_effect = {
random_scheme = {
type = seduce
limit = {
scheme_target_character = scope:battle_death_killer
}
add_scheme_modifier = {
type = extra_success_chance_modifier
}
}
}
}
}
}
# Heir dies in battle
death_management.1207 = {
type = character_event
title = death_management.1207.t
desc = {
# Intro 1 - In battle or reading a letter?
first_valid = {
triggered_desc = { # Died in battle you were part of
trigger = { this = scope:portrait_scope }
desc = death_management.intro.witnessed # generic
}
triggered_desc = { # Died in a battle involving your army
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
desc = death_management.intro.war # generic
}
desc = death_management.intro # generic
}
# Intro 2 - In battle or reading a letter?
first_valid = {
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.intro.enemy # generic
}
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.intro.friendly # generic
}
desc = death_management.intro.letter.heir # unique
}
# Death details
first_valid = {
triggered_desc = { # You saw them die, enemy
trigger = {
this = scope:portrait_scope
this = scope:battle_death_enemy
}
desc = death_management.death.witnessed.enemy # generic
}
triggered_desc = { # You saw them die, friendly
trigger = {
this = scope:portrait_scope
this = scope:battle_death_leader
}
desc = death_management.death.witnessed.friendly # generic
}
triggered_desc = { # They died on other side
trigger = { scope:battle_death_enemy = root }
desc = death_management.death.war.enemy # generic
}
triggered_desc = { # They died on your side
trigger = { scope:battle_death_leader = root }
desc = death_management.death.war.friendly # generic
}
desc = death_management.death.uninvolved # generic
}
# Killer details
first_valid = {
triggered_desc = { # On other side
trigger = {
this = scope:portrait_scope
scope:battle_death_enemy = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.enemy # generic
}
triggered_desc = { # On same side
trigger = {
this = scope:portrait_scope
scope:battle_death_leader = root
exists = scope:battle_death_killer
}
desc = death_management.killer.witnessed.friendly # generic
}
triggered_desc = { # In some other battle
trigger = { exists = scope:battle_death_killer }
desc = death_management.killer # generic
}
triggered_desc = { # In some other battle
trigger = {
NOT = {
exists = scope:battle_death_killer
}
}
desc = death_management.no_killer # generic
}
}
desc = death_management.1207.desc # unique
}
theme = death
override_background = { reference = battlefield }
left_portrait = {
character = scope:portrait_scope
triggered_animation = {
trigger = {
OR = {
this = scope:battle_death_enemy
this = scope:battle_death_leader
}
}
animation = grief
}
triggered_animation = {
trigger = { always = yes }
animation = idle
}
}
lower_right_portrait = {
character = scope:battle_death_killer
trigger = {
exists = scope:battle_death_killer
scope:battle_death_killer != root
}
}
lower_center_portrait = {
character = scope:dead_character
trigger = { scope:portrait_scope = root }
}
immediate = {
play_music_cue = mx_cue_death
death_in_battle_scope_effect = yes
death_in_battle_memory_effect = { TYPE = good }
# Taken from death_management.1007
stress_impact = { base = minor_stress_impact_gain }
}
option = {
name = death_management.1207.a
}
option = {
name = death_management.1207.b
trigger = {
set_and_inform_slayer_rivalry_trigger = yes
}
set_and_inform_slayer_rivalry_effect = yes
}
}
######################################################
# NOTIFICATION EVENTS - DUNGEON DEATH OR MURDER
# 2000-2999
######################################################
#Notification about dead spouse - Dungeon or murder
death_management.2000 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:prison_holder
scope:prison_holder != root
}
desc = death_management.2000.t
}
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer = root
}
desc = death_management.2000.t.root_killer
}
desc = death_management.2000.t.no_killer
}
}
desc = {
first_valid = {
triggered_desc = { # Special desc for killing own spouse
trigger = {
exists = scope:killer
scope:killer = root
}
desc = death_management.2000.murderer
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= medium_positive_opinion
}
}
desc = {
desc = death_management.2000.like
first_valid = {
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer = scope:prison_holder
}
desc = death_management.2000.like_end_killer
}
desc = death_management.2000.like_end
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < medium_positive_opinion
}
opinion = {
target = scope:dead_character
value >= low_negative_opinion
}
}
desc = {
desc = death_management.2000.neutral
first_valid = {
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer = scope:prison_holder
}
desc = death_management.2000.neutral_end_killer
}
desc = death_management.2000.neutral_end
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < low_negative_opinion
}
}
desc = {
desc = death_management.2000.dislike
first_valid = {
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer = scope:prison_holder
}
desc = death_management.2000.dislike_end_killer
}
triggered_desc = {
trigger = {
exists = scope:killer
scope:killer != scope:prison_holder
}
desc = death_management.2000.dislike_end_unknown_killer
}
desc = death_management.2000.dislike_end_no_killer
}
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = scope:killer
scope:killer = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
scope:killer = {
save_scope_as = prison_holder
}
}
}
#My beloved spouse!
option = {
trigger = {
opinion = {
target = scope:dead_character
value >= medium_positive_opinion
}
OR = {
NOT = { exists = scope:prison_holder }
AND = {
exists = scope:prison_holder
scope:prison_holder != root
}
}
}
name = death_management.2000.a
if = {
limit = {
exists = scope:prison_holder
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2000.tt
}
}
#That's a shame
option = {
trigger = {
opinion = {
target = scope:dead_character
value < medium_positive_opinion
}
opinion = {
target = scope:dead_character
value >= neutral_opinion
}
OR = {
NOT = { exists = scope:prison_holder }
AND = {
exists = scope:prison_holder
scope:prison_holder != root
}
}
}
name = death_management.2000.b
if = {
limit = {
exists = scope:prison_holder
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2000.tt
}
}
#What a relief!
option = {
trigger = {
opinion = {
target = scope:dead_character
value < neutral_opinion
}
OR = {
NOT = { exists = scope:prison_holder }
AND = {
exists = scope:prison_holder
scope:prison_holder != root
}
}
}
name = death_management.2000.c
if = {
limit = {
exists = scope:prison_holder
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2000.tt
}
}
# What a way to go
option = {
trigger = {
exists = scope:prison_holder
root = scope:prison_holder
}
name = death_management.2000.d
}
after = {
if = {
limit = {
NOT = { exists = scope:prison_holder }
}
add_opinion = {
modifier = loved_one_dungeon_death
target = scope:prison_holder
}
}
}
}
#Dead heir - Dungeon
death_management.2007 = {
type = character_event
title = death_management.2007.t
desc = {
desc = death_management.2007.start
first_valid = {
triggered_desc = {
trigger = {
OR = {
AND = {
is_male = yes
scope:dead_character = { is_male = yes }
}
AND = {
is_female = yes
scope:dead_character = { is_female = yes }
}
}
}
desc = death_management.2007.mytitle
}
desc = death_management.2007.ruler
}
desc = death_management.2007.end
}
theme = death
left_portrait = scope:dead_character
right_portrait = scope:new_heir
immediate = {
play_music_cue = mx_cue_death
if = {
limit = { exists = player_heir }
player_heir = {
save_scope_as = new_heir
}
}
if = {
limit = {
exists = scope:killer
scope:killer = {
NOT = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
}
scope:killer = {
save_scope_as = prison_holder
}
}
}
option = {
name = death_management.2007.a
if = {
limit = {
exists = scope:prison_holder
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2007.a.tt
}
if = {
limit = { exists = scope:new_heir }
custom_tooltip = death_management.2007.a.new_heir.tt
}
stress_impact = {
base = minor_stress_impact_gain
}
}
after = {
if = {
limit = {
NOT = { exists = scope:prison_holder }
}
add_opinion = {
modifier = loved_one_dungeon_death
target = scope:prison_holder
}
}
}
}
#Notification for parent of dead child - Dungeon
death_management.2001 = {
type = character_event
title = death_management.2001.t
desc = {
desc = death_management.2001.opening
first_valid = {
triggered_desc = {
trigger = {
scope:dead_character = {
age < 16
}
}
desc = death_management.2001.child
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = {
desc = death_management.2001.like
first_valid = {
triggered_desc = {
trigger = {
exists = scope:prison_holder
}
desc = death_management.2001.like_end_killer
}
desc = death_management.2001.like_end
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = death_management.2001.neutral
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = {
desc = death_management.2001.dislike
first_valid = {
triggered_desc = {
trigger = {
exists = scope:prison_holder
}
desc = death_management.2001.dislike_end_killer
}
desc = death_management.2001.dislike_end
}
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = scope:killer
scope:killer = {
OR = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
NOT = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
}
}
}
}
}
scope:killer = {
save_scope_as = prison_holder
}
}
}
#Liked child
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.2000.b
if = {
limit = {
exists = scope:prison_holder
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2001.tt
}
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
#Relieved
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.2001.c
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2001.tt
}
stress_impact = {
base = minor_stress_impact_loss
}
}
#Little child...
option = {
trigger = {
scope:dead_character = {
is_adult = no
}
}
name = death_management.2001.d
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2001.tt
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
after = {
if = {
limit = {
NOT = { exists = scope:killer }
}
add_opinion = {
modifier = loved_one_dungeon_death
target = scope:prison_holder
}
}
}
}
#Dead parent - Dungeon
death_management.2002 = {
type = character_event
title = death_management.2002.t
desc = {
first_valid = {
triggered_desc = {
trigger = { age < 14 }
desc = death_management.2002.child
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 30
}
}
desc = death_management.2002.like
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 30
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = death_management.2002.neutral
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = death_management.2002.dislike
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = scope:killer
scope:killer = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
scope:killer = {
save_scope_as = prison_holder
}
}
}
#Like
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value >= 40
}
}
name = death_management.2002.a
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
#Neutral
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.2002.b
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
#Dislike
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.2002.c
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
stress_impact = {
base = minor_stress_impact_loss
}
}
#Child reacts
option = {
trigger = {
age < 14
}
name = death_management.2002.d
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
after = {
if = {
limit = {
NOT = { exists = scope:killer }
}
add_opinion = {
modifier = loved_one_dungeon_death
target = scope:prison_holder
}
}
}
}
#Dead betrothed - Dungeon
death_management.2008 = {
type = character_event
title = death_management.2008.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = {
desc = death_management.2008.desc.like
first_valid = {
triggered_desc = {
trigger = {
exists = scope:prison_holder
}
desc = death_management.2008.like_end_killer
}
desc = death_management.2008.like_end
}
}
}
triggered_desc = {
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:prison_holder
}
desc = death_management.2008.dislike_killer
}
desc = death_management.2008.dislike
}
}
}
desc = death_management.2008.desc.neutral
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = scope:killer
scope:killer = {
any_secret = {
type = secret_murder
secret_target = scope:dead_character
is_known_by = root
}
}
}
scope:killer = {
save_scope_as = prison_holder
}
}
}
option = { #Like/neutral
trigger = {
NOR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.2008.a
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
if = {
limit = {
opinion = {
target = scope:dead_character
value >= 60
}
}
stress_impact = {
base = medium_stress_impact_gain
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
}
}
option = { #Dislike
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.2008.b
if = {
limit = {
exists = scope:killer
}
custom_tooltip = death_management.1000.killed.tt
}
else = {
custom_tooltip = death_management.2002.tt
}
stress_impact = {
base = minor_stress_impact_loss
}
}
after = {
if = {
limit = {
NOT = { exists = scope:killer }
}
add_opinion = {
modifier = loved_one_dungeon_death
target = scope:prison_holder
}
}
}
}
######################################################
# NOTIFICATION EVENTS - YOUR DUNGEON DEATH
# 3000-3999
######################################################
#Dead heir - Your dungeon
death_management.3007 = {
type = character_event
title = death_management.3007.t
desc = {
desc = death_management.3007.start
first_valid = {
triggered_desc = {
trigger = {
OR = {
AND = {
is_male = yes
scope:dead_character = { is_male = yes }
}
AND = {
is_female = yes
scope:dead_character = { is_female = yes }
}
}
}
desc = death_management.3007.mytitle
}
desc = death_management.3007.ruler
}
desc = death_management.3007.end
}
theme = death
left_portrait = scope:dead_character
right_portrait = scope:new_heir
immediate = {
play_music_cue = mx_cue_death
primary_heir = {
save_scope_as = new_heir
}
}
option = {
name = death_management.3007.a
custom_tooltip = death_management.3007.a.tt
stress_impact = {
base = minor_stress_impact_gain
}
}
}
#Notification about dead spouse - Your dungeon
death_management.3000 = {
type = character_event
title = death_management.3000.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = death_management.3000.like
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = death_management.3000.neutral
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = death_management.3000.dislike
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
#My beloved spouse!
option = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
name = death_management.3000.a
custom_tooltip = death_management.3000.tt
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#That's a shame
option = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.3000.b
custom_tooltip = death_management.3000.tt
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
#What a relief!
option = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.3000.c
custom_tooltip = death_management.3000.tt
stress_impact = {
base = medium_stress_impact_loss
}
}
}
#Notification for parent of dead child - Your dungeon
death_management.3001 = {
type = character_event
title = death_management.3001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:dead_character = {
age < 16
}
}
desc = death_management.3001.child
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = death_management.3001.like
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = death_management.3001.neutral
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = death_management.3001.dislike
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
#Good child
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value >= 50
}
}
name = death_management.3001.a
custom_tooltip = death_management.3001.tt
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
#Neutral
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value < 50
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.3000.b
custom_tooltip = death_management.3001.tt
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
#Relieved
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.3001.c
custom_tooltip = death_management.3001.tt
stress_impact = {
base = medium_stress_impact_loss
}
}
#Little child...
option = {
trigger = {
scope:dead_character = {
is_adult = no
}
}
name = death_management.3001.d
custom_tooltip = death_management.3001.tt
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
}
#Dead parent - Your dungeon
death_management.3002 = {
type = character_event
title = death_management.3002.t
desc = {
first_valid = {
triggered_desc = {
trigger = { age < 14 }
desc = death_management.3002.child
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = death_management.3002.like
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = death_management.3002.neutral
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = death_management.3002.dislike
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
#Like
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value >= 40
}
}
name = death_management.3002.a
custom_tooltip = death_management.3002.tt
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
#Neutral
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.3002.b
custom_tooltip = death_management.3002.tt
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
#Dislike
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.3002.c
custom_tooltip = death_management.3002.tt
stress_impact = {
base = medium_stress_impact_loss
}
}
#Child reacts
option = {
trigger = {
age < 14
}
name = death_management.3002.d
custom_tooltip = death_management.3002.tt
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
}
#Dead Rival - Your Dungeon
death_management.3006 = {
type = character_event
title = death_management.3006.t
desc = death_management.3006.desc
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
custom_tooltip = death_management.3006.a.tt
add_prestige = medium_prestige_gain
stress_impact = {
base = major_stress_impact_loss
}
}
option = {
name = death_management.3006.a
trigger = {
NOT = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
}
}
}
option = { # Continue
name = death_management.3006.b
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
NOT = {
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
custom_tooltip = house_feud_continue_tt
ai_chance = {
base = 25
ai_value_modifier = {
ai_vengefulness = 1
ai_boldness = 1
}
}
}
option = { # End
name = death_management.3006.c
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
NOT = {
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
house ?= {
change_house_relation_effect = {
HOUSE = scope:house_feud_rival.house
VALUE = house_relation_improve_major_value
REASON = de_escalation
CHAR = root
TARGET_CHAR = scope:dead_character
TITLE = scope:dummy_gender
}
}
ai_chance = {
base = 25
ai_value_modifier = {
ai_vengefulness = -1
ai_boldness = -1
}
}
}
option = { # Wipe end
name = death_management.3006.d
trigger = {
house_has_feud_relation_with_trigger = { TARGET = scope:dead_character }
house_feud_wiped_out_trigger = { TARGET = scope:dead_character }
}
}
}
#Dead betrothed - Your dungeon
death_management.3008 = {
type = character_event
title = death_management.3008.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = death_management.3008.desc.like
}
triggered_desc = {
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
desc = death_management.3008.desc.dislike
}
desc = death_management.3008.desc.neutral
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
option = { #Like/neutral
trigger = {
NOR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.3008.a
custom_tooltip = death_management.3008.a.tt
if = {
limit = {
opinion = {
target = scope:dead_character
value >= 60
}
}
stress_impact = {
base = minor_stress_impact_gain
}
}
}
option = { #Dislike
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.3008.b
custom_tooltip = death_management.3008.a.tt
stress_impact = {
base = medium_stress_impact_loss
}
}
}
######################################################
# NOTIFICATION EVENTS - HOUSE ARREST DEATH
# 4000-4999
######################################################
#Notification about dead spouse - House arrest
death_management.4000 = {
type = character_event
title = death_management.4000.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:like
}
desc = {
desc = death_management.4000.like_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4000.like_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4000.like
}
}
}
}
triggered_desc = {
trigger = {
NOR = {
exists = scope:like
exists = scope:dislike
}
}
desc = {
desc = death_management.4000.neutral_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4000.neutral_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4000.neutral
}
}
}
}
triggered_desc = {
trigger = {
exists = scope:dislike
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4000.dislike_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4000.dislike
}
}
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
has_variable_list = like
is_target_in_variable_list = {
name = like
target = scope:dead_character
}
}
save_scope_value_as = {
name = like
value = yes
}
}
else_if = {
limit = {
has_variable_list = dislike
is_target_in_variable_list = {
name = dislike
target = scope:dead_character
}
}
save_scope_value_as = {
name = dislike
value = yes
}
}
}
#My beloved spouse!
option = {
trigger = {
exists = scope:like
}
name = death_management.4000.a
custom_tooltip = death_management.4000.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
}
#That's a shame
option = {
trigger = {
NOR = {
exists = scope:like
exists = scope:dislike
}
}
name = death_management.4000.b
custom_tooltip = death_management.4000.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = spouse
}
}
}
#What a relief!
option = {
trigger = {
exists = scope:dislike
}
name = death_management.4000.c
custom_tooltip = death_management.4000.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else = {
stress_impact = {
base = medium_stress_impact_loss
}
}
}
}
#Dead heir - House arrest
death_management.4007 = {
type = character_event
title = death_management.4007.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4007.start_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4007.start
}
}
first_valid = {
triggered_desc = {
trigger = {
OR = {
AND = {
is_male = yes
scope:dead_character = { is_male = yes }
}
AND = {
is_female = yes
scope:dead_character = { is_female = yes }
}
}
}
desc = death_management.4007.mytitle
}
desc = death_management.4007.ruler
}
first_valid = {
triggered_desc = {
trigger = {
has_government = landless_adventurer_government
}
desc = death_management.4007.end_adventurer
}
desc = death_management.4007.end
}
desc = death_management.4007.end.heir
}
theme = death
left_portrait = scope:dead_character
right_portrait = scope:new_heir
immediate = {
play_music_cue = mx_cue_death
if = {
limit = {
exists = player_heir
}
player_heir = {
save_scope_as = new_heir
}
}
}
option = {
name = death_management.4007.a
trigger = {
this != scope:house_arrest_holder
}
custom_tooltip = death_management.4007.a.tt
if = {
limit = { exists = scope:new_heir }
custom_tooltip = death_management.4007.a.tt.heir
}
stress_impact = {
base = minor_stress_impact_gain
}
}
option = {
name = death_management.4007.b
trigger = {
this = scope:house_arrest_holder
}
custom_tooltip = death_management.4007.a.tt
if = {
limit = { exists = scope:new_heir }
custom_tooltip = death_management.4007.a.tt.heir
}
stress_impact = {
base = minor_stress_impact_gain
}
}
}
#Notification for parent of dead child - House arrest
death_management.4001 = {
type = character_event
title = death_management.4001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
scope:dead_character = {
age < 16
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4001.child_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4001.child
}
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4001.like_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4001.like
}
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = {
desc = death_management.4001.neutral_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4001.neutral_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4001.neutral
}
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = {
desc = death_management.4001.dislike_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4001.dislike_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4001.dislike
}
}
desc = death_management.4001.dislike_end
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
#Good child
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value >= 50
}
}
name = death_management.4001.a
custom_tooltip = death_management.4001.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
}
#Neutral
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value < 50
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.4000.b
custom_tooltip = death_management.4001.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
}
#Relieved
option = {
trigger = {
scope:dead_character = {
is_adult = yes
}
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.4001.c
custom_tooltip = death_management.4001.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else = {
stress_impact = {
base = medium_stress_impact_loss
}
}
}
#Little child...
option = {
trigger = {
scope:dead_character = {
is_adult = no
}
}
name = death_management.4001.d
custom_tooltip = death_management.4001.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = child
}
}
}
}
#Dead parent - House arrest
death_management.4002 = {
type = character_event
title = death_management.4002.t
desc = {
first_valid = {
triggered_desc = {
trigger = { age < 14 }
desc = death_management.4002.child
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = {
desc = death_management.4002.like_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4002.like_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4002.like
}
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
desc = {
desc = death_management.4002.neutral_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4002.neutral_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4002.neutral
}
}
}
}
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value < 0
}
}
desc = {
desc = death_management.4002.dislike_opening
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4002.dislike_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4002.dislike
}
}
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
#Like
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value >= 40
}
}
name = death_management.4002.a
custom_tooltip = death_management.4002.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
}
#Neutral
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 40
}
opinion = {
target = scope:dead_character
value >= 0
}
}
name = death_management.4002.b
custom_tooltip = death_management.4002.tt
}
#Dislike
option = {
trigger = {
age >= 14
opinion = {
target = scope:dead_character
value < 0
}
}
name = death_management.4002.c
custom_tooltip = death_management.4002.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else = {
stress_impact = {
base = medium_stress_impact_loss
}
}
}
#Child reacts
option = {
trigger = {
age < 14
}
name = death_management.4002.d
custom_tooltip = death_management.4002.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = medium_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
stress_save_deceased_character_for_mental_break = {
TARGET = scope:dead_character
FLAG = parent
}
}
}
}
#Dead betrothed - House arrest
death_management.4008 = {
type = character_event
title = death_management.4008.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
opinion = {
target = scope:dead_character
value >= 40
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4008.desc.like_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4008.desc.like
}
}
}
}
triggered_desc = {
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4008.desc.dislike_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4008.desc.dislike
}
}
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
this = scope:house_arrest_holder
}
desc = death_management.4008.desc.neutral_my_prison
}
triggered_desc = {
trigger = {
this != scope:house_arrest_holder
}
desc = death_management.4008.desc.neutral
}
}
}
}
}
theme = death
left_portrait = scope:dead_character
immediate = {
play_music_cue = mx_cue_death
}
option = { #Like/neutral
trigger = {
NOR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.4008.a
custom_tooltip = death_management.4008.a.tt
if = {
limit = {
opinion = {
target = scope:dead_character
value >= 60
}
}
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = medium_stress_impact_gain
}
}
else = {
stress_impact = {
base = minor_stress_impact_gain
}
}
}
else = {
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_gain
}
}
}
}
option = { #Dislike
trigger = {
OR = {
opinion = {
target = scope:dead_character
value < 10
}
AND = {
has_personality_benevolent_trigger = no
OR = {
has_trait = callous
has_trait = sadistic
has_trait = lunatic
has_trait = possessed
has_trait = leper
has_trait = disfigured
has_trait = beauty_bad_2
has_trait = beauty_bad_3
has_trait = intellect_bad_2
has_trait = intellect_bad_3
has_trait = clubfooted
has_trait = hunchbacked
has_trait = dwarf
has_trait = inbred
}
}
}
}
name = death_management.4008.b
custom_tooltip = death_management.4008.a.tt
if = {
limit = {
this != scope:house_arrest_holder
}
stress_impact = {
base = minor_stress_impact_loss
}
}
else = {
stress_impact = {
base = medium_stress_impact_loss
}
}
}
}
######################################################
# OTHER DEATH MAINTENANCE EVENTS
# 4000-4999
######################################################
#Sets a variable on the pregnant mother so that the dead spouse will be assumed to be the child's father
death_management.0099 = {
type = character_event
hidden = yes
trigger = {
any_spouse = {
is_pregnant = yes
this = prev.primary_spouse
pregnancy_real_father = {
NOT = { is_consort_of = prev }
}
}
}
immediate = {
save_scope_as = dead_spouse
random_spouse = {
limit = {
is_pregnant = yes
pregnancy_real_father = {
NOT = { is_consort_of = prev }
}
}
save_scope_as = spouse_with_secret
}
scope:spouse_with_secret = {
set_variable = {
name = dead_spouse
value = scope:dead_spouse
days = 730
}
}
}
}
#Removes rejected_from_marriage_bed_modifier from spouses
death_management.0098 = {
type = character_event
hidden = yes
trigger = {
any_spouse = {
this = prev.primary_spouse
has_character_modifier = rejected_from_marriage_bed_modifier
}
}
immediate = {
every_spouse = {
remove_character_modifier = rejected_from_marriage_bed_modifier
}
}
}
#Sets a flag if the dead one was someone you loved (to make suicide available)
death_management.0097 = {
type = character_event
hidden = yes
immediate = {
save_scope_as = dead_character
every_relation = {
type = soulmate
limit = {
NOT = { is_in_list = loved_ones_left_behind }
NOT = { has_trait = callous }
}
add_to_list = loved_ones_left_behind
set_variable = {
name = mourning_soulmate
value = scope:dead_character
}
}
every_parent = {
limit = {
NOT = { is_in_list = loved_ones_left_behind }
NOT = { has_trait = callous }
OR = {
opinion = {
target = scope:dead_character
value >= 70
}
reverse_opinion = {
target = scope:dead_character
value >= 70
}
}
NOR = {
has_relation_rival = scope:dead_character
has_relation_potential_rival = scope:dead_character
}
}
add_to_list = loved_ones_left_behind
set_variable = {
name = mourning_parent
value = scope:dead_character
}
}
every_relation = {
type = best_friend
limit = {
NOT = { is_in_list = loved_ones_left_behind }
NOT = { has_trait = callous }
NOR = {
has_relation_rival = scope:dead_character
has_relation_potential_rival = scope:dead_character
}
}
add_to_list = loved_ones_left_behind
set_variable = {
name = mourning_friend
value = scope:dead_character
}
}
#Add flag
every_in_list = {
list = loved_ones_left_behind
add_character_flag = {
flag = make_suicide_available
years = 10
}
}
}
}
# Flags that we need to update the opinions of any other spouses (if they exist) of our spouse/concubine after we die.
death_management.0096 = {
type = character_event
hidden = yes
immediate = {
every_consort = {
save_scope_as = surviving_consort
every_consort = {
limit = { this != root}
trigger_event = {
id = death_management.0095
days = 1
}
}
}
}
}
# Actually updates the opinions of other spouses/concubines.
death_management.0095 = {
type = character_event
hidden = yes
immediate = {
update_active_consort_opinion_effect = { PARTNER = scope:surviving_consort }
}
}
#Clan Succession Laws: delaying reducing of house unity on house head death, to prevent premature changing of succession laws
death_management.0100 = {
type = character_event
hidden = yes
immediate = {
house = {
# Needs to be add_unity_value and not add_unity_interaction_effect because add_unity_interaction_effect does not allow only one person to affect unity
# Value and character scopes are saved in on_death effect
add_unity_value = {
value = scope:unity_change
character = scope:dead_house_head
desc = clan_unity_house_head_died.desc
}
}
}
}
death_management.0123 = {
type = character_event
hidden = yes
trigger = {
exists = house
exists = scope:killer.house
}
immediate = {
save_scope_as = victim
trigger_event = {
id = death_management.0124
delayed = yes
}
}
}
death_management.0124 = {
type = character_event
hidden = yes
trigger = {
exists = scope:killer.house
scope:victim = { death_killer_always_public_trigger = yes }
}
immediate = {
scope:victim.house ?= {
change_house_relation_effect = {
HOUSE = scope:killer.house
VALUE = house_relation_damage_medium_value
REASON = killed
CHAR = scope:killer
TARGET_CHAR = scope:victim
TITLE = scope:dummy_gender
}
}
}
}
death_management.0150 = {
type = character_event
hidden = yes
immediate = {
debug_log = "death_management.0150 fired"
save_scope_as = dead_ruler
artifact_visual_after_death_dead_character_event_effect = yes
}
}
death_management.0151 = {
type = character_event
hidden = yes
immediate = {
debug_log = "death_management.0151 fired"
save_scope_as = dead_artifact_visual_heir
scope:dead_ruler = {
artifact_visual_after_death_dead_character_flag_effect = yes
}
}
}
### KNOW THYSELF PERK: Death is coming soon
death_management.9998 = {
type = character_event
title = death_management.9998.t
desc = death_management.9998.desc
theme = death
left_portrait = root
trigger = {
NOT = { has_character_flag = had_death_management_9998_recently }
}
option = {
name = death_management.9998.a
flavor = death_management.9998.a.tt
hidden_effect = {
add_character_flag = {
flag = had_death_management_9998_recently
days = 370
}
}
}
}
### NATURAL DEATH BY EVENT
death_management.9999 = {
hidden = yes
trigger = {
is_alive = yes
}
immediate = {
death = natural
}
}