N3OW/events/dlc/ep3/ep3_roman_restoration_events.txt
2026-01-06 14:25:21 +01:00

521 lines
12 KiB
Text

namespace = ep3_roman_restoration
#######################################
###
### EP3 RESTORE ROME STORY CYCLE EVENTS
### by Chad Uhl
###
### 0100 Justinian's Dream
### 0101-0109 Rome Reformed Notifications
### 0300-0590 Post-Restoration Difficulties
###
#######################################
# Justinian's Dream
# Event fired on story cycle setup informing the player that they can form the roman empire
ep3_roman_restoration.0001 = {
type = character_event
title = ep3_roman_restoration.0001.t
desc = ep3_roman_restoration.0001.desc
theme = emperor
override_background = {
trigger = { capital_county = title:c_byzantion }
reference = ep3_constantinople
}
left_portrait = {
character = root
animation = emotion_thinking_scepter
}
trigger = {
NOT = { has_global_variable = flag_restored_roman_empire }
}
option = {
name = ep3_roman_restoration.0001.a
custom_tooltip = ep3_roman_restoration.0001.a.tt
decision:restore_roman_empire_decision = {
open_view_data = {
view = decision_detail
player = root
}
}
}
}
# Should I LARP or nah?
ep3_roman_restoration.0100 = {
type = character_event
window = fullscreen_event
title = ep3_roman_restoration.0100.t
desc = ep3_roman_restoration.0100.desc
theme = emperor
override_background = { reference = ep3_fullscreen_restore_rome }
immediate = {
save_scope_as = scoped_emperor
}
option = { # LARP (Hard Mode)
name = ep3_roman_restoration.0100.a
custom_tooltip = ep3_roman_restoration.hard_mode
custom_tooltip = ep3_roman_restoration.end_hard_mode
custom_tooltip = ep3_roman_restoration.invasion_cb
every_held_title = {
limit = {
is_head_of_faith = yes
}
root = {
destroy_title = prev
}
}
set_character_faith = faith:hellenic_pagan
primary_title = { set_state_faith = faith:hellenic_pagan }
every_held_title = {
custom = custom.every_held_county
title_tier = county
set_county_faith = faith:hellenic_pagan
}
every_vassal = {
custom = custom.every_vassal
limit = {
NOT = {
any_held_title = {
is_head_of_faith = yes # you cannot convert the Ecumenical Patriarch, sorry
}
}
}
custom_tooltip = {
text = may_choose_to_convert_hellenic_desc
run_interaction = { # We use the same interaction as when creating a new faith to keep a consistent behaviour, since that is essentially what you're doing here
interaction = ask_for_conversion_interaction
actor = root
recipient = this
execute_threshold = accept
}
}
}
custom_tooltip = {
text = ep3_roman_restoration.household_gods_tenet
set_global_variable = household_gods_tenet_unlocked
}
custom_tooltip = {
text = uses_custom_caesar_flavourization_tt
set_variable = uses_custom_caesar_flavourization
}
if = {
limit = {
any_owned_story = { type = ep3_story_cycle_restoring_rome }
}
random_owned_story = {
type = ep3_story_cycle_restoring_rome
set_variable = roman_empire_hard_mode
}
}
}
option = { # Roleplay option (become Hellenic without Hard Mode)
name = ep3_roman_restoration.0100.c
custom_tooltip = ep3_roman_restoration.easy_mode
every_held_title = {
limit = {
is_head_of_faith = yes
}
root = {
destroy_title = prev
}
}
set_character_faith = faith:hellenic_pagan
primary_title = { set_state_faith = faith:hellenic_pagan }
every_held_title = {
custom = custom.every_held_county
title_tier = county
set_county_faith = faith:hellenic_pagan
}
every_vassal = {
custom = custom.every_vassal
limit = {
NOT = {
any_held_title = {
is_head_of_faith = yes # you cannot convert the Ecumenical Patriarch, sorry
}
}
}
custom_tooltip = {
text = may_choose_to_convert_hellenic_desc
run_interaction = { # We use the same interaction as when creating a new faith to keep a consistent behaviour, since that is essentially what you're doing here
interaction = ask_for_conversion_interaction
actor = root
recipient = this
execute_threshold = accept
}
}
}
custom_tooltip = {
text = ep3_roman_restoration.household_gods_tenet
set_global_variable = household_gods_tenet_unlocked
}
custom_tooltip = {
text = uses_custom_caesar_flavourization_tt
set_variable = uses_custom_caesar_flavourization
}
}
option = { # Easy Mode
name = ep3_roman_restoration.0100.b
custom_tooltip = ep3_roman_restoration.easy_mode
}
after = {
create_roman_empire_scripted_effect = yes
set_nickname_effect = { NICKNAME = nick_the_glorious }
# Send narrative fluff to other players (if any).
every_player = {
limit = { this != root }
trigger_event = ep3_roman_restoration.0101
}
}
}
# Some chucklefuck restored Rome
ep3_roman_restoration.0101 = {
type = character_event
window = fullscreen_event
title = roman_restoration.0002.t
desc = {
desc = ep3_roman_restoration.0101.intro
first_valid = {
triggered_desc = {
trigger = { scope:scoped_emperor.primary_title.state_faith ?= faith:hellenic_pagan }
desc = ep3_roman_restoration.0101.hellenic
}
triggered_desc = {
trigger = { scope:scoped_emperor.primary_title.state_faith ?= faith:orthodox }
desc = ep3_roman_restoration.0101.orthodox
}
desc = ep3_roman_restoration.0101.fallback
}
desc = ep3_roman_restoration.0101.outro
}
theme = emperor
override_background = { reference = ep3_fullscreen_restore_rome }
immediate = {
#Same-faith non-empire tier rulers are over-awed.
if = {
limit = { faith = scope:scoped_emperor.primary_title.state_faith }
play_music_cue = "mx_cue_epic_sacral_moment"
}
#Otherwise, this is a tacit statement of imperial threat.
else = { play_music_cue = "mx_cue_combat_2" }
}
option = {
name = ep3_roman_restoration.0101.a
}
}
#######################################
### POST-ROME DIFFICULTIES
# Your inefficient governor messed up, causing mass loss in popular opinion. Can you fix it?
ep3_roman_restoration.0300 = {
type = character_event
title = ep3_roman_restoration.0300.t
desc = ep3_roman_restoration.0300.desc
theme = emperor
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:inefficient_governor
animation = shock
}
cooldown = { years = 20 }
immediate = {
ordered_vassal = {
limit = {
is_governor = yes
is_ai = yes
}
order_by = { # Mostly sort by governor efficiency
value = governor_efficiency
multiply = -10
# Prefer governors with a larger realm size for more difficulty
add = sub_realm_size
}
save_scope_as = inefficient_governor
}
custom_tooltip = ep3_roman_restoration.0300.efficiency
}
option = { # Stewardship Challenge
name = ep3_roman_restoration.0300.a
duel = {
skill = stewardship
value = excellent_skill_level
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = ep3_roman_restoration.0300.a.success
left_icon = scope:inefficient_governor
right_icon = scope:inefficient_governor.primary_title
scope:inefficient_governor = {
every_sub_realm_county = {
custom = ep3_roman_restoration.0300.every_sub_realm_county
add_county_modifier = {
modifier = restore_rome_recuperated_county_opinion_modifier
years = 10
}
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_bad
title = ep3_roman_restoration.0300.a.failure
left_icon = scope:inefficient_governor
right_icon = scope:inefficient_governor.primary_title
scope:inefficient_governor = {
every_sub_realm_county = {
custom = ep3_roman_restoration.0300.every_sub_realm_county
add_county_modifier = {
modifier = restore_rome_devastated_county_opinion_modifier
years = 10
}
}
}
}
}
}
}
option = { # Fire the Governor
name = ep3_roman_restoration.0300.b
change_influence = massive_influence_loss
save_scope_as = actor
scope:inefficient_governor = {
save_scope_as = recipient
primary_title = { save_scope_as = landed_title }
}
save_scope_value_as = {
name = hook
value = no
}
scope:inefficient_governor = {
every_sub_realm_county = {
custom = ep3_roman_restoration.0300.every_sub_realm_county
add_county_modifier = {
modifier = restore_rome_recuperated_county_opinion_modifier
years = 10
}
}
force_step_down_landed_titles = yes
}
}
option = { # Opt-Out
name = ep3_roman_restoration.0300.c
scope:inefficient_governor = {
every_sub_realm_county = {
custom = ep3_roman_restoration.0300.every_sub_realm_county
add_county_modifier = {
modifier = restore_rome_lowered_county_opinion_modifier
years = 10
}
}
}
stress_impact = {
base = medium_stress_impact_loss
lazy = minor_stress_impact_loss
diligent = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
}
}
}
# Every 10-30 years, a random kingdom will raid you
ep3_roman_restoration.0500 = {
type = character_event
title = ep3_roman_restoration.0500.t
desc = ep3_roman_restoration.0500.desc
theme = emperor
left_portrait = {
character = root
animation = emotion_thinking_scepter
}
right_portrait = {
character = scope:marshal
animation = inspect_weapon
}
lower_center_portrait = scope:target_kingdom
cooldown = { years = { 10 30 } }
trigger = {
exists = cp:councillor_marshal
any_neighboring_top_liege_realm_owner = {
is_ai = yes
is_at_war = no
primary_title = { tier >= tier_kingdom }
NOR = {
is_allied_to = root
any_truce_target = { this = root }
has_relation_friend = root
has_relation_lover = root
}
any_top_realm_border_county = {
any_neighboring_county = {
holder.top_liege = root
NOT = {
title_province = { has_province_modifier = recently_looted_modifier }
}
}
}
}
}
immediate = {
cp:councillor_marshal = { save_scope_as = marshal }
ordered_neighboring_top_liege_realm_owner = {
limit = {
is_ai = yes
is_at_war = no
primary_title = { tier >= tier_kingdom }
any_top_realm_border_county = {
any_neighboring_county = {
holder.top_liege = root
NOT = {
title_province = { has_province_modifier = recently_looted_modifier }
}
}
}
}
order_by = {
value = 1
add = { # inverted opinion since we're looking for ppl who hate you
value = "opinion(root)"
multiply = -1
}
if = {
limit = { can_raid_trigger = yes }
add = 50
}
}
save_scope_as = target_kingdom
}
scope:target_kingdom = {
random_top_realm_border_county = {
limit = {
any_neighboring_county = {
holder.top_liege = root
NOT = {
title_province = { has_province_modifier = recently_looted_modifier }
}
}
}
random_neighboring_county = {
limit = {
holder.top_liege = root
NOT = {
title_province = { has_province_modifier = recently_looted_modifier }
}
}
save_scope_as = target_county
}
}
}
}
option = {
name = ep3_roman_restoration.0500.a
}
after = {
scope:target_kingdom = {
start_war = {
cb = ep3_roman_empire_border_war
target = root
target_title = scope:target_county
}
}
}
}
# Special Bubonic Plague Spawns - Commented out and disabled because this is not very fun
#ep3_roman_restoration.0510 = {
# hidden = yes
#
# immediate = {
# random_realm_county = {
# limit = { exists = holder }
# holder = { save_scope_as = target_holder }
# save_scope_as = infected_county
# title_province = {
# save_scope_as = target_province
# create_epidemic_outbreak = {
# type = bubonic_plague
# intensity = major
# save_scope_as = epidemic
# }
# }
# }
# trigger_event = epidemic_events.1100
# }
#}
# Mongol Invasion Spawns
ep3_roman_restoration.0520 = {
scope = none
hidden = yes
trigger = {
NOR = {
has_global_variable = mongols_have_appeared
any_player = {
THIS = culture:mongol.culture_head
realm_size >= 100
}
}
}
immediate = {
set_global_variable = {
name = mongols_have_appeared
value = yes
}
debug_log = "Mongols appeared!"
debug_log_date = yes
spawn_temujin_character_effect = yes
scope:temujin = {
save_scope_as = story_owner
create_story = story_mongol_invasion
}
}
}