unfucking the mod

This commit is contained in:
trashmasteruni 2026-01-06 14:25:21 +01:00
parent cbe3fbcda2
commit d887392b56
1167 changed files with 26982 additions and 13 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,951 @@
namespace = epidemic_events
epidemic_events.2001 = { #defender trying to status quo the vassal war cuz he's sick
type = character_event
title = epidemic_events.2001.t
desc = epidemic_events.2001.desc
theme = plague
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:pleading_vassal
animation = beg
}
lower_right_portrait = {
character = scope:attacking_vassal
}
override_background = {
reference = army_camp
}
override_effect_2d = {
reference = fog
}
cooldown = { years = 30 }
trigger = {
is_available_adult = yes
any_vassal = {
is_ai = yes
is_at_war = yes
any_character_war = {
primary_attacker = {
is_vassal_of = root
is_ai = yes
}
is_defender = prev
attacker_war_score > 30
}
realm_has_any_epidemic = { SIZE = 3 INTENSITY = minor }
current_gold_value > minor_gold_value
}
}
immediate = {
random_vassal = {
limit = {
is_ai = yes
is_at_war = yes
any_character_war = {
primary_attacker = {
is_vassal_of = root
is_ai = yes
}
is_defender = prev
attacker_war_score > 30
}
realm_has_any_epidemic = { SIZE = 2 INTENSITY = minor }
current_gold_value > minor_gold_value
}
save_scope_as = pleading_vassal
get_random_realm_epidemic = { INTENSITY = minor }
random_character_war = {
limit = {
primary_attacker = {
is_vassal_of = root
is_ai = yes
}
is_defender = prev
attacker_war_score > 30
}
save_scope_as = vassal_war
}
}
scope:vassal_war = {
primary_attacker = {
save_scope_as = attacking_vassal
}
}
set_variable = {
name = gold_transfer_value
value = scope:pleading_vassal.current_gold_value
}
scope:pleading_vassal = {
pay_short_term_gold = {
target = root
gold = current_gold_value
}
hidden_effect = {
if = {
limit = {
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
}
random = {
chance = 25
infect_with_epidemic = scope:epidemic_scope
}
}
}
}
}
option = { #send a royal order for white peace
name = epidemic_events.2001.c
duel = {
skill = diplomacy
target = scope:attacking_vassal
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 1
}
send_interface_toast = {
title = epidemic_events.2001.c.success
left_icon = scope:pleading_vassal
right_icon = scope:attacking_vassal
scope:vassal_war = {
end_war = white_peace
}
add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_gain }
scope:pleading_vassal = {
add_opinion = {
modifier = thankful_opinion
opinion = 30
target = root
}
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
send_interface_toast = {
title = epidemic_events.2001.c.failure
left_icon = scope:pleading_vassal
right_icon = scope:attacking_vassal
scope:pleading_vassal = {
add_opinion = {
modifier = disappointed_opinion
opinion = -25
target = root
}
}
custom_tooltip = epidemic_events.2001.danger
}
hidden_effect = {
random = {
chance = 10
trigger_event = {
months = 4
id = epidemic_events.2002
}
}
}
}
}
stress_impact = {
greedy = medium_stress_gain
compassionate = medium_stress_loss
just = medium_stress_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = low_chance_impact_positive_ai_value
ai_rationality = low_chance_impact_positive_ai_value
}
}
}
option = { #imprison the other guy from traveling to you during a pandemic and wash whatever he touched
name = epidemic_events.2001.b
flavor = epidemic_events.2001.b.desc
imprison = {
target = scope:pleading_vassal
type = dungeon
}
scope:pleading_vassal = {
add_opinion = {
modifier = angry_opinion
opinion = -40
target = root
}
}
custom_tooltip = epidemic_events.2001.danger
hidden_effect = {
random = {
chance = 10
trigger_event = {
months = 4
id = epidemic_events.2002
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = low_chance_impact_positive_ai_value
ai_rationality = low_chance_impact_positive_ai_value
}
}
stress_impact = {
compassionate = medium_stress_gain
just = medium_stress_gain
paranoid = major_stress_loss
}
}
option = { #pay money to end war
name = epidemic_events.2001.a
scope:vassal_war = {
end_war = white_peace
}
pay_treasury_or_gold = {
target = scope:attacking_vassal
value = {
value = root.var:gold_transfer_value
multiply = 0.5
}
}
scope:pleading_vassal = {
add_opinion = {
modifier = thankful_opinion
opinion = 30
target = root
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = low_chance_impact_negative_ai_value
ai_compassion = low_chance_impact_positive_ai_value
}
}
stress_impact = {
greedy = medium_stress_gain
compassionate = medium_stress_loss
}
}
after = {
hidden_effect = {
if = {
limit = {
scope:pleading_vassal = {
has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
is_imprisoned = no
}
}
random_list = {
60 = {
random_courtier = {
limit = {
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
}
save_scope_as = infected_courtier
}
send_interface_toast = {
title = epidemic_events.2001.epidemic_spread.t
left_icon = scope:pleading_vassal
right_icon = scope:infected_courtier
scope:infected_courtier = {
infect_with_epidemic = scope:epidemic_scope
}
}
}
20 = {
if = {
limit = {
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
}
}
random_courtier = {
limit = {
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
}
save_scope_as = first_infected_courtier
}
random_courtier = {
limit = {
NOT = {
has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
scope:first_infected_courtier = this
}
}
save_scope_as = second_infected_courtier
}
send_interface_toast = {
title = epidemic_events.2001.epidemic_spread.t
left_icon = scope:second_infected_courtier
right_icon = scope:first_infected_courtier
scope:first_infected_courtier = {
infect_with_epidemic = scope:epidemic_scope
}
scope:second_infected_courtier = {
infect_with_epidemic = scope:epidemic_scope
}
}
}
}
}
}
}
}
epidemic_events.2002 = {
type = character_event
title = epidemic_events.2002.t
desc = epidemic_events.2002.desc
theme = plague
left_portrait = {
character = root
animation = stress
}
lower_left_portrait = scope:attacking_vassal
lower_right_portrait = scope:pleading_vassal
trigger = {
exists = scope:epidemic_scope
exists = scope:vassal_war
is_ai = no
}
override_background = {
reference = battlefield
}
override_effect_2d = {
reference = fog
}
immediate = {
if = {
limit = {
scope:epidemic_scope = {
outbreak_intensity = minor
}
}
scope:epidemic_scope = {
set_epidemic_outbreak_intensity = major
}
}
else = {
scope:epidemic_scope = {
set_epidemic_outbreak_intensity = apocalyptic
}
}
add_legitimacy = miniscule_legitimacy_loss
}
option = {
name = epidemic_events.2002.a
stress_impact = {
base = minor_stress_gain
}
}
}
epidemic_events.2003 = { #maa are dying from war
type = character_event
title = epidemic_events.2003.t
desc = epidemic_events.2003.desc
theme = plague
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:marshal
animation = marshal_shield
}
override_background = {
reference = army_camp
}
override_effect_2d = {
reference = flies
}
cooldown = { years = 8 }
trigger = {
is_available_adult = yes
any_held_county = {
any_county_province = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
save_temporary_scope_as = first_county
}
any_held_county = {
this != scope:first_county
any_county_province = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
}
exists = cp:councillor_marshal
}
immediate = {
random_held_county = {
limit = {
any_county_province = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
}
random_county_province = {
limit = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
save_scope_as = first_epidemic_province
random_province_epidemic = {
save_scope_as = epidemic_scope
}
}
save_scope_as = first_epidemic_county
}
random_held_county = {
limit = {
this != scope:first_epidemic_county
any_county_province = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
}
random_county_province = {
limit = {
has_stationed_regiment = yes
any_province_epidemic = {
intensity >= minor
}
}
save_scope_as = second_epidemic_province
}
}
cp:councillor_marshal = { save_scope_as = marshal }
}
option = { #pay more to get more recruits
name = epidemic_events.2003.a
every_maa_regiment = {
change_maa_troops_count = {
value = {
value = this.maa_current_troops_count
multiply = -0.25
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = low_chance_impact_negative_ai_value
ai_rationality = low_chance_impact_positive_ai_value
}
}
stress_impact = {
greedy = medium_stress_gain
ambitious = medium_stress_loss
}
}
option = { #dont care, press peasants as maa
name = epidemic_events.2003.b
scope:first_epidemic_province = {
add_province_modifier = {
modifier = epidemic_pressed_levies
years = 5
}
}
scope:second_epidemic_province = {
add_province_modifier = {
modifier = epidemic_pressed_levies
years = 5
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = low_chance_impact_positive_ai_value
ai_compassion = low_chance_impact_negative_ai_value
ai_rationality = low_chance_impact_positive_ai_value
}
}
stress_impact = {
just = medium_stress_gain
}
}
option = { #close the barracks!
name = epidemic_events.2003.c
scope:first_epidemic_province = {
add_province_modifier = {
modifier = epidemic_closed_barracks
years = 5
}
}
scope:second_epidemic_province = {
add_province_modifier = {
modifier = epidemic_closed_barracks
years = 5
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_compassion = low_chance_impact_positive_ai_value
ai_rationality = low_chance_impact_positive_ai_value
}
}
stress_impact = {
paranoid = medium_stress_loss
}
}
}
epidemic_events.2004 = { #Medicinal Jar creation event
hidden = yes
trigger = {
is_available_adult = yes
court_position:court_physician_court_position ?= {
is_available_ai_adult = yes
culture != root.culture
NOT = {
has_character_flag = physician_medicinal_jar
}
}
realm_has_any_nearby_epidemic = { SIZE = 4 INTENSITY = minor }
}
cooldown = { years = 160 }
immediate = {
court_position:court_physician_court_position = {
save_scope_as = physician
}
scope:physician = {
create_artifact = {
name = medicine_jar
description = medicine_jar_desc
type = miscellaneous
visuals = glazed_jar
modifier = artifact_epidemic_resistance_1_modifier
modifier = artifact_learning_lifestyle_xp_2_modifier
save_scope_as = medicine_jar
quality = 50
}
add_character_flag = physician_medicinal_jar
}
if = {
limit = {
scope:physician = {
can_equip_artifact = scope:medicine_jar
}
}
scope:medicine_jar = {
equip_artifact_to_owner = yes
}
get_random_nearby_realm_epidemic = { INTENSITY = minor }
trigger_event = {
days = { 3 7 }
id = epidemic_events.2005
}
}
}
}
epidemic_events.2005 = { #Glass jar artifact
type = character_event
title = epidemic_events.2005.t
desc = epidemic_events.2005.desc
theme = plague
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:physician
animation = physician
}
artifact = {
target = scope:medicine_jar
position = lower_center_portrait
}
override_background = {
reference = physicians_study
}
trigger = {
scope:physician = { is_alive = yes }
}
option = { #politely ask the physisican to part with the jar
name = epidemic_events.2005.a
duel = {
skill = diplomacy
target = scope:physician
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 1
}
send_interface_toast = {
title = epidemic_events.2005.a.success
left_icon = scope:physician
scope:medicine_jar = {
set_owner = root
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
send_interface_toast = {
title = epidemic_events.2005.a.failure
left_icon = scope:physician
scope:medicine_jar = {
add_artifact_modifier = artifact_physician_aptitude_1_modifier
}
}
}
}
stress_impact = {
craven = minor_stress_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = low_chance_impact_negative_ai_value
}
}
}
option = { #violently grab the jar from physician
name = epidemic_events.2005.b
scope:physician = {
add_opinion = {
modifier = fp3_stole_from_me
opinion = -25
target = root
}
progress_towards_rival_effect = {
REASON = rival_stole_artifact
CHARACTER = root
OPINION = 0
}
}
scope:medicine_jar = {
set_owner = root
}
stress_impact = {
temperate = medium_stress_gain
just = medium_stress_gain
paranoid = medium_stress_loss
wrathful = medium_stress_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = low_chance_impact_positive_ai_value
ai_energy = low_chance_impact_positive_ai_value
ai_rationality = low_chance_impact_negative_ai_value
}
}
}
option = { #let phycisian keep his precious jar
name = epidemic_events.2005.c
scope:medicine_jar = {
add_artifact_modifier = artifact_physician_aptitude_1_modifier
}
stress_impact = {
temperate = medium_stress_loss
just = medium_stress_loss
trusting = medium_stress_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = low_chance_impact_positive_ai_value
ai_rationality = low_chance_impact_positive_ai_value
ai_greed = low_chance_impact_negative_ai_value
}
}
}
}
epidemic_events.2006 = { #Dancing plague
type = character_event
title = epidemic_events.2006.t
desc = epidemic_events.2006.desc
theme = plague
override_background = courtyard
override_effect_2d = { reference = flies }
left_portrait = {
character = root
animation = stress
}
right_portrait = {
character = scope:dance_victim
animation = dancing_plague
}
trigger = {
is_available_adult = yes
OR = {
is_ai = no
this = top_liege
}
capital_province = {
any_province_epidemic = {
#epidemic_type = epidemic_type:ergotism
intensity < apocalyptic
}
}
NOT = {
has_character_flag = had_event_dancing_plague
}
}
weight_multiplier = {
base = 1
modifier = { #Since a big outbreak occurred in Aachen 1374
add = 9
capital_province = {
county = title:c_aachen
}
current_date >= 1370.1.1
current_date <= 1380.1.1
}
modifier = { #Since an outbreak occurred in Erfurt 1247
add = 9
capital_province = {
duchy = title:d_thuringia
}
current_date >= 1240.1.1
current_date <= 1250.1.1
}
modifier = { #Since an outbreak occurred in Kolbigk 1021
add = 9
capital_province = {
geographical_region = ghw_region_saxony
}
current_date >= 1020.1.1
current_date <= 1030.1.1
}
modifier = { #Since it historically occurred in Europe
add = 1
capital_province = {
geographical_region = world_europe
}
}
}
immediate = {
capital_province = {
random_province_epidemic = {
limit = {
epidemic_type = epidemic_type:ergotism
outbreak_intensity < apocalyptic
}
save_scope_as = dancing_plague
}
}
create_character = {
template = servant_character
dynasty = none
location = root.capital_province
save_scope_as = dance_victim
}
hidden_effect = {
scope:dance_victim = {
add_trait = ergotism
}
}
scope:dancing_plague = {
set_epidemic_outbreak_intensity = apocalyptic
}
add_character_flag = had_event_dancing_plague
}
option = { #let's join the paaartey
trigger = {
has_trait = eccentric
}
name = epidemic_events.2006.a
add_character_modifier = {
modifier = ce1_gone_dancing
years = 2
}
hidden_effect = {
random = {
chance = 10
trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
}
}
stress_impact = {
eccentric = medium_stress_loss
}
ai_chance = {
base = 100
}
}
option = { #slay the demon!
trigger = {
has_trait = zealous
}
name = epidemic_events.2006.d
add_piety = minor_piety_gain
scope:dance_victim = {
death = {
death_reason = death_murder
killer = root
}
}
stress_impact = {
zealous = medium_stress_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = low_chance_impact_negative_ai_value
ai_zeal = low_chance_impact_positive_ai_value
}
}
}
option = { #eh, every dance stops eventually, right?
name = epidemic_events.2006.b
capital_county = {
add_county_modifier = {
modifier = dance_plague_modifier
years = 4
}
}
stress_impact = {
compassionate = minor_stress_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = low_chance_impact_negative_ai_value
}
}
}
option = { #tie them down! allieviate their pains somehow
name = epidemic_events.2006.c
hidden_effect = {
random = {
chance = 10
trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
}
}
stress_impact = {
lustful = medium_stress_loss
compassionate = medium_stress_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = low_chance_impact_positive_ai_value
}
}
}
}

