N3OW/events/title_events.txt
2026-01-06 14:25:21 +01:00

535 lines
12 KiB
Text

#########################################
# TITLE SPECIFIC EVENTS #
#########################################
namespace = title_event
# 0001-0010: Title name changes, by Emil Tisander
# 0011-0020: Asturias becomes Leon & Castille, by Ewan Cowhig Croft
#########################################
# West Francia becomes France when no longer controlled by a Karling
title_event.0001 = {
type = character_event
title = title_event_francia_name_change.title
desc = title_event_francia_name_change.desc
theme = crown
right_portrait = root
trigger = {
scope:title = {
this = title:k_france
}
NOR = {
dynasty = { this = dynasty:25061 } # Not held by a Karling
any_liege_or_above = {
dynasty = { this = dynasty:25061 } # And does not have a liege that is a Karling
}
has_global_variable = west_francia_renamed
}
}
immediate = {
title:k_france = {
save_scope_as = francia_title
}
set_global_variable = {
name = west_francia_renamed
value = yes
}
}
option = {
name = title_event_francia_name_change.a
custom_tooltip = {
text = title_event_francia_name_change.a_tt_1
title:k_france = {
reset_title_name = yes # I.e. set_title_name = k_france
}
}
}
}
# East Francia becomes Germany when no longer controlled by a Karling
title_event.0002 = {
type = character_event
title = title_event_francia_name_change.title
desc = title_event_francia_name_change.desc
theme = crown
right_portrait = root
trigger = {
scope:title = {
this = title:k_east_francia
}
NOR = {
dynasty = { this = dynasty:25061 } # Not held by a Karling
any_liege_or_above = {
dynasty = { this = dynasty:25061 } # And does not have a liege that is a Karling
}
has_global_variable = east_francia_renamed
}
}
immediate = {
title:k_east_francia = {
save_scope_as = francia_title
}
set_global_variable = {
name = east_francia_renamed
value = yes
}
}
option = {
name = title_event_francia_name_change.a
custom_tooltip = {
text = title_event_francia_name_change.a_tt_2
title:k_east_francia = {
set_title_name = k_germany
}
}
}
}
##################################################
# Splitting the Crown
# by Ewan Cowhig Croft
# 0011 - 0020
##################################################
# Hidden management event to determine if we need to axe Asturias &, if we do, what notification events to send out afterwards.
title_event.0011 = {
hidden = yes
trigger = {
scope:title = title:k_castille
title:k_asturias = {
# Leon must be de jure part of Asturias, or else there's no reason to ever stop calling it Asturias.
any_in_de_jure_hierarchy = { this = title:d_leon }
}
}
immediate = {
# Set up some scopes for easy reference.
title:k_castille = {
save_scope_as = castille
holder = { save_scope_as = castille_char }
}
title:k_asturias = {
save_scope_as = asturias
if = {
limit = { exists = holder }
holder = { save_scope_as = leon_char }
}
}
title:k_leon = { save_scope_as = leon }
## Plus one for backgrounds; we take this one to get the hilly backdrops of northern Iberia.
province:1815 = { save_scope_as = background_terrain_scope }
# Then fire off relevant notifications to scope:leon_char & scope:castille_char.
## If Asturias doesn't exist when Leon is created, we just send Castille one.
if = {
limit = {
NOT = { exists = title:k_asturias.holder }
}
scope:castille_char = { trigger_event = title_event.0012 }
}
## & if Leon & Castille are now held by the same char, they get another.
else_if = {
limit = { scope:leon_char = scope:castille_char }
scope:castille_char = { trigger_event = title_event.0013 }
}
## Otherwise, we send out the standard two-person configuration.
else = {
scope:leon_char = { trigger_event = title_event.0014 }
scope:castille_char = { trigger_event = title_event.0015 }
}
# Finally, execute the effects.
asturias_becomes_leon_and_castille_effect = yes
}
}
# There is no Asturian King, but Castille now exists.
title_event.0012 = {
type = character_event
title = title_event.0012.t
desc = title_event.0012.desc
theme = realm
left_portrait = {
character = scope:castille_char
animation = personality_honorable
}
override_background = { reference = terrain_scope }
immediate = {
show_as_tooltip = { asturias_becomes_leon_and_castille_effect = yes }
}
# As it should be.
option = {
name = title_event.0012.a
# No stress needed for a single-option notification event.
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
}
# The Asturian King is also King of Castille.
title_event.0013 = {
type = character_event
title = title_event.0013.t
desc = title_event.0013.desc
theme = realm
left_portrait = {
character = scope:castille_char
animation = personality_honorable
}
override_background = { reference = terrain_scope }
immediate = {
show_as_tooltip = { asturias_becomes_leon_and_castille_effect = yes }
}
# Two crowns are better than one!
option = {
name = title_event.0013.a
# No stress needed for a single-option notification event.
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
}
# Leon POV: Asturias becomes Leon.
title_event.0014 = {
type = character_event
title = title_event.0014.t
desc = title_event.0014.desc
theme = realm
left_portrait = {
character = scope:leon_char
animation = anger
}
right_portrait = {
character = scope:castille_char
animation = personality_greedy
}
override_background = { reference = terrain_scope }
immediate = {
show_as_tooltip = { asturias_becomes_leon_and_castille_effect = yes }
}
# Splitters!
option = {
name = title_event.0014.a
# No stress needed for the default option in a notification event.
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
# We'll get those lands back some day...
option = {
name = title_event.0014.b
# We only want to allow the mechanical effect options as RP-outlets for players.
trigger = { is_ai = no }
progress_towards_rival_effect = {
REASON = rival_lands_stolen
CHARACTER = scope:castille_char
OPINION = default_rival_opinion
}
stress_impact = { forgiving = minor_stress_impact_gain }
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
# Huzzah! A whole _kingdom_ of comrades!
option = {
name = title_event.0014.c
# We only want to allow the mechanical effect options as RP-outlets for players.
trigger = { is_ai = no }
progress_towards_friend_effect = {
REASON = friend_castille_leon
CHARACTER = scope:castille_char
OPINION = default_friend_opinion
}
stress_impact = { vengeful = minor_stress_impact_gain }
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
}
# Castille POV: Asturias becomes Leon.
title_event.0015 = {
type = character_event
title = title_event.0015.t
desc = title_event.0015.desc
theme = realm
left_portrait = {
character = scope:castille_char
animation = happiness
}
right_portrait = {
character = scope:leon_char
animation = anger
}
override_background = { reference = terrain_scope }
immediate = {
show_as_tooltip = { asturias_becomes_leon_and_castille_effect = yes }
}
# Power is back where it should always have been.
option = {
name = title_event.0015.a
# No stress needed for the default option in a notification event.
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
# Today, Castille. Tomorrow, _Leon_.
option = {
name = title_event.0015.b
# We only want to allow the mechanical effect options as RP-outlets for players.
trigger = { is_ai = no }
scope:leon_char = {
progress_towards_rival_effect = {
REASON = rival_leon_formed
CHARACTER = scope:castille_char
OPINION = default_rival_opinion
}
}
stress_impact = { forgiving = minor_stress_impact_gain }
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
# We may be divided in rule, but we're united by blood!
option = {
name = title_event.0015.c
# We only want to allow the mechanical effect options as RP-outlets for players.
trigger = { is_ai = no }
scope:leon_char = {
progress_towards_friend_effect = {
REASON = friend_castille_leon
CHARACTER = scope:castille_char
OPINION = default_friend_opinion
}
}
stress_impact = { vengeful = minor_stress_impact_gain }
ai_chance = {
# No fine tweaking needed for the AI chance on a notification event.
base = 100
}
}
}
# Ascended Throne memory maintenance
title_event.9900 = {
type = character_event
hidden = yes
cooldown = { days = 1 }
trigger = {
is_landless_adventurer = no
any_in_list = { variable = new_titles }
}
immediate = {
if = {
limit = {
is_target_in_variable_list = {
name = new_titles
target = root.primary_title
}
}
primary_title = { save_scope_as = new_primary_title }
}
else = {
ordered_in_list = {
variable = new_titles
order_by = tier
save_scope_as = new_primary_title
}
}
if = {
limit = { exists = scope:new_primary_title.previous_holder }
scope:new_primary_title.previous_holder = { save_scope_as = flavor }
}
else = { save_scope_as = flavor }
create_character_memory = {
type = ascended_throne_memory
participants = {
flavor_character = scope:flavor
}
}
set_variable = {
name = title_count
value = -1
}
every_in_list = {
variable = new_titles
save_temporary_scope_as = title_temp
scope:new_memory = {
add_to_variable_list = {
name = new_titles
target = scope:title_temp
}
}
root = {
change_variable = {
name = title_count
add = 1
}
}
}
scope:new_memory = {
set_variable = {
name = title_count
value = root.var:title_count
}
set_variable = {
name = landed_title
value = scope:new_primary_title
}
set_variable = {
name = reason
value = scope:real_transfer_type
}
#Only children should get childhood memories
if = {
limit = {
root = { is_adult = no }
}
set_variable = childhood_memory
}
# Bonus scopes
if = {
limit = { exists = root.var:ascended_throne_extra }
set_variable = {
name = ascended_throne_extra
value = root.var:ascended_throne_extra
}
root = { remove_variable = ascended_throne_extra }
}
}
clear_variable_list = new_titles
remove_variable = title_count
}
}
#Lost title memory maintenance
title_event.9901 = {
type = character_event
hidden = yes
cooldown = { days = 1 }
immediate = {
ordered_in_list = {
variable = lost_titles
order_by = tier
save_scope_as = highest_old_title
}
create_character_memory = {
type = lost_title_memory
participants = {
new_holder = scope:new_holder
}
}
set_variable = {
name = title_count
value = -1
}
every_in_list = {
variable = lost_titles
save_temporary_scope_as = title_temp
scope:new_memory = {
add_to_variable_list = {
name = lost_titles
target = scope:title_temp
}
}
root = {
change_variable = {
name = title_count
add = 1
}
}
}
scope:new_memory = {
set_variable = {
name = title_count
value = root.var:title_count
}
set_variable = {
name = landed_title
value = scope:highest_old_title
}
set_variable = {
name = reason
value = scope:real_transfer_type
}
#Only children should get childhood memories
if = {
limit = {
root = { is_adult = no }
}
set_variable = childhood_memory
}
# Bonus scopes
if = {
limit = { exists = root.var:ascended_throne_extra }
set_variable = {
name = ascended_throne_extra
value = root.var:ascended_throne_extra
}
root = { remove_variable = ascended_throne_extra }
}
}
clear_variable_list = new_titles
remove_variable = title_count
}
}
# Make sure newbie adventurers aren't locked out of their camp.
title_event.9911 = {
type = character_event
hidden = yes
trigger = {
government_has_flag = government_is_landless_adventurer
NOR = {
is_commanding_army = yes
exists = involved_activity
is_travelling = yes
is_imprisoned = yes
}
}
immediate = { set_location_to_default = yes }
}