View file

@ -0,0 +1,134 @@
namespace = story_event_legends
###################################
# Legend Ending Events
# 0001 - 0100
###################################
#Heroic Ending Story Event
story_event_legends.0001 = {
type = character_event
window = fullscreen_event
title = story_event_legends.0001.t
desc = {
desc = story_event_legends.0001.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = famous_deed }
}
desc = story_event_legends.0001.desc.famous_deed
}
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = battle }
}
desc = story_event_legends.0001.desc.battle
}
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = hunt }
}
desc = story_event_legends.0001.desc.hunt
}
desc = story_event_legends.0001.desc.fallback
}
desc = story_event_legends.0001.desc.outro
}
theme = legend
override_background = { reference = ce1_fullscreen_heroic_legend }
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
immediate = {
play_music_cue = mx_cue_legend
set_variable = {
name = finished_legend_var
value = scope:promoted_legend
}
scope:promoted_legend = { set_variable = my_legend_var }
}
option = {
name = story_event_legends.0001.a
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
}
}
#Legitimizing Ending Story Event
story_event_legends.0002 = {
type = character_event
window = fullscreen_event
title = story_event_legends.0002.t
desc = {
desc = story_event_legends.0002.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = famous_deed }
}
desc = story_event_legends.0002.desc.famous_deed
}
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = battle }
}
desc = story_event_legends.0002.desc.battle
}
desc = story_event_legends.0002.desc.fallback
}
desc = story_event_legends.0002.desc.outro
}
theme = legend
override_background = { reference = ce1_fullscreen_legitimizing_legend }
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
immediate = {
play_music_cue = mx_cue_legend
set_variable = {
name = finished_legend_var
value = scope:promoted_legend
}
scope:promoted_legend = { set_variable = my_legend_var }
}
option = {
name = story_event_legends.0002.a
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
}
}
#Holy Ending Story Event
story_event_legends.0003 = {
type = character_event
window = fullscreen_event
title = story_event_legends.0003.t
desc = {
desc = story_event_legends.0003.desc.intro
first_valid = {
triggered_desc = {
trigger = {
scope:promoted_legend = { has_legend_chapter = famous_deed }
}
desc = story_event_legends.0001.desc.famous_deed
}
desc = story_event_legends.0001.desc.fallback
}
desc = story_event_legends.0003.desc.outro
}
theme = legend
override_background = { reference = ce1_fullscreen_holy_legend }
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
immediate = {
play_music_cue = mx_cue_legend
set_variable = {
name = finished_legend_var
value = scope:promoted_legend
}
scope:promoted_legend = { set_variable = my_legend_var }
}
option = {
name = story_event_legends.0003.a
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
}
}

View file

@ -0,0 +1,790 @@
namespace = legend_events
############################
## Legend Spawn Events
## 0001-1000
## by James Beaumont
############################
# legend_events.0001 - Chronicler gives you a legend seed
# legend_events.0010 - Chronicler convinces someone to promote your legend
# legend_events.0020 - Hold Court presentation of a legend seed
# Chronicler gives you a legend seed :D
legend_events.0001 = {
type = character_event
title = legend_events.0001.t
desc = {
desc = legend_events.0001.desc.intro
first_valid = {
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:slew_dragon
}
desc = legend_events.0001.desc.mid.slew_dragon
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:ancestral_saint
}
desc = legend_events.0001.desc.mid.ancestral_saint
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:old_godly_descent
}
desc = legend_events.0001.desc.mid.old_godly_descent
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:raised_by_animals
}
desc = legend_events.0001.desc.mid.raised_by_animals
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:auspicious_stars
}
desc = legend_events.0001.desc.mid.auspicious_stars
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:virgin_birth
}
desc = legend_events.0001.desc.mid.virgin_birth
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:spoke_to_angels
}
desc = legend_events.0001.desc.mid.spoke_to_angels
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:fought_the_devil
}
desc = legend_events.0001.desc.mid.fought_the_devil
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:exotic_backstory
}
desc = legend_events.0001.desc.mid.exotic_backstory
}
triggered_desc = {
trigger = {
var:legend_seed_to_give = flag:ancient_people
}
desc = legend_events.0001.desc.mid.ancient_people
}
}
desc = legend_events.0001.desc.outro
}
theme = legend
left_portrait = {
character = root
animation = personality_honorable
}
right_portrait = {
character = scope:chronicler
animation = chancellor
}
lower_center_portrait = {
trigger = {
exists = scope:legend_character
}
character = scope:legend_character
}
# The Court Chronicler needs to be alive
trigger = {
scope:chronicler = {
is_alive = yes
}
}
immediate = {
random_list = { # Determine the seed to hand out
10 = { # Ancestor killed a dragon
trigger = {
any_ancestor = {
even_if_dead = yes
is_adult = yes
is_alive = no
}
NOT = { has_game_rule = historical_legends_only }
}
random_ancestor = {
even_if_dead = yes
limit = {
is_adult = yes
is_alive = no
}
weight = {
base = 1
modifier = {
add = prowess
}
modifier = {
add = martial
}
}
save_scope_as = legend_character
}
set_variable = {
name = legend_seed_to_give
value = flag:slew_dragon
}
}
10 = { # Ancestor was/should be a saint
trigger = {
any_ancestor = {
even_if_dead = yes
is_adult = yes
is_alive = no
}
NOT = { has_game_rule = historical_legends_only }
}
random_ancestor = {
even_if_dead = yes
limit = {
is_adult = yes
is_alive = no
}
weight = {
base = 1
modifier = {
add = learning
}
modifier = {
factor = 3
OR = {
num_virtuous_traits = {
target = root.faith
value >= 1
}
has_trait = saint
}
}
modifier = {
factor = 0.1
OR = {
num_sinful_traits = {
target = root.faith
value >= 1
}
has_trait = excommunicated
}
}
}
save_scope_as = legend_character
}
set_variable = {
name = legend_seed_to_give
value = flag:ancestral_saint
}
}
10 = { # I am descended from an old God
trigger = {
NOT = { religion = { is_in_family = rf_pagan } }
any_ancestor = {
even_if_dead = yes
is_alive = no
religion = { is_in_family = rf_pagan }
}
NOT = { has_game_rule = historical_legends_only }
}
random_ancestor = {
even_if_dead = yes
limit = {
religion = { is_in_family = rf_pagan }
is_alive = no
}
weight = {
base = 1
modifier = {
add = learning
}
modifier = {
factor = 3
OR = {
num_virtuous_traits = {
target = root.faith
value >= 1
}
has_trait = saint
}
}
modifier = {
factor = 0.1
OR = {
num_sinful_traits = {
target = root.faith
value >= 1
}
has_trait = excommunicated
}
}
}
save_scope_as = legend_character
}
set_variable = {
name = legend_seed_to_give
value = flag:old_godly_descent
}
}
10 = { # I was raised by dangerous animals
trigger = {
NOT = { has_game_rule = historical_legends_only }
}
select_local_animal_effect = { TYPE = dangerous }
set_variable = {
name = legend_seed_to_give
value = flag:raised_by_animals
}
}
10 = { # Born under auspicious stars
trigger = {
NOT = { has_game_rule = historical_legends_only }
}
set_variable = {
name = legend_seed_to_give
value = flag:auspicious_stars
}
}
10 = { # Virgin birth
trigger = {
has_any_bastard_trait_trigger = yes
NOT = { has_game_rule = historical_legends_only }
}
set_variable = {
name = legend_seed_to_give
value = flag:virgin_birth
}
}
10 = { # Spoke to an angel
trigger = {
religion_has_angels_trigger = yes
NOT = { has_game_rule = historical_legends_only }
}
set_variable = {
name = legend_seed_to_give
value = flag:spoke_to_angels
}
}
10 = { # Fought a demon
trigger = {
NOT = { has_game_rule = historical_legends_only }
}
set_variable = {
name = legend_seed_to_give
value = flag:fought_the_devil
}
}
10 = { # Exotic backstory
get_appropriate_exotic_location = yes
set_variable = {
name = legend_seed_to_give
value = flag:exotic_backstory
}
}
10 = { # Ancient people
trigger = {
# The ancient cultures we have for now aren't appropriate for these regions
root.culture = {
NOR = {
culture_overlaps_geographical_region = world_burma
culture_overlaps_geographical_region = custom_arakan_mountains
culture_overlaps_geographical_region = world_tibet
}
}
}
get_appropriate_ancient_people = yes
set_variable = {
name = legend_seed_to_give
value = flag:ancient_people
}
}
}
}
option = { # Wowie zowie, really?
name = legend_events.0001.a
if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:slew_dragon
}
create_legend_seed = {
type = heroic
quality = famed
chronicle = beast_slayer
properties = {
beast = flag:dragon
location = root.location
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:ancestral_saint
}
create_legend_seed = {
type = holy
quality = famed
chronicle = saintly_deed
properties = {
ancestor = scope:legend_character
religion = root.religion
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:old_godly_descent
}
generate_religion_descent_effect = {
RELIGION = scope:legend_character.religion
GOD = high_god
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:raised_by_animals
}
create_legend_seed = {
type = heroic
quality = famed
chronicle = raised_by_animals
properties = {
beast = var:animal_type
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:auspicious_stars
}
create_legend_seed = {
type = holy
quality = famed
chronicle = sacred_birth
properties = {
reason = flag:auspicious
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:virgin_birth
}
create_legend_seed = {
type = holy
quality = famed
chronicle = sacred_birth
properties = {
reason = flag:virgin
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:spoke_to_angels
}
create_legend_seed = {
type = holy
quality = famed
chronicle = divine_intervention
properties = {
god = flag:the_angels
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:fought_the_devil
}
create_legend_seed = {
type = holy
quality = famed
chronicle = fought_devil
properties = {
faith = root.faith
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:exotic_backstory
}
create_legend_seed = {
type = heroic
quality = famed
chronicle = exotic_backstory
properties = {
location = scope:exotic_location
}
}
}
else_if = {
limit = {
exists = var:legend_seed_to_give
var:legend_seed_to_give = flag:ancient_people
}
create_legend_seed = {
type = legitimizing
quality = famed
chronicle = ancient_people
properties = {
culture = scope:ancient_culture
title = root.primary_title
original_region = var:original_region
}
}
}
ai_chance = {
base = 100
}
}
option = { # I don't want this legend
name = legend_events.0001.b
ai_chance = {
base = 0
}
}
}
# Chronicler convinces someone to promote your legend
legend_events.0010 = {
type = character_event
title = legend_events.0010.t
desc = legend_events.0010.desc
theme = legend
left_portrait = {
character = root
animation = personality_honorable
}
center_portrait = {
character = scope:chronicler
animation = chancellor
}
right_portrait = {
character = scope:potential_promoter
animation = chancellor
}
option = { # Diplo duel option
name = legend_events.0010.a
duel = {
skill = diplomacy
target = scope:potential_promoter
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = { # Reluctant to drop their existing legend
scope:potential_promoter = { exists = promoted_legend }
factor = 0.5
}
send_interface_toast = {
title = legend_events.0010.a.success
scope:potential_promoter = {
set_promoted_legend = root.promoted_legend
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = { # Reluctant to drop their existing legend
scope:potential_promoter = { exists = promoted_legend }
factor = 2
}
send_interface_toast = {
title = legend_events.0010.a.failure
add_prestige = minor_prestige_loss
}
}
}
ai_chance = {
base = 100
modifier = { # I'd have better odds with option B
intrigue > diplomacy
factor = 0
}
}
}
option = { # Lie
name = legend_events.0010.b
duel = {
skill = intrigue
target = scope:potential_promoter
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
modifier = { # Reluctant to drop their existing legend
scope:potential_promoter = { exists = promoted_legend }
factor = 0.5
}
send_interface_toast = {
title = legend_events.0010.a.success
scope:potential_promoter = {
set_promoted_legend = root.promoted_legend
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
modifier = { # Reluctant to drop their existing legend
scope:potential_promoter = { exists = promoted_legend }
factor = 2
}
send_interface_toast = {
title = legend_events.0010.a.failure
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
honest = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = { # I'd have better odds with option A
intrigue < diplomacy
factor = 0
}
}
}
option = { # Nah not interested, go away.
name = legend_events.0010.c
ai_chance = {
base = 0
}
}
}
legend_events.0020 = { #hold court presentation of a potential seed
type = court_event
title = legend_events.0020.t
desc = legend_events.0020.desc
theme = legend
court_scene = {
button_position_character = scope:seed_presenter
court_event_force_open = yes
show_timeout_info = no
should_pause_time = yes
roles = {
scope:seed_presenter = {
group = petitioners_group
animation = personality_rational
}
}
}
widget = {
gui = "event_window_widget_event_chain_progress"
container = "custom_widgets_container"
controller = event_chain_progress
}
weight_multiplier = {
base = 1
modifier = {
factor = 2
court_grandeur_current_level > court_grandeur_minimum_expected_level
}
# Court weightings.
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_diplomatic }
}
trigger = {
any_pool_guest = {
count >= 1
is_available_adult = yes
has_court_event_flag = no
culture != root.culture
opinion = {
target = root
value >= high_positive_opinion
}
}
NOR = {
has_personal_legend_seed = heroic
has_personal_legend_seed = holy
has_personal_legend_seed = legitimizing
}
}
immediate = {
random_pool_guest = {
limit = {
is_available_adult = yes
has_court_event_flag = no
culture != root.culture
opinion = {
target = root
value >= high_positive_opinion
}
}
save_scope_as = seed_presenter
court_event_character_flag_effect = yes
}
hold_court_queue_next_event_effect = yes
}
option = { #yes, it is my about my dynasty and I shall prove it!
name = legend_events.0020.a
legend_seed_great_deed_dynasty_effect = yes
culture = {
change_cultural_acceptance = {
target = scope:seed_presenter.culture
value = miniscule_positive_culture_acceptance
desc = cultural_acceptance_gain_hold_court_event_outcome
}
}
stress_impact = {
ambitious = minor_stress_loss
}
ai_chance = { #we want AI to have seeds
base = 100
}
}
option = { #yes, it is about me ruling the title and I shall prove it!
name = legend_events.0020.b
legend_seed_great_deed_title_effect = {
TITLE = root.primary_title
}
culture = {
change_cultural_acceptance = {
target = scope:seed_presenter.culture
value = miniscule_positive_culture_acceptance
desc = cultural_acceptance_gain_hold_court_event_outcome
}
}
stress_impact = {
ambitious = minor_stress_loss
}
ai_chance = { #we want AI to have seeds
base = 100
}
}
option = { #no, I don't need to humor your culture fairy tales
name = legend_events.0020.c
add_prestige = medium_prestige_gain
dynasty = {
add_dynasty_prestige = minor_dynasty_prestige_gain
}
culture = {
change_cultural_acceptance = {
target = scope:seed_presenter.culture
value = low_negative_culture_acceptance
desc = cultural_acceptance_gain_hold_court_event_outcome
}
}
stress_impact = {
ambitious = minor_stress_gain
compassionate = minor_stress_gain
callous = medium_stress_loss
sadistic = medium_stress_loss
}
ai_chance = { #we want AI to have seeds
base = 0
}
}
after = {
scope:seed_presenter = {
clear_court_event_participation = yes
}
# Finish up the chain if relevant.
hold_court_queue_post_event_effect = yes
}
}
legend_events.1000 = {
type = letter_event
opening = { desc = legend_events.1000.t }
desc = legend_events.1000.desc
sender = scope:legend_owner
immediate = {
scope:legend = {
legend_owner = { save_scope_as = legend_owner }
}
}
option = { #I did a silly
name = legend_events.1000.a
pay_short_term_gold = {
target = scope:legend_owner
gold = medium_gold_value
}
stress_impact = {
deceitful = major_stress_impact_loss
honest = medium_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { #If you have really high Intrigue you get away with paying just half
name = legend_events.1000.b
trigger = {
intrigue >= very_high_skill_rating
}
#trait = deceitful
pay_short_term_gold = {
target = scope:legend_owner
gold = {
value = medium_gold_value
multiply = 0.5
}
}
stress_impact = {
deceitful = massive_stress_impact_loss
honest = major_stress_impact_gain
just = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
after = {
remove_variable = accepted_promote_legend_var
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,32 @@
namespace = legitimacy_events
############################
## Legitimacy Maintenance Events
## 0001-1000
## by Joe Parkin
############################
# legitimacy_events.0001 - Debug event for testing base legitimacy values with breakdowns of sources
legitimacy_events.0001 = {
type = character_event
title = LOREM_IPSUM_TITLE
desc = LOREM_IPSUM_DESCRIPTION
theme = realm
orphan = yes
left_portrait = root
trigger = {
exists = dynasty
# Exclude unplayable for now
NOR = {
government_has_flag = government_is_republic
government_has_flag = government_is_theocracy
}
}
option = {
add_legitimacy = base_legitimacy_value
custom_tooltip = base_legitimacy_debug_tt
}
}

File diff suppressed because it is too large Load diff