11748 lines
280 KiB
Text
11748 lines
280 KiB
Text
namespace = fp2_struggle
|
|
|
|
### SYSTEM EVENTS #################################################################
|
|
## # Parameter Events
|
|
## 0001 - 0010 VIP spontaneous relationship management.
|
|
## 0011 - 0040 Struggle VIPs spontaneously develop negative relationships with each other.
|
|
## 0041 - 0070 Struggle VIPs spontaneously develop postive relationships with each other.
|
|
## # Other Events
|
|
## 0501 - 0510 Struggle Intro Events
|
|
## 0900 - 0999 Struggle ending decision events
|
|
### EVENT LIST ####################################################################
|
|
## XXXX - XXXX YYY by ZZZ
|
|
## 1000 - 1000 Stoking the Fire by Ola Jentzsch
|
|
## 1001 - 1001 War Widows by Ola Jentzsch
|
|
## 1002 - 1002 Andalusian Advancements by Ola Jentzsch
|
|
## 1010 - 1012 Soul of Iron by Ola Jentzsch
|
|
## 1020 - 1020 Death of a Councilman by Ola Jentzsch
|
|
## 1050 - 1050 The Vision by Ola Jentzsch
|
|
## 2000 - 2000 Disorderly Market by Hugo Cortell
|
|
## 2001 - 2002 Desperate Villagers Seek New Lord by Hugo Cortell
|
|
## 2003 - 2003 Lost Migratory Birds by Hugo Cortell
|
|
## 2004 - 2005 Ship building event by Hugo Cortell
|
|
## 2006 - 2006 The Borders of Faith by Hugo Cortell
|
|
## 2007 - 2007 Castle Worthy of Iberia by Hugo Cortell
|
|
## 2008 - 2008 Misdeeds of The Chaplain by Hugo Cortell
|
|
## 2009 - 2012 Catching Thieves of Myth by Hugo Cortell
|
|
## 2013 - 2014 The Secret to Freedom by Hugo Cortell
|
|
## 2015 - 2016 Letter on The Back by Hugo Cortell
|
|
## 2021 - 2022 RETURN OF THE THIEF KING by Hugo Cortell
|
|
## 3001 - 3010 The Price of War by Veronica Pazos
|
|
## 3011 - 3020 Order of the Hatchet by Veronica Pazos
|
|
## 3021 - 3030 The Wrath of Heaven by Veronica Pazos
|
|
###################################################################################
|
|
|
|
# Setting AI Intent
|
|
fp2_struggle.0003 = {
|
|
hidden = yes
|
|
scope = none
|
|
scope = struggle
|
|
|
|
trigger = { # Should not need this, but, redundancy check!
|
|
exists = struggle:iberian_struggle
|
|
struggle:iberian_struggle = { any_involved_ruler = { } } # For when the conflict is ongoing but nobody is left to fight it
|
|
}
|
|
|
|
immediate = {
|
|
# prepare needed variables; they will be destroyed at the end of the immediate
|
|
set_variable = {
|
|
name = agents_for_escalation
|
|
value = 0
|
|
}
|
|
set_variable = {
|
|
name = agents_for_deescalation
|
|
value = 0
|
|
}
|
|
|
|
# Go through the characters to distribute them between the potential transitions
|
|
struggle:iberian_struggle = {
|
|
every_involved_ruler = {
|
|
limit = { is_alive = yes }
|
|
#######################
|
|
# Play cue track
|
|
######################
|
|
if = {
|
|
limit = { is_ai = no }
|
|
play_music_cue = "mx_Struggle_Opening"
|
|
}
|
|
|
|
#######################
|
|
# Check existing flags
|
|
######################
|
|
if = {
|
|
limit = { has_character_flag = agenda_towards_escalation }
|
|
root = {
|
|
change_variable = {
|
|
name = agents_for_escalation
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { has_character_flag = agenda_towards_deescalation }
|
|
root = {
|
|
change_variable = {
|
|
name = agents_for_deescalation
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
else = { # Set a flag
|
|
#############################
|
|
# Current Phase: Opportunity
|
|
#############################
|
|
if = {
|
|
limit = { root = { is_struggle_phase = struggle_iberia_phase_opportunity } }
|
|
random_list = {
|
|
# Working towards Hostility
|
|
# It should be for characters looking for direct conflicts and domination, with the will and ability to expand their realms
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = hostility
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Conciliation
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = conciliation
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Hostility
|
|
#############################
|
|
if = {
|
|
limit = { root = { is_struggle_phase = struggle_iberia_phase_hostility } }
|
|
random_list = {
|
|
# Working towards Hostility: it means that the character wants to stay in
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = hostility
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Compromise
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Compromise
|
|
#############################
|
|
if = {
|
|
limit = { root = { is_struggle_phase = struggle_iberia_phase_compromise } }
|
|
random_list = {
|
|
|
|
# Working towards Opportunity
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = opportunity
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Compromise: they want to stay in the same phase
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Conciliation
|
|
#############################
|
|
if = {
|
|
limit = { root = { is_struggle_phase = struggle_iberia_phase_conciliation } }
|
|
random_list = {
|
|
# Working towards Compromise
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Conciliation: they want to stay in the same phase
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = conciliation
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Clean variables
|
|
remove_variable = agents_for_escalation
|
|
remove_variable = agents_for_deescalation
|
|
}
|
|
}
|
|
|
|
# Set AI Intent on join
|
|
fp2_struggle.004 = {
|
|
hidden = yes
|
|
scope = none
|
|
|
|
immediate = {
|
|
set_variable = {
|
|
name = agents_for_escalation
|
|
value = 0
|
|
}
|
|
set_variable = {
|
|
name = agents_for_deescalation
|
|
value = 0
|
|
}
|
|
|
|
############################
|
|
# Update the variables
|
|
############################
|
|
every_character_struggle = {
|
|
every_involved_ruler = {
|
|
limit = { is_alive = yes }
|
|
if = {
|
|
limit = { has_character_flag = agenda_towards_escalation }
|
|
root = {
|
|
change_variable = {
|
|
name = agents_for_escalation
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { has_character_flag = agenda_towards_deescalation }
|
|
root = {
|
|
change_variable = {
|
|
name = agents_for_deescalation
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_character_flag = agenda_towards_escalation
|
|
has_character_flag = agenda_towards_deescalation
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Opportunity
|
|
#############################
|
|
if = {
|
|
limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_opportunity } }
|
|
random_list = {
|
|
# Working towards Hostility
|
|
# It should be for characters looking for direct conflicts and domination, with the will and ability to expand their realms
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = hostility
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Conciliation
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = conciliation
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Hostility
|
|
#############################
|
|
if = {
|
|
limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_hostility } }
|
|
random_list = {
|
|
# Working towards Hostility: it means that the character wants to stay in
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = hostility
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Compromise
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Compromise
|
|
#############################
|
|
if = {
|
|
limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_compromise } }
|
|
random_list = {
|
|
|
|
# Working towards Opportunity
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = opportunity
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Compromise: they want to stay in the same phase
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#############################
|
|
# Current Phase: Conciliation
|
|
#############################
|
|
if = {
|
|
limit = { any_character_struggle = { is_struggle_phase = struggle_iberia_phase_conciliation } }
|
|
random_list = {
|
|
# Working towards Compromise
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = compromise
|
|
INTENT = escalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = escalation
|
|
}
|
|
}
|
|
# Working towards Conciliation: they want to stay in the same phase
|
|
100 = {
|
|
# Odds modifiers
|
|
fp2_struggle_set_ai_agenda_common_modifiers = {
|
|
PHASE = conciliation
|
|
INTENT = deescalation
|
|
}
|
|
|
|
# Apply effects
|
|
fp2_struggle_apply_ai_agenda_effect = {
|
|
INTENT = deescalation
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Clean variables
|
|
remove_variable = agents_for_escalation
|
|
remove_variable = agents_for_deescalation
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Iberian Struggle Intro Events
|
|
# 0501 - 599
|
|
###################################
|
|
fp2_struggle.0501 = { # Fullscreen Intro Event
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0501.t
|
|
desc = {
|
|
desc = fp2_struggle.0501.desc
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
any_character_struggle = {
|
|
involvement = involved
|
|
is_struggle_type = iberian_struggle
|
|
}
|
|
}
|
|
desc = fp2_struggle.0501.desc.involved
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
any_character_struggle = {
|
|
involvement = interloper
|
|
is_struggle_type = iberian_struggle
|
|
}
|
|
}
|
|
desc = fp2_struggle.0501.desc.interloper
|
|
}
|
|
}
|
|
}
|
|
theme = realm
|
|
trigger = { # we need to prevent this from firing for all players when a new player joins in MP
|
|
is_ai = no
|
|
NOT = { has_character_flag = fp2_struggle_intro_event_flag }
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes
|
|
}
|
|
override_background = { reference = fp2_fullscreen_intro }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_animate" }
|
|
|
|
cooldown = { years = 100 }
|
|
|
|
widgets = {
|
|
widget = {
|
|
gui = "event_window_widget_struggle_info"
|
|
container = "dynamic_content_widget"
|
|
controller = struggle_info
|
|
setup_scope = { struggle:iberian_struggle = { save_scope_as = struggle } }
|
|
}
|
|
}
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_Opening"
|
|
add_character_flag = fp2_struggle_intro_event_flag
|
|
save_scope_value_as = {
|
|
name = start
|
|
value = yes
|
|
}
|
|
}
|
|
option = {
|
|
name = fp2_struggle.0501.a
|
|
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Struggle Endings
|
|
# by Joe Parkin
|
|
# 0900-0912
|
|
###################################
|
|
fp2_struggle.0900 = { # Hostility
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0900.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:basque
|
|
any_parent_culture = { this = culture:basque }
|
|
has_cultural_pillar = language_basque
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.basque
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:andalusian
|
|
any_parent_culture = { this = culture:andalusian }
|
|
has_cultural_pillar = language_arabic
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.andalusian
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = { has_cultural_pillar = heritage_iberian }
|
|
}
|
|
desc = fp2_struggle.0900.opening.iberian
|
|
}
|
|
desc = fp2_struggle.0900.opening
|
|
}
|
|
desc = fp2_struggle.0900.desc
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_hostility }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
# Add all involved rulers to a list, for ping event
|
|
play_music_cue = "mx_Struggle_ending_hostility"
|
|
fp2_stuggle_ending_involved_list_effect = yes
|
|
give_nickname = nick_the_conquistador
|
|
dynasty = { add_dynasty_prestige = 10000 }
|
|
}
|
|
|
|
# Faith victory
|
|
option = {
|
|
name = fp2_struggle.0900.a
|
|
if = {
|
|
limit = { exists = house }
|
|
house = {
|
|
add_house_modifier = {
|
|
modifier = fp2_struggle_hostility_house_faith_modifier
|
|
}
|
|
}
|
|
}
|
|
# Piety reward for faith victory
|
|
add_piety = 1000
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_holy_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_conversion_holy_tt
|
|
stress_impact = {
|
|
cynical = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = {
|
|
ai_zeal = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Culture victory
|
|
option = {
|
|
name = fp2_struggle.0900.b
|
|
# Renown reward for culture victory
|
|
if = {
|
|
limit = { exists = house }
|
|
dynasty = { add_dynasty_prestige = 1000 }
|
|
house = {
|
|
add_house_modifier = {
|
|
modifier = fp2_struggle_hostility_house_culture_modifier
|
|
}
|
|
}
|
|
}
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_culture_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_conversion_culture_tt
|
|
# All Involved cultures lose acceptance of each other
|
|
custom_tooltip = {
|
|
text = fp2_struggle_hostility_culture_tt
|
|
fp2_struggle_hostility_cultural_acceptance_effect = yes
|
|
}
|
|
stress_impact = {
|
|
humble = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
# Combined victory
|
|
option = {
|
|
name = fp2_struggle.0900.c
|
|
# Reduced renown and piety rewards for combined
|
|
if = {
|
|
limit = { exists = house }
|
|
house = {
|
|
add_house_modifier = {
|
|
modifier = fp2_struggle_hostility_house_combined_modifier
|
|
years = 200
|
|
}
|
|
}
|
|
}
|
|
add_prestige = 3000
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_holy_cb_tt
|
|
custom_tooltip = culture_parameter_cb_lower_piety_level_requirement
|
|
custom_tooltip = fp2_struggle_hostility_culture_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_conversion_holy_tt
|
|
custom_tooltip = fp2_struggle_hostility_conversion_culture_tt
|
|
# All Involved cultures lose acceptance of each other
|
|
custom_tooltip = {
|
|
text = fp2_struggle_hostility_culture_large_tt
|
|
fp2_struggle_hostility_cultural_acceptance_large_effect = yes
|
|
}
|
|
stress_impact = {
|
|
humble = medium_stress_impact_gain
|
|
cynical = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
ai_value_modifier = {
|
|
ai_zeal = 2
|
|
ai_boldness = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
after = {
|
|
# Notify & End Struggle
|
|
save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it
|
|
every_player = {
|
|
limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues
|
|
add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything.
|
|
}
|
|
|
|
struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_hostility_decision }
|
|
every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended
|
|
list = player_to_notify
|
|
trigger_event = fp2_struggle.0910
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.0910 = {
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0900.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { is_in_list = struggle_involvees }
|
|
desc = fp2_struggle.0910.opening.involved
|
|
}
|
|
desc = fp2_struggle.0910.opening
|
|
}
|
|
desc = fp2_struggle.0910.desc
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:struggle_ender.house = { has_house_modifier = fp2_struggle_hostility_house_faith_modifier }
|
|
}
|
|
desc = fp2_struggle.0910.closing.faith
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:struggle_ender.house = { has_house_modifier = fp2_struggle_hostility_house_culture_modifier }
|
|
}
|
|
desc = fp2_struggle.0910.closing.culture
|
|
}
|
|
desc = fp2_struggle.0910.closing.combined
|
|
}
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_hostility }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_ending_hostility"
|
|
##### Major Effects #####
|
|
show_as_tooltip = {
|
|
scope:struggle_ender = {
|
|
#dynasty = { add_dynasty_prestige = 10000 }
|
|
fp2_struggle_hostility_ender_effect = yes
|
|
}
|
|
}
|
|
# Hispania is available!
|
|
custom_tooltip = fp2_struggle_can_create_empire_of_hispania_tt
|
|
# Choose Holy War boost, Culture War boost, or both
|
|
scope:struggle_ender.house = {
|
|
switch = {
|
|
trigger = has_house_modifier
|
|
fp2_struggle_hostility_house_faith_modifier = {
|
|
show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_faith_modifier }
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_holy_cb_tt
|
|
}
|
|
fp2_struggle_hostility_house_culture_modifier = {
|
|
show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_culture_modifier }
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_culture_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_culture_tt
|
|
}
|
|
fp2_struggle_hostility_house_combined_modifier = {
|
|
show_as_tooltip = { add_house_modifier = fp2_struggle_hostility_house_combined_modifier }
|
|
custom_description_no_bullet = { text = fp2_struggle_house_tt }
|
|
custom_tooltip = fp2_struggle_hostility_holy_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_culture_cb_tt
|
|
custom_tooltip = fp2_struggle_hostility_culture_large_tt
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Ok
|
|
option = {
|
|
name = {
|
|
text = fp2_struggle.0910.a
|
|
trigger = { is_in_list = struggle_involvees }
|
|
}
|
|
name = {
|
|
text = fp2_struggle.0910.b
|
|
trigger = {
|
|
NOT = { is_in_list = struggle_involvees }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.0901 = { # Compromise
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0901.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:basque
|
|
any_parent_culture = { this = culture:basque }
|
|
has_cultural_pillar = language_basque
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.basque
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:andalusian
|
|
any_parent_culture = { this = culture:andalusian }
|
|
has_cultural_pillar = language_arabic
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.andalusian
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = { has_cultural_pillar = heritage_iberian }
|
|
}
|
|
desc = fp2_struggle.0900.opening.iberian
|
|
}
|
|
desc = fp2_struggle.0900.opening
|
|
}
|
|
desc = fp2_struggle.0901.desc
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_compromise }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_ending_compromise"
|
|
# Independent/Split De Jure Duchies will become De Jure Kingdoms
|
|
if = {
|
|
limit = {
|
|
title:e_spain = {
|
|
any_in_de_jure_hierarchy = { fp2_struggle_ending_compromise_independent_duchy_trigger = yes }
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = fp2_struggle_compromise_create_new_kingdoms_tt
|
|
fp2_struggle_compromise_duchies_to_kingdoms_effect = yes
|
|
}
|
|
}
|
|
# Move duchies to right kingdoms
|
|
fp2_struggle_compromise_transfer_duchies_effect = yes
|
|
# Turn kingdoms to empires
|
|
fp2_struggle_compromise_kingdoms_to_empires_effect = yes
|
|
# distribute small kingdoms
|
|
fp2_struggle_compromise_distribute_kingdoms_to_neighbouring_empires_effect = yes
|
|
# assign the new title to existing characters
|
|
fp2_struggle_compromise_distribute_the_actual_titles = yes
|
|
|
|
# Set up truces
|
|
fp2_struggle_compromise_truce_effect = yes
|
|
|
|
##### Major Effects #####
|
|
fp2_struggle_compromise_ender_effect = yes
|
|
|
|
# Tooltips!
|
|
fp2_struggle_compromise_tooltip_effect = yes
|
|
|
|
##### Minor Effects #####
|
|
# Self-sufficiency modifiers for each independent realm
|
|
fp2_struggle_compromise_modifier_rewards_effect = yes
|
|
set_global_variable = {
|
|
name = fp2_struggle_compromise_ending
|
|
value = yes
|
|
}
|
|
# Add all involved rulers to a list, for ping event
|
|
fp2_stuggle_ending_involved_list_effect = yes
|
|
}
|
|
|
|
# Ok
|
|
option = {
|
|
name = fp2_struggle.0901.a
|
|
if = {
|
|
limit = {
|
|
any_in_list = {
|
|
list = kingdom_empire
|
|
this = root.primary_title
|
|
}
|
|
}
|
|
custom_tooltip = fp2_struggle.0901.tt
|
|
}
|
|
}
|
|
|
|
after = {
|
|
stress_impact = {
|
|
arrogant = medium_stress_impact_gain
|
|
}
|
|
|
|
# Notify & End Struggle
|
|
save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it
|
|
every_player = {
|
|
limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues
|
|
add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything.
|
|
}
|
|
|
|
struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_compromise_decision }
|
|
every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended
|
|
list = player_to_notify
|
|
trigger_event = fp2_struggle.0911
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.0911 = {
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0901.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { is_in_list = struggle_involvees }
|
|
desc = fp2_struggle.0910.opening.involved
|
|
}
|
|
desc = fp2_struggle.0910.opening
|
|
}
|
|
desc = fp2_struggle.0911.desc
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_compromise }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_ending_compromise"
|
|
##### Major Effects #####
|
|
show_as_tooltip = {
|
|
scope:struggle_ender = { fp2_struggle_compromise_ender_effect = yes }
|
|
}
|
|
# Independent/Split De Jure Duchies will become De Jure Kingdoms
|
|
custom_tooltip = fp2_struggle_compromise_create_new_kingdoms_tt
|
|
# RIP Hispania
|
|
fp2_struggle_compromise_tooltip_effect = yes
|
|
|
|
##### Minor Effects #####
|
|
if = {
|
|
limit = {
|
|
any_in_list = {
|
|
list = kingdom_empire
|
|
OR = {
|
|
this = root.primary_title
|
|
this = root.primary_title.de_jure_liege
|
|
this = root.primary_title.de_jure_liege.de_jure_liege
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = fp2_struggle.0901.tt
|
|
}
|
|
if = {
|
|
limit = { is_in_list = struggle_involvees }
|
|
show_as_tooltip = {
|
|
fp2_struggle_compromise_modifier_rewards_personal_house_effect = yes
|
|
fp2_struggle_compromise_modifier_rewards_personal_county_effect = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
# Ok
|
|
option = {
|
|
name = {
|
|
text = fp2_struggle.0911.a
|
|
trigger = { is_in_list = struggle_involvees }
|
|
}
|
|
name = {
|
|
text = fp2_struggle.0910.b
|
|
trigger = {
|
|
NOT = { is_in_list = struggle_involvees }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.0902 = { # Conciliation
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0902.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:basque
|
|
any_parent_culture = { this = culture:basque }
|
|
has_cultural_pillar = language_basque
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.basque
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = {
|
|
OR = {
|
|
this = culture:andalusian
|
|
any_parent_culture = { this = culture:andalusian }
|
|
has_cultural_pillar = language_arabic
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.0900.opening.andalusian
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
culture = { has_cultural_pillar = heritage_iberian }
|
|
}
|
|
desc = fp2_struggle.0900.opening.iberian
|
|
}
|
|
desc = fp2_struggle.0900.opening
|
|
}
|
|
desc = fp2_struggle.0902.desc
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_conciliation }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_ending_conciliation"
|
|
set_global_variable = {
|
|
name = fp2_struggle_conciliation_ending
|
|
value = yes
|
|
}
|
|
# Add all involved rulers to a list, for ping event
|
|
fp2_stuggle_ending_involved_list_effect = yes
|
|
|
|
# Add all involved cultures with counties to a list, for marriage and holy war checks
|
|
fp2_struggle_ending_culture_list_effect = yes
|
|
|
|
# Change cultural acceptance
|
|
fp2_struggle_conciliation_cultural_acceptance_effect = yes
|
|
|
|
##### Major Effects #####
|
|
fp2_struggle_conciliation_ender_effect = yes
|
|
fp2_struggle_conciliation_tooltip_effect = yes
|
|
fp2_struggle_conciliation_modifier_rewards_effect = yes
|
|
}
|
|
|
|
#
|
|
option = {
|
|
name = fp2_struggle.0902.a
|
|
}
|
|
|
|
after = {
|
|
stress_impact = {
|
|
arrogant = medium_stress_impact_gain
|
|
zealous = medium_stress_impact_gain
|
|
}
|
|
|
|
# Notify & End Struggle
|
|
save_scope_as = fp2_loc_struggle_ender # Loc used to use root, this fixes it
|
|
every_player = {
|
|
limit = { fp2_does_this_player_care_about_the_fate_of_iberia = yes } # Needs to be checked before the struggle ends due to race condition issues
|
|
add_to_list = player_to_notify # Making a list so stuff is tiggered after the struggle ends, to make extra sure I don't break anything.
|
|
}
|
|
|
|
struggle:iberian_struggle = { end_struggle = struggle_iberia_ending_conciliation_decision }
|
|
every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended
|
|
list = player_to_notify
|
|
trigger_event = fp2_struggle.0912
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.0912 = {
|
|
type = character_event
|
|
window = fullscreen_event
|
|
title = fp2_struggle.0902.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { is_in_list = struggle_involvees }
|
|
desc = fp2_struggle.0910.opening.involved
|
|
}
|
|
desc = fp2_struggle.0910.opening
|
|
}
|
|
desc = fp2_struggle.0912.desc
|
|
}
|
|
theme = court
|
|
override_background = { reference = fp2_fullscreen_conciliation }
|
|
override_sound = { reference = "event:/DLC/FP2/SFX/UI/fp2_struggle_ui_intro_end_animate" }
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_Struggle_ending_conciliation"
|
|
##### Major Effects #####
|
|
show_as_tooltip = {
|
|
scope:struggle_ender = { fp2_struggle_conciliation_ender_effect = yes }
|
|
}
|
|
fp2_struggle_conciliation_tooltip_effect = yes
|
|
|
|
##### Minor Effects #####
|
|
# All involved rulers gain diff culture opinion and learn language scheme power
|
|
if = {
|
|
limit = { is_in_list = struggle_involvees }
|
|
show_as_tooltip = { fp2_struggle_conciliation_modifier_rewards_personal_effect = yes }
|
|
}
|
|
}
|
|
|
|
# Ok
|
|
option = {
|
|
name = {
|
|
text = fp2_struggle.0912.a
|
|
trigger = { is_in_list = struggle_involvees }
|
|
}
|
|
name = {
|
|
text = fp2_struggle.0910.b
|
|
trigger = {
|
|
NOT = { is_in_list = struggle_involvees }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Stoking the Fire
|
|
# By Ola Jentzsch
|
|
###################################
|
|
scripted_trigger fp2_struggle_1000_tension_county_trigger = {
|
|
is_landless_type_title = no
|
|
any_county_province = { geographical_region = world_europe_west_iberia }
|
|
faith = { save_temporary_scope_as = compare_faith }
|
|
root = {
|
|
faith = {
|
|
faith_hostility_level = { target = scope:compare_faith value > faith_astray_level }
|
|
}
|
|
}
|
|
}
|
|
scripted_trigger fp2_struggle_1000_tension_councillor_trigger = {
|
|
faith = { this = root.faith }
|
|
is_available_healthy_ai_adult = yes
|
|
OR = {
|
|
has_trait = zealous
|
|
has_trait = wrathful
|
|
has_trait = deceitful
|
|
has_trait = sadistic
|
|
has_trait = holy_warrior
|
|
has_trait = callous
|
|
}
|
|
NOR = {
|
|
has_trait = compassionate
|
|
has_trait = just
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1000 = {
|
|
type = character_event
|
|
title = fp2_struggle.1000.t
|
|
desc = fp2_struggle.1000.desc
|
|
theme = dread
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = stress
|
|
}
|
|
right_portrait = {
|
|
character = scope:tension_councillor
|
|
animation = scheme
|
|
}
|
|
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
custom_description = {
|
|
text = empty_spooky_trigger #This is entirely pointless, but code likes it, so ghost away!
|
|
any_held_county = { fp2_struggle_1000_tension_county_trigger = yes }
|
|
OR = {
|
|
any_councillor = { fp2_struggle_1000_tension_councillor_trigger = yes }
|
|
any_vassal = { fp2_struggle_1000_tension_councillor_trigger = yes }
|
|
exists = cp:councillor_marshal
|
|
}
|
|
}
|
|
OR = {
|
|
capital_province = { geographical_region = world_europe_west_iberia }
|
|
culture = { has_cultural_pillar = heritage_iberian }
|
|
}
|
|
}
|
|
|
|
cooldown = { #this shouldn't fire too often
|
|
years = 50
|
|
}
|
|
|
|
immediate = { #We need a province and a suitable councillor; this fixes that.
|
|
random_held_county = {
|
|
limit = { fp2_struggle_1000_tension_county_trigger = yes }
|
|
save_scope_as = tension_county
|
|
}
|
|
if = {
|
|
limit = {
|
|
any_councillor = {
|
|
fp2_struggle_1000_tension_councillor_trigger = yes
|
|
}
|
|
}
|
|
random_councillor = {
|
|
limit = {
|
|
fp2_struggle_1000_tension_councillor_trigger = yes
|
|
}
|
|
save_scope_as = tension_councillor
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_vassal = {
|
|
fp2_struggle_1000_tension_councillor_trigger = yes
|
|
}
|
|
}
|
|
random_vassal = {
|
|
limit = {
|
|
fp2_struggle_1000_tension_councillor_trigger = yes
|
|
}
|
|
save_scope_as = tension_councillor
|
|
}
|
|
}
|
|
else = {
|
|
random_councillor = {
|
|
limit = {
|
|
has_council_position = councillor_marshal
|
|
}
|
|
save_scope_as = tension_councillor
|
|
}
|
|
}
|
|
|
|
if = { #this code checks if there is an eligible person for the 4th option
|
|
limit = {
|
|
any_vassal = {
|
|
is_available_healthy_ai_adult = yes
|
|
faith = scope:tension_county.faith
|
|
}
|
|
}
|
|
random_vassal = {
|
|
limit = {
|
|
is_available_healthy_ai_adult = yes
|
|
faith = scope:tension_county.faith
|
|
}
|
|
save_scope_as = minority_courtier
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
any_courtier = {
|
|
is_available_healthy_ai_adult = yes
|
|
faith = scope:tension_county.faith
|
|
}
|
|
}
|
|
random_courtier = {
|
|
limit = {
|
|
is_available_healthy_ai_adult = yes
|
|
faith = scope:tension_county.faith
|
|
}
|
|
save_scope_as = minority_courtier
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Let us spread some hatred...discreetly.
|
|
name = fp2_struggle.1000.a
|
|
|
|
ai_chance = { #Cruel and fanatical characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 1
|
|
ai_vengefulness = 0.5
|
|
ai_compassion = -1
|
|
ai_honor = -1
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Righteous characters find this a very unappealing option.
|
|
compassionate = medium_stress_impact_gain
|
|
gallant = medium_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
paragon = medium_stress_impact_gain
|
|
# As do lazy ones.
|
|
lazy = minor_stress_impact_gain
|
|
}
|
|
|
|
scope:tension_councillor = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = took_my_advice_opinion
|
|
}
|
|
}
|
|
|
|
|
|
add_character_modifier = {
|
|
modifier = fanatical_recruits_modifier
|
|
years = 10
|
|
}
|
|
|
|
duel = { #You try to create a hate campaign - and get away with it.
|
|
skill = intrigue
|
|
value = average_skill_rating
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
send_interface_toast = {
|
|
title = stoke_tension_toast.success
|
|
left_icon = root
|
|
|
|
add_dread = minor_dread_gain
|
|
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = riots_and_murders_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
send_interface_toast = {
|
|
title = stoke_tension_toast.failure
|
|
left_icon = root
|
|
add_character_modifier = {
|
|
modifier = hate_monger_modifier
|
|
years = 10
|
|
}
|
|
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = riots_and_murders_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #I trust you to handle it
|
|
name = fp2_struggle.1000.b
|
|
|
|
trigger = {
|
|
intrigue <= medium_skill_rating
|
|
}
|
|
|
|
show_unlock_reason = no
|
|
|
|
ai_chance = { #Cruel and fanatical characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.5
|
|
ai_rationality = 0.2
|
|
ai_compassion = -0.5
|
|
ai_honor = -1
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Righteous characters find this a very unappealing option.
|
|
compassionate = medium_stress_impact_gain
|
|
gallant = medium_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
paragon = medium_stress_impact_gain
|
|
# As do lazy ones.
|
|
lazy = miniscule_stress_impact_gain
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
intrigue <= medium_skill_rating
|
|
}
|
|
custom_tooltip = bad_intrigue.tt
|
|
}
|
|
|
|
scope:tension_councillor = {
|
|
if = {
|
|
limit = {
|
|
intrigue >= average_skill_level
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = trusted_me_opinion
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = unfair_expectations_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
add_character_modifier = {
|
|
modifier = fanatical_recruits_modifier
|
|
years = 10
|
|
}
|
|
|
|
|
|
|
|
scope:tension_councillor = {
|
|
duel = {
|
|
skill = intrigue
|
|
value = average_skill_rating
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
root = {
|
|
send_interface_toast = {
|
|
title = delegated_stoke_tension_toast.success
|
|
left_icon = scope:tension_councillor
|
|
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = riots_and_murders_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
root = {
|
|
send_interface_toast = {
|
|
title = stoke_tension_toast.failure
|
|
left_icon = scope:tension_councillor
|
|
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = hate_monger_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
scope:tension_councillor = {
|
|
add_character_modifier = {
|
|
modifier = hate_monger_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = riots_and_murders_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #"No, I shall try to ease the tensions."
|
|
name = fp2_struggle.1000.c
|
|
|
|
ai_chance = { #just and compassionate characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_honor = 0.8
|
|
ai_compassion = 0.7
|
|
ai_rationality = 0.2
|
|
ai_zeal = -0.8
|
|
ai_vengefulness = -0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Aggressive characters find this an unappealing option.
|
|
wrathful = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
sadistic = minor_stress_impact_gain
|
|
vengeful = minor_stress_impact_gain
|
|
}
|
|
|
|
scope:tension_councillor = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = disappointed_opinion
|
|
}
|
|
}
|
|
|
|
duel = {
|
|
skill = diplomacy
|
|
value = high_skill_rating
|
|
|
|
30 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
send_interface_toast = {
|
|
title = ease_tension_toast.success
|
|
left_icon = root
|
|
|
|
add_character_modifier = {
|
|
modifier = tolerance_gospel_modifier
|
|
years = 10
|
|
}
|
|
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = tensions_eased_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
send_interface_toast = {
|
|
title = ease_tension_toast.failure
|
|
left_icon = root
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = riots_and_murders_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #"If I cannot stop this madness...
|
|
name = fp2_struggle.1000.d
|
|
|
|
trigger = {
|
|
exists = scope:minority_courtier
|
|
|
|
scope:tension_county = {
|
|
this != root.capital_county
|
|
}
|
|
}
|
|
|
|
ai_chance = { #just and compassionate characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_honor = 0.3
|
|
ai_compassion = 0.3
|
|
ai_rationality = 0.8
|
|
ai_zeal = -0.8
|
|
ai_vengefulness = -0.7
|
|
ai_greed = -1
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Aggressive characters find this unappealing
|
|
wrathful = minor_stress_impact_gain
|
|
zealous = major_stress_impact_gain
|
|
sadistic = minor_stress_impact_gain
|
|
vengeful = minor_stress_impact_gain
|
|
|
|
#As do power-mongers, you're giving away a whole province!
|
|
ambitious = minor_stress_impact_gain
|
|
stubborn = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
arrogant = minor_stress_impact_gain
|
|
paranoid = minor_stress_impact_gain
|
|
|
|
}
|
|
|
|
scope:minority_courtier = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = received_title_county
|
|
}
|
|
}
|
|
|
|
create_title_and_vassal_change = {
|
|
type = granted
|
|
save_scope_as = change
|
|
add_claim_on_loss = yes
|
|
}
|
|
|
|
scope:tension_county = {
|
|
change_title_holder = {
|
|
holder = scope:minority_courtier
|
|
change = scope:change
|
|
}
|
|
}
|
|
|
|
resolve_title_and_vassal_change = scope:change
|
|
|
|
add_stress = medium_stress_loss
|
|
|
|
scope:tension_councillor = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = disappointed_opinion
|
|
}
|
|
}
|
|
|
|
scope:tension_county = {
|
|
add_county_modifier = {
|
|
modifier = tensions_eased_province_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# War Widows
|
|
# By Ola Jentzsch
|
|
###################################
|
|
# Idea by Isabella welch
|
|
###################################
|
|
|
|
scripted_trigger fp2_struggle.1001_weird_option_traits = { # These, presumably, makes you even more sympathethic to widows and orphans, or likely to take an ill-thought out decision.
|
|
OR = {
|
|
has_character_modifier = associates_with_strange_peasants_modifier
|
|
has_trait = bastard
|
|
has_trait = legitimized_bastard
|
|
has_trait = intellect_bad_3
|
|
has_trait = intellect_bad_2
|
|
has_trait = improvident
|
|
has_trait = lifestyle_reveler
|
|
has_trait = pregnant
|
|
has_trait = lunatic
|
|
has_trait = eccentric
|
|
}
|
|
}
|
|
|
|
scripted_trigger fp2_struggle.1001_expectant_vassal_or_courtier_traits = { # This is about the personality the pregnant courtier should have to get this idea to begin with
|
|
has_trait = pregnant
|
|
is_available_ai = yes
|
|
NOR = {
|
|
has_trait = callous
|
|
has_trait = content
|
|
has_trait = arrogant
|
|
has_trait = dull
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1001 = {
|
|
type = character_event
|
|
title = fp2_struggle.1001.t
|
|
desc = fp2_struggle.1001.desc
|
|
theme = faith
|
|
cooldown = { years = 50 }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_cynical
|
|
}
|
|
right_portrait = {
|
|
character = scope:expectant_courtier
|
|
animation = happiness
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
OR = {
|
|
any_vassal = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
}
|
|
any_courtier = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
}
|
|
}
|
|
gold >= medium_gold_value_check
|
|
|
|
any_truce_target = { }
|
|
}
|
|
|
|
immediate = {
|
|
random_vassal = {
|
|
limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
is_spouse_of = root
|
|
}
|
|
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
any_player_heir = { is_spouse_of = prev }
|
|
}
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
is_councillor = yes
|
|
}
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
is_powerful_vassal = yes
|
|
}
|
|
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
}
|
|
|
|
save_scope_as = expectant_courtier
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
exists = scope:expectant_courtier
|
|
}
|
|
}
|
|
random_courtier = {
|
|
limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
is_spouse_of = root
|
|
}
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
any_player_heir = { is_spouse_of = prev }
|
|
}
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
is_councillor = yes
|
|
}
|
|
alternative_limit = {
|
|
fp2_struggle.1001_expectant_vassal_or_courtier_traits = yes
|
|
}
|
|
save_scope_as = expectant_courtier
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
option = { #A good idea! I shall create such a fund.
|
|
name = fp2_struggle.1001.a
|
|
|
|
stress_impact = {
|
|
# Arrogant or cruel characters find this an unappealing option.
|
|
arbitrary = medium_stress_impact_gain
|
|
arrogant = medium_stress_impact_gain
|
|
sadistic = medium_stress_impact_gain
|
|
|
|
# As do, of course, greedy ones.
|
|
greedy = medium_stress_impact_gain
|
|
|
|
# As do callous and content ones, to an extent.
|
|
callous = minor_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
|
|
# But generous and compassionate characters like it.
|
|
compassionate = minor_stress_impact_loss
|
|
generous = medium_stress_impact_loss
|
|
}
|
|
|
|
ai_chance = { #Just and compassionate characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_honor = 0.5
|
|
ai_compassion = 1
|
|
ai_vengefulness = -0.2
|
|
ai_greed = -0.5
|
|
}
|
|
}
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value
|
|
|
|
scope:expectant_courtier = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = pleased_opinion
|
|
}
|
|
}
|
|
|
|
|
|
add_character_modifier = {
|
|
modifier = nursing_salaries_for_single_mothers_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
|
|
option = { #Widows I will support, but not whores!
|
|
name = fp2_struggle.1001.b
|
|
flavor = fp2_struggle.1001.b.tt
|
|
trigger = {
|
|
fp2_struggle.1001_weird_option_traits = no
|
|
trait_is_shunned_or_criminal_in_faith_trigger = {
|
|
FAITH = faith
|
|
TRAIT = adulterer
|
|
GENDER_CHARACTER = dummy_female
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Truly righteous characters wouldn't say this.
|
|
compassionate = minor_stress_impact_gain
|
|
gallant = minor_stress_impact_gain
|
|
generous = minor_stress_impact_gain
|
|
humble = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
|
|
# And greedy ones still don't wanna pay up
|
|
greedy = minor_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = { #Zealous AI characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 1
|
|
ai_compassion = -0.8
|
|
}
|
|
}
|
|
|
|
remove_treasury_or_gold = medium_treasury_or_gold_value
|
|
add_piety = minor_piety_gain
|
|
add_character_modifier = {
|
|
modifier = widows_and_widowers_amazing_funds_modifier
|
|
years = 20
|
|
}
|
|
|
|
scope:expectant_courtier = {
|
|
if = {
|
|
limit = {
|
|
has_trait = zealous
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = pleased_opinion
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = slightly_disappointed_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
option = { #But they can come stay at my court! We have food in abundance!
|
|
name = fp2_struggle.1001.c
|
|
flavor = fp2_struggle.1001.c.tt
|
|
trigger = {
|
|
fp2_struggle.1001_weird_option_traits = yes
|
|
}
|
|
|
|
stress_impact = {
|
|
# Cheap or shy character's don't like this
|
|
greedy = medium_stress_impact_gain
|
|
shy = medium_stress_impact_gain
|
|
|
|
#Nor do those wo really care about the appearance and glory of their courts
|
|
|
|
ambitious = minor_stress_impact_gain
|
|
arrogant = medium_stress_impact_gain
|
|
temperate = medium_stress_impact_gain
|
|
august = medium_stress_impact_gain
|
|
born_in_the_purple = minor_stress_impact_gain
|
|
|
|
# But hypersocial hippies love it
|
|
|
|
humble = minor_stress_impact_loss
|
|
gregarious = minor_stress_impact_loss
|
|
eccentric = minor_stress_impact_loss
|
|
}
|
|
|
|
ai_chance = { #Deranged or hypersocial but irrational AI characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_energy = 0.8
|
|
ai_rationality = -0.8
|
|
}
|
|
}
|
|
|
|
scope:expectant_courtier = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_character_modifier = associates_with_strange_peasants_modifier
|
|
has_trait = bastard
|
|
has_trait = legitimized_bastard
|
|
has_trait = intellect_bad_3
|
|
has_trait = intellect_bad_2
|
|
has_trait = improvident
|
|
has_trait = gregarious
|
|
} has_trait = lunatic
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = pleased_opinion
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = perplexed_opinion
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
root = {
|
|
faith = {
|
|
OR = {
|
|
trait_is_virtue = gregarious
|
|
trait_is_virtue = humble
|
|
trait_is_virtue = generous
|
|
}
|
|
}
|
|
}
|
|
}
|
|
add_piety = medium_piety_gain
|
|
}
|
|
else = {
|
|
add_piety = minor_piety_gain
|
|
}
|
|
add_character_modifier = {
|
|
modifier = destitute_single_mothers_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
|
|
option = { #Surely, my benevolent vassals can help funding this.
|
|
name = fp2_struggle.1001.d
|
|
|
|
trigger = {
|
|
any_vassal = {
|
|
count = all
|
|
is_ai = yes
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Careful or dilpomatically minded characters won't do this.
|
|
content = medium_stress_impact_gain
|
|
diplomat = medium_stress_impact_gain
|
|
paranoid = medium_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = { #Economic AI characters pick this option, while the careful don't.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.5
|
|
ai_greed = 0.5
|
|
ai_rationality = -0.5
|
|
}
|
|
}
|
|
|
|
remove_treasury_or_gold = minor_treasury_or_gold_value
|
|
|
|
custom_tooltip = fp2_struggle.1001.specialdescpositive
|
|
custom_tooltip = fp2_struggle.1001.specialdescnegative
|
|
hidden_effect = {
|
|
every_vassal = {
|
|
IF = {
|
|
limit = {
|
|
NOT = {
|
|
has_trait = pregnant
|
|
}
|
|
}
|
|
IF = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = compassionate
|
|
has_trait = generous
|
|
has_trait = just
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = funded_righteous_cause_opinion
|
|
}
|
|
}
|
|
ELSE = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = extorted_me_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:expectant_courtier = {
|
|
IF = {
|
|
limit = {
|
|
is_vassal_of = root #if she is, she gets angry because now SHE is expected to pay for this...
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -20
|
|
modifier = extorted_me_opinion
|
|
}
|
|
}
|
|
ELSE = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = pleased_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
add_character_modifier = {
|
|
modifier = nursing_salaries_for_single_mothers_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
|
|
option = { #I am your king, not a wet nurse!
|
|
name = fp2_struggle.1001.e
|
|
|
|
stress_impact = {
|
|
# Benevolent characters wouldn't ignore this.
|
|
compassionate = medium_stress_impact_gain
|
|
gallant = medium_stress_impact_gain
|
|
generous = medium_stress_impact_gain
|
|
|
|
# nor would those who are truly competent or just.
|
|
administrator = minor_stress_impact_gain
|
|
ambitious = minor_stress_impact_gain
|
|
diligent = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
eccentric = minor_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = { #Callous or cheap AI characters pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_rationality = 0.5
|
|
ai_greed = 0.5
|
|
ai_honor = -0.7
|
|
ai_compassion = -0.7
|
|
}
|
|
}
|
|
|
|
scope:expectant_courtier = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -20
|
|
modifier = hurt_opinion
|
|
}
|
|
}
|
|
|
|
random = {
|
|
chance = 50
|
|
send_interface_toast = {
|
|
left_icon = root
|
|
title = not_my_problem_toast
|
|
add_character_modifier = {
|
|
modifier = starving_single_mothers_and_children_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Andalusian Advancements
|
|
# By Ola Jentzsch
|
|
###################################
|
|
# Inspired by an idea by Isabella welch
|
|
#########################################
|
|
scripted_trigger neighboring_ruler_proper_culture_trigger = {
|
|
OR = {
|
|
culture = culture:andalusian
|
|
culture = culture:bedouin
|
|
culture = culture:baranis
|
|
culture = culture:butr
|
|
culture = culture:levantine
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1002 = {
|
|
type = character_event
|
|
title = fp2_struggle.1002.t
|
|
desc = { #Different flavor depending on time period
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { current_date <= 1030.1.1 }
|
|
desc = fp2_struggle.1002.desc_early_golden_age
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
current_year >= 1250
|
|
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
|
|
}
|
|
desc = fp2_struggle.1002.desc_post_golden_age_christian #this triggers the latinized names of the polymaths
|
|
}
|
|
triggered_desc = {
|
|
trigger = { current_year >= 1250 }
|
|
desc = fp2_struggle.1002.desc_post_golden_age_unchristian #or their arabic ones
|
|
}
|
|
triggered_desc = {
|
|
trigger = { current_year >= 1030 }
|
|
desc = fp2_struggle.1002.desc_late_golden_age
|
|
}
|
|
}
|
|
first_valid = {
|
|
triggered_desc = { #tests if the event would fire one of the historical physicians
|
|
trigger = {
|
|
AND = {
|
|
current_year > 976
|
|
current_year < 1010
|
|
}
|
|
exists = global_var:albucasis_created
|
|
exists = scope:albucasis_physician
|
|
scope:great_physician = scope:albucasis_physician #this is a measure taken so that the loc gets tied to the appropriate character
|
|
}
|
|
desc = fp2_struggle.1002.desc_albucasis #this is the dialogue text if Albucasis spawns
|
|
}
|
|
triggered_desc = { #tests if the event would fire one of the historical physicians
|
|
trigger = {
|
|
AND = {
|
|
current_year > 1125
|
|
current_year < 1165
|
|
}
|
|
exists = global_var:avenzoar_created
|
|
exists = scope:avenzoar_physician
|
|
scope:great_physician = scope:avenzoar_physician
|
|
}
|
|
desc = fp2_struggle.1002.desc_avenzoar #this is the dialogue if Avenzoar spawns
|
|
}
|
|
triggered_desc = { #tests if the event would fire one of the historical physicians
|
|
trigger = {
|
|
AND = {
|
|
current_year > 1140
|
|
current_year < 1180
|
|
}
|
|
exists = global_var:tufail_created
|
|
exists = scope:tufail_physician
|
|
scope:great_physician = scope:tufail_physician
|
|
}
|
|
desc = fp2_struggle.1002.desc_tufail #this is the dialogue if Ibn Tufail spawns
|
|
}
|
|
triggered_desc = { #this defaults to a random Andalusian physician
|
|
trigger = { current_year >= 1050 } ##
|
|
desc = fp2_struggle.1002.desc_no_historical_physician_late
|
|
}
|
|
desc = fp2_struggle.1002.desc_no_historical_physician_early
|
|
}
|
|
first_valid = { #if root has a court physician, it changes the narrative a bit.
|
|
triggered_desc = {
|
|
trigger = {
|
|
court_physician_available_trigger = yes
|
|
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
|
|
}
|
|
desc = fp2_struggle.1002.desc_has_physician_and_is_christian #in this case, the slur "heathen" is used
|
|
}
|
|
triggered_desc = {
|
|
trigger = { court_physician_available_trigger = yes }
|
|
desc = fp2_struggle.1002.desc_has_physician_but_not_christian #in this case, the slur "eccentric" is used
|
|
}
|
|
triggered_desc = {
|
|
trigger = { OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion } }
|
|
desc = fp2_struggle.1002.desc_has_no_physician_but_is_christian #in this case, the slur "heathen" is used
|
|
}
|
|
desc = fp2_struggle.1002.desc_has_no_physician #default option should all else fail
|
|
}
|
|
}
|
|
|
|
theme = medicine
|
|
override_background = { reference = throne_room }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_content
|
|
}
|
|
right_portrait = {
|
|
character = scope:great_physician
|
|
animation = personality_rational #polymaths should always have this pose :D
|
|
}
|
|
|
|
lower_left_portrait = scope:neighboring_ruler #this is the ruler that's angry with the polymath
|
|
|
|
lower_right_portrait = scope:scoped_physician #this is your court physician if you have one
|
|
|
|
cooldown = { years = 100 }
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
#any_character_to_title_neighboring_county = { #this searches for a neighboring province that has the xenophilic tradition, which is this event's dynamic way of checking for Andalusian culture or cultures derived from it.
|
|
any_neighboring_and_across_water_top_liege_realm_owner = {
|
|
culture = {
|
|
OR = {
|
|
has_cultural_tradition = tradition_xenophilic
|
|
has_cultural_tradition = tradition_medicinal_plants
|
|
has_cultural_tradition = tradition_fp2_malleable_subjects
|
|
}
|
|
}
|
|
}
|
|
|
|
root.capital_province = { #so that it only triggers for people close to Andalusia
|
|
OR = {
|
|
geographical_region = world_europe_west_iberia
|
|
geographical_region = world_europe_west_francia
|
|
geographical_region = world_europe_south_italy
|
|
}
|
|
}
|
|
|
|
NOT = { #So that it doesn't fire for the Andalusians themselves, because that'd make the narrative weird
|
|
culture = culture:andalusian
|
|
}
|
|
|
|
NOT = { #So that it doesn't fire for the Umayyads when they control Iberia
|
|
AND = {
|
|
culture = culture:levantine
|
|
root.capital_province = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
}
|
|
|
|
any_neighboring_and_across_water_top_liege_realm_owner = {
|
|
is_ai = yes
|
|
}
|
|
}
|
|
|
|
weight_multiplier = {
|
|
base = 0.4
|
|
modifier = {
|
|
OR = {
|
|
AND = {
|
|
current_year > 976
|
|
current_year < 1010
|
|
}
|
|
AND = {
|
|
current_year > 1125
|
|
current_year < 1180
|
|
}
|
|
}
|
|
add = 1.6
|
|
}
|
|
modifier = {
|
|
neighboring_ruler_proper_culture_trigger = yes
|
|
add = 0.5
|
|
}
|
|
}
|
|
|
|
|
|
immediate = {
|
|
|
|
random_neighboring_and_across_water_top_liege_realm_owner = { #this searches for a neighboring ruler with the proper cultural tradition, which is this event's dynamic way of checking for Andalusian culture or cultures derived from it.
|
|
limit = {
|
|
culture = {
|
|
OR = {
|
|
has_cultural_tradition = tradition_xenophilic
|
|
has_cultural_tradition = tradition_medicinal_plants
|
|
has_cultural_tradition = tradition_fp2_malleable_subjects
|
|
}
|
|
}
|
|
}
|
|
culture = { save_scope_as = xenophilic_culture } #this is mostly used for error-checking because the debug log is unclear.
|
|
}
|
|
|
|
if = { #This looks to see if one of three historical physicians will be used in the event
|
|
limit = { #their rough period of activity
|
|
AND = {
|
|
current_year > 976
|
|
current_year < 1010
|
|
}
|
|
NOT = { exists = global_var:albucasis_created } #makes sure that he wasn't already spawned by the event elsewhere
|
|
is_ai = no
|
|
scope:xenophilic_culture = culture:andalusian
|
|
}
|
|
create_character = {
|
|
age = { 40 70 } #their rough age during the period of their flourishing
|
|
location = root.capital_province
|
|
name = "Abu al-Qasim Al-Zahrawi" #Albucasis
|
|
gender = male
|
|
template = scholar_character
|
|
trait = intellect_good_3 #He was one of the Middle Ages' greatest geniuses
|
|
trait = lifestyle_herbalist
|
|
trait = lifestyle_physician
|
|
trait = education_learning_4
|
|
random_traits_list = { #his personality, extrapolated from my research
|
|
count = 3
|
|
ambitious = {}
|
|
compassionate = {}
|
|
calm = {}
|
|
diligent = {}
|
|
humble = {}
|
|
patient = {}
|
|
}
|
|
random_traits_list = { #this is to hint to the player why he was exiled from the previous court
|
|
count = 1
|
|
fornicator = {}
|
|
deviant = {}
|
|
sodomite = {}
|
|
}
|
|
culture = culture:andalusian
|
|
dynasty = none
|
|
faith = faith:muwalladi
|
|
save_scope_as = albucasis_physician #this is needed to get the loc right
|
|
}
|
|
set_global_variable = albucasis_created
|
|
scope:albucasis_physician = {
|
|
save_scope_as = great_physician #this is to create one easy, generic scope for use in the rest of the event
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = { #their rough period of activity
|
|
AND = {
|
|
current_year > 1125
|
|
current_year < 1165
|
|
}
|
|
NOT = { exists = global_var:avenzoar_created } #makes sure that he wasn't already spawned by the event elsewhere
|
|
is_ai = no
|
|
scope:xenophilic_culture = culture:andalusian
|
|
}
|
|
create_character = {
|
|
age = { 31 71 } #their rough age during the period of their flourishing
|
|
location = root.capital_province
|
|
name = "Abū Marwān ibn Zuhr" #Avenzoar
|
|
gender = male
|
|
template = scholar_character
|
|
trait = intellect_good_2
|
|
trait = scholar
|
|
trait = lifestyle_physician
|
|
trait = education_learning_4
|
|
random_traits_list = { #his personality, extrapolated from my research
|
|
count = 3
|
|
diligent = {}
|
|
cynical = {}
|
|
humble = {}
|
|
vengeful = {} #He was bitter over having been exiled from Morocco
|
|
}
|
|
random_traits_list = { #this is to hint to the player why he was exiled from the previous court
|
|
count = 1
|
|
fornicator = {}
|
|
deviant = {}
|
|
sodomite = {}
|
|
murderer = {}
|
|
}
|
|
culture = culture:andalusian
|
|
dynasty = none
|
|
faith = faith:muwalladi
|
|
save_scope_as = avenzoar_physician
|
|
}
|
|
|
|
set_global_variable = avenzoar_created
|
|
scope:avenzoar_physician = {
|
|
save_scope_as = great_physician
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = { #their rough period of activity
|
|
AND = {
|
|
current_year > 1140
|
|
current_year < 1180
|
|
}
|
|
NOT = { exists = global_var:tufail_created } #makes sure that he wasn't already spawned by the event elsewhere
|
|
is_ai = no
|
|
scope:xenophilic_culture = culture:andalusian
|
|
}
|
|
create_character = {
|
|
age = { 35 75 } #their rough age during the period of their flourishing
|
|
location = root.capital_province
|
|
name = "Abū Bakr ibn Tufail" #Ibn Tufail
|
|
gender = male
|
|
template = scholar_character
|
|
trait = intellect_good_2
|
|
trait = theologian
|
|
trait = lifestyle_physician
|
|
trait = education_learning_3
|
|
trait = journaller #He was an avid writer
|
|
random_traits_list = { #his personality, extrapolated from my research
|
|
count = 3
|
|
diligent = {}
|
|
calm = {}
|
|
humble = {}
|
|
trusting = {}
|
|
}
|
|
random_traits_list = { #this is to hint to the player why he was exiled from the previous court
|
|
count = 1
|
|
fornicator = {}
|
|
deviant = {}
|
|
sodomite = {}
|
|
witch = {}
|
|
}
|
|
culture = culture:andalusian
|
|
dynasty = none
|
|
faith = faith:muwalladi
|
|
save_scope_as = tufail_physician
|
|
}
|
|
set_global_variable = tufail_created
|
|
scope:tufail_physician = {
|
|
save_scope_as = great_physician
|
|
}
|
|
}
|
|
|
|
|
|
else = { #or it defaults to a random one
|
|
create_character = {
|
|
age = { 32 50 }
|
|
location = root.capital_province
|
|
template = scholar_character
|
|
trait = intellect_good_1
|
|
trait = education_learning_3
|
|
trait = lifestyle_physician
|
|
random_traits_list = {
|
|
count = 3
|
|
ambitious = {}
|
|
calm = {}
|
|
diligent = {}
|
|
cynical = {}
|
|
humble = {}
|
|
patient = {}
|
|
}
|
|
random_traits_list = { ##his is to hint to the player why he was exiled from the previous court
|
|
count = 1
|
|
fornicator = {}
|
|
deviant = {}
|
|
sodomite = {}
|
|
incestuous = {}
|
|
witch = {}
|
|
}
|
|
culture = scope:xenophilic_culture
|
|
faith = faith:muwalladi
|
|
save_scope_as = great_physician
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:great_physician = {
|
|
add_trait_xp = {
|
|
trait = lifestyle_physician
|
|
value = 100
|
|
}
|
|
}
|
|
}
|
|
|
|
random_neighboring_and_across_water_top_liege_realm_owner = {
|
|
limit = {
|
|
AND = {
|
|
neighboring_ruler_proper_culture_trigger = yes #the event prefers the neighboring ruler to be of these cultures, since it makes the most sense histrically for the scholar to have been at that court.
|
|
is_ai = yes
|
|
}
|
|
}
|
|
alternative_limit = { is_ai = yes}
|
|
save_scope_as = neighboring_ruler
|
|
}
|
|
|
|
if = { #if you have a court physician already, he has a stake in this!
|
|
limit = {
|
|
court_physician_available_trigger = yes
|
|
}
|
|
save_court_physician_as_effect = { SCOPE_NAME = scoped_physician }
|
|
}
|
|
}
|
|
|
|
option = { #I could use a new physician...
|
|
name = fp2_struggle.1002.a
|
|
|
|
ai_chance = { #rational AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_rationality = 0.7
|
|
ai_zeal = -0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Conservative characters don't want to do this.
|
|
content = minor_stress_impact_gain
|
|
|
|
# Nor do self-absorbed ones
|
|
arrogant = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
}
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive!
|
|
|
|
add_courtier = scope:great_physician #he's added to root's court
|
|
|
|
court_position_grant_effect = {
|
|
EMPLOYER = root
|
|
CANDIDATE = scope:great_physician
|
|
POS = court_physician
|
|
}
|
|
|
|
scope:great_physician = { #naturally, the polymath likes to get a new job
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = hired_me_opinion
|
|
}
|
|
}
|
|
|
|
scope:neighboring_ruler = { #but the neighboring ruler gets angry that you harbor him
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_harbored_polymath
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
|
|
add_character_modifier = { #while you get inspired!
|
|
modifier = inspired_medicine_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
|
|
option = { #I do not need you, I can read myself.
|
|
name = fp2_struggle.1002.b
|
|
flavor = fp2_struggle.1002.b.tt
|
|
|
|
trigger = { #This only fires after Avicenna's life, as his books are referenced.
|
|
current_year >= 1030
|
|
learning >= medium_skill_rating #and you have to be at least somewhat learned to have this option appear, otherwise it'd be superflous
|
|
NOT = {
|
|
exists = scope:scoped_physician
|
|
}
|
|
}
|
|
|
|
ai_chance = { #energetic, overconfident AI chooses this
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_energy = 0.7
|
|
ai_boldness = 0.6
|
|
ai_rationality = 0.4
|
|
ai_zeal = -0.6
|
|
ai_greed = -0.6
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Conservative, dull or cheap characters won't do this
|
|
content = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
dull = medium_stress_impact_gain
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1002.physicianleaves
|
|
|
|
remove_short_term_gold = minor_gold_value #books are expensive!
|
|
|
|
if = {
|
|
limit = { has_lifestyle = learning_lifestyle }
|
|
add_learning_lifestyle_xp = medium_lifestyle_experience
|
|
}
|
|
|
|
if = { #your physician gets disappointed for your lack of trust in them
|
|
limit = { exists = scope:scoped_physician }
|
|
scope:scoped_physician = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = disappointed_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
duel = { #you try to read Arabic books
|
|
skill = learning
|
|
value = medium_skill_rating
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
send_interface_toast = { #you succeed!
|
|
title = reading_avicenna_toast.success
|
|
left_icon = root
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = inspired_medicine_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
send_interface_toast = { #you misunderstod something!
|
|
title = reading_avicenna_toast.failure
|
|
left_icon = root
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = misread_medicine_incompetence_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
option = { #What do I need you for? I can read Greek myself
|
|
name = fp2_struggle.1002.c
|
|
flavor = fp2_struggle.1002.c.tt
|
|
|
|
trigger = { #This triggers for the early period, before the Canon of Medicine was published.
|
|
current_date <= 1030.1.1
|
|
learning >= medium_skill_rating
|
|
NOT = {
|
|
exists = scope:scoped_physician
|
|
}
|
|
}
|
|
|
|
ai_chance = { #energetic AI are the most likely to attempt this in this early time period
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_energy = 0.8
|
|
ai_rationality = 0.2
|
|
ai_zeal = -0.2
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Conservative, dull or cheap characters won't do this
|
|
content = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
dull = medium_stress_impact_gain
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1002.physicianleaves
|
|
|
|
remove_short_term_gold = minor_gold_value #books are really expensive in this early period
|
|
|
|
if = {
|
|
limit = { has_lifestyle = learning_lifestyle }
|
|
add_learning_lifestyle_xp = medium_lifestyle_experience
|
|
}
|
|
|
|
if = {
|
|
limit = { exists = scope:scoped_physician } #your physician still gets disappointed in you
|
|
scope:scoped_physician = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = disappointed_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
duel = { #this duel is difficult - it's mostly an option for extremely learned or overconfident rulers.
|
|
skill = learning
|
|
value = high_skill_rating
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
send_interface_toast = {
|
|
title = reading_hippocrates_toast.success #You can read greek!
|
|
left_icon = root
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = medical_insights_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
send_interface_toast = {
|
|
title = reading_hippocrates_toast.failure #apparently, your Greek skills aren't all you cranked them up to be.
|
|
left_icon = root
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = cannot_read_greek_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #I will send you back from whence you came...in chains.
|
|
name = fp2_struggle.1002.d
|
|
|
|
ai_chance = { #but vengeful ones sure love it!
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_vengefulness = 0.8
|
|
ai_honor = -0.2
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
#Caring, carefree or just characters won't do this
|
|
generous = minor_stress_impact_gain
|
|
gregarious = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
trusting = minor_stress_impact_gain
|
|
compassionate = major_stress_impact_gain
|
|
forgiving = major_stress_impact_gain
|
|
|
|
#But arbitrary bastards love it
|
|
arbitrary = minor_stress_impact_loss
|
|
}
|
|
|
|
scope:great_physician = { #the polymath, naturally, gets sad that you send him back to his disgruntled former employer.
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -40
|
|
modifier = left_me_to_wolves_opinion
|
|
}
|
|
}
|
|
|
|
if = { #but your current physician is very happy!
|
|
limit = { exists = scope:scoped_physician }
|
|
scope:scoped_physician = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = let_me_keep_my_job_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:neighboring_ruler = { #as is the neighboring ruler, especially if he is your friend
|
|
if = {
|
|
limit = {
|
|
has_relation_friend = root
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = strengthened_friendship_opinion
|
|
}
|
|
}
|
|
else = {
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_returned_refugee
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
add_dread = minor_dread_gain #you gain some dread for doing this, naturally
|
|
|
|
custom_tooltip = fp2_struggle.1001.physician_imprisoned
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
scope:neighboring_ruler = {
|
|
is_ruler = yes
|
|
}
|
|
}
|
|
scope:great_physician = { #while the polymath gets to languish in a dungeon
|
|
hard_imprison_character_effect = {
|
|
TARGET = this
|
|
IMPRISONER = scope:neighboring_ruler
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
scope:great_physician = {
|
|
silent_disappearance_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Wash my hands? Are you insane?"
|
|
name = fp2_struggle.1002.e
|
|
|
|
trigger = { #This only triggers for Christianity and similar faiths
|
|
faith = {
|
|
has_doctrine_parameter = theocracy_temple_lease
|
|
NOR = {
|
|
has_doctrine_parameter = legalism_modified_law_costs
|
|
has_doctrine_parameter = literalist_debate_enabled
|
|
}
|
|
}
|
|
NOT = { has_lifestyle = learning_lifestyle } #So that this doesn't fire if you have the "Wash your hands" perk
|
|
}
|
|
|
|
ai_chance = { #and fanatics don't care about hygiene...apparently
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.8
|
|
ai_rationality = -0.8
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
# Innovative or nervous chracters wouldn't pick this option.
|
|
ambitious = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
|
|
#But stubborn or content ones would
|
|
content = minor_stress_impact_loss
|
|
lazy = minor_stress_impact_loss
|
|
stubborn = minor_stress_impact_loss
|
|
eccentric = minor_stress_impact_loss
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1002.physicianleaves
|
|
|
|
if = { #your physician, again, loves that they get to keep their job
|
|
limit = { exists = scope:scoped_physician }
|
|
scope:scoped_physician = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = let_me_keep_my_job_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
add_piety = medium_piety_gain #and your faith rewards you for turning away the heathen
|
|
|
|
add_character_modifier = { #but you're rolling in filth
|
|
modifier = rolling_in_filth_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
|
|
|
|
|
|
option = { #Begone, innovation should only come from God.
|
|
name = fp2_struggle.1002.f
|
|
|
|
trigger = {
|
|
current_year >= 1065 #because this option refers to developments in islam that happened within the Seljuk empire
|
|
faith = { #it checks for doctrines, rather than islam itself, to make the event more dynamic
|
|
OR = {
|
|
has_doctrine_parameter = legalism_modified_law_costs
|
|
has_doctrine_parameter = literalist_debate_enabled
|
|
has_doctrine_parameter = religious_legal_pronouncements_law_cost_reduction
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = { #zealous AIs pick this, but it's not entirely unrational - just hostile to new ideas.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.8
|
|
ai_rationality = -0.2
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
#True rationalists abhor this option
|
|
ambitious = medium_stress_impact_gain
|
|
diligent = medium_stress_impact_gain
|
|
|
|
#But stubborn and fanatical ones like it
|
|
content = minor_stress_impact_loss
|
|
stubborn = minor_stress_impact_loss
|
|
zealous = minor_stress_impact_loss
|
|
eccentric = minor_stress_impact_loss
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1002.physicianleaves
|
|
|
|
if = { #your physician, again, loves that they get to keep their job
|
|
limit = { exists = scope:scoped_physician }
|
|
scope:scoped_physician = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = let_me_keep_my_job_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:neighboring_ruler = { #the neighboring ruler likes that you rebuked the polymath, at least
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = rejected_my_enemy_opinion
|
|
}
|
|
}
|
|
|
|
add_character_modifier = { #but you draw closer to the Nizamiyah movement, rejecting innovation.
|
|
modifier = anti_innovation_muslim_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Soul of Iron
|
|
# By Ola Jentzsch
|
|
###################################
|
|
fp2_struggle.1010 = { # Soul of Iron, by Ola Jentzsch
|
|
type = character_event
|
|
title = fp2_struggle.1010.t
|
|
desc = fp2_struggle.1010.desc
|
|
theme = realm
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = happiness #root smells an opportunity!
|
|
}
|
|
right_portrait = {
|
|
character = scope:great_swordsmith
|
|
animation = scheme #he's a scheming bastard, kinda
|
|
}
|
|
|
|
|
|
trigger = { #The province must also be involved in the Iberian struggle
|
|
is_ai = no
|
|
has_fp2_dlc_trigger = yes
|
|
any_held_county = {
|
|
any_county_province = {
|
|
has_building_or_higher = blacksmiths_01 #This event needs ROOT to have a blacksmith building
|
|
}
|
|
}
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
}
|
|
|
|
cooldown = { years = 100 }
|
|
|
|
immediate = {
|
|
|
|
random_held_county = { #this is to find the county that has the blacksmith
|
|
limit = {
|
|
any_county_province = {
|
|
has_building_or_higher = blacksmiths_01
|
|
}
|
|
}
|
|
save_scope_as = blacksmith_county #this scopes it - note that it might be the same county as toledo_county; that is intentional.
|
|
}
|
|
|
|
title:b_toledo = { save_scope_as = toledo_holding } #this is used in the localization
|
|
|
|
title:c_toledo = { save_scope_as = toledo_county } #this is used in option c, as well as the localization
|
|
|
|
create_character = { #this is the mighty blacksmith that the event needs
|
|
age = { 45 55 } #he's experienced and aging, but not old
|
|
location = root.capital_province
|
|
gender_female_chance = root_faith_dominant_gender_female_chance #could be female, if given the right context.
|
|
trait = intellect_good_3 #he's a genius craftsman
|
|
trait = strong #and a blacksmith...
|
|
trait = arrogant #he's supremely gifted, but also extremely arrogant, Fëanor basically
|
|
random_traits_list = { #the rest of his questionable personality
|
|
count = 2
|
|
ambitious = {}
|
|
diligent = {}
|
|
callous = {}
|
|
greedy = {}
|
|
patient = {}
|
|
stubborn = {}
|
|
vengeful = {}
|
|
}
|
|
random_traits_list = { #something fun to give him character!
|
|
count = 1
|
|
one_eyed = {}
|
|
scarred = {}
|
|
}
|
|
culture = scope:toledo_county.culture
|
|
faith = faith:catholic
|
|
dynasty = none
|
|
save_scope_as = great_swordsmith #this saves him as a scope so we can get nice effects to bounce off him!
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:great_swordsmith = {
|
|
add_character_modifier = {
|
|
modifier = master_smith_npc_modifier #this is a neat modifier he gets as a master smith. it's pretty powerful, giving a boost to Stewardship and gold income, but since he's an NPC, it doesn't matter much. It's mostly to create flavor if the player actually examines his stats.
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
option = { #Let us make a compromise
|
|
name = fp2_struggle.1010.a
|
|
flavor = toledo_compromise_flavor
|
|
|
|
trigger = { #root needs to control Toledo, and it needs to have a blacksmith building.
|
|
any_held_county = {
|
|
any_county_province = {
|
|
barony = title:b_toledo
|
|
has_building_or_higher = blacksmiths_01
|
|
}
|
|
}
|
|
scope:toledo_county = { #so that this option doesn't fire twice
|
|
NOT = { has_county_modifier = toledo_steel_county_modifier }
|
|
}
|
|
}
|
|
|
|
ai_chance = { #Smart, patient AIs pick this option, others are more likely to go for a bolder approach.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_rationality = 1
|
|
ai_honor = 0.5
|
|
ai_boldness = -0.5
|
|
ai_zeal = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = { #arrogant or visionless rulers dislike this option
|
|
arrogant = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
wrathful = minor_stress_impact_gain
|
|
}
|
|
|
|
remove_short_term_gold = major_gold_value #someone still has to be bribed here
|
|
|
|
scope:toledo_county = {
|
|
add_county_modifier = {
|
|
modifier = toledo_steel_county_modifier
|
|
}
|
|
}
|
|
|
|
scope:toledo_county = {
|
|
add_county_modifier = {
|
|
modifier = governance_1041_quarreling_guilds_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Whatever knowledge you possess, I shall draw it out.
|
|
name = fp2_struggle.1010.b
|
|
flavor = fp2_struggle.1010.swordsmith_imprisoned
|
|
|
|
trigger = {
|
|
OR = {
|
|
has_trait = schemer
|
|
has_trait = torturer
|
|
has_trait = paranoid
|
|
dread >= high_dread
|
|
}
|
|
NAND = {
|
|
any_held_county = {
|
|
any_county_province = {
|
|
barony = title:b_toledo
|
|
has_building_or_higher = blacksmiths_01
|
|
}
|
|
}
|
|
scope:toledo_county = { #so that this option doesn't fire twice
|
|
NOT = { has_county_modifier = toledo_steel_county_modifier }
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
scope:great_swordsmith = { #while the great swordsmiths gets to languish in a dungeon
|
|
hard_imprison_character_effect = {
|
|
TARGET = this
|
|
IMPRISONER = root
|
|
}
|
|
}
|
|
|
|
|
|
ai_chance = { #Compassionate or just AI wouldn't do this, but hateful paranoid psychopats, sure! Perhaps the smith even deserved it...
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_vengefulness = 1
|
|
ai_honor = -1
|
|
}
|
|
}
|
|
|
|
stress_impact = { #this is not what a Buddha would do
|
|
compassionate = major_stress_impact_gain
|
|
generous = medium_stress_impact_gain
|
|
gregarious = medium_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
}
|
|
|
|
add_dread = minor_dread_gain #you gain some dread for doing this, naturally
|
|
|
|
scope:great_swordsmith = {
|
|
add_character_modifier = {
|
|
modifier = recently_tortured
|
|
years = 5
|
|
}
|
|
}
|
|
|
|
|
|
add_character_modifier = {
|
|
modifier = tortured_smith_spilling_secrets_modifier
|
|
years = 25
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1010.compassionate_courtiers
|
|
hidden_effect = { #Compassionate or righteous courtiers will secretly dislike this
|
|
every_courtier = {
|
|
IF = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = compassionate
|
|
has_trait = just
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = cruelty_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #You shall have it, if you make swords for my armies
|
|
name = fp2_struggle.1010.c
|
|
flavor = fp2_struggle.1010.smithgoesaway
|
|
|
|
ai_chance = { #ambitious AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_energy = 0.7
|
|
ai_vengefulness = 0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
content = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
}
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive!
|
|
|
|
add_character_modifier = { #as promised, your armies gets equipped with Toledo steel!
|
|
modifier = toledo_steel_armaments_modifier
|
|
years = 50
|
|
}
|
|
|
|
scope:blacksmith_county = { #the great smith usurps the blacksmiths' guild, with your blessing
|
|
add_county_modifier = {
|
|
modifier = county_corruption_uncooperative_guilds_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1010.paranoid_rivals #your neighbors gets really paranoid when they learn about this
|
|
hidden_effect = {
|
|
struggle:iberian_struggle = {
|
|
every_involved_ruler = {
|
|
limit = {
|
|
NOT = { is_allied_to = root }
|
|
character_is_realm_neighbor = root
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -20
|
|
modifier = threatened_by_buildup_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Make me Iberia's finest blade, and all the smithies shall be yours
|
|
name = fp2_struggle.1010.d
|
|
|
|
flavor = fp2_struggle.1010.smithmakesweapon #the master swordsmiths stays in your court for the time being, to make the great sword he promised you.
|
|
|
|
add_courtier = scope:great_swordsmith
|
|
|
|
hidden_effect = {
|
|
scope:great_swordsmith = {
|
|
set_knight_status = forbid #this is to prevent him being auto-turned into a knight during his stay, as he tends to get quite high prowess. The player can still make him a knight manually if they insist on it.
|
|
}
|
|
}
|
|
|
|
ai_chance = { #Self-absorbed AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_greed = 0.7
|
|
ai_boldness = 0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = { #this is an extravagant option, not for the humble or temperate - but just people don't like it either, since it still lets the blacksmith usurp the guilds.
|
|
humble = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
temperate = minor_stress_impact_gain
|
|
}
|
|
|
|
remove_short_term_gold = major_gold_value #this guy knows what he's worth!
|
|
|
|
scope:blacksmith_county = { #the guild gets usurped by the arrogant master smith!
|
|
add_county_modifier = {
|
|
modifier = county_corruption_uncooperative_guilds_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
|
|
hidden_effect = { #this looks weird in the tooltip otherwise!
|
|
random_list = { #I recommend increasing the odds for the special cool sword when testing this event!
|
|
25 = { #You have a 25% chance of getting a really cool sword here!
|
|
trigger = { is_ai = no } #this option is just for players, to create less inflation on awesume swords.
|
|
trigger_event = {
|
|
id = fp2_struggle.1011
|
|
days = { 30 60 }
|
|
}
|
|
}
|
|
75 = { #but you can still get a nice toledo blade!
|
|
trigger_event = {
|
|
id = fp2_struggle.1012
|
|
days = { 30 60 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #I will not anger the guilds for your vanity.
|
|
name = fp2_struggle.1010.e
|
|
|
|
flavor = fp2_struggle.1010.swordsmith_leaves
|
|
|
|
ai_chance = { #Lazy or worried AI pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_energy = -0.7
|
|
ai_greed = 0.3
|
|
ai_boldness = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = { #this is not the option for opportunists, but a good option for some humble stress loss
|
|
ambitious = major_stress_impact_gain
|
|
diligent = medium_stress_impact_gain
|
|
content = minor_stress_impact_loss
|
|
humble = minor_stress_impact_loss
|
|
temperate = minor_stress_impact_loss
|
|
paranoid = minor_stress_impact_loss
|
|
}
|
|
|
|
scope:blacksmith_county = { #You curry favor with the blacksmith's guild
|
|
add_county_modifier = {
|
|
modifier = guild_rights_protected_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
|
|
scope:great_swordsmith = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = insulted_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1011 = { # The Masterwork, by Ola Jentzsch
|
|
type = character_event
|
|
title = fp2_struggle.1011.t
|
|
desc = fp2_struggle.1011.desc
|
|
theme = realm
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = admiration
|
|
}
|
|
right_portrait = {
|
|
character = scope:great_swordsmith
|
|
animation = marshal
|
|
}
|
|
|
|
artifact = { # To display the artifact in the event-window
|
|
target = scope:amazing_toledo_sword
|
|
position = lower_right_portrait
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
scope:great_swordsmith = {
|
|
is_available_healthy_ai_adult = yes
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
|
|
save_scope_as = owner
|
|
set_artifact_rarity_illustrious = yes
|
|
|
|
create_artifact = {
|
|
name = awesome_toledo_sword_name
|
|
creator = scope:great_swordsmith
|
|
description = awesome_toledo_sword_desc
|
|
visuals = sword
|
|
type = sword
|
|
modifier = artifact_amazing_toledo_sword_modifier
|
|
wealth = scope:wealth # This comes from the scripted effect above
|
|
quality = scope:quality # This comes from the scripted effect above
|
|
save_scope_as = amazing_toledo_sword # Allows the sword to be accessed via scope after its creation
|
|
}
|
|
}
|
|
|
|
option = { #Martiello, the hammer
|
|
name = fp2_struggle.1011.a
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_iberian }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = martiello_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Tiniebra, the darkness
|
|
name = fp2_struggle.1011.b
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_iberian }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = tiniebra_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Vermejo, the red
|
|
name = fp2_struggle.1011.c
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_iberian }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = vermejo_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Jargonça, like the blue gemstone.
|
|
name = fp2_struggle.1011.d
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_iberian }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = jargonca_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Suhayl, the glorious.
|
|
name = fp2_struggle.1011.e
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_arabic }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = suhayl_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #al-Battar, the cutter
|
|
name = fp2_struggle.1011.f
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_arabic }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = albattar_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Qazeeb, of the strong handle
|
|
name = fp2_struggle.1011.g
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_arabic }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = qazeeb_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Zumurrud, like the blinding emerald
|
|
name = fp2_struggle.1011.h
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_arabic }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = zumurrud_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Ortzi, like the thunder
|
|
name = fp2_struggle.1011.i
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_basque }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = ortzi_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Gaueko, the night spirit
|
|
name = fp2_struggle.1011.j
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_basque }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = gaueko_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Gorri, the red one
|
|
name = fp2_struggle.1011.k
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_basque }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = gorri_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Aiztoto, the little knife
|
|
name = fp2_struggle.1011.l
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_basque }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = aiztoto_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Escremire, the fencer
|
|
name = fp2_struggle.1011.m
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_occitano_romance }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = escremire_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Folha, the leaf
|
|
name = fp2_struggle.1011.n
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_occitano_romance }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = folha_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Proeza, valour
|
|
name = fp2_struggle.1011.o
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_occitano_romance }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = proeza_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Trebalhar, the tormenter
|
|
name = fp2_struggle.1011.p
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_occitano_romance }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = trebalhar_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Sufax, like the great hero in days of old
|
|
name = fp2_struggle.1011.q
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_berber }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = sufax_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Toumellalt, the white one.
|
|
name = fp2_struggle.1011.r
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_berber }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = toumellalt_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Ayugu, the yoke.
|
|
name = fp2_struggle.1011.s
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = { has_cultural_pillar = language_berber }
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = ayugu_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Well, "Ironsoul" of course
|
|
name = fp2_struggle.1011.u
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = {
|
|
NOT = {
|
|
has_cultural_pillar = language_iberian
|
|
has_cultural_pillar = language_arabic
|
|
has_cultural_pillar = language_basque
|
|
has_cultural_pillar = language_occitano_romance
|
|
has_cultural_pillar = language_berber
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = ironsoul_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #I quite like "Mistletoe"...
|
|
name = fp2_struggle.1011.v
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = {
|
|
NOT = {
|
|
has_cultural_pillar = language_iberian
|
|
has_cultural_pillar = language_arabic
|
|
has_cultural_pillar = language_basque
|
|
has_cultural_pillar = language_occitano_romance
|
|
has_cultural_pillar = language_berber
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = mistletoe_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Moor-cleaver, what else?
|
|
name = fp2_struggle.1011.w
|
|
|
|
trigger = {
|
|
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
|
|
root = {
|
|
culture = {
|
|
NOT = {
|
|
has_cultural_pillar = language_iberian
|
|
has_cultural_pillar = language_arabic
|
|
has_cultural_pillar = language_basque
|
|
has_cultural_pillar = language_occitano_romance
|
|
has_cultural_pillar = language_berber
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = moormurder_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
|
|
option = { #Usurper's blade seem fitting, giving what we did to the guilds...
|
|
name = fp2_struggle.1011.x
|
|
|
|
trigger = {
|
|
root = {
|
|
culture = {
|
|
NOT = {
|
|
has_cultural_pillar = language_iberian
|
|
has_cultural_pillar = language_arabic
|
|
has_cultural_pillar = language_basque
|
|
has_cultural_pillar = language_occitano_romance
|
|
has_cultural_pillar = language_berber
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:amazing_toledo_sword = { set_artifact_name = usurperblade_name }
|
|
|
|
custom_tooltip = fp2_struggle.1011.swordsmith_leaves
|
|
hidden_effect = {
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1012 = { # Soul of Iron (3), by Ola Jentzsch
|
|
type = character_event
|
|
title = fp2_struggle.1012.t
|
|
desc = fp2_struggle.1012.desc
|
|
theme = realm
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = admiration
|
|
}
|
|
right_portrait = {
|
|
character = scope:great_swordsmith
|
|
animation = marshal
|
|
}
|
|
|
|
artifact = { # To display the artifact in the event-window
|
|
target = scope:toledo_sword
|
|
position = lower_right_portrait
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
scope:great_swordsmith = {
|
|
is_available_healthy_ai_adult = yes
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
|
|
save_scope_as = owner
|
|
set_artifact_rarity_masterwork = yes
|
|
|
|
create_artifact = {
|
|
name = toledo_sword_name
|
|
creator = scope:great_swordsmith
|
|
description = toledo_sword_desc
|
|
visuals = sword
|
|
type = sword
|
|
modifier = artifact_masterwork_toledo_sword_modifier
|
|
wealth = scope:wealth # This comes from the scripted effect above
|
|
quality = scope:quality # This comes from the scripted effect above
|
|
save_scope_as = toledo_sword # Allows the sword to be accessed via scope after its creation
|
|
}
|
|
}
|
|
|
|
option = { #It is...exquisite. You may go in peace.
|
|
name = fp2_struggle.1012.a
|
|
flavor = fp2_struggle.1012.swordsmith_leaves
|
|
|
|
ai_chance = { #Only greedy AI wouldn't pick this option.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_greed = -1
|
|
}
|
|
}
|
|
|
|
remove_courtier_or_guest = scope:great_swordsmith
|
|
}
|
|
|
|
option = { #It is as promised. May I not convince you to stay and serve me?
|
|
name = fp2_struggle.1012.b
|
|
|
|
ai_chance = { #Only greedy would pick this option.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_greed = 1
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1012_swordsmith_stays
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value #this guy is expensive!
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Death of a Councilman
|
|
# By Ola Jentzsch
|
|
###################################
|
|
scripted_trigger fp2_struggle.1020_minority_councillor_faith_trigger = {
|
|
save_temporary_scope_as = fp2_struggle_1020_temp_councillor
|
|
is_ai = yes
|
|
NOT = { is_spouse_of = root }
|
|
root.capital_county.faith = {
|
|
faith_hostility_level = {
|
|
target = scope:fp2_struggle_1020_temp_councillor.faith
|
|
value >= faith_hostile_level
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.1020 = {
|
|
type = character_event
|
|
title = fp2_struggle.1020.t
|
|
desc = {
|
|
desc = fp2_struggle.1020_desc_opening
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_beaten_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_beaten_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_burned_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_burned_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_hanged_and_disemboweled_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_hanged_and_disemboweled_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_crucified_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_crucified_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_defenestrated_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_defenestrated_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_molten_silver_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_molten_silver_by_mob
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
death_reason = death_torn_to_pieces_by_mob
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_torn_to_pieces_by_mob
|
|
}
|
|
}
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:councillor_executor = {
|
|
exists = var:relative_created
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_councillor_had_family
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:minority_councillor = {
|
|
fp2_struggle.1020_minority_councillor_faith_trigger = yes
|
|
}
|
|
}
|
|
desc = fp2_struggle.1020_desc_councillor_had_no_family_faith
|
|
}
|
|
}
|
|
}
|
|
|
|
theme = dread
|
|
cooldown = { years = 15 }
|
|
override_background = { reference = council_chamber }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = disbelief
|
|
}
|
|
right_portrait = {
|
|
character = scope:councillor_executor
|
|
animation = anger
|
|
}
|
|
|
|
lower_left_portrait = scope:minority_councillor
|
|
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
|
|
any_councillor = { fp2_struggle.1020_minority_councillor_faith_trigger = yes }
|
|
|
|
capital_county = { county_control < low_county_control_limit } #root's capital having low control isn't strictly necessary, but adds to the emergent feeling here
|
|
}
|
|
|
|
immediate = {
|
|
|
|
random_councillor = { #this is the dead councillor
|
|
limit = { fp2_struggle.1020_minority_councillor_faith_trigger = yes }
|
|
save_scope_as = minority_councillor
|
|
}
|
|
|
|
capital_county = { save_scope_as = unrest_capital } #so we can use the capital for loc
|
|
|
|
scope:minority_councillor = { #and this is how they met their untimely end
|
|
random_list = {
|
|
10 = {
|
|
death = {
|
|
death_reason = death_beaten_by_mob
|
|
}
|
|
}
|
|
10 = {
|
|
death = {
|
|
death_reason = death_burned_by_mob
|
|
}
|
|
}
|
|
20 = {
|
|
death = {
|
|
death_reason = death_hanged_and_disemboweled_by_mob
|
|
}
|
|
}
|
|
20 = {
|
|
death = {
|
|
death_reason = death_crucified_by_mob
|
|
}
|
|
}
|
|
10 = {
|
|
death = {
|
|
death_reason = death_defenestrated_by_mob
|
|
}
|
|
}
|
|
20 = {
|
|
death = {
|
|
death_reason = death_molten_silver_by_mob
|
|
}
|
|
}
|
|
10 = {
|
|
death = {
|
|
death_reason = death_torn_to_pieces_by_mob
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if = { #now let's see if there's any relative of the late councillor that could be considered relevant!
|
|
limit = {
|
|
any_powerful_vassal = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
is_powerful_vassal = yes
|
|
}
|
|
}
|
|
random_powerful_vassal = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
is_powerful_vassal = yes
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created #this variable is for use in triggers later
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = {
|
|
any_powerful_vassal = {
|
|
is_ai = yes
|
|
is_close_family_of = scope:minority_councillor
|
|
}
|
|
}
|
|
random_powerful_vassal = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_family_of = scope:minority_councillor
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = {
|
|
any_powerful_vassal = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
}
|
|
random_powerful_vassal = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = {
|
|
any_neighboring_and_across_water_top_liege_realm_owner = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
OR = {
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
fp2_character_interloper_in_struggle_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
random_neighboring_and_across_water_top_liege_realm_owner = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
OR = {
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
fp2_character_interloper_in_struggle_trigger = yes
|
|
}
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = {
|
|
any_ruler = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
}
|
|
random_ruler = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created
|
|
}
|
|
}
|
|
|
|
else_if = {
|
|
limit = {
|
|
any_courtier = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
}
|
|
random_courtier = {
|
|
limit = {
|
|
is_ai = yes
|
|
is_close_or_extended_family_of = scope:minority_councillor
|
|
}
|
|
save_scope_as = councillor_executor
|
|
set_variable = relative_created
|
|
}
|
|
}
|
|
|
|
else = { #if no relevant relative was found, we instead create a community leader to fire option b with!
|
|
create_character = {
|
|
age = { 20 80 }
|
|
location = root.capital_province
|
|
template = merchant_template
|
|
culture = scope:minority_councillor.culture
|
|
faith = scope:minority_councillor.faith
|
|
save_scope_as = councillor_executor
|
|
}
|
|
hidden_effect = {
|
|
scope:councillor_executor = { #just because, I want more rotund people
|
|
add_character_modifier = {
|
|
modifier = obese_modifier
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:minority_councillor = {
|
|
every_close_or_extended_family_member = {
|
|
custom = all_family_members
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -20
|
|
modifier = blames_for_death_of_relative_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
option = { #Make amends to councillor's dynasty
|
|
name = fp2_struggle.1020.a
|
|
|
|
trigger = {
|
|
scope:councillor_executor = {
|
|
exists = var:relative_created
|
|
}
|
|
}
|
|
|
|
ai_chance = { #rational and somewhat honorable AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_rationality = 0.5
|
|
ai_honor = 0.3
|
|
#but bold and vengeful ones do not
|
|
ai_boldness = -0.5
|
|
ai_vengefulness = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
#arrogant characters don't care for this
|
|
arrogant = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
stubborn = minor_stress_impact_gain
|
|
|
|
#socially awkward ones aren't fond of it either
|
|
paranoid = minor_stress_impact_gain
|
|
shy = minor_stress_impact_gain
|
|
}
|
|
|
|
add_character_modifier = {
|
|
modifier = compelling_apology_modifier
|
|
years = 10
|
|
}
|
|
|
|
scope:minority_councillor = {
|
|
every_close_or_extended_family_member = {
|
|
custom = all_family_members
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 10
|
|
modifier = made_amends_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Pay restitution to councillor's people
|
|
name = fp2_struggle.1020.b
|
|
|
|
trigger = {
|
|
scope:councillor_executor = {
|
|
NOT = { exists = var:relative_created }
|
|
}
|
|
}
|
|
|
|
ai_chance = { #compassionate AIs takes this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.7
|
|
ai_honor = 0.3
|
|
#but zealous and vengeful ones do not
|
|
ai_zeal = -0.5
|
|
ai_vengefulness = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
#arrogant characters don't wanna do this
|
|
arrogant = minor_stress_impact_gain
|
|
callous = minor_stress_impact_gain
|
|
stubborn = minor_stress_impact_gain
|
|
|
|
#nor those who hate the people
|
|
paranoid = minor_stress_impact_gain
|
|
vengeful = minor_stress_impact_gain
|
|
}
|
|
|
|
remove_treasury_or_gold = medium_treasury_or_gold_value #restitution isn't free!
|
|
|
|
add_character_modifier = {
|
|
modifier = restitution_to_minorities_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
|
|
option = { #Hunt down the perpetrators
|
|
name = fp2_struggle.1020.c
|
|
|
|
ai_chance = { #energetic and vengeful AI picks this option.
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_energy = 0.5
|
|
ai_vengefulness = 0.7
|
|
#but compassionate ones might not
|
|
ai_compassion = -0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = { #this is cruel and a lot of effort...
|
|
compassionate = minor_stress_impact_gain
|
|
forgiving = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_gain
|
|
}
|
|
|
|
|
|
add_character_modifier = {
|
|
modifier = memorable_public_execution_modifier
|
|
years = 10
|
|
}
|
|
|
|
|
|
add_prestige = minor_prestige_gain
|
|
|
|
if = {
|
|
limit = { exists = var:relative_created }
|
|
scope:councillor_executor = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = 20
|
|
modifier = avenged_relative_opinion
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Restore order in the capital
|
|
name = fp2_struggle.1020.d
|
|
|
|
ai_chance = { #rational and compassionate AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_rationality = 0.9
|
|
ai_compassion = 0.3
|
|
#but bold and zealous ones do not
|
|
ai_boldness = -0.5
|
|
ai_zeal = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
#cruel or lazy characters don't bother with this
|
|
callous = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_gain
|
|
sadistic = minor_stress_impact_gain
|
|
|
|
#and vengeful ones would rather pursue revenge.
|
|
vengeful = minor_stress_impact_gain
|
|
}
|
|
|
|
if = {
|
|
limit = { exists = var:relative_created }
|
|
scope:councillor_executor = {
|
|
add_opinion = {
|
|
target = root
|
|
opinion = -10
|
|
modifier = ignored_demands_opinion
|
|
}
|
|
}
|
|
}
|
|
|
|
add_prestige = minor_prestige_gain
|
|
|
|
root.capital_county = { change_county_control = medium_county_control_gain }
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# The Vision
|
|
# By Ola Jentzsch
|
|
###################################
|
|
fp2_struggle.1050 = {
|
|
type = character_event
|
|
title = fp2_struggle.1050.t
|
|
desc = {
|
|
first_valid = {
|
|
desc = fp2_struggle.1050.desc_opening
|
|
}
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
|
|
scope:visionary_spouse= {
|
|
has_OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_christian
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_religion = religion:islam_religion
|
|
scope:visionary_spouse= {
|
|
has_religion = religion:islam_religion
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_islamic
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_religion = religion:germanic_religion
|
|
scope:visionary_spouse= {
|
|
has_religion = religion:germanic_religion
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_rampaging_barbarian_heathen
|
|
}
|
|
desc = fp2_struggle.1050.desc_non_barbarian_heathen
|
|
}
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
root = {
|
|
OR = {
|
|
culture = culture:andalusian
|
|
culture = culture:bedouin
|
|
}
|
|
}
|
|
scope:visionary_spouse = {
|
|
OR = {
|
|
culture = culture:andalusian
|
|
culture = culture:bedouin
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_islamic_heritage
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_faith = faith:catholic
|
|
scope:visionary_spouse= {
|
|
has_faith = faith:catholic
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_christian_bling_reference_drop
|
|
}
|
|
desc = fp2_struggle.1050.desc_middle_neutral_version
|
|
}
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visionary_spouse = {
|
|
OR = {
|
|
has_relation_lover = root
|
|
has_relation_soulmate = root
|
|
}
|
|
}
|
|
}
|
|
desc = fp2_struggle.1050.desc_love_and_warmth_ending
|
|
}
|
|
desc = fp2_struggle.1050.desc_no_love_and_warmth_ending
|
|
}
|
|
}
|
|
|
|
theme = death
|
|
override_background = { reference = battlefield } ##
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = disapproval
|
|
}
|
|
right_portrait = {
|
|
character = scope:visionary_spouse
|
|
animation = paranoia
|
|
}
|
|
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
|
|
is_landed_or_landless_administrative = yes
|
|
|
|
any_spouse = { is_courtier = yes }
|
|
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
|
|
struggle:iberian_struggle = { is_struggle_phase = struggle_iberia_phase_hostility }
|
|
}
|
|
|
|
cooldown = { #this event shouldn't fire too often, since the context with the spouse's dream is pretty specific.
|
|
years = 100
|
|
}
|
|
|
|
|
|
immediate = {
|
|
|
|
random_spouse = {
|
|
weight = {
|
|
base = 1
|
|
modifier = {
|
|
factor = 5
|
|
this = primary_spouse
|
|
}
|
|
}
|
|
save_scope_as = visionary_spouse
|
|
}
|
|
|
|
scope:visionary_spouse = {
|
|
add_character_modifier = {
|
|
modifier = foreboding_visions_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:visionary_spouse = {
|
|
contract_disease_effect = { DISEASE = ill TREATMENT_EVENT = no }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = fp2_struggle.1050.a
|
|
|
|
trigger = {
|
|
faith = {
|
|
OR = {
|
|
has_doctrine_parameter = witchcraft_illegal
|
|
has_doctrine_parameter = witchcraft_shunned
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = { #bold, vengeful and zealous AI goes for this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_vengefulness = 0.7
|
|
ai_zeal = 0.7
|
|
ai_compassion = -1 #whereas compassionate, rational and honorable ones really, really doesn't
|
|
ai_rationality = -1
|
|
ai_honor = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = major_stress_impact_gain #compassionate people don't accuse their spouse of being a witch
|
|
craven = minor_stress_impact_gain #cravens don't dare throw her in jail
|
|
trusting = medium_stress_impact_gain #and trusting people don't accuse her either
|
|
eccentric = minor_stress_impact_loss
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1050.spouse_imprisoned #you throw your spouse into the dungeon for being a suspected witch
|
|
hidden_effect = {
|
|
scope:visionary_spouse = {
|
|
hard_imprison_character_effect = {
|
|
TARGET = this
|
|
IMPRISONER = root
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = fp2_struggle.1050.b
|
|
|
|
ai_chance = { #lazy zealous AI pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.8
|
|
ai_energy = -0.7
|
|
ai_vengefulness = -0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
cynical = minor_stress_impact_gain #cynics don't really put their faith in God
|
|
}
|
|
|
|
duel = { #this duel is root trying to make their spouse feel better.
|
|
skill = diplomacy
|
|
value = medium_skill_rating
|
|
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = zealous
|
|
}
|
|
send_interface_toast = {
|
|
title = comforting_spouse_visionary_toast.success
|
|
left_icon = root
|
|
right_icon = scope:visionary_spouse
|
|
|
|
scope:visionary_spouse = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = comforted_opinion
|
|
}
|
|
}
|
|
custom_tooltip = fp2_struggle.1050.condition_might_improve
|
|
hidden_effect = {
|
|
scope:visionary_spouse = {
|
|
recover_from_disease_effect = { DISEASE = ill }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = callous
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = sadistic
|
|
}
|
|
send_interface_toast = {
|
|
title = comforting_spouse_visionary.failure
|
|
left_icon = root
|
|
right_icon = scope:visionary_spouse
|
|
|
|
scope:visionary_spouse = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = failed_comfort_opinion
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1050.condition_might_get_worse
|
|
hidden_effect = {
|
|
scope:visionary_spouse = {
|
|
add_character_modifier = {
|
|
modifier = mysterious_prophetess_illness_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #Come, tell me more of your visions
|
|
name = fp2_struggle.1050.c
|
|
|
|
ai_chance = { #compassionate AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_compassion = 1
|
|
ai_energy = 0.5
|
|
ai_vengefulness = -0.5
|
|
}
|
|
}
|
|
|
|
stress_impact = { #unpleasant types don't pick this option...
|
|
arrogant = minor_stress_impact_gain
|
|
callous = medium_stress_impact_gain
|
|
sadistic = medium_stress_impact_gain
|
|
eccentric = minor_stress_impact_loss
|
|
}
|
|
|
|
scope:visionary_spouse = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_relation_lover = root
|
|
has_relation_soulmate = root
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = listened_opinion
|
|
}
|
|
}
|
|
else = {
|
|
progress_towards_lover_effect = {
|
|
CHARACTER = root
|
|
REASON = lover_comforted_nightmare
|
|
OPINION = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1050.condition_might_improve
|
|
hidden_effect = {
|
|
scope:visionary_spouse = {
|
|
recover_from_disease_effect = { DISEASE = ill }
|
|
}
|
|
}
|
|
|
|
add_character_modifier = {
|
|
modifier = frightened_by_portent_modifier
|
|
years = 10
|
|
}
|
|
}
|
|
|
|
option = { #Leave me be, I am planning my next conquest
|
|
name = fp2_struggle.1050.d
|
|
|
|
ai_chance = { #Ambitious AIs pick this option
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.5
|
|
ai_energy = 0.7
|
|
ai_greed = 0.5
|
|
ai_compassion = -0.7
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_gain
|
|
eccentric = minor_stress_impact_gain
|
|
}
|
|
|
|
scope:visionary_spouse = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = failed_comfort_opinion
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.1050.condition_might_get_very_worse
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 90
|
|
scope:visionary_spouse = {
|
|
add_character_modifier = {
|
|
modifier = mysterious_prophetess_illness_modifier
|
|
years = 5
|
|
}
|
|
add_trait = depressed_1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Disorderly Market
|
|
# By Hugo Cortell
|
|
################################### VSCODE: Use control + / to comment/uncomment entire blocks of code. And control + shift + [ (or ]) to fold/unfold a block!
|
|
scripted_trigger fp2_struggle_2000_check_holds_city_scripted_trigger = {
|
|
title_province = { has_holding_type = city_holding }
|
|
exists = holder
|
|
holder != root
|
|
}
|
|
|
|
fp2_struggle.2000 = {
|
|
type = character_event
|
|
title = fp2_struggle.2000.t
|
|
desc = fp2_struggle.2000.desc
|
|
theme = stewardship
|
|
cooldown = { years = 5 }
|
|
override_background = { reference = market }
|
|
left_portrait = root
|
|
right_portrait = {
|
|
character = scope:fp2_2000_market_inspector
|
|
animation = anger
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
has_religion = religion:islam_religion
|
|
faith = {
|
|
OR = {
|
|
has_doctrine = tenet_tax_nonbelievers
|
|
has_doctrine = special_doctrine_jizya
|
|
has_doctrine = tenet_religious_legal_pronouncements
|
|
has_doctrine = tenet_legalism
|
|
}
|
|
}
|
|
|
|
exists = cp:councillor_steward
|
|
cp:councillor_steward = { is_available_ai_adult = yes }
|
|
exists = cp:councillor_court_chaplain
|
|
cp:councillor_court_chaplain = { is_available_ai_adult = yes }
|
|
|
|
any_sub_realm_barony = {
|
|
fp2_struggle_2000_check_holds_city_scripted_trigger = yes
|
|
}
|
|
|
|
any_pool_character = {
|
|
province = root.capital_province
|
|
has_no_particular_noble_roots_trigger = yes
|
|
is_available_healthy_ai_adult = yes
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_sub_realm_barony = {
|
|
limit = { fp2_struggle_2000_check_holds_city_scripted_trigger = yes }
|
|
county = { save_scope_as = se_2000_county }
|
|
}
|
|
|
|
cp:councillor_steward = { save_scope_as = 2000_scoped_steward }
|
|
cp:councillor_court_chaplain = { save_scope_as = 2000_scoped_chaplain }
|
|
|
|
create_character = {
|
|
age = { 20 50 }
|
|
location = root.capital_province
|
|
gender_female_chance = root_faith_dominant_gender_female_chance
|
|
trait = just
|
|
trait = craven
|
|
trait = patient
|
|
trait = temperate
|
|
culture = root.culture
|
|
faith = root.faith
|
|
|
|
dynasty = none
|
|
after_creation = {
|
|
add_gold = { minor_gold_value medium_gold_value }
|
|
add_prestige = { minor_prestige_gain medium_prestige_gain }
|
|
add_piety = { medium_piety_gain major_piety_gain }
|
|
}
|
|
|
|
save_scope_as = fp2_2000_market_inspector
|
|
}
|
|
if = { # RoCo
|
|
limit = {
|
|
has_dlc_feature = royal_court
|
|
employs_court_position = chief_qadi_court_position
|
|
any_court_position_holder = {
|
|
type = chief_qadi_court_position
|
|
is_available_ai_adult = yes
|
|
}
|
|
}
|
|
random_court_position_holder = {
|
|
type = chief_qadi_court_position
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
}
|
|
save_scope_as = fp2_2000_chief_qadi
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Mandatory lunatic option (now rakish)
|
|
name = fp2_struggle.2000.f
|
|
trigger = { has_trait = rakish }
|
|
stress_impact = {
|
|
chaste = major_stress_impact_gain
|
|
zealous = major_stress_impact_gain
|
|
}
|
|
|
|
flavor = fp2_struggle.2000.f.desc
|
|
send_interface_toast = {
|
|
type = event_stewardship_good_with_text
|
|
title = fp2_struggle.2000.f.notif
|
|
desc = fp2_struggle.2000.f.notif.desc
|
|
|
|
stress_impact = { chaste = medium_stress_impact_gain }
|
|
|
|
scope:2000_scoped_chaplain = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = impious_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
|
|
add_piety = major_piety_loss
|
|
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_free_market_boom_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
add_character_modifier = {
|
|
modifier = fp2_lenient_towards_foreign_merchants_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 15
|
|
}
|
|
}
|
|
|
|
option = { # Guards! Purge!
|
|
name = fp2_struggle.2000.e
|
|
|
|
trigger = {
|
|
OR = {
|
|
has_trait = reaver
|
|
has_trait = order_member
|
|
has_trait = aggressive_attacker
|
|
}
|
|
}
|
|
stress_impact = {
|
|
just = major_stress_impact_gain
|
|
forgiving = major_stress_impact_gain
|
|
calm = minor_stress_impact_gain
|
|
trusting = medium_stress_impact_gain
|
|
}
|
|
|
|
if = {
|
|
limit = { has_trait = sadistic } # Small detail
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_ruthless_market_oversight_modifier
|
|
left_icon = root
|
|
|
|
add_dread = medium_dread_gain
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_ruthless_market_oversight_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_ruthless_market_oversight_modifier
|
|
left_icon = root
|
|
|
|
add_dread = medium_dread_gain
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_ruthless_market_oversight_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 5
|
|
modifier = {
|
|
add = 15
|
|
OR = {
|
|
has_trait = sadistic
|
|
has_trait = zealous
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -40
|
|
has_trait = compassionate
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Intervene with threat of calling judge
|
|
name = fp2_struggle.2000.a
|
|
flavor = fp2_struggle.2000.a.desc
|
|
|
|
duel = {
|
|
skill = diplomacy
|
|
value = medium_skill_rating
|
|
|
|
30 = {
|
|
desc = fp2_struggle.2000.a.a
|
|
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = craven
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = arbitrary
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2000.a.a.notif
|
|
|
|
if = { # RoCo
|
|
limit = {
|
|
exists = scope:fp2_2000_chief_qadi
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2000_chief_qadi
|
|
modifier = respect_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_inefficient_market_oversight_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
70 = {
|
|
desc = fp2_struggle.2000.a.b
|
|
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
}
|
|
|
|
modifier = {
|
|
add = 5
|
|
has_trait = humble
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = gregarious
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = just
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2000.a.b.notif
|
|
left_icon = scope:2000_scoped_steward
|
|
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_smooth_market_oversight_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 60
|
|
modifier = {
|
|
add = 25
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
has_trait = arbitrary
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Let the free market decide, free from tradition
|
|
name = fp2_struggle.2000.d
|
|
flavor = fp2_struggle.2000.d.desc
|
|
|
|
stress_impact = {
|
|
zealous = major_stress_impact_gain
|
|
humble = medium_stress_impact_gain
|
|
content = medium_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
temperate = medium_stress_impact_gain
|
|
}
|
|
|
|
reverse_add_opinion = {
|
|
target = scope:2000_scoped_chaplain
|
|
modifier = impious_opinion
|
|
opinion = -30
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:2000_scoped_steward
|
|
modifier = respect_opinion
|
|
opinion = 15
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_free_market_boom_modifier
|
|
left_icon = scope:2000_scoped_steward
|
|
|
|
add_piety = medium_piety_loss
|
|
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_free_market_boom_modifier
|
|
years = 6
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 15
|
|
has_trait = greedy
|
|
}
|
|
modifier = {
|
|
add = -40
|
|
has_trait = zealous
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Reprimand the inspector
|
|
name = fp2_struggle.2000.b
|
|
flavor = fp2_struggle.2000.b.desc
|
|
|
|
stress_impact = { compassionate = medium_stress_impact_gain }
|
|
add_dread = miniscule_dread_gain
|
|
|
|
send_interface_toast = {
|
|
type = event_stewardship_good_with_text
|
|
title = fp2_struggle.2000.b.notif
|
|
desc = fp2_struggle.2000.b.notif.desc
|
|
|
|
scope:se_2000_county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_smooth_market_oversight_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
|
|
scope:2000_scoped_chaplain = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = cruelty_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 34
|
|
modifier = {
|
|
add = 15
|
|
OR = {
|
|
has_trait = sadistic
|
|
has_trait = callous
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = impatient
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = diligent
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
OR = {
|
|
has_trait = trusting
|
|
has_trait = calm
|
|
has_trait = forgiving
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
has_trait = humble
|
|
}
|
|
}
|
|
}
|
|
|
|
after = { scope:fp2_2000_market_inspector = { silent_disappearance_effect = yes } }
|
|
}
|
|
|
|
###################################
|
|
# Desperate Villagers Seek New Lord
|
|
# By Hugo Cortell
|
|
###################################
|
|
scripted_trigger fp2_struggle_2001_desperate_county_scripted_trigger = {
|
|
NOT = { root = { has_claim_on = prev } }
|
|
trigger_if = { # Checking that we are not offering up the capital of a duke or higher
|
|
limit = {
|
|
holder = {
|
|
highest_held_title_tier >= tier_duchy
|
|
}
|
|
}
|
|
this != holder.capital_county
|
|
}
|
|
|
|
holder = { # Balance, malus must not affect players
|
|
is_ai = yes
|
|
top_liege = { is_ai = yes }
|
|
}
|
|
|
|
OR = {
|
|
county_opinion < 0
|
|
county_control < 81 # Note: if considered too restrictive for normal play, update to != 100
|
|
}
|
|
|
|
squared_distance = {
|
|
target = root.capital_province
|
|
value < squared_distance_medium
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2001 = {
|
|
type = character_event
|
|
title = fp2_struggle.2001.t
|
|
desc = {
|
|
desc = fp2_struggle.2001.desc
|
|
triggered_desc = {
|
|
trigger = {
|
|
is_allied_to = scope:fp2_2001_desperate_county.holder
|
|
}
|
|
desc = fp2_struggle.2001.desc.extra.a
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_truce = scope:fp2_2001_desperate_county.holder
|
|
}
|
|
desc = fp2_struggle.2001.desc.extra.b
|
|
}
|
|
}
|
|
|
|
theme = vassal
|
|
cooldown = { years = 20 }
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2001_desperate_elder
|
|
animation = beg
|
|
}
|
|
lower_right_portrait = scope:fp2_2001_desperate_county.holder.top_liege
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
struggle:iberian_struggle = {
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
|
|
}
|
|
|
|
any_neighboring_and_across_water_top_liege_realm_owner = {
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
any_sub_realm_county = {
|
|
fp2_struggle_2001_desperate_county_scripted_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
if = {
|
|
limit = { exists = cp:councillor_court_chaplain }
|
|
cp:councillor_court_chaplain = { save_scope_as = 2001_scoped_chaplain }
|
|
}
|
|
|
|
random_neighboring_and_across_water_top_liege_realm_owner = {
|
|
limit = {
|
|
fp2_character_involved_in_struggle_trigger = yes
|
|
any_sub_realm_county = { fp2_struggle_2001_desperate_county_scripted_trigger = yes }
|
|
}
|
|
random_sub_realm_county = {
|
|
limit = { fp2_struggle_2001_desperate_county_scripted_trigger = yes }
|
|
save_scope_as = fp2_2001_desperate_county
|
|
}
|
|
}
|
|
|
|
create_character = {
|
|
age = { 38 71 }
|
|
location = scope:fp2_2001_desperate_county.title_province
|
|
gender_female_chance = root_faith_dominant_gender_female_chance
|
|
trait = peasant_leader
|
|
random_traits = yes
|
|
culture = scope:fp2_2001_desperate_county.culture
|
|
random_faith = {
|
|
root.faith = { trigger = { always = yes } }
|
|
scope:fp2_2001_desperate_county.faith = { trigger = { always = yes } }
|
|
}
|
|
dynasty = none
|
|
after_creation = { add_gold = medium_gold_value }
|
|
|
|
save_scope_as = fp2_2001_desperate_elder
|
|
}
|
|
|
|
# AI war-savviness calc variables
|
|
scope:fp2_2001_desperate_county.holder.top_liege = { save_temporary_scope_as = target_military }
|
|
set_variable = {
|
|
name = ai_strength_multiplier # This is how much stronger root has to be (could even be used for custom loc! but the script is complex enough as it is)
|
|
value = 1.25
|
|
}
|
|
if = { # Calculate if AI can win war, decision of war requires traits AND for it to be favourable. This calcs if it is favourable
|
|
limit = {
|
|
is_ai = yes # Are you AI?
|
|
scope:fp2_2001_desperate_county.holder.top_liege = {
|
|
NOT = {
|
|
is_at_war_with = root
|
|
is_ai = no # Enemy must be AI (prevents AI from attacking player characters, otherwise it would feel as if the attack was random)
|
|
}
|
|
}
|
|
|
|
# Actual strength is calc below, thanks to joe
|
|
root_military_strength_higher_than_military_target_value > target_military_strength_root_value
|
|
}
|
|
save_scope_as = fp2_se_2001_ai_war_winnable # Acts as boolean for wether or not the AI has a chance at winning
|
|
}
|
|
remove_variable = ai_strength_multiplier
|
|
|
|
# Option exclusivity stuffs, easier to keep track of logic
|
|
if = { # Faith
|
|
limit = {
|
|
OR = {
|
|
has_trait = holy_warrior
|
|
has_trait = devoted
|
|
has_trait = heresiarch
|
|
has_trait = order_member
|
|
has_trait = crusader_king
|
|
has_trait = faith_warrior
|
|
}
|
|
NOT = {
|
|
faith = scope:fp2_2001_desperate_elder.faith
|
|
has_trait = excommunicated
|
|
}
|
|
}
|
|
save_scope_as = fp2_2001_exclusive_option_faith
|
|
}
|
|
else_if = { # Greedy
|
|
limit = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = avaricious
|
|
has_trait = logistician
|
|
}
|
|
}
|
|
save_scope_as = fp2_2001_exclusive_option_greed
|
|
}
|
|
}
|
|
|
|
option = { # Pay tribute to me
|
|
name = fp2_struggle.2001.d
|
|
custom_tooltip = fp2_struggle.2001.a.desc
|
|
|
|
trigger = {
|
|
exists = scope:fp2_2001_exclusive_option_greed
|
|
NOT = { exists = scope:fp2_2001_exclusive_option_faith }
|
|
|
|
OR = { # Tricks autoformatter into showing trait icons (wasteful)
|
|
has_trait = greedy
|
|
has_trait = avaricious
|
|
has_trait = logistician
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_gain
|
|
humble = minor_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
}
|
|
|
|
save_scope_value_as = {
|
|
name = fp2_se_2001_eventchoiceramifications
|
|
value = flag:demand_tribute
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2001.a.notif
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
add_unpressed_claim = scope:fp2_2001_desperate_county
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_stewardship_good_with_text
|
|
title = fp2_struggle.2001.d.notif
|
|
desc = fp2_struggle.2001.d.notif.desc
|
|
left_icon = scope:fp2_2001_desperate_elder
|
|
|
|
scope:fp2_2001_desperate_elder = {
|
|
pay_treasury_or_gold = {
|
|
target = root
|
|
value = medium_treasury_or_gold_value
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { exists = cp:councillor_steward }
|
|
cp:councillor_steward = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2002
|
|
years = 5
|
|
}
|
|
}
|
|
add_character_modifier = {
|
|
modifier = fp2_2001_promise_reminder
|
|
years = 5
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 10
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = 40
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Are you willing to give up your god for it?
|
|
trigger = {
|
|
exists = scope:fp2_2001_exclusive_option_faith
|
|
|
|
OR = {
|
|
has_trait = holy_warrior # Tricking the autoformatter into showing relevant trait
|
|
has_trait = devoted
|
|
has_trait = heresiarch
|
|
has_trait = order_member
|
|
has_trait = crusader_king
|
|
has_trait = faith_warrior
|
|
}
|
|
}
|
|
name = fp2_struggle.2001.b
|
|
|
|
custom_tooltip = fp2_struggle.2001.a.desc
|
|
if = {
|
|
limit = { exists = scope:2001_scoped_chaplain }
|
|
custom_tooltip = fp2_struggle.2001.a.a.desc
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2001.a.notif
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
add_unpressed_claim = scope:fp2_2001_desperate_county
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_stewardship_good_with_text
|
|
title = fp2_struggle.2001.b.notif
|
|
desc = fp2_struggle.2001.b.notif.desc
|
|
left_icon = scope:fp2_2001_desperate_elder
|
|
|
|
if = {
|
|
limit = { exists = scope:2001_scoped_chaplain }
|
|
scope:2001_scoped_chaplain = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 40
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = fp2_se_2001_eventchoiceramifications
|
|
value = flag:demand_conversion_chap # yes
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = fp2_se_2001_eventchoiceramifications
|
|
value = flag:demand_conversion_no_chap # no
|
|
}
|
|
}
|
|
}
|
|
|
|
every_powerful_vassal = {
|
|
limit = { faith = root.faith }
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
|
|
scope:fp2_2001_desperate_county = { set_county_faith = root.faith }
|
|
|
|
hidden_effect = {
|
|
scope:fp2_2001_desperate_elder = { set_character_faith_with_conversion = root.faith }
|
|
trigger_event = {
|
|
id = fp2_struggle.2002
|
|
years = 5
|
|
}
|
|
}
|
|
add_character_modifier = {
|
|
modifier = fp2_2001_promise_reminder
|
|
years = 5
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = 50
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = zealous
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # You have my word
|
|
name = fp2_struggle.2001.a
|
|
custom_tooltip = fp2_struggle.2001.b.desc # Three extra years for not attaching any strings
|
|
|
|
stress_impact = {
|
|
craven = minor_stress_impact_gain
|
|
shy = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_gain
|
|
arrogant = major_stress_impact_gain
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:fp2_2001_exclusive_option_greed
|
|
NOT = { exists = scope:fp2_2001_exclusive_option_faith }
|
|
}
|
|
stress_impact = {
|
|
greedy = medium_stress_impact_gain
|
|
avaricious = minor_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2001.a.notif
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
add_unpressed_claim = scope:fp2_2001_desperate_county
|
|
}
|
|
|
|
every_powerful_vassal = {
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2002
|
|
years = 10
|
|
}
|
|
}
|
|
add_character_modifier = {
|
|
modifier = fp2_2001_promise_reminder
|
|
years = 10
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 25
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = -35
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Prove it to me, point your spears at your liege (rise up)
|
|
name = fp2_struggle.2001.c
|
|
custom_tooltip = fp2_struggle.2001.a.desc
|
|
|
|
trigger = {
|
|
scope:fp2_2001_desperate_county = {
|
|
can_title_create_faction = {
|
|
type = peasant_faction
|
|
target = scope:fp2_2001_desperate_county.holder
|
|
}
|
|
}
|
|
|
|
NOT = {
|
|
exists = scope:fp2_2001_exclusive_option_greed
|
|
exists = scope:fp2_2001_exclusive_option_faith
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
craven = medium_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
}
|
|
|
|
save_scope_value_as = {
|
|
name = fp2_se_2001_eventchoiceramifications
|
|
value = flag:peasant_revolt
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2001.a.notif
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
add_unpressed_claim = scope:fp2_2001_desperate_county
|
|
}
|
|
|
|
every_powerful_vassal = {
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 10
|
|
}
|
|
}
|
|
|
|
scope:fp2_2001_desperate_county = { # Create faction
|
|
title_create_faction = {
|
|
type = peasant_faction
|
|
target = scope:fp2_2001_desperate_county.holder
|
|
}
|
|
holder = {
|
|
every_targeting_faction = { # go through all existing factions
|
|
if = {
|
|
limit = {
|
|
any_faction_county_member = { this = scope:fp2_2001_desperate_county } # check if least one member belongs to the county
|
|
}
|
|
save_scope_as = fp2_se_2001_peasant_faction
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2002
|
|
years = 5
|
|
}
|
|
}
|
|
add_character_modifier = {
|
|
modifier = fp2_2001_promise_reminder
|
|
years = 5
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Betray and inform ruler of treachery
|
|
name = fp2_struggle.2001.f
|
|
|
|
stress_impact = {
|
|
compassionate = major_stress_impact_gain
|
|
forgiving = major_stress_impact_gain
|
|
}
|
|
|
|
scope:fp2_2001_desperate_elder = {
|
|
death = {
|
|
death_reason = death_execution
|
|
killer = root
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { is_allied_to = scope:fp2_2001_desperate_county.holder } # You stood by your allies
|
|
every_powerful_vassal = {
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 10
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { NOT = { has_trait = arrogant } }
|
|
scope:fp2_2001_desperate_county.holder = {
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_informed_ally_of_betrayal
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
every_powerful_vassal = { # Your vassals question your integrity
|
|
custom = fp2_every_major_vassal_notifier
|
|
limit = {
|
|
NOR = {
|
|
has_trait = arbitrary
|
|
has_trait = sadistic
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disgusted_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
|
|
scope:fp2_2001_desperate_county.holder = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 40
|
|
}
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_informed_ally_of_betrayal
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 5
|
|
has_trait = deceitful
|
|
is_allied_to = scope:fp2_2001_desperate_county.holder
|
|
}
|
|
|
|
modifier = {
|
|
add = -25
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = 35
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = sadistic
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
NOT = { is_allied_to = scope:fp2_2001_desperate_county.holder }
|
|
has_trait = deceitful
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Dismiss
|
|
name = fp2_struggle.2001.e
|
|
custom_tooltip = fp2_struggle.2001.e.desc
|
|
stress_impact = { compassionate = minor_stress_impact_gain }
|
|
|
|
scope:fp2_2001_desperate_county.holder.top_liege.capital_province.county = {
|
|
if = {
|
|
limit = { root = { is_allied_to = scope:fp2_2001_desperate_county.holder } }
|
|
hidden_effect = { # Hides effect if allied
|
|
add_county_modifier = {
|
|
modifier = fp2_forsaken_turned_levies_modifier
|
|
years = 6
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
add_county_modifier = {
|
|
modifier = fp2_forsaken_turned_levies_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
save_scope_as = did_not_call_next_event
|
|
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
add = 25
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
has_trait = craven
|
|
}
|
|
modifier = {
|
|
add = -45
|
|
exists = scope:fp2_se_2001_ai_war_winnable
|
|
}
|
|
}
|
|
}
|
|
|
|
after = {
|
|
if = {
|
|
limit = { exists = scope:fp2_se_2001_peasant_faction }
|
|
scope:fp2_2001_desperate_elder = { save_scope_as = peasant_leader }
|
|
scope:fp2_2001_desperate_county = { save_scope_as = peasant_county }
|
|
scope:fp2_se_2001_peasant_faction = {
|
|
|
|
setup_peasant_leader_effect = yes
|
|
|
|
faction_start_war = {}
|
|
faction_spawn_member_county_armies_effect = {
|
|
FACTION = scope:fp2_se_2001_peasant_faction
|
|
ARMY_OWNER = scope:fp2_2001_desperate_elder
|
|
PEASANT_ARMY_NAME = peasant_faction_event_troops
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
exists = scope:did_not_call_next_event
|
|
scope:fp2_2001_desperate_elder = { is_alive = yes }
|
|
}
|
|
scope:fp2_2001_desperate_elder = {
|
|
silent_disappearance_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# QUEST FUNCTION, check if player managed to complete objective
|
|
fp2_struggle.2002 = {
|
|
hidden = yes
|
|
|
|
immediate = { # VICTORY STATE BELOW
|
|
if = {
|
|
limit = { scope:fp2_2001_desperate_county.holder.top_liege = root.top_liege } # check if lands belong to your state/kingdom/side
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2002.t.a
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
|
|
if = {
|
|
limit = { exists = scope:fp2_se_2001_eventchoiceramifications }
|
|
if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_chap } # You keet your promise to god
|
|
add_piety = major_piety_gain
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_no_chap } # Without a chap, this is more impressive but less pious
|
|
add_piety = medium_piety_gain
|
|
add_prestige = medium_prestige_gain
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:peasant_revolt } # You lead peasants into battle and won
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
else = {
|
|
debug_log = "Scope fp2_se_2001_eventchoiceramifications exists but has not been assigned a valid value!"
|
|
debug_log_scopes = yes
|
|
}
|
|
}
|
|
|
|
scope:fp2_2001_desperate_county = {
|
|
add_county_modifier = {
|
|
modifier = county_listened_to_locals_modifier
|
|
years = 12
|
|
}
|
|
change_county_control = major_county_control_gain
|
|
}
|
|
}
|
|
}
|
|
else = { # FAILURE STATE BELOW
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2002.t.b
|
|
left_icon = root
|
|
right_icon = scope:fp2_2001_desperate_elder
|
|
|
|
add_prestige = minor_prestige_loss
|
|
|
|
if = {
|
|
limit = { exists = scope:fp2_se_2001_eventchoiceramifications }
|
|
if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_chap } # You failed to keep your promise to god
|
|
add_piety = medium_piety_loss
|
|
scope:2001_scoped_chaplain = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = impious_opinion
|
|
opinion = -40
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_conversion_no_chap } # Without a chap, this is more impressive but less pious
|
|
add_piety = minor_piety_loss
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:demand_tribute } # Being a weasel makes you look petty
|
|
add_prestige = medium_prestige_loss
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_se_2001_eventchoiceramifications = flag:peasant_revolt } # You took their lives in exchange for freedom, yet returned nothing
|
|
add_piety = minor_piety_loss
|
|
add_prestige = major_prestige_loss
|
|
show_as_tooltip = {
|
|
scope:fp2_2001_desperate_county = { # This will happen anyways, but showing it creates more impact
|
|
holder = {
|
|
top_liege.capital_province.county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_forsaken_turned_levies_modifier
|
|
years = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
debug_log = "Scope fp2_se_2001_eventchoiceramifications exists but has not been assigned a valid value!"
|
|
debug_log_scopes = yes
|
|
}
|
|
}
|
|
|
|
every_powerful_vassal = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:fp2_2001_desperate_county = {
|
|
change_county_control = medium_county_control_gain
|
|
holder = {
|
|
top_liege.capital_province.county = {
|
|
add_county_modifier = {
|
|
modifier = fp2_forsaken_turned_levies_modifier
|
|
years = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:fp2_2001_desperate_elder = {
|
|
silent_disappearance_effect = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Lost Migratory Birds
|
|
# By Hugo Cortell
|
|
###################################
|
|
scripted_trigger fp2_struggle_2003_check_has_city_scripted_trigger = {
|
|
title_province = { has_holding_type = city_holding }
|
|
exists = holder
|
|
}
|
|
|
|
fp2_struggle.2003 = {
|
|
type = character_event
|
|
title = fp2_struggle.2003.t
|
|
desc = fp2_struggle.2003.desc
|
|
theme = stewardship
|
|
override_background = { reference = army_camp }
|
|
cooldown = { years = 50 }
|
|
left_portrait = root
|
|
right_portrait = {
|
|
character = scope:fp2_2003_merc_actor
|
|
animation = loss_1 # Note: two_handed_1_aggressive could also be used
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
struggle:iberian_struggle ?= {
|
|
OR = {
|
|
is_struggle_phase = struggle_iberia_phase_opportunity
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
}
|
|
}
|
|
|
|
any_sub_realm_barony = { fp2_struggle_2003_check_has_city_scripted_trigger = yes }
|
|
}
|
|
|
|
immediate = {
|
|
random_sub_realm_barony = {
|
|
limit = { fp2_struggle_2003_check_has_city_scripted_trigger = yes }
|
|
county = { save_scope_as = fp2_2003_county_town }
|
|
}
|
|
|
|
create_character = {
|
|
age = { 20 50 }
|
|
location = root.capital_province
|
|
gender_female_chance = root_faith_dominant_gender_female_chance
|
|
trait = wrathful
|
|
trait = greedy
|
|
trait = impatient
|
|
trait = callous
|
|
trait = wounded_2
|
|
culture = root.culture
|
|
faith = root.faith
|
|
|
|
dynasty = none
|
|
after_creation = {
|
|
add_gold = { 0 minor_gold_value }
|
|
add_prestige = { minor_prestige_loss minor_prestige_gain }
|
|
add_piety = { medium_piety_loss minor_piety_gain }
|
|
add_character_flag = single_combat_duel_armor
|
|
}
|
|
|
|
save_scope_as = fp2_2003_merc_actor
|
|
}
|
|
}
|
|
|
|
option = { # Give them farming work
|
|
name = fp2_struggle.2003.d
|
|
flavor = fp2_struggle.2003.d.desc
|
|
|
|
trigger = {
|
|
OR= {
|
|
has_trait = lunatic_genetic
|
|
has_trait = logistician
|
|
has_trait = comfort_eater
|
|
has_trait = improvident
|
|
stewardship > extremely_high_skill_rating
|
|
}
|
|
gold > medium_gold_value # Locals need to be paid in advance
|
|
}
|
|
stress_impact = { greedy = major_stress_impact_gain }
|
|
|
|
send_interface_toast = {
|
|
title = fp2_struggle.2003.e.notif.c
|
|
desc = fp2_struggle.2003.e.notif.c.desc
|
|
|
|
remove_treasury_or_gold = medium_treasury_or_gold_value
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_mercs_turned_farmers_modifier
|
|
years = 20
|
|
}
|
|
holder = {
|
|
add_character_modifier = {
|
|
modifier = fp2_mercenary_acquaintances_modifier
|
|
years = 8 # Bonus effect
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 30
|
|
modifier = {
|
|
add = 1000
|
|
has_trait = possessed_genetic
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Offer them a stable job
|
|
name = fp2_struggle.2003.b
|
|
flavor = fp2_struggle.2003.b.desc
|
|
|
|
trigger = { # Locks the lunatic option (remove this trigger if you want more than 4 options)
|
|
OR = {
|
|
NOR= {
|
|
has_trait = lunatic_genetic
|
|
has_trait = logistician
|
|
has_trait = comfort_eater
|
|
has_trait = improvident
|
|
stewardship > extremely_high_skill_rating
|
|
}
|
|
gold < medium_gold_value # Peasants might need to be paid real gold, but mercs do not mind working on debt money
|
|
}
|
|
}
|
|
|
|
stress_impact = { greedy = minor_stress_impact_gain }
|
|
|
|
remove_treasury_or_gold = medium_treasury_or_gold_value
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_veteran_mercenaries_as_instructors_modifier
|
|
left_icon = root
|
|
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_veteran_mercenaries_as_instructors_modifier
|
|
years = 12
|
|
}
|
|
hidden_effect = {
|
|
holder = {
|
|
add_character_modifier = {
|
|
modifier = fp2_mercenary_acquaintances_modifier
|
|
years = 12
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
show_as_tooltip = {
|
|
scope:fp2_2003_county_town = {
|
|
holder = {
|
|
add_character_modifier = {
|
|
modifier = fp2_mercenary_acquaintances_modifier
|
|
years = 12
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 25
|
|
modifier = {
|
|
add = 5
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = generous
|
|
}
|
|
modifier = {
|
|
add = -50
|
|
has_trait = greedy
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Implore them to leave
|
|
name = fp2_struggle.2003.a
|
|
stress_impact = { shy = minor_stress_impact_gain }
|
|
|
|
trigger = {
|
|
NOT = { has_trait = lunatic_genetic } # Cuts down the options to four in case of lunacy event, lunatics do not negotiate.
|
|
}
|
|
|
|
duel = {
|
|
skill = diplomacy
|
|
value = high_skill_rating
|
|
|
|
10 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.5
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = craven
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = wrathful
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = shy
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = trusting
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = stubborn
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2003.a.a.notif
|
|
left_icon = root
|
|
|
|
add_prestige = medium_prestige_loss
|
|
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = recently_looted_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
12 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1.5
|
|
}
|
|
|
|
modifier = {
|
|
add = 5
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = vengeful
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = honest
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = gregarious
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = brave
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2003.a.b.notif
|
|
left_icon = root
|
|
|
|
add_prestige = medium_prestige_gain
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = county_listened_to_locals_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 60
|
|
modifier = {
|
|
add = 5
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
has_trait = gregarious
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
has_trait = arrogant
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Preemptive strike
|
|
name = fp2_struggle.2003.c
|
|
flavor = fp2_struggle.2003.c.desc
|
|
|
|
stress_impact = { trusting = minor_stress_impact_gain } # Craven do not suffer a penalty, because they only plan the fight, not partake in it
|
|
|
|
duel = {
|
|
skill = martial
|
|
value = high_skill_rating
|
|
|
|
10 = {
|
|
desc = fp2_struggle.2003.c.a
|
|
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -2.5
|
|
}
|
|
|
|
modifier = { # Relevant skills are those that could be used in urban warfare
|
|
add = 5
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 1
|
|
has_trait = just
|
|
}
|
|
modifier = {
|
|
add = 1
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = wrathful
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = arbitrary
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = lazy
|
|
}
|
|
|
|
modifier = {
|
|
add = 5
|
|
has_trait = open_terrain_expert
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = reckless
|
|
}
|
|
modifier = { # "what does an INN even look like anyway?"
|
|
add = 3
|
|
has_trait = reclusive
|
|
}
|
|
|
|
show_as_tooltip = {
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_local_garrison_slaughtered_modifier
|
|
years = 5
|
|
}
|
|
add_county_modifier = {
|
|
modifier = recently_looted_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_local_garrison_slaughtered_modifier
|
|
left_icon = root
|
|
|
|
scope:fp2_2003_county_town = { # Failure outcome
|
|
add_county_modifier = {
|
|
modifier = fp2_local_garrison_slaughtered_modifier
|
|
years = 5
|
|
}
|
|
hidden_effect = {
|
|
add_county_modifier = {
|
|
modifier = recently_looted_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
10 = {
|
|
desc = fp2_struggle.2003.c.b
|
|
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
}
|
|
|
|
modifier = {
|
|
add = 5
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = diligent
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = callous
|
|
}
|
|
|
|
modifier = {
|
|
add = 7
|
|
OR = {
|
|
has_trait = intellect_good_2
|
|
has_trait = intellect_good_3
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -15
|
|
OR = {
|
|
has_trait = intellect_bad_1
|
|
has_trait = intellect_bad_2
|
|
}
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
OR = {
|
|
has_trait = intellect_bad_3
|
|
has_trait = dull
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = shrewd
|
|
}
|
|
|
|
|
|
modifier = {
|
|
add = 20
|
|
has_trait = strategist
|
|
}
|
|
modifier = { # If you know how buildings are structured, you can raid them better
|
|
add = 5
|
|
has_trait = architect
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = flexible_leader
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = organizer
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = cautious_leader
|
|
}
|
|
|
|
add_gold = minor_gold_value
|
|
add_prestige = medium_prestige_gain
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2003.c.b.notif
|
|
left_icon = root
|
|
|
|
scope:fp2_2003_county_town = { # Success
|
|
add_county_modifier = {
|
|
modifier = fp2_elite_tactics_for_civil_guards_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 15
|
|
modifier = {
|
|
add = 5
|
|
has_trait = brave
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = wrathful
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = deceitful
|
|
}
|
|
modifier = {
|
|
add = -25
|
|
has_trait = trusting
|
|
}
|
|
modifier = {
|
|
add = -10
|
|
has_trait = craven
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Let the local handle it
|
|
name = fp2_struggle.2003.e
|
|
flavor = fp2_struggle.2003.e.desc
|
|
|
|
stress_impact = {
|
|
compassionate = major_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
paranoid = minor_stress_impact_gain
|
|
}
|
|
|
|
random_list = {
|
|
50 = { # Looted
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2003.e.notif.a
|
|
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = recently_looted_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
25 = { # Massacre
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2003.e.notif.b
|
|
desc = fp2_struggle.2003.e.notif.b.desc
|
|
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_mercs_slaughtered_populance_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
25 = { # Farming outcome
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2003.e.notif.c
|
|
desc = fp2_struggle.2003.e.notif.c.desc
|
|
|
|
scope:fp2_2003_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_mercs_turned_farmers_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
after = {
|
|
scope:fp2_2003_merc_actor = { silent_disappearance_effect = yes }
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Ship building event
|
|
# By Hugo Cortell
|
|
###################################
|
|
fp2_struggle.2004 = {
|
|
type = character_event
|
|
title = fp2_struggle.2004.t
|
|
desc = fp2_struggle.2004.desc
|
|
|
|
theme = crown
|
|
override_background = { reference = council_chamber }
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = cp:councillor_steward
|
|
animation = personality_content
|
|
}
|
|
lower_right_portrait = { character = cp:councillor_marshal }
|
|
cooldown = { years = 150 }
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
current_year > 1025
|
|
top_liege = root
|
|
|
|
realm_size >= minor_realm_size
|
|
|
|
exists = cp:councillor_marshal
|
|
cp:councillor_marshal = { is_available_ai_adult = yes }
|
|
exists = cp:councillor_steward
|
|
cp:councillor_steward = {
|
|
is_available_ai_adult = yes
|
|
NOT = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
|
|
any_sub_realm_county = {
|
|
is_coastal_county = yes
|
|
NOT = { has_county_modifier = fp2_successful_shipyards_modifier }
|
|
}
|
|
}
|
|
|
|
weight_multiplier = {
|
|
modifier = {
|
|
add = 5
|
|
current_year > 1066
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
current_year > 1450 # Caravel time
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
current_year > 1550
|
|
}
|
|
}
|
|
immediate = {
|
|
cp:councillor_marshal = { save_scope_as = 2004_scoped_marshal }
|
|
cp:councillor_steward = {
|
|
save_scope_as = 2004_scoped_steward
|
|
if = {
|
|
limit = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
remove_character_flag = fp2_2004_critical_success_achieved # For debug
|
|
}
|
|
}
|
|
|
|
random_sub_realm_county = {
|
|
limit = { is_coastal_county = yes }
|
|
save_scope_as = fp2_2004_dockyards
|
|
}
|
|
}
|
|
option = { # WE WILL BUILD BOATS OF PURE SILVER (MR addition)
|
|
name = fp2_struggle.2004.c
|
|
flavor = fp2_struggle.2004.c.desc
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value
|
|
scope:2004_scoped_steward = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = dismissive_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
scope:2004_scoped_marshal = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = dismissive_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
|
|
scope:2004_scoped_steward = {
|
|
duel = {
|
|
skill = learning
|
|
value = high_skill_rating
|
|
|
|
25 = { # Failure Outcome
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.5
|
|
min = -24
|
|
}
|
|
modifier = { # Someone is sneaking in iron powder to cheap out!
|
|
add = 5
|
|
has_trait = avaricious
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.2005.desc.alt.a
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
5 = { # Success Outcome
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1.5
|
|
min = -4
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = diligent
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = patient
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
has_trait = shrewd
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = overseer
|
|
}
|
|
modifier = {
|
|
add = 8
|
|
has_trait = strategist
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = architect
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = scholar
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = military_engineer
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = logistician
|
|
}
|
|
modifier = {
|
|
add = 6
|
|
has_trait = journaller
|
|
}
|
|
modifier = { # Building a ship of silver means you must know your construction material
|
|
add = 5
|
|
has_trait = education_stewardship_1 # You sorta know how silver operates
|
|
}
|
|
modifier = {
|
|
add = 8
|
|
has_trait = education_stewardship_2 # You understand the properties of silver
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = education_stewardship_3 # You can bite silver and tell if it is real or not (others can only do it with gold)
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = education_stewardship_4 # Your tounge is capable of taking appart the anatomical structure of the silver thanks to your PhD in home economics
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = education_stewardship_5 # Like the above, except cooler, and my script comment has better spelling
|
|
}
|
|
|
|
root = { save_scope_as = fp2_2004_silver_boat_floats }
|
|
show_as_tooltip = {
|
|
root = { add_prestige = major_prestige_gain }
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 45
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = fp2_2004_alt_option
|
|
if = {
|
|
limit = { is_developer_testing_trigger = yes }
|
|
custom_tooltip = debug_generic_option_shortened_trigger_can_disable
|
|
trigger_event = {
|
|
id = fp2_struggle.2005
|
|
days = 2
|
|
}
|
|
}
|
|
else = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2005
|
|
years = { 4 10 }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # I will sponsor your endeavour - Side with Steward
|
|
name = fp2_struggle.2004.a
|
|
|
|
remove_treasury_or_gold = major_treasury_or_gold_value
|
|
|
|
scope:2004_scoped_steward = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = grateful_opinion
|
|
opinion = 35
|
|
}
|
|
}
|
|
scope:2004_scoped_marshal = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
|
|
scope:2004_scoped_steward = {
|
|
duel = {
|
|
desc = outcome_in_a_few_years
|
|
skill = learning
|
|
value = high_skill_rating
|
|
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -2.5
|
|
}
|
|
desc = fp2_struggle.2004.a.a.desc
|
|
|
|
modifier = {
|
|
add = 10
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = stubborn
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = gregarious
|
|
}
|
|
modifier = {
|
|
add = 30
|
|
has_trait = dull
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = drunkard
|
|
}
|
|
modifier = {
|
|
add = 7
|
|
has_trait = irritable
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = rakish
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = profligate
|
|
}
|
|
|
|
show_as_tooltip = {
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = fp2_advanced_maritime_technology_modifier
|
|
years = 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2.5
|
|
}
|
|
desc = fp2_struggle.2004.a.b.desc
|
|
|
|
modifier = {
|
|
add = 5
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = diligent
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = patient
|
|
}
|
|
modifier = {
|
|
add = 25
|
|
has_trait = shrewd
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = overseer
|
|
}
|
|
modifier = {
|
|
add = 8
|
|
has_trait = strategist
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = architect
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = scholar
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = military_engineer
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = logistician
|
|
}
|
|
modifier = {
|
|
add = 6
|
|
has_trait = journaller
|
|
}
|
|
|
|
add_character_flag = fp2_2004_critical_success_achieved
|
|
show_as_tooltip = {
|
|
root = {
|
|
add_character_modifier = {
|
|
modifier = fp2_advanced_maritime_technology_modifier
|
|
years = 60
|
|
}
|
|
}
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 60
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
if = {
|
|
limit = { is_developer_testing_trigger = yes }
|
|
custom_tooltip = debug_generic_option_shortened_trigger_can_disable
|
|
trigger_event = {
|
|
id = fp2_struggle.2005
|
|
days = 2
|
|
}
|
|
}
|
|
else = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2005
|
|
years = { 5 9 }
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
modifier = {
|
|
add = 50
|
|
treasury_or_gold > medium_treasury_or_gold_value
|
|
}
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.2
|
|
ai_greed = -0.3
|
|
ai_rationality = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # No, it is a waste of money - Side with marshal
|
|
name = fp2_struggle.2004.b
|
|
flavor = fp2_struggle.2004.b.desc
|
|
|
|
scope:2004_scoped_marshal = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
|
|
scope:2004_scoped_steward = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
add_opinion = {
|
|
target = scope:2004_scoped_marshal
|
|
modifier = angry_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
|
|
ai_chance = { base = 50 }
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2005 = {
|
|
type = character_event
|
|
title = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:fp2_2004_alt_option
|
|
}
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:fp2_2004_silver_boat_floats
|
|
}
|
|
desc = fp2_struggle.2005.desc.alt.b
|
|
}
|
|
desc = fp2_struggle.2005.desc.alt.a
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:2004_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
desc = fp2_struggle.2005.t.alt
|
|
}
|
|
desc = fp2_struggle.2005.t
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
if = {
|
|
limit = { root = root } # Check if scoped port town is still under your control
|
|
save_scope_as = port_under_control
|
|
}
|
|
|
|
# MIA checks
|
|
if = { # Assign current steward
|
|
limit = { exists = cp:councillor_steward }
|
|
cp:councillor_steward = { save_scope_as = 2005_scoped_steward }
|
|
}
|
|
else_if = { # Otherwise assign chaplain
|
|
limit = { exists = cp:councillor_court_chaplain }
|
|
cp:councillor_court_chaplain = { save_scope_as = 2005_scoped_steward }
|
|
}
|
|
else = { # Fallback, get whoever is most qualified in court
|
|
random_courtier_or_guest = {
|
|
limit = { learning > high_skill_rating }
|
|
random = {
|
|
chance = 15
|
|
add_character_flag = fp2_2004_critical_success_achieved
|
|
}
|
|
save_scope_as = 2005_scoped_steward
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:2005_scoped_steward }
|
|
}
|
|
random_courtier_or_guest = { save_scope_as = 2005_scoped_steward }
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
scope:2004_scoped_steward != scope:2005_scoped_steward
|
|
OR = {
|
|
scope:2005_scoped_steward = cp:councillor_steward
|
|
scope:2005_scoped_steward = cp:councillor_court_chaplain
|
|
}
|
|
}
|
|
if = {
|
|
limit = { learning > high_skill_rating }
|
|
random = {
|
|
chance = 25
|
|
add_character_flag = fp2_2004_critical_success_achieved
|
|
}
|
|
save_scope_as = 2005_scoped_steward
|
|
}
|
|
}
|
|
}
|
|
|
|
desc = {
|
|
triggered_desc = { # Alt option
|
|
trigger = { exists = scope:fp2_2004_alt_option }
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:fp2_2004_silver_boat_floats
|
|
}
|
|
desc = fp2_struggle.2005.desc.alt.b.desc
|
|
}
|
|
desc = fp2_struggle.2005.desc.alt.a.desc
|
|
}
|
|
triggered_desc = { # Lost dockyards
|
|
trigger = { scope:fp2_2004_dockyards.holder.top_liege != root.top_liege }
|
|
desc = fp2_struggle.2005.desc.cirt.a.notif
|
|
}
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = { NOT = { exists = scope:fp2_2004_alt_option } }
|
|
desc = {
|
|
triggered_desc = { # Crtitical success explanation
|
|
trigger = {
|
|
scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
desc = fp2_struggle.2005.desc.cirt.notif
|
|
}
|
|
triggered_desc = { # Lost dockyards
|
|
trigger = {
|
|
scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
scope:fp2_2004_dockyards.holder.top_liege != root.top_liege
|
|
}
|
|
desc = fp2_struggle.2005.desc.cirt.a.notif
|
|
}
|
|
|
|
# Original (Steward) designer is MIA
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:2004_scoped_steward != scope:2005_scoped_steward
|
|
}
|
|
desc = fp2_struggle.2005.desc.newdesigner.notif
|
|
}
|
|
|
|
triggered_desc = { # Intro (non-crit)
|
|
trigger = {
|
|
NOT = { scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } }
|
|
}
|
|
desc = fp2_struggle.2005.desc.intro
|
|
}
|
|
|
|
# Describe bottom of the ship
|
|
random_valid = {
|
|
desc = fp2_struggle.2005.desc.bottom.a
|
|
desc = fp2_struggle.2005.desc.bottom.b
|
|
desc = fp2_struggle.2005.desc.bottom.c
|
|
desc = fp2_struggle.2005.desc.bottom.d
|
|
}
|
|
|
|
# Describe main feature(s)
|
|
random_valid = {
|
|
desc = fp2_struggle.2005.desc.unique.a
|
|
desc = fp2_struggle.2005.desc.unique.b
|
|
desc = fp2_struggle.2005.desc.unique.c
|
|
desc = fp2_struggle.2005.desc.unique.d
|
|
desc = fp2_struggle.2005.desc.unique.e
|
|
}
|
|
|
|
# Describe sails (updated to propulsion)
|
|
random_valid = {
|
|
desc = fp2_struggle.2005.desc.sails.a
|
|
desc = fp2_struggle.2005.desc.sails.b
|
|
desc = fp2_struggle.2005.desc.sails.c
|
|
desc = fp2_struggle.2005.desc.sails.d
|
|
}
|
|
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved } }
|
|
desc = fp2_struggle.2005.desc.outro.crit
|
|
}
|
|
desc = fp2_struggle.2005.desc.outro
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
theme = martial
|
|
override_background = { reference = docks }
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:fp2_2004_alt_option
|
|
NOT = { exists = scope:fp2_2004_silver_boat_floats }
|
|
}
|
|
animation = anger
|
|
}
|
|
triggered_animation = {
|
|
trigger = { exists = scope:fp2_2004_alt_option }
|
|
animation = ecstasy
|
|
}
|
|
animation = war_over_win
|
|
}
|
|
right_portrait = {
|
|
character = scope:2005_scoped_steward
|
|
animation = throne_room_writer
|
|
}
|
|
|
|
option = { # ALT Accept
|
|
trigger = {
|
|
exists = scope:fp2_2004_alt_option
|
|
exists = scope:fp2_2004_silver_boat_floats
|
|
}
|
|
name = fp2_struggle.2005.a
|
|
|
|
add_prestige = major_prestige_gain
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 45
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # ALT Accept (Failure Version)
|
|
trigger = {
|
|
exists = scope:fp2_2004_alt_option
|
|
NOT = { exists = scope:fp2_2004_silver_boat_floats }
|
|
}
|
|
name = artifact.4050.a # Reusage of loc key
|
|
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 20
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Accept
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:fp2_2004_alt_option
|
|
scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
}
|
|
name = fp2_struggle.2005.a
|
|
|
|
add_character_modifier = {
|
|
modifier = fp2_advanced_maritime_technology_modifier
|
|
years = 50
|
|
}
|
|
}
|
|
|
|
option = { # Crit Accept
|
|
trigger = {
|
|
NOT = { exists = scope:fp2_2004_alt_option }
|
|
scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2004_dockyards.holder.top_liege = top_liege }
|
|
desc = fp2_struggle.2005.a
|
|
}
|
|
desc = fp2_struggle.2005.a.a
|
|
}
|
|
}
|
|
}
|
|
|
|
add_character_modifier = {
|
|
modifier = fp2_advanced_maritime_technology_modifier
|
|
years = 60
|
|
}
|
|
scope:fp2_2004_dockyards = {
|
|
add_county_modifier = {
|
|
modifier = fp2_successful_shipyards_modifier
|
|
years = 60
|
|
}
|
|
}
|
|
}
|
|
|
|
after = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
scope:2004_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
scope:2005_scoped_steward = { has_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
}
|
|
scope:2004_scoped_steward = { remove_character_flag = fp2_2004_critical_success_achieved }
|
|
scope:2005_scoped_steward = { remove_character_flag = fp2_2004_critical_success_achieved }
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# The Borders of Faith
|
|
# By Hugo Cortell
|
|
###################################
|
|
scripted_trigger fp2_event2006_check_if_right_vassal_target = {
|
|
holder != root
|
|
holder = {
|
|
is_available_ai_adult = yes
|
|
faith = root.faith
|
|
NOT = { has_trait = cynical }
|
|
OR = {
|
|
any_secret = { type = secret_non_believer }
|
|
AND = { # Fallback, get non-devout follower
|
|
piety < 51
|
|
NOT = { has_trait = zealous }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2006 = {
|
|
type = character_event
|
|
title = fp2_struggle.2006.t
|
|
desc = fp2_struggle.2006.desc
|
|
cooldown = { years = 20 }
|
|
|
|
theme = faith
|
|
override_background = { reference = council_chamber }
|
|
left_portrait = {
|
|
character = root
|
|
animation = shock
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2006_vassal_in_crisis
|
|
animation = stress
|
|
}
|
|
lower_left_portrait = {
|
|
trigger = { exists = scope:2006_scoped_chaplain }
|
|
character = scope:2006_scoped_chaplain
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
root.top_liege = root
|
|
any_sub_realm_county = {
|
|
fp2_event2006_check_if_right_vassal_target = yes
|
|
|
|
holder = {
|
|
any_neighboring_top_liege_realm_owner = {
|
|
faith != root.faith
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
if = {
|
|
limit = { exists = cp:councillor_court_chaplain }
|
|
cp:councillor_court_chaplain = { save_scope_as = 2006_scoped_chaplain }
|
|
}
|
|
random_sub_realm_county = {
|
|
limit = { fp2_event2006_check_if_right_vassal_target = yes }
|
|
holder = {
|
|
save_scope_as = fp2_2006_vassal_in_crisis
|
|
random_neighboring_top_liege_realm_owner = {
|
|
limit = { faith != root.faith }
|
|
faith = { save_scope_as = fp2_2006_foreign_faith }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Im a witch! And you can be one too!
|
|
trigger = {
|
|
has_trait = witch
|
|
OR = {
|
|
NOT = { # Not witch
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
any_secret = { type = secret_witch }
|
|
}
|
|
}
|
|
scope:fp2_2006_vassal_in_crisis = { # Witch but does not walk the path of witchery with you
|
|
any_secret = {
|
|
type = secret_witch
|
|
NOT = { is_known_by = root }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
name = fp2_struggle.2006.e
|
|
|
|
if = {
|
|
limit = {
|
|
any_secret = {
|
|
type = secret_witch
|
|
}
|
|
}
|
|
random_secret = {
|
|
type = secret_witch
|
|
reveal_to = scope:fp2_2006_vassal_in_crisis
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_witchcraft_good
|
|
title = fp2_struggle.2006.e.notif.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
if = {
|
|
limit = {
|
|
any_secret = { type = secret_witch }
|
|
has_trait = witch
|
|
}
|
|
custom_tooltip = fp2_struggle.2006.e.alreadywitch
|
|
}
|
|
else = {
|
|
hidden_effect = { give_witch_secret_or_trait_effect = yes }
|
|
show_as_tooltip = { add_trait = witch }
|
|
}
|
|
show_as_tooltip = {
|
|
random_secret = {
|
|
type = secret_witch
|
|
reveal_to = root
|
|
}
|
|
}
|
|
if = {
|
|
limit = { can_set_relation_friend_trigger = { CHARACTER = root } }
|
|
set_relation_friend = { reason = friend_guided_right_path target = root }
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = fp2_tolerated_me_opinion
|
|
}
|
|
if = {
|
|
limit = {
|
|
trait_is_criminal_in_faith_trigger = {
|
|
TRAIT = witch
|
|
GENDER_CHARACTER = scope:fp2_2006_vassal_in_crisis
|
|
FAITH = scope:fp2_2006_vassal_in_crisis.faith
|
|
}
|
|
NOT = {
|
|
trait_is_criminal_in_faith_trigger = {
|
|
TRAIT = witch
|
|
GENDER_CHARACTER = scope:fp2_2006_vassal_in_crisis
|
|
FAITH = scope:fp2_2006_foreign_faith
|
|
}
|
|
}
|
|
}
|
|
hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith }
|
|
custom_tooltip = fp2_struggle.2006.e.tacticalwitchfaithchange
|
|
}
|
|
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
any_secret = {
|
|
type = secret_witch
|
|
}
|
|
}
|
|
random_secret = {
|
|
type = secret_witch
|
|
reveal_to = root
|
|
}
|
|
}
|
|
root = {
|
|
random_secret = {
|
|
type = secret_witch
|
|
reveal_to = scope:fp2_2006_vassal_in_crisis
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 80
|
|
ai_value_modifier = {
|
|
ai_honor = -0.3
|
|
ai_rationality = 0.5
|
|
ai_zeal = -0.9
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # (Threaten to) Denounce heretic
|
|
trigger = {
|
|
OR = {
|
|
has_trait = schemer
|
|
has_trait = devoted
|
|
intrigue > medium_skill_rating
|
|
}
|
|
}
|
|
name = fp2_struggle.2006.d
|
|
stress_impact = {
|
|
compassionate = medium_stress_impact_gain
|
|
gallant = medium_stress_impact_gain
|
|
}
|
|
|
|
add_dread = miniscule_dread_gain
|
|
hidden_effect = {
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
if = {
|
|
limit = { any_secret = { NOT = { secret_type = secret_non_believer } } }
|
|
add_secret = { type = secret_non_believer }
|
|
}
|
|
}
|
|
}
|
|
|
|
add_hook = {
|
|
target = scope:fp2_2006_vassal_in_crisis
|
|
type = threat_hook
|
|
}
|
|
random_secret = {
|
|
type = secret_non_believer
|
|
reveal_to = root
|
|
}
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = betrayed_me_opinion
|
|
opinion = -40
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 30
|
|
ai_value_modifier = {
|
|
ai_compassion = -0.5
|
|
ai_honor = -0.8
|
|
ai_rationality = 0.1
|
|
ai_zeal = 0.3
|
|
ai_vengefulness = 0.3
|
|
ai_greed = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # I will fix him myself
|
|
name = fp2_struggle.2006.b
|
|
stress_impact = {
|
|
cynical = minor_stress_impact_gain
|
|
}
|
|
|
|
duel = {
|
|
skill = learning
|
|
value = medium_skill_rating
|
|
|
|
15 = {
|
|
desc = fp2_struggle.2006.b.a.desc
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.5
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = heresiarch
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = impotent
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = irritable
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = dull
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = depressed_genetic
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = arbitrary
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = stubborn
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = craven
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2006.generic.notif.a.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith }
|
|
show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith }
|
|
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_fraternising_enemy
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = fp2_questioned_my_faith_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
15 = {
|
|
desc = fp2_struggle.2006.b.b.desc
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1.5
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = humble
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = forgiving
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = honest
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = humble
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = patient
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = zealous
|
|
}
|
|
modifier = {
|
|
add = 4
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = theologian # Could be it's own option, but I can't think of what argument could be used...
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = devoted
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = lifestyle_poet
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = saint
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2006.generic.notif.b.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
add_piety = medium_piety_gain
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_guided_right_path
|
|
CHARACTER = scope:fp2_2006_vassal_in_crisis
|
|
OPINION = 0
|
|
}
|
|
if = {
|
|
limit = {
|
|
this != root
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = fp2_reassured_faith_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 45
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.2
|
|
ai_sociability = 0.3
|
|
ai_zeal = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # One-on-One time
|
|
name = fp2_struggle.2006.c
|
|
flavor = fp2_struggle.2006.c.desc
|
|
|
|
trigger = {
|
|
NAND = {
|
|
has_trait = witch
|
|
OR = {
|
|
has_trait = schemer
|
|
has_trait = devoted
|
|
intrigue > medium_skill_rating
|
|
}
|
|
}
|
|
}
|
|
stress_impact = { zealous = minor_stress_impact_gain }
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_religious_tolerance
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = fp2_tolerated_me_opinion
|
|
}
|
|
random = {
|
|
chance = 50
|
|
hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith }
|
|
show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith }
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_compassion = 0.1
|
|
ai_rationality = 0.6
|
|
ai_zeal = -0.7
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Someone call a priest!
|
|
name = fp2_struggle.2006.a
|
|
flavor = fp2_struggle.2006.a.desc
|
|
show_as_unavailable = { NOT = { exists = scope:2006_scoped_chaplain } } # Replaces trigger, teases player to possibility.
|
|
stress_impact = {
|
|
honest = medium_stress_impact_gain
|
|
humble = minor_stress_impact_gain
|
|
trusting = medium_stress_impact_gain
|
|
}
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = betrayed_me_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
scope:2006_scoped_chaplain = {
|
|
duel = {
|
|
skill = learning
|
|
value = medium_skill_rating
|
|
|
|
10 = {
|
|
desc = fp2_struggle.2006.a.a
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.25
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
scope:fp2_2006_vassal_in_crisis = { has_trait = paranoid }
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = heresiarch
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = impotent
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = irritable
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = dull
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = depressed_genetic
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = arbitrary
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = stubborn
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = craven
|
|
}
|
|
modifier = {
|
|
factor = 2
|
|
scope:fp2_2006_vassal_in_crisis = { has_trait = paranoid }
|
|
}
|
|
|
|
root = {
|
|
hidden_effect = {
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
if = {
|
|
limit = { any_secret = { type = secret_non_believer } }
|
|
progress_towards_rival_effect = { # "HE MUST BE ON TO ME!"
|
|
REASON = rival_faith_tested
|
|
CHARACTER = scope:2006_scoped_chaplain
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = scope:2006_scoped_chaplain
|
|
modifier = fp2_questioned_my_faith_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2006.generic.notif.a.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
show_as_tooltip = { set_character_faith = scope:fp2_2006_foreign_faith }
|
|
hidden_effect = { set_character_faith_with_conversion = scope:fp2_2006_foreign_faith }
|
|
|
|
add_opinion = {
|
|
target = scope:2006_scoped_chaplain
|
|
modifier = fp2_questioned_my_faith_opinion
|
|
opinion = -35
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
5 = {
|
|
trigger = {
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
NOT = { has_trait = paranoid }
|
|
}
|
|
}
|
|
desc = fp2_struggle.2006.a.b
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.25
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = fickle
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = heresiarch
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = impotent
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = irritable
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = dull
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = depressed_genetic
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = arrogant
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = arbitrary
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = lazy
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = stubborn
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = craven
|
|
}
|
|
|
|
root = {
|
|
hidden_effect = {
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
if = {
|
|
limit = { any_secret = { type = secret_non_believer } }
|
|
progress_towards_rival_effect = { # "HE MUST BE ON TO ME!"
|
|
REASON = rival_faith_tested
|
|
CHARACTER = scope:2006_scoped_chaplain
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = scope:2006_scoped_chaplain
|
|
modifier = fp2_questioned_my_faith_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2006.generic.notif.a.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
remove_trait = trusting
|
|
if = {
|
|
limit = { is_ai = yes }
|
|
add_stress = monumental_stress_gain # Unbalanced for players, fun when seeing it happen to unrelated AI
|
|
}
|
|
else = { add_stress = medium_stress_gain } # (there is no notification)
|
|
add_opinion = {
|
|
target = scope:2006_scoped_chaplain
|
|
modifier = fp2_questioned_my_faith_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
20 = {
|
|
desc = fp2_struggle.2006.a.c
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1.5
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = calm
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = humble
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = forgiving
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = honest
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = humble
|
|
}
|
|
modifier = {
|
|
add = 3
|
|
has_trait = patient
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
has_trait = zealous
|
|
}
|
|
modifier = {
|
|
add = 4
|
|
has_trait = compassionate
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = theologian
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = devoted
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = lifestyle_poet
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
has_trait = saint
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:fp2_2006_vassal_in_crisis = { add_piety = minor_piety_gain }
|
|
scope:2006_scoped_chaplain = { add_piety = medium_piety_gain }
|
|
}
|
|
root = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2006.generic.notif.b.t
|
|
left_icon = scope:fp2_2006_vassal_in_crisis
|
|
|
|
scope:fp2_2006_vassal_in_crisis = {
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_guided_right_path
|
|
CHARACTER = scope:2006_scoped_chaplain
|
|
OPINION = 0
|
|
}
|
|
add_opinion = {
|
|
target = scope:2006_scoped_chaplain
|
|
modifier = fp2_reassured_faith_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 45
|
|
ai_value_modifier = {
|
|
ai_compassion = -0.1
|
|
ai_energy = -0.1
|
|
ai_honor = -0.1
|
|
ai_rationality = 0.2
|
|
ai_sociability = -0.2
|
|
ai_zeal = 0.3
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# A Castle Worthy of Iberia
|
|
# By Hugo Cortell
|
|
###################################
|
|
scripted_trigger fp2_struggle_2007_can_build_castle_trigger = { # Ensures that the selected building spot adheres to the game's rules on holding placement.
|
|
any_county_province = { has_holding = no }
|
|
trigger_if = {
|
|
limit = { any_county_province = { has_holding_type = castle_holding } }
|
|
any_county_province = { has_holding_type = church_holding }
|
|
any_county_province = { has_holding_type = city_holding }
|
|
}
|
|
exists = holder
|
|
holder != scope:fp2_2007_scoped_steward
|
|
}
|
|
|
|
fp2_struggle.2007 = {
|
|
type = character_event
|
|
title = fp2_struggle.2007.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2007_castle_holder = ROOT }
|
|
desc = fp2_struggle.2007.desc.a
|
|
}
|
|
desc = fp2_struggle.2007.desc.b
|
|
}
|
|
}
|
|
|
|
theme = realm
|
|
cooldown = { years = 20 }
|
|
override_background = { reference = garden }
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2007_scoped_steward
|
|
animation = chancellor
|
|
}
|
|
lower_left_portrait = scope:2007_vassal_sponsor
|
|
lower_right_portrait = scope:fp2_2007_castle_holder
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
is_ai = no # Overpowered for AI, player only.
|
|
struggle:iberian_struggle = {
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
|
|
}
|
|
|
|
root.top_liege = root
|
|
exists = cp:councillor_steward
|
|
cp:councillor_steward = { is_available_ai_adult = yes }
|
|
|
|
any_vassal = { # Last minute pre RC fixes
|
|
NOT = {
|
|
religion = root.religion
|
|
this = cp:councillor_steward
|
|
}
|
|
}
|
|
any_realm_county = { fp2_struggle_2007_can_build_castle_trigger = yes }
|
|
|
|
save_temporary_scope_value_as = {
|
|
name = fp2_2007_wealth_barrier
|
|
value = {
|
|
value = main_building_tier_1_cost
|
|
multiply = 0.8
|
|
round = yes
|
|
}
|
|
}
|
|
OR = {
|
|
gold > scope:fp2_2007_wealth_barrier
|
|
OR = {
|
|
has_trait = architect
|
|
AND = {
|
|
has_royal_court = yes
|
|
employs_court_position = royal_architect_court_position
|
|
any_court_position_holder = {
|
|
type = royal_architect_court_position
|
|
is_available_ai_adult = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
cp:councillor_steward = { save_scope_as = fp2_2007_scoped_steward }
|
|
if = {
|
|
limit = {
|
|
any_court_position_holder = {
|
|
type = royal_architect_court_position
|
|
is_available_ai_adult = yes
|
|
}
|
|
}
|
|
random_court_position_holder = {
|
|
type = royal_architect_court_position
|
|
save_scope_as = fp2_2007_roco_architect
|
|
}
|
|
}
|
|
random_vassal = {
|
|
limit = {
|
|
NOT = {
|
|
religion = root.religion
|
|
this = scope:fp2_2007_scoped_steward
|
|
}
|
|
}
|
|
save_scope_as = 2007_vassal_sponsor
|
|
}
|
|
|
|
random_realm_county = {
|
|
limit = { fp2_struggle_2007_can_build_castle_trigger = yes }
|
|
random_county_province = {
|
|
limit = { has_holding = no }
|
|
save_scope_as = fp2_2007_free_real_estate
|
|
}
|
|
holder = { save_scope_as = fp2_2007_castle_holder }
|
|
}
|
|
|
|
# Get Different Faith (updated to whole religion)
|
|
struggle:iberian_struggle = {
|
|
random_involved_ruler = {
|
|
limit = {
|
|
religion != root.religion
|
|
faith = { save_temporary_scope_as = temp_involved_faith }
|
|
struggle:iberian_struggle = { is_faith_involved_in_struggle = scope:temp_involved_faith }
|
|
}
|
|
religion = { save_scope_as = fp2_2007_foreign_faith }
|
|
}
|
|
if = { # Fallback
|
|
limit = { NOT = { exists = scope:fp2_2007_foreign_faith } }
|
|
get_random_faith_effect = { FORBIDROOTFAITH = yes }
|
|
scope:random_faith.religion = { save_scope_as = fp2_2007_foreign_faith }
|
|
}
|
|
}
|
|
|
|
# Get castileans or proto-castileans
|
|
if = {
|
|
limit = { culture = { has_cultural_parameter = architect_trait_prestige } }
|
|
culture = { save_scope_as = fp2_2007_allegedprotocastilean }
|
|
}
|
|
|
|
save_scope_value_as = {
|
|
name = fp2_2007_same_faith_construction_cost
|
|
value = {
|
|
value = main_building_tier_1_cost
|
|
multiply = 0.75
|
|
round = yes
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = fp2_2007_different_faith_construction_cost
|
|
value = {
|
|
value = main_building_tier_1_cost
|
|
multiply = 0.65
|
|
round = yes
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = fp2_2007_diy_construction_cost
|
|
value = {
|
|
value = main_building_tier_1_cost
|
|
multiply = 0.6
|
|
round = yes
|
|
}
|
|
}
|
|
|
|
# Set dynamic loc keys for powerful vassals
|
|
religion = { save_scope_as = dyloc_powerful_vassal_faith }
|
|
culture = { save_scope_as = dyloc_powerful_vassal_culture }
|
|
}
|
|
|
|
option = { # Same Faith (or) Castilean architect
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:fp2_2007_allegedprotocastilean }
|
|
desc = fp2_struggle.2007.a.castile
|
|
}
|
|
desc = fp2_struggle.2007.a
|
|
}
|
|
}
|
|
}
|
|
flavor = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:fp2_2007_allegedprotocastilean }
|
|
desc = fp2_struggle.2007.a.castile.favor
|
|
}
|
|
desc = fp2_struggle.2007.a.major_vassal_flavor
|
|
}
|
|
}
|
|
show_as_unavailable = { gold < scope:fp2_2007_same_faith_construction_cost }
|
|
|
|
if = { # Proto-Castilean
|
|
limit = { exists = scope:fp2_2007_allegedprotocastilean }
|
|
every_powerful_vassal = {
|
|
limit = { culture = root.culture }
|
|
custom = fp2_every_major_same_culture_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = pleased_opinion
|
|
opinion = 10
|
|
}
|
|
}
|
|
}
|
|
show_as_tooltip = {
|
|
remove_treasury_or_gold = scope:fp2_2007_same_faith_construction_cost
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = 95
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = { # General effect
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
} # Hooks get their own notifications, therefore I will not show them on the main effect
|
|
}
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2007.t
|
|
left_icon = root
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
remove_treasury_or_gold = scope:fp2_2007_same_faith_construction_cost
|
|
custom_tooltip = fp2_struggle.2007.a.notif
|
|
hidden_effect = {
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = 95
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = { # General effect
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Foreign (different faith) architect
|
|
name = fp2_struggle.2007.b
|
|
flavor = fp2_struggle.2007.b.flavor
|
|
show_as_unavailable = { gold < scope:fp2_2007_different_faith_construction_cost }
|
|
hidden_effect = { scope:2007_vassal_sponsor = { remove_treasury_or_gold = medium_treasury_or_gold_value } }
|
|
|
|
every_powerful_vassal = {
|
|
custom = fp2_every_major_same_faith_vassal_notifier
|
|
limit = { religion = root.religion }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
every_powerful_vassal = {
|
|
custom = fp2_every_major_different_faith_vassal_notifier
|
|
limit = { religion != root.religion }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion
|
|
opinion = 15
|
|
}
|
|
}
|
|
scope:fp2_2007_free_real_estate.county = {
|
|
if = {
|
|
limit = { religion = scope:fp2_2007_foreign_faith }
|
|
add_county_modifier = {
|
|
modifier = modifier_religious_understanding_modifier
|
|
years = 12
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { religion != root.religion }
|
|
add_county_modifier = {
|
|
modifier = invested_in_province_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
show_as_tooltip = {
|
|
remove_treasury_or_gold = scope:fp2_2007_different_faith_construction_cost
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = 95
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = {
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2007.t
|
|
left_icon = scope:2007_vassal_sponsor
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
remove_treasury_or_gold = scope:fp2_2007_different_faith_construction_cost
|
|
custom_tooltip = fp2_struggle.2007.a.notif
|
|
hidden_effect = {
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = 95
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = { # General effect
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # I will build it myself
|
|
name = fp2_struggle.2007.c
|
|
flavor = fp2_struggle.2007.c.flavor
|
|
|
|
trigger = { has_trait = architect }
|
|
|
|
duel = {
|
|
skill = learning
|
|
value = very_high_skill_rating
|
|
|
|
60 = {
|
|
desc = fp2_struggle.2007.c.notif.a.desc
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1 # Should be -1 but it has already been balanced
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2007.c.notif.a.t
|
|
left_icon = root
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
add_prestige = major_prestige_loss
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2007_scoped_steward
|
|
modifier = disappointed_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
40 = {
|
|
desc = fp2_struggle.2007.c.notif.b.desc
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1
|
|
}
|
|
modifier = {
|
|
add = fp2_2007_calculate_architect_competence
|
|
always = yes
|
|
}
|
|
|
|
show_as_tooltip = {
|
|
remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost
|
|
if = {
|
|
limit = { exists = scope:fp2_2007_allegedprotocastilean }
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = medium_gold_value
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = { # General effect
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2007.t
|
|
left_icon = root
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost
|
|
if = {
|
|
limit = { exists = scope:fp2_2007_allegedprotocastilean }
|
|
add_prestige = minor_prestige_gain
|
|
}
|
|
custom_tooltip = fp2_struggle.2007.a.notif
|
|
}
|
|
hidden_effect = {
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = medium_gold_value
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = {
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # RoCo
|
|
name = fp2_struggle.2007.c.roco
|
|
|
|
trigger = {
|
|
NOT = { has_trait = architect }
|
|
exists = scope:fp2_2007_roco_architect
|
|
}
|
|
scope:fp2_2007_roco_architect = {
|
|
duel = {
|
|
skill = learning
|
|
value = very_high_skill_rating
|
|
|
|
55 = {
|
|
desc = fp2_struggle.2007.c.notif.a.desc
|
|
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1
|
|
}
|
|
|
|
root = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = fp2_struggle.2007.c.notif.a.t
|
|
left_icon = scope:fp2_2007_roco_architect
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
add_prestige = medium_prestige_loss
|
|
}
|
|
}
|
|
hidden_effect = { add_prestige = medium_prestige_loss }
|
|
}
|
|
45 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1
|
|
}
|
|
modifier = {
|
|
add = fp2_2007_calculate_architect_competence
|
|
always = yes
|
|
}
|
|
|
|
root = {
|
|
show_as_tooltip = {
|
|
remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = {
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2007.t
|
|
left_icon = scope:fp2_2007_roco_architect
|
|
right_icon = scope:fp2_2007_castle_holder
|
|
|
|
remove_treasury_or_gold = scope:fp2_2007_diy_construction_cost
|
|
custom_tooltip = fp2_struggle.2007.a.notif
|
|
}
|
|
hidden_effect = {
|
|
scope:fp2_2007_free_real_estate = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
refund_cost = {
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
}
|
|
add_hook_if_possible_effect = {
|
|
TARGET = scope:fp2_2007_castle_holder
|
|
TYPE = indebted_hook
|
|
YEARS = 8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Leave it be
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2007_castle_holder = root }
|
|
desc = fp2_struggle.2007.d.alt
|
|
}
|
|
desc = fp2_struggle.2007.d
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { scope:fp2_2007_castle_holder != root }
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2007_scoped_steward
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2007_castle_holder
|
|
modifier = disappointed_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
if = {
|
|
limit = { exists = cp:councillor_marshal }
|
|
reverse_add_opinion = {
|
|
target = cp:councillor_marshal
|
|
modifier = disappointed_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Misdeeds of The Chaplain
|
|
# By Hugo Cortell
|
|
###################################
|
|
scripted_trigger fp2_struggle_2008_check_actor_eligibility_scripted_trigger = {
|
|
is_available_ai_adult = yes
|
|
intrigue > low_skill_rating
|
|
|
|
NOT = {
|
|
has_trait = just
|
|
has_trait = compassionate
|
|
has_trait = generous
|
|
has_trait = content
|
|
has_trait = honest
|
|
has_relation_soulmate = root
|
|
}
|
|
|
|
trigger_if = { # Instead of an event weight, we just increase the reqs for friends to dicrease overhead
|
|
limit = {
|
|
has_relation_friend = root
|
|
has_relation_lover = root
|
|
}
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = deceitful
|
|
has_trait = callous
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2008 = {
|
|
type = character_event
|
|
title = fp2_struggle.2008.t
|
|
desc = fp2_struggle.2008.desc
|
|
|
|
theme = secret
|
|
cooldown = { years = 30 }
|
|
override_background = { reference = study }
|
|
left_portrait = {
|
|
character = scope:fps_2008_misdeed_actor
|
|
animation = fear
|
|
}
|
|
right_portrait = {
|
|
character = root
|
|
animation = disapproval
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
root.top_liege = root
|
|
|
|
trigger_if = {
|
|
limit = { exists = struggle:iberian_struggle }
|
|
struggle:iberian_struggle = {
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
|
|
}
|
|
}
|
|
|
|
OR = { # This play changes depending on the actor
|
|
AND = { # Chaplain
|
|
exists = cp:councillor_court_chaplain
|
|
cp:councillor_court_chaplain = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes }
|
|
}
|
|
AND = { # Steward
|
|
exists = cp:councillor_steward
|
|
cp:councillor_steward = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes }
|
|
}
|
|
AND = { # Spymaster
|
|
exists = cp:councillor_spymaster
|
|
cp:councillor_spymaster = { fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes }
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_councillor = {
|
|
limit = {
|
|
OR = {
|
|
this = root.cp:councillor_court_chaplain
|
|
this = root.cp:councillor_steward
|
|
this = root.cp:councillor_spymaster
|
|
}
|
|
fp2_struggle_2008_check_actor_eligibility_scripted_trigger = yes
|
|
}
|
|
weight = { # Weight based on personality. In combination with the scripted trigger this means: Must be greedy, dishonourable, not incompetent.
|
|
base = 1
|
|
modifier = {
|
|
ai_greed > 0
|
|
factor = 1
|
|
}
|
|
modifier = {
|
|
ai_honor < 0
|
|
factor = 1
|
|
}
|
|
}
|
|
save_scope_as = fps_2008_misdeed_actor
|
|
}
|
|
|
|
scope:fps_2008_misdeed_actor = {
|
|
if = {
|
|
limit = { has_council_position = councillor_steward }
|
|
add_gold = medium_gold_value # Small detail
|
|
}
|
|
else = { add_gold = minor_gold_value }
|
|
|
|
if = {
|
|
limit = {
|
|
faith = {
|
|
exists = religious_head
|
|
NOT = {
|
|
religious_head = root
|
|
religious_head = scope:fps_2008_misdeed_actor
|
|
}
|
|
}
|
|
}
|
|
faith.religious_head = {
|
|
save_scope_as = fp2_2008_relevant_head_of_faith
|
|
}
|
|
}
|
|
}
|
|
root.capital_county = { save_scope_as = fp2_2008_capital }
|
|
}
|
|
|
|
option = { # Special (thanks QA!) option, denounce publicly (might get killed by mob)
|
|
name = fp2_struggle.2008.d
|
|
flavor = fp2_struggle.2008.d.flavor
|
|
trigger = {
|
|
OR = {
|
|
has_trait = sadistic
|
|
has_trait = schemer
|
|
has_trait = peasant_leader
|
|
has_trait = augustus
|
|
has_trait = contrite
|
|
has_trait = august
|
|
has_trait = diplomat
|
|
}
|
|
}
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
trusting = minor_stress_impact_gain
|
|
temperate = minor_stress_impact_gain
|
|
patient = minor_stress_impact_gain
|
|
shy = minor_stress_impact_gain
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
|
|
every_powerful_vassal = {
|
|
limit = { faith = root.faith }
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = cruelty_opinion
|
|
opinion = -20
|
|
}
|
|
}
|
|
|
|
random_list = {
|
|
85 = {
|
|
hidden_effect = {
|
|
scope:fps_2008_misdeed_actor = { save_temporary_scope_as = assassin } # Used for loc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = char_interaction.0050.a
|
|
left_icon = scope:fps_2008_misdeed_actor
|
|
|
|
capital_county = {
|
|
add_county_modifier = {
|
|
modifier = governance_1054_satisfied_peasants_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
scope:assassin = { custom_tooltip = hold_court.8221.imprison_alone } # This uses that loc
|
|
hidden_effect = {
|
|
rightfully_imprison_character_effect = { # The autoformatter was a bit (very, very) fiddly with this
|
|
TARGET = scope:fps_2008_misdeed_actor
|
|
IMPRISONER = root
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:fps_2008_misdeed_actor = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = publicly_ridiculed
|
|
opinion = -30
|
|
}
|
|
}
|
|
show_as_tooltip = {
|
|
rightfully_imprison_character_effect = {
|
|
TARGET = scope:fps_2008_misdeed_actor
|
|
IMPRISONER = root
|
|
}
|
|
capital_county = {
|
|
add_county_modifier = {
|
|
modifier = governance_1054_satisfied_peasants_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
15 = {
|
|
scope:fps_2008_misdeed_actor = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = publicly_ridiculed
|
|
opinion = -80
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_trait = sadistic } # Once again, rewarding physcos with little details
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = char_interaction.0050.a
|
|
left_icon = scope:fps_2008_misdeed_actor
|
|
|
|
scope:fps_2008_misdeed_actor = { death = { death_reason = death_beaten_by_mob } }
|
|
capital_county = {
|
|
add_county_modifier = {
|
|
modifier = governance_1054_satisfied_peasants_modifier
|
|
years = 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = char_interaction.0050.a
|
|
left_icon = scope:fps_2008_misdeed_actor
|
|
|
|
scope:fps_2008_misdeed_actor = { death = { death_reason = death_beaten_by_mob } }
|
|
capital_county = {
|
|
add_county_modifier = {
|
|
modifier = governance_1054_satisfied_peasants_modifier
|
|
years = 30
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Imprison chaplain outright
|
|
name = fp2_struggle.2008.a
|
|
stress_impact = { trusting = minor_stress_impact_gain }
|
|
|
|
rightfully_imprison_character_effect = {
|
|
TARGET = scope:fps_2008_misdeed_actor
|
|
IMPRISONER = root
|
|
}
|
|
if = {
|
|
limit = {
|
|
scope:fps_2008_misdeed_actor = cp:councillor_court_chaplain
|
|
exists = scope:fp2_2008_relevant_head_of_faith
|
|
}
|
|
scope:fps_2008_misdeed_actor.faith = {
|
|
religious_head = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = rude_opinion
|
|
opinion = -10
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:fp2_2008_capital = {
|
|
add_county_modifier = {
|
|
modifier = fp2_improved_administrative_checks_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 50
|
|
ai_value_modifier = {
|
|
ai_honor = 0.85
|
|
ai_zeal = 0.3
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
# Threaten, gain hook and modifier for work harder
|
|
option = { # Combined general output (threaten into teaching you how to forge like they do)
|
|
name = fp2_struggle.2008.b.a
|
|
flavor = fp2_struggle.2008.b.flavor
|
|
stress_impact = {
|
|
just = minor_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = yearly_0001_improved_intrigue
|
|
left_icon = ROOT
|
|
right_icon = scope:fps_2008_misdeed_actor
|
|
|
|
add_intrigue_lifestyle_xp = major_lifestyle_experience # Originally it gave you the accomplished forger perk. Was removed because it let you bypass the learning tree.
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fps_2008_misdeed_actor
|
|
modifier = extorted_me_opinion
|
|
opinion = -25
|
|
years = 10
|
|
}
|
|
|
|
scope:fps_2008_misdeed_actor = {
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_defrauded_realm
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
|
|
if = { # Has its own notification
|
|
limit = {
|
|
can_add_hook = {
|
|
target = scope:fps_2008_misdeed_actor
|
|
type = threat_hook
|
|
}
|
|
}
|
|
add_hook = {
|
|
target = scope:fps_2008_misdeed_actor
|
|
type = threat_hook
|
|
years = 7
|
|
}
|
|
}
|
|
|
|
ai_chance = { base = 0 } # AI should never use these OP options
|
|
}
|
|
|
|
|
|
option = { # Go hand in hand stealing state money
|
|
name = fp2_struggle.2008.c
|
|
flavor = fp2_struggle.2008.c.flavor
|
|
|
|
stress_impact = {
|
|
just = medium_stress_impact_gain
|
|
zealous = minor_stress_impact_gain
|
|
}
|
|
|
|
scope:fp2_2008_capital = {
|
|
add_county_modifier = {
|
|
modifier = county_corruption_inefficient_tax_collection_modifier
|
|
years = 15
|
|
}
|
|
}
|
|
|
|
scope:fps_2008_misdeed_actor = {
|
|
if = {
|
|
limit = {
|
|
can_add_hook = {
|
|
target = root
|
|
type = minor_crime_accomplice_hook
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { root = { scope:fps_2008_misdeed_actor = cp:councillor_steward } } # CPs cannot have CPs, therefore must be rescoped into root to access
|
|
pay_short_term_gold = {
|
|
target = root
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
add_hook = {
|
|
target = root
|
|
type = minor_crime_accomplice_hook
|
|
years = 15
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
can_add_hook = {
|
|
target = scope:fps_2008_misdeed_actor
|
|
type = minor_crime_accomplice_hook
|
|
}
|
|
}
|
|
add_hook = {
|
|
target = scope:fps_2008_misdeed_actor
|
|
type = minor_crime_accomplice_hook
|
|
years = 15
|
|
}
|
|
}
|
|
add_gold = medium_gold_value
|
|
|
|
ai_chance = {
|
|
base = 50
|
|
ai_value_modifier = {
|
|
ai_greed = 0.95
|
|
ai_energy = 0.25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Thiefs of Garduna / Catching Thieves of Myth
|
|
# By Hugo Cortell
|
|
###################################
|
|
fp2_struggle.2009 = {
|
|
type = character_event
|
|
title = fp2_struggle.2009.t
|
|
desc = fp2_struggle.2009.desc
|
|
|
|
theme = intrigue_skulduggery_focus
|
|
cooldown = { years = 150 } # Not actually necessary but adding anyway
|
|
override_background = { reference = corridor_night }
|
|
left_portrait = {
|
|
character = scope:fp2_2009_marshal
|
|
animation = marshal
|
|
outfit_tags = { emotion_angry_decal } # WAD, the decal does render and functions as intended
|
|
}
|
|
lower_left_portrait = {
|
|
character = root
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2009_garduna_young_thief
|
|
animation = fear
|
|
hide_info = yes
|
|
outfit_tags = {
|
|
mena_stealth_hood
|
|
religious_zoroastrian_high_clothes
|
|
}
|
|
}
|
|
|
|
trigger = {
|
|
is_ai = no
|
|
has_fp2_dlc_trigger = yes
|
|
top_liege = this
|
|
exists = cp:councillor_marshal
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes
|
|
|
|
exists = struggle:iberian_struggle
|
|
exists = primary_title
|
|
struggle:iberian_struggle = {
|
|
any_involved_ruler = { # Redundancy check in response to errors on automated tests, should (theoretically) not be necessary
|
|
this != root # Alternative point of failure could be "this" being null, but that would cause errors outside my event.
|
|
exists = primary_title
|
|
top_liege = this
|
|
primary_title = { is_mercenary_company = no }
|
|
is_landed = yes
|
|
count > 1 # Redundancy check in response to more errors on nigtly. Now on the bottom of the block. Reduced by one to total 3.
|
|
}
|
|
|
|
OR = {
|
|
is_struggle_phase = struggle_iberia_phase_opportunity
|
|
is_struggle_phase = struggle_iberia_phase_conciliation
|
|
}
|
|
}
|
|
|
|
realm_size > 3 # Needed to get all the realms where corruption can happen
|
|
}
|
|
|
|
weight_multiplier = {
|
|
base = 0.5
|
|
modifier = {
|
|
add = 0.5
|
|
is_ai = no
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
struggle:iberian_struggle = { # Struggle existance is already verified by event trigger
|
|
random_involved_ruler = {
|
|
limit = {
|
|
this != root # Otherwise you might be the other involved ruler
|
|
exists = primary_title
|
|
top_liege = this
|
|
primary_title = { is_mercenary_company = no }
|
|
is_landed = yes
|
|
}
|
|
save_scope_as = fp2_2009_involved_ruler
|
|
}
|
|
}
|
|
cp:councillor_marshal = { save_scope_as = fp2_2009_marshal }
|
|
create_character = {
|
|
age = { 16 27 }
|
|
location = root.location
|
|
gender_female_chance = 30
|
|
trait = education_intrigue_2
|
|
trait = shy
|
|
trait = honest
|
|
trait = paranoid
|
|
random_traits = yes
|
|
diplomacy = { 2 7 }
|
|
martial = { 3 6 }
|
|
stewardship = { 4 7 }
|
|
intrigue = { 8 22 }
|
|
culture = culture:basque
|
|
faith = faith:catholic
|
|
dynasty = none
|
|
after_creation = { add_gold = minor_gold_value }
|
|
|
|
save_scope_as = fp2_2009_garduna_young_thief
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
exists = global_var:fp2_struggle_2009_thief_king_char
|
|
global_var:fp2_struggle_2009_thief_king_char = { is_available_ai_adult = yes }
|
|
}
|
|
global_var:fp2_struggle_2009_thief_king_char = { save_scope_as = fp2_2009_garduna_guild_master }
|
|
}
|
|
else = {
|
|
create_character = { # Guild Master
|
|
age = { 24 52 }
|
|
location = scope:fp2_2009_involved_ruler.location
|
|
gender_female_chance = {
|
|
if = {
|
|
limit = { scope:fp2_2009_involved_ruler.location.county.faith = { has_doctrine = doctrine_gender_male_dominated } }
|
|
add = 0
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_2009_involved_ruler.location.county.faith = { has_doctrine = doctrine_gender_female_dominated } }
|
|
add = 100
|
|
}
|
|
else = {
|
|
add = 50
|
|
}
|
|
}
|
|
trait = education_intrigue_4
|
|
trait = deceitful
|
|
trait = shrewd
|
|
random_traits = yes
|
|
diplomacy = { 6 16 }
|
|
martial = { 8 15 }
|
|
stewardship = { 10 17 }
|
|
intrigue = { 8 16 }
|
|
culture = culture:basque
|
|
faith = faith:catholic
|
|
dynasty = none
|
|
after_creation = {
|
|
add_gold = major_gold_value
|
|
add_prestige = major_prestige_gain
|
|
add_piety = minor_piety_gain
|
|
random = {
|
|
chance = 10
|
|
add_trait = one_eyed
|
|
}
|
|
random = {
|
|
chance = 10
|
|
add_trait = one_legged
|
|
}
|
|
random = {
|
|
chance = 5
|
|
add_trait = schemer
|
|
}
|
|
random = {
|
|
chance = 33
|
|
add_trait = wild_oat
|
|
}
|
|
if = {
|
|
limit = { is_female = yes }
|
|
give_nickname = nick_the_Queen_of_Thieves
|
|
}
|
|
else = { give_nickname = nick_the_King_of_Thieves }
|
|
}
|
|
|
|
save_scope_as = fp2_2009_garduna_guild_master
|
|
}
|
|
}
|
|
set_global_variable = {
|
|
name = fp2_struggle_2009_thief_king_char
|
|
value = scope:fp2_2009_garduna_guild_master
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
any_court_position_holder = {
|
|
type = executioner_court_position
|
|
is_available_ai_adult = yes
|
|
}
|
|
}
|
|
random_court_position_holder = {
|
|
type = executioner_court_position
|
|
save_scope_as = fp2_2009_roco_executioner
|
|
}
|
|
}
|
|
|
|
# Get locations
|
|
root.capital_county = { save_scope_as = fp2_2009_capital_county }
|
|
scope:fp2_2009_involved_ruler.capital_county = { save_scope_as = fp2_2009_involved_capital_county }
|
|
random_sub_realm_county = {
|
|
limit = { this != scope:fp2_2009_capital_county }
|
|
save_scope_as = fp2_2009_random_flavor_county_ichi
|
|
}
|
|
random_sub_realm_county = {
|
|
limit = {
|
|
NOT = {
|
|
this = scope:fp2_2009_capital_county
|
|
this = scope:fp2_2009_random_flavor_county_ichi
|
|
}
|
|
}
|
|
save_scope_as = fp2_2009_random_flavor_county_ni
|
|
}
|
|
|
|
# Logic for "Hire the guild" option, prevents the AI from acting un-wise
|
|
if = { # Player has access by default
|
|
limit = { is_ai = no }
|
|
save_scope_as = fp2_2009_hire_guild_unlocked
|
|
}
|
|
else_if = { # Forbid AI on AI agression
|
|
limit = {
|
|
NOT = {
|
|
is_ai = yes
|
|
scope:fp2_2009_involved_ruler = { is_ai = yes }
|
|
}
|
|
}
|
|
save_scope_as = fp2_2009_hire_guild_unlocked
|
|
}
|
|
else_if = { # Ensure AI on Player agression is justified
|
|
limit = {
|
|
is_ai = yes
|
|
scope:fp2_2009_involved_ruler = {
|
|
is_ai = no
|
|
save_temporary_opinion_value_as = {
|
|
name = opinion_of_root_temp_value
|
|
target = root
|
|
}
|
|
}
|
|
|
|
# AI behaviour must be on brand with personality and/or circumstance to ensure narrative cohesion
|
|
scope:opinion_of_root_temp_value < -10
|
|
OR = {
|
|
has_trait = deceitful
|
|
has_trait = wrathful
|
|
has_trait = ambitious
|
|
has_trait = vengeful
|
|
has_trait = arrogant
|
|
has_trait = callous
|
|
is_at_war_with = scope:fp2_2009_involved_ruler
|
|
has_relation_nemesis = scope:fp2_2009_involved_ruler
|
|
}
|
|
}
|
|
save_scope_as = fp2_2009_hire_guild_unlocked
|
|
}
|
|
}
|
|
|
|
option = { # BECOME THE KING OF PIRA- err THIEVES!!1!
|
|
name = fp2_struggle.2009.a
|
|
flavor = fp2_struggle.2009.a.flavor
|
|
trigger = {
|
|
NOT = { age < 14 }
|
|
OR = {
|
|
has_trait = gallant
|
|
has_trait = adventurer
|
|
has_trait = berserker
|
|
has_trait = peasant_leader
|
|
has_trait = viking
|
|
has_trait = reaver
|
|
prowess > very_high_skill_rating
|
|
has_trait = lunatic_genetic
|
|
}
|
|
}
|
|
scope:fp2_2009_marshal = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = impressed_opinion
|
|
opinion = 20
|
|
}
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2010
|
|
days = { 6 31 }
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = minor_stress_impact_gain
|
|
craven = minor_stress_impact_gain
|
|
content = medium_stress_impact_gain
|
|
eccentric = medium_stress_impact_loss
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 8 # Prevents too many kings of thieves from showing up
|
|
modifier = {
|
|
add = 25
|
|
has_trait = just
|
|
}
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.7
|
|
ai_compassion = -0.1
|
|
ai_greed = 0.3
|
|
ai_energy = 0.5
|
|
ai_honor = -0.1
|
|
ai_rationality = -0.2
|
|
ai_sociability = 0.3
|
|
ai_vengefulness = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Demand info
|
|
name = fp2_struggle.2009.b
|
|
|
|
hidden_effect = {
|
|
scope:fp2_2009_garduna_young_thief = { add_trait = depressed_1 }
|
|
save_scope_as = fp2_2009_thief_permanence_scope
|
|
}
|
|
|
|
every_sub_realm_county = {
|
|
limit = {
|
|
county_control < 100
|
|
}
|
|
custom = all_realm_county
|
|
change_county_control = 5
|
|
}
|
|
add_courtier = scope:fp2_2009_garduna_young_thief
|
|
scope:fp2_2009_garduna_young_thief = {
|
|
custom_tooltip = fp2_struggle.2009.b.blues
|
|
add_opinion = {
|
|
target = root
|
|
modifier = was_spared
|
|
opinion = 20
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
wrathful = minor_stress_impact_gain
|
|
vengeful = minor_stress_impact_gain
|
|
sadistic = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 45
|
|
ai_value_modifier = {
|
|
ai_boldness = -0.1
|
|
ai_compassion = 0.65
|
|
ai_honor = 0.2
|
|
ai_rationality = 0.9
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:cleared_out
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2021
|
|
days = { 450 3000 }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Ask for a cut
|
|
name = fp2_struggle.2009.c
|
|
trigger = {
|
|
is_ai = no # Option disabled for AI rulers
|
|
NOR = {
|
|
has_trait = gallant
|
|
has_trait = adventurer
|
|
has_trait = berserker
|
|
has_trait = peasant_leader
|
|
has_trait = viking
|
|
has_trait = reaver
|
|
prowess > very_high_skill_rating
|
|
has_trait = lunatic_genetic
|
|
}
|
|
}
|
|
|
|
add_gold = medium_gold_value
|
|
scope:fp2_2009_capital_county = { add_thieves_guild_modifier_effect = yes }
|
|
scope:fp2_2009_random_flavor_county_ichi = { change_county_control = -15 }
|
|
scope:fp2_2009_random_flavor_county_ni = { change_county_control = -15 }
|
|
|
|
scope:fp2_2009_marshal = {
|
|
if = {
|
|
limit = { has_trait = just }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disgusted_opinion
|
|
opinion = -35
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = { has_trait = greedy }
|
|
add_opinion = {
|
|
target = root
|
|
modifier = respect_opinion # Greedy people respect "the grind"
|
|
opinion = 10
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
generous = medium_stress_impact_gain
|
|
content = minor_stress_impact_gain
|
|
just = major_stress_impact_gain
|
|
}
|
|
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:paid_off
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2021
|
|
days = { 450 3000 }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Hire the guild to mess with a foreign ruler (work for me)
|
|
name = fp2_struggle.2009.d
|
|
trigger = { exists = scope:fp2_2009_hire_guild_unlocked } # Prevents AI from acting un-intelligently
|
|
|
|
scope:fp2_2009_involved_capital_county = { add_thieves_guild_modifier_effect = yes }
|
|
pay_short_term_gold = {
|
|
target = scope:fp2_2009_garduna_young_thief
|
|
gold = minor_gold_value
|
|
|
|
}
|
|
|
|
# Notifies the player on the recieving end of an event outcome that involves them.
|
|
scope:fp2_2009_involved_ruler = { # Hopefuly this will encoureage interaction in MP games.
|
|
trigger_event = {
|
|
id = fp2_struggle.2012
|
|
days = { 1 2 }
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
brave = minor_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 25
|
|
modifier = {
|
|
add = 45
|
|
is_at_war_with = scope:fp2_2009_involved_ruler
|
|
}
|
|
modifier = {
|
|
add = 100 # hatred can cloud the mind
|
|
has_relation_nemesis = scope:fp2_2009_involved_ruler
|
|
}
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.7
|
|
ai_compassion = -0.2
|
|
ai_greed = -0.1
|
|
ai_honor = -0.4
|
|
ai_rationality = 0.7
|
|
ai_vengefulness = 0.95
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:worked_together
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2021
|
|
days = { 450 3000 }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Gift the thieve's the head to the foreign ruler
|
|
name = fp2_struggle.2009.e
|
|
|
|
scope:fp2_2009_garduna_young_thief = {
|
|
if = {
|
|
limit = { exists = scope:fp2_2009_roco_executioner } # ROCO flaire
|
|
death = {
|
|
death_reason = death_execution
|
|
killer = scope:fp2_2009_roco_executioner
|
|
}
|
|
}
|
|
else = {
|
|
death = {
|
|
death_reason = death_execution
|
|
killer = scope:fp2_2009_marshal
|
|
}
|
|
}
|
|
save_scope_as = fp2_2009_thief_permanence_scope
|
|
}
|
|
custom_tooltip = fp2_struggle.2009.e.a
|
|
hidden_effect = {
|
|
random_list = {
|
|
55 = {} # nothing happens
|
|
45 = {
|
|
random_list = {
|
|
33 = { scope:fp2_2009_random_flavor_county_ichi = { change_county_control = -15 } }
|
|
33 = { scope:fp2_2009_random_flavor_county_ni = { change_county_control = -15 } }
|
|
33 = { scope:fp2_2009_capital_county = { change_county_control = -15 } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:fp2_2009_involved_ruler = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = wrathful
|
|
has_trait = vengeful
|
|
has_trait = sadistic
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = gift_opinion
|
|
opinion = 40
|
|
}
|
|
progress_towards_friend_effect = { # very nice
|
|
REASON = friend_gave_severed_head
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
else = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = gift_opinion # nice
|
|
opinion = 30
|
|
}
|
|
}
|
|
}
|
|
|
|
# Notifies the player on the recieving end that they have recieved a delightful gift
|
|
root = { save_scope_as = fp2_2009_has_gifted_head }
|
|
scope:fp2_2009_involved_ruler = {
|
|
trigger_event = {
|
|
id = fp2_struggle.2012
|
|
days = { 1 2 }
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = medium_stress_impact_gain
|
|
forgiving = minor_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 35
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.2
|
|
ai_compassion = -0.45
|
|
ai_honor = 0.8
|
|
ai_rationality = 0.1
|
|
ai_sociability = 0.5
|
|
}
|
|
}
|
|
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:lobbed_head
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2021
|
|
days = { 450 3000 }
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Debug option to quickly trigger 2021
|
|
name = debug_generic_option
|
|
trigger = { is_developer_testing_trigger = yes }
|
|
|
|
custom_tooltip = debug_generic_option_shortened_trigger_can_disable
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:cleared_out # modify this with the flag you need
|
|
}
|
|
trigger_event = { id = fp2_struggle.2021 }
|
|
}
|
|
}
|
|
|
|
after = {
|
|
if = {
|
|
limit = { NOT = { exists = scope:fp2_2009_thief_permanence_scope } }
|
|
scope:fp2_2009_garduna_young_thief = { silent_disappearance_effect = yes }
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2010 = { # 2009 duel follow-up
|
|
type = character_event
|
|
title = fp2_struggle.2010.t
|
|
desc = fp2_struggle.2010.desc
|
|
trigger = { scope:fp2_2009_garduna_guild_master = { is_available_ai_adult = yes } }
|
|
|
|
theme = battle
|
|
override_background = { reference = corridor_night }
|
|
left_portrait = {
|
|
character = root
|
|
animation = throne_room_one_handed_passive_1
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2009_garduna_guild_master
|
|
animation = war_over_win
|
|
outfit_tags = {
|
|
western_stealth_hood
|
|
sub_saharan_high_nobility
|
|
mena_war_legwear
|
|
}
|
|
}
|
|
|
|
option = { # Duel
|
|
name = fp2_struggle.2010.b
|
|
|
|
root = { save_scope_as = fp2_2010_root_in_duel } # Used in invalidation check for player's death
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
set_variable = {
|
|
name = signature_weapon
|
|
value = flag:dagger
|
|
}
|
|
}
|
|
configure_start_single_combat_effect = {
|
|
SC_INITIATOR = root
|
|
SC_ATTACKER = root
|
|
SC_DEFENDER = scope:fp2_2009_garduna_guild_master
|
|
FATALITY = always
|
|
FIXED = no
|
|
LOCALE = temple
|
|
OUTPUT_EVENT = fp2_struggle.2011
|
|
INVALIDATION_EVENT = fp2_struggle.2011 # If the thief dies, you still win. If you die, 2011 runs a check and fails to trigger.
|
|
}
|
|
|
|
ai_chance = { # Stress for craven was already taken when setting off in this quest
|
|
base = 50
|
|
ai_value_modifier = { ai_boldness = 0.5 }
|
|
}
|
|
}
|
|
|
|
option = { # Pay protection money
|
|
name = fp2_struggle.2010.c
|
|
|
|
pay_treasury_or_gold = { # Cowardice tax (costs more than hireing them)
|
|
target = scope:fp2_2009_garduna_guild_master
|
|
value = major_treasury_or_gold_value
|
|
}
|
|
|
|
stress_impact = {
|
|
brave = major_stress_impact_gain
|
|
just = major_stress_impact_gain
|
|
arrogant = major_stress_impact_gain
|
|
vengeful = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = { # Nobody wants to be indebted to a thief
|
|
add = -25
|
|
gold < major_gold_value
|
|
}
|
|
ai_value_modifier = { ai_greed = -0.5 }
|
|
}
|
|
|
|
hidden_effect = {
|
|
save_scope_value_as = {
|
|
name = fp2_2009_event_outcome
|
|
value = flag:paid_off
|
|
}
|
|
trigger_event = {
|
|
id = fp2_struggle.2021
|
|
days = { 450 3000 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2011 = { # You become the KING OF THIEVES
|
|
hidden = yes
|
|
immediate = {
|
|
if = {
|
|
limit = {
|
|
exists = scope:fp2_2011_reuse_gate
|
|
root = scope:fp2_2010_root_in_duel
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
desc = fp2_struggle.2011.desc
|
|
title = fp2_struggle.2011.a
|
|
right_icon = ROOT
|
|
|
|
if = { # Standard practice from EP1 onwards dictates that we ought not to overwrite positive nicknames (?)
|
|
limit = {
|
|
OR = {
|
|
has_any_nickname = no
|
|
has_bad_nickname = yes
|
|
}
|
|
}
|
|
give_nickname = nick_the_Thief_Slayer
|
|
}
|
|
add_prestige = major_prestige_gain
|
|
add_gold = minor_gold_value
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_as = fp2_2011_reuse_gate
|
|
trigger_event = {
|
|
id = fp2_struggle.2011
|
|
days = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2012 = { # Displays letter notifying involved player/character that an action taken by 2009's root is affecting them
|
|
type = letter_event
|
|
sender = scope:fp2_2012_sender # Animation is WAD
|
|
opening = {
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:fp2_2009_has_gifted_head }
|
|
desc = fp2_struggle.2012.t.alt
|
|
}
|
|
desc = fp2_struggle.2012.t
|
|
}
|
|
}
|
|
}
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:fp2_2009_has_gifted_head }
|
|
desc = fp2_struggle.2012.desc.alt
|
|
}
|
|
desc = fp2_struggle.2012.desc
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
# Logic for deciding who is the author of the letter
|
|
if = {
|
|
limit = { exists = scope:fp2_2009_has_gifted_head } # If the event is the alt version where you gift the head
|
|
scope:fp2_2009_has_gifted_head = { save_scope_as = fp2_2012_sender }
|
|
}
|
|
else_if = {
|
|
limit = { exists = cp:councillor_spymaster } # Else cycle through possible chancellors
|
|
cp:councillor_spymaster = { save_scope_as = fp2_2012_sender }
|
|
}
|
|
else_if = {
|
|
limit = { exists = cp:councillor_marshal }
|
|
cp:councillor_marshal = { save_scope_as = fp2_2012_sender }
|
|
}
|
|
else_if = {
|
|
limit = { exists = cp:councillor_court_chaplain }
|
|
cp:councillor_court_chaplain = { save_scope_as = fp2_2012_sender }
|
|
}
|
|
else = { root = { save_scope_as = fp2_2012_sender } } # If all fails, you wrote the report yourself, about yourself, for yourself.
|
|
}
|
|
|
|
option = {
|
|
name = fp2_struggle.2012.a
|
|
trigger = { NOT = { exists = scope:fp2_2009_has_gifted_head } }
|
|
|
|
show_as_tooltip = { scope:fp2_2009_involved_capital_county = { add_thieves_guild_modifier_effect = yes } } # Has already happened, only to display info
|
|
}
|
|
|
|
option = {
|
|
name = fp2_struggle.2012.a.alt
|
|
trigger = { exists = scope:fp2_2009_has_gifted_head }
|
|
|
|
scope:fp2_2009_involved_capital_county = { change_county_control = 10 }
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# The Secret to Freedom
|
|
# By Hugo Cortell
|
|
###################################
|
|
fp2_struggle.2013 = {
|
|
type = character_event
|
|
title = fp2_struggle.2013.t
|
|
desc = fp2_struggle.2013.desc
|
|
theme = secret
|
|
cooldown = { years = 2 }
|
|
override_background = {
|
|
trigger = { scope:fp2_2013_prisoner_with_a_secret = { is_in_prison_type = house_arrest } }
|
|
reference = sitting_room
|
|
}
|
|
override_background = {
|
|
trigger = { always = yes }
|
|
reference = dungeon
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = scheme
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2013_prisoner_with_a_secret
|
|
triggered_animation = {
|
|
trigger = { scope:fp2_2013_prisoner_with_a_secret = { is_in_prison_type = house_arrest } }
|
|
animation = beg
|
|
}
|
|
animation = prisondungeon
|
|
override_imprisonment_visuals = yes
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
any_prisoner = {
|
|
save_temporary_scope_as = temp_prisoner_with_secret # Prevents prisoner from revealing their own secret, which would be cool, but would require new loc
|
|
any_known_secret = {
|
|
secret_owner = {
|
|
this != scope:temp_prisoner_with_secret
|
|
top_liege = this
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes
|
|
}
|
|
NOT = { is_known_by = root }
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_prisoner = {
|
|
limit = {
|
|
save_temporary_scope_as = temp_prisoner_with_secret
|
|
any_known_secret = {
|
|
secret_owner = {
|
|
this != scope:temp_prisoner_with_secret
|
|
top_liege = this
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes
|
|
}
|
|
NOT = { is_known_by = root }
|
|
}
|
|
}
|
|
save_scope_as = fp2_2013_prisoner_with_a_secret
|
|
every_known_secret = {
|
|
limit = {
|
|
secret_owner = {
|
|
this != scope:fp2_2013_prisoner_with_a_secret
|
|
top_liege = this
|
|
}
|
|
NOT = { is_known_by = root }
|
|
}
|
|
secret_owner = { save_scope_as = fp2_2013_secret_owner }
|
|
save_scope_as = fp2_2013_secret_to_tell
|
|
}
|
|
|
|
stress_impact = {
|
|
brave = medium_stress_impact_gain
|
|
gallant = medium_stress_impact_gain
|
|
confider = major_stress_impact_gain
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Agree
|
|
name = fp2_struggle.2013.a
|
|
|
|
show_as_tooltip = {
|
|
custom_tooltip = fp2_struggle.2013.a.a
|
|
scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes }
|
|
}
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = witch.2010.message
|
|
left_icon = ROOT
|
|
right_icon = scope:fp2_2013_secret_owner
|
|
|
|
scope:fp2_2013_secret_to_tell = { reveal_to = root }
|
|
scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes }
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 15
|
|
ai_value_modifier = {
|
|
ai_boldness = -0.1
|
|
ai_compassion = 0.2
|
|
ai_honor = 0.1
|
|
ai_rationality = 0.4
|
|
ai_sociability = 0.1
|
|
ai_vengefulness = 0.1
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Torture
|
|
name = fp2_struggle.2013.b
|
|
|
|
add_dread = minor_dread_gain
|
|
duel = {
|
|
skill = intrigue
|
|
value = medium_skill_rating
|
|
|
|
40 = { # Success
|
|
modifier = {
|
|
add = intrigue # Your intrigue level should make up for most of the 10 missing points to make this a 50 50
|
|
always = yes
|
|
}
|
|
modifier = {
|
|
add = 15 # Enjoy your job and it wont feel like work!
|
|
has_trait = sadistic
|
|
}
|
|
modifier = {
|
|
add = 35
|
|
has_trait = torturer
|
|
}
|
|
modifier = {
|
|
add = 5 # Iberia is home to many plants you should not rub against your skin, great for tickle-torture :D
|
|
has_trait = lifestyle_herbalist
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = lazy }
|
|
}
|
|
modifier = {
|
|
add = 15 # Quickly changes their mind about wanting to resist torture
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = fickle }
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.2013.a.a
|
|
hidden_effect = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = witch.2010.message
|
|
left_icon = ROOT
|
|
right_icon = scope:fp2_2013_secret_owner
|
|
|
|
scope:fp2_2013_secret_to_tell = { reveal_to = root }
|
|
}
|
|
}
|
|
}
|
|
60 = { # You fail
|
|
desc = fp2_struggle.2013.b.b
|
|
modifier = {
|
|
add = scope:fp2_2013_prisoner_with_a_secret.prowess # This is a battle of your skill in torture (intrigue) against the will of your oponent (prowess, usually lower)
|
|
always = yes
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = brave }
|
|
}
|
|
modifier = {
|
|
add = 5 # Being stubborn is as much a blessing as it is a curse, in this case, it is the former
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = stubborn }
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = diligent }
|
|
}
|
|
modifier = {
|
|
add = 5 # They know nothing good can come from revealing information, what will the bargain with otherwise?
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = paranoid }
|
|
}
|
|
modifier = {
|
|
add = 2 # Maybe god is still on your side? Maybe it is a test?
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = zealous }
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = callous }
|
|
}
|
|
modifier = {
|
|
add = 15 # I imagine this is sort of a lalatina moment
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = flagellant }
|
|
}
|
|
modifier = {
|
|
add = 10 # They are used to not revealing info under preassure, though torture is a bit more than they are used to...
|
|
scope:fp2_2013_prisoner_with_a_secret = { has_trait = confider }
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_toast_effect_bad
|
|
title = ease_tension_toast.failure
|
|
left_icon = ROOT
|
|
right_icon = scope:fp2_2013_prisoner_with_a_secret
|
|
}
|
|
}
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2013_prisoner_with_a_secret
|
|
modifier = tortured_me
|
|
opinion = -60 # 15 point reduction because there was a weak justification
|
|
years = 30
|
|
}
|
|
scope:fp2_2013_prisoner_with_a_secret = {
|
|
add_character_modifier = {
|
|
modifier = recently_tortured
|
|
years = 5
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = major_stress_impact_gain
|
|
just = medium_stress_impact_gain
|
|
forgiving = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 15
|
|
modifier = {
|
|
add = 25
|
|
has_trait = torturer
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_trait = sadistic
|
|
}
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.8
|
|
ai_compassion = -0.5
|
|
ai_greed = 0.6
|
|
ai_honor = -0.9
|
|
ai_vengefulness = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Send as gift
|
|
name = fp2_struggle.2013.c
|
|
flavor = fp2_struggle.2013.c.desc
|
|
trigger = { scope:fp2_2013_secret_owner = { is_ai = yes } }
|
|
|
|
custom_tooltip = fp2_struggle.2013.c.a
|
|
scope:fp2_2013_prisoner_with_a_secret = { release_from_prison = yes }
|
|
trigger_event = {
|
|
id = fp2_struggle.2014
|
|
days = { 1 4 }
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 5
|
|
ai_value_modifier = {
|
|
ai_boldness = -0.1
|
|
ai_compassion = 0.2
|
|
ai_greed = -0.5
|
|
ai_energy = -0.1
|
|
ai_honor = 0.3
|
|
ai_sociability = 0.3
|
|
ai_vengefulness = -0.2
|
|
ai_zeal = -0.1
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Dismiss
|
|
name = fp2_struggle.2013.d
|
|
|
|
random = {
|
|
chance = 5
|
|
modifier = {
|
|
add = 10
|
|
has_trait = depressed
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
health < fine_health
|
|
}
|
|
show_as_tooltip = { custom_tooltip = fp2_struggle.2013.a.a }
|
|
hidden_effect = {
|
|
if = {
|
|
limit = { is_ai = no }
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = witch.2010.message
|
|
left_icon = ROOT
|
|
right_icon = scope:fp2_2013_secret_owner
|
|
|
|
scope:fp2_2013_secret_to_tell = { reveal_to = root }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 65
|
|
ai_value_modifier = {
|
|
ai_boldness = -0.2
|
|
ai_greed = -0.15
|
|
ai_energy = -0.1
|
|
ai_honor = 0.6
|
|
ai_sociability = 0.1
|
|
ai_vengefulness = -0.1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2014 = {
|
|
type = letter_event
|
|
sender = scope:fp2_2013_secret_owner
|
|
opening = fp2_struggle.2014.t
|
|
desc = {
|
|
desc = fp2_struggle.2014.desc.start
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2014_ai_secret_outcome = flag:prison }
|
|
desc = fp2_struggle.2014.desc.heavy.outcome.prison
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2014_ai_secret_outcome = flag:death }
|
|
desc = fp2_struggle.2014.desc.heavy.outcome.death
|
|
}
|
|
desc = fp2_struggle.2014.desc.light
|
|
}
|
|
}
|
|
|
|
trigger = {
|
|
scope:fp2_2013_secret_owner = { is_available_ai_adult = yes }
|
|
scope:fp2_2013_prisoner_with_a_secret = { is_available_ai_adult = yes }
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
if = {
|
|
limit = { # Fallback - foreign ruler has died!
|
|
NOT = {
|
|
scope:fp2_2013_secret_owner = {
|
|
is_alive = yes
|
|
is_available_ai_adult = yes
|
|
}
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_death_neutral
|
|
desc = death_management.1007.t
|
|
left_icon = scope:fp2_2013_secret_owner
|
|
}
|
|
}
|
|
if = {
|
|
limit = { # Fallback - prisoner has died!
|
|
NOT = { scope:fp2_2013_prisoner_with_a_secret = { is_alive = yes } }
|
|
}
|
|
send_interface_toast = {
|
|
scope:fp2_2013_prisoner_with_a_secret = { save_temporary_scope_as = dead_character }
|
|
type = event_death_neutral
|
|
desc = death_management.1006.desc
|
|
left_icon = scope:fp2_2013_prisoner_with_a_secret
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = { # LOGIC FOR AI RESPONSE
|
|
save_scope_value_as = { # Calculate how "strong" a secret is
|
|
name = fp2_2014_secret_strength
|
|
value = {
|
|
value = 0
|
|
if = {
|
|
limit = { scope:fp2_2013_secret_to_tell = { is_criminal_for = scope:fp2_2013_secret_owner } }
|
|
add = 10
|
|
}
|
|
if = {
|
|
limit = { scope:fp2_2013_secret_to_tell = { is_shunned_for = scope:fp2_2013_secret_owner } }
|
|
add = 5
|
|
}
|
|
if = {
|
|
limit = { scope:fp2_2013_secret_to_tell = { secret_is_always_interesting_trigger = yes } }
|
|
add = 5
|
|
}
|
|
}
|
|
}
|
|
if = { # IS THIS SECRET A THREAT TO ME?
|
|
limit = { scope:fp2_2014_secret_strength >= 10 }
|
|
scope:fp2_2013_secret_owner = {
|
|
hidden_effect = {
|
|
add_opinion = {
|
|
target = scope:fp2_2013_prisoner_with_a_secret
|
|
modifier = betrayed_me_opinion
|
|
opinion = -50
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = did_not_tell_my_secret
|
|
opinion = 45
|
|
}
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_kept_my_secret
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_dlc_feature = court_artifacts
|
|
any_character_artifact = {
|
|
NOT = { has_variable = historical_unique_artifact }
|
|
artifact_high_rarity_trigger = yes
|
|
}
|
|
}
|
|
random_character_artifact = {
|
|
limit = {
|
|
NOT = { has_variable = historical_unique_artifact }
|
|
artifact_high_rarity_trigger = yes
|
|
}
|
|
set_owner = root # If it breaks, use set_artifact_owner
|
|
}
|
|
}
|
|
|
|
save_opinion_value_as = {
|
|
name = fp2_2014_opinion_of_swine
|
|
target = scope:fp2_2013_prisoner_with_a_secret
|
|
}
|
|
}
|
|
if = { # YES, AND I MUST HIDE IT (prison outcome)
|
|
limit = {
|
|
scope:fp2_2013_secret_owner = {
|
|
NAND = {
|
|
has_trait = paranoid
|
|
ai_compassion < 30
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = fp2_2014_ai_secret_outcome
|
|
value = flag:prison
|
|
}
|
|
scope:fp2_2013_secret_owner = {
|
|
rightfully_imprison_character_effect = {
|
|
TARGET = scope:fp2_2013_prisoner_with_a_secret
|
|
IMPRISONER = scope:fp2_2013_secret_owner
|
|
}
|
|
}
|
|
}
|
|
else = { # YES, AND I WILL TAKE NO CHANCES (execution outcome)
|
|
save_scope_value_as = {
|
|
name = fp2_2014_ai_secret_outcome
|
|
value = flag:death
|
|
}
|
|
|
|
scope:fp2_2013_prisoner_with_a_secret = {
|
|
death = {
|
|
death_reason = death_torture
|
|
killer = scope:fp2_2013_secret_owner
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else = { # NO, ACTUALLY THIS IS NOT A BIG DEAL (release outcome)
|
|
scope:fp2_2013_secret_owner = {
|
|
hidden_effect = {
|
|
add_opinion = {
|
|
target = scope:fp2_2013_prisoner_with_a_secret
|
|
modifier = betrayed_me_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = did_not_tell_my_secret
|
|
opinion = 25
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_dlc_feature = court_artifacts
|
|
any_character_artifact = {
|
|
NOT = { has_variable = historical_unique_artifact }
|
|
artifact_low_rarity_trigger = yes
|
|
}
|
|
}
|
|
random_character_artifact = {
|
|
limit = {
|
|
NOT = { has_variable = historical_unique_artifact }
|
|
artifact_low_rarity_trigger = yes
|
|
}
|
|
set_owner = root
|
|
}
|
|
}
|
|
else = {
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_protected_secrets
|
|
CHARACTER = root
|
|
OPINION = 0
|
|
}
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = fp2_2014_ai_secret_outcome
|
|
value = flag:release
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { NOT = { scope:fp2_2014_ai_secret_outcome = flag:release } }
|
|
desc = south_asia.0039.a
|
|
}
|
|
desc = fp2_struggle.2014.b
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Letter on The Back
|
|
# By Hugo Cortell
|
|
###################################
|
|
# (a post-it saying kick me)
|
|
###################################
|
|
scripted_trigger fp2_struggle_2015_vassal_check_trigger = {
|
|
is_available_ai_adult = yes
|
|
exists = location # Under no circumstance should it be necessary to need to check this
|
|
NOT = { has_trait = compassionate }
|
|
}
|
|
|
|
fp2_struggle.2015 = {
|
|
type = character_event
|
|
title = fp2_struggle.2015.t
|
|
desc = fp2_struggle.2015.desc
|
|
cooldown = { years = 25 }
|
|
|
|
theme = murder_scheme
|
|
override_background = { reference = council_chamber }
|
|
left_portrait = {
|
|
character = root
|
|
animation = chancellor
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_struggle_2015_peasant_to_murder
|
|
animation = personality_forgiving
|
|
}
|
|
lower_right_portrait = scope:fp2_struggle_2015_murder_requester_vassal
|
|
|
|
trigger = {
|
|
is_ai = no # Murder schemes are heavy for performance
|
|
has_fp2_dlc_trigger = yes
|
|
root.top_liege = root
|
|
|
|
any_powerful_vassal = {
|
|
fp2_struggle_2015_vassal_check_trigger = yes
|
|
opinion = { # Redundant second time around
|
|
target = root
|
|
value < 30
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
random_vassal = { # From joe
|
|
limit = {
|
|
is_powerful_vassal = yes
|
|
fp2_struggle_2015_vassal_check_trigger = yes
|
|
opinion = {
|
|
target = root
|
|
value < 30
|
|
}
|
|
}
|
|
save_opinion_value_as = {
|
|
name = liege_opinion
|
|
target = root
|
|
}
|
|
|
|
save_scope_as = fp2_struggle_2015_murder_requester_vassal # Makes sure that one exists, even if [ThreadIndex != UINT32_MAX] causes the loop to skip a beat
|
|
}
|
|
while = {
|
|
limit = {
|
|
any_powerful_vassal = {
|
|
fp2_struggle_2015_vassal_check_trigger = yes
|
|
opinion = {
|
|
target = root
|
|
value < scope:liege_opinion
|
|
}
|
|
}
|
|
}
|
|
random_vassal = {
|
|
limit = {
|
|
is_powerful_vassal = yes
|
|
fp2_struggle_2015_vassal_check_trigger = yes
|
|
opinion = {
|
|
target = root
|
|
value < scope:liege_opinion
|
|
}
|
|
}
|
|
save_opinion_value_as = {
|
|
name = liege_opinion
|
|
target = root
|
|
}
|
|
save_scope_as = fp2_struggle_2015_murder_requester_vassal
|
|
}
|
|
}
|
|
|
|
create_character = {
|
|
location = scope:fp2_struggle_2015_murder_requester_vassal.location
|
|
template = generic_peasant_character
|
|
diplomacy = { 8 13 } # High stat
|
|
trait = trusting
|
|
random_traits = yes
|
|
faith = scope:fp2_struggle_2015_murder_requester_vassal.location.county.faith
|
|
culture = scope:fp2_struggle_2015_murder_requester_vassal.location.county.culture
|
|
save_scope_as = fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:fp2_struggle_2015_peasant_to_murder = {
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = annoyed_opinion
|
|
opinion = -100
|
|
}
|
|
}
|
|
|
|
add_courtier = scope:fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
}
|
|
|
|
option = { # Comply and kill the unsuspecting courtier
|
|
name = fp2_struggle.2015.a
|
|
|
|
trigger = { is_ai = no }
|
|
duel = {
|
|
skill = intrigue
|
|
value = average_skill_rating
|
|
|
|
10 = {
|
|
desc = fp2_struggle.2015.a.a
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -1.25
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_intrigue_bad
|
|
title = murder_outcome.2302.t
|
|
left_icon = scope:fp2_struggle_2015_peasant_to_murder
|
|
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = disappointed_opinion
|
|
opinion = -15
|
|
}
|
|
|
|
remove_courtier_or_guest = scope:fp2_struggle_2015_peasant_to_murder
|
|
custom_tooltip = fp2_struggle.2015.a.murder_scheme
|
|
hidden_effect = {
|
|
scope:fp2_struggle_2015_murder_requester_vassal = {
|
|
start_scheme = {
|
|
type = murder
|
|
target_character = scope:fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_peasant_to_murder
|
|
modifier = suspicion_opinion
|
|
opinion = -20
|
|
}
|
|
|
|
}
|
|
10 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 1.25
|
|
}
|
|
|
|
modifier = {
|
|
add = {
|
|
value = intrigue
|
|
multiply = 2
|
|
round = yes
|
|
}
|
|
always = yes
|
|
}
|
|
modifier = {
|
|
add = 35
|
|
has_trait = lifestyle_herbalist
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
has_trait = drunkard # You know how to disguise drinks
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
has_perk = swift_execution_perk
|
|
}
|
|
modifier = {
|
|
add = 10 # They add up
|
|
has_perk = a_job_done_right_perk
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_intrigue_good
|
|
title = fp2_struggle.2015.a.b
|
|
left_icon = scope:fp2_struggle_2015_murder_requester_vassal
|
|
|
|
scope:fp2_struggle_2015_peasant_to_murder = {
|
|
death = {
|
|
killer = ROOT
|
|
death_reason = death_poison
|
|
}
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = helped_me_in_time_of_need
|
|
opinion = 40
|
|
}
|
|
}
|
|
add_secret = {
|
|
type = secret_murder
|
|
target = scope:fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
random_secret = {
|
|
type = secret_murder
|
|
limit = {
|
|
secret_target = scope:fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
save_scope_as = fp2_2015_murder_secret
|
|
}
|
|
|
|
if = { # AHA! YOU FOOL! I TRICKED YOU INTO COMMITING A CRIME!
|
|
limit = {
|
|
scope:fp2_struggle_2015_murder_requester_vassal = {
|
|
OR = {
|
|
has_relation_rival = ROOT
|
|
has_secret_relation_rival = ROOT # ???
|
|
has_relation_nemesis = ROOT
|
|
|
|
AND = {
|
|
has_dread_level_towards = {
|
|
target = ROOT
|
|
level <= 1
|
|
}
|
|
OR = {
|
|
AND = {
|
|
has_trait = deceitful
|
|
opinion = {
|
|
target = root
|
|
value < -25
|
|
}
|
|
}
|
|
AND = {
|
|
ai_boldness > 9
|
|
ai_compassion < 1
|
|
ai_honor < -29
|
|
ai_vengefulness > -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
trigger_event = { # Usually I would use a notification but...
|
|
id = fp2_struggle.2016 # The narrative impact of a full letter is greater, it makes sure the betrayal stings. This vassal wrote just to rub salt in your eyes.
|
|
days = { 3 4 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
compassionate = medium_stress_impact_gain
|
|
gallant = minor_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
option = { # Ignore the letter
|
|
name = fp2_struggle.2015.b
|
|
|
|
trigger = { is_ai = no }
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = murder_outcome.4302.t
|
|
left_icon = scope:fp2_struggle_2015_murder_requester_vassal
|
|
right_icon = scope:fp2_struggle_2015_peasant_to_murder
|
|
|
|
show_as_tooltip = { add_courtier = scope:fp2_struggle_2015_peasant_to_murder }
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = broke_promise
|
|
}
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.2015.a.murder_scheme
|
|
hidden_effect = {
|
|
scope:fp2_struggle_2015_murder_requester_vassal = {
|
|
start_scheme = {
|
|
type = murder
|
|
target_character = scope:fp2_struggle_2015_peasant_to_murder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Warn the courtier about this (vassal may find out)
|
|
name = fp2_struggle.2015.c
|
|
|
|
random_list = {
|
|
75 = {
|
|
desc = fp2_struggle.2015.c.b
|
|
|
|
send_interface_toast = {
|
|
type = event_intrigue_good
|
|
title = fp2_struggle.2015.c.b
|
|
left_icon = scope:fp2_struggle_2015_peasant_to_murder
|
|
right_icon = scope:fp2_struggle_2015_murder_requester_vassal
|
|
|
|
scope:fp2_struggle_2015_peasant_to_murder = { silent_disappearance_effect = yes }
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = helped_me_in_time_of_need
|
|
opinion = 25 # -15 points for suspicion (where is the body?)
|
|
}
|
|
}
|
|
}
|
|
25 = {
|
|
desc = fp2_struggle.2015.c.a
|
|
send_interface_toast = {
|
|
type = event_intrigue_bad
|
|
title = fp2_struggle.2015.c.a
|
|
left_icon = scope:fp2_struggle_2015_peasant_to_murder
|
|
right_icon = scope:fp2_struggle_2015_murder_requester_vassal
|
|
|
|
scope:fp2_struggle_2015_peasant_to_murder = { death = { death_reason = death_mysterious } }
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = broke_promise
|
|
}
|
|
|
|
stress_impact = {
|
|
forgiving = minor_stress_impact_gain
|
|
humble = minor_stress_impact_gain
|
|
just = minor_stress_impact_gain
|
|
compassionate = minor_stress_impact_gain
|
|
trusting = minor_stress_impact_gain
|
|
gallant = minor_stress_impact_gain
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fp2_struggle.2016 = {
|
|
type = letter_event
|
|
sender = scope:fp2_struggle_2015_murder_requester_vassal
|
|
opening = fp2_struggle.2016.t
|
|
desc = fp2_struggle.2016.desc
|
|
|
|
option = { # Tricked, backstabbed and quite possibly, out-smarted by your cunning vassal/rival
|
|
name = fp2_struggle.2016.a
|
|
|
|
hidden_effect = { scope:fp2_2015_murder_secret = { reveal_to = scope:fp2_struggle_2015_murder_requester_vassal } }
|
|
scope:fp2_struggle_2015_murder_requester_vassal = {
|
|
blackmail_target_with_secret_effect = {
|
|
SECRET = scope:fp2_2015_murder_secret
|
|
TARGET = ROOT
|
|
}
|
|
}
|
|
progress_towards_rival_effect = {
|
|
CHARACTER = scope:fp2_struggle_2015_murder_requester_vassal
|
|
REASON = rival_tricked_murder
|
|
OPINION = default_rival_opinion
|
|
}
|
|
add_opinion = {
|
|
target = scope:fp2_struggle_2015_murder_requester_vassal
|
|
modifier = betrayed_me_opinion
|
|
opinion = -60
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# RETURN OF THE THIEF KING
|
|
# By Hugo Cortell
|
|
###################################
|
|
# Directors liked the original very much
|
|
##########################################
|
|
fp2_struggle.2021 = { # Main event
|
|
type = character_event
|
|
title = fp2_struggle.2021.t
|
|
desc = {
|
|
desc = fp2_struggle.2021.desc
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:cleared_out }
|
|
desc = fp2_struggle.2021.desc.alt.cutout
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:paid_off }
|
|
desc = fp2_struggle.2021.desc.alt.paidoff
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:worked_together }
|
|
desc = fp2_struggle.2021.desc.alt.work
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head }
|
|
desc = fp2_struggle.2021.desc.alt.behead
|
|
}
|
|
}
|
|
desc = { desc = fp2_struggle.2021.desc.outro }
|
|
}
|
|
theme = secret
|
|
override_background = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:cleared_out }
|
|
reference = alley_day
|
|
}
|
|
override_background = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:paid_off }
|
|
reference = tavern
|
|
}
|
|
override_background = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:worked_together }
|
|
reference = throne_room
|
|
}
|
|
override_background = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head }
|
|
reference = alley_night
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = scope:fp2_2009_garduna_guild_master
|
|
animation = scheme
|
|
outfit_tags = {
|
|
western_stealth_hood
|
|
sub_saharan_high_nobility
|
|
mena_war_legwear
|
|
}
|
|
}
|
|
|
|
trigger = {
|
|
fp2_character_involved_in_struggle_trigger = yes # To check that the struggle is still going on
|
|
exists = primary_title
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
is_available_ai_adult = yes
|
|
OR = { # Is this char still looking for adventure or have they settled down?
|
|
is_pool_character = yes
|
|
is_pool_guest = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
title:c_napoli.title_province = { # Originally, the thieves were going to set up a guild there, but thats not very nice.
|
|
county = {
|
|
save_scope_as = fp2_2021_old_napoly
|
|
holder.top_liege = {
|
|
save_scope_as = fp2_2021_angry_italian # So instead you just get an opinion debuff for narrative impact.
|
|
} # If this were not such a strange event, I would actually make it affect the character mechanically. But there is little excuse here.
|
|
}
|
|
}
|
|
|
|
# Spy Network Logic, once upon a time used to be elegant.
|
|
if = {
|
|
limit = { exists = struggle:iberian_struggle }
|
|
struggle:iberian_struggle = {
|
|
if = {
|
|
limit = { # Theoretically, effects which do not meet its conditions (the limit) are skipped over. However, the nightly has proven that wrong.
|
|
any_involved_ruler = { # As such we take a _much_ more conservative approach of triple checking everything.
|
|
exists = primary_title
|
|
has_any_secrets = yes
|
|
this != root
|
|
}
|
|
}
|
|
random_involved_ruler = {
|
|
limit = {
|
|
exists = primary_title
|
|
has_any_secrets = yes
|
|
this != root
|
|
}
|
|
random_secret = { save_scope_as = fp2_2021_secreto_numero_ichi }
|
|
}
|
|
|
|
if = {
|
|
limit = {
|
|
any_involved_ruler = {
|
|
exists = primary_title
|
|
has_any_secrets = yes
|
|
NOT = {
|
|
this = root
|
|
any_secret = { this = scope:fp2_2021_secreto_numero_ichi }
|
|
}
|
|
}
|
|
}
|
|
random_involved_ruler = {
|
|
limit = {
|
|
exists = primary_title
|
|
has_any_secrets = yes
|
|
NOT = {
|
|
this = root
|
|
any_secret = { this = scope:fp2_2021_secreto_numero_ichi }
|
|
}
|
|
}
|
|
random_secret = { save_scope_as = fp2_2021_secreto_numero_ni }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if = {
|
|
limit = { exists = cp:councillor_spymaster }
|
|
cp:councillor_spymaster = { save_scope_as = fp2_2021_spymaster }
|
|
}
|
|
|
|
hidden_effect = { # Hides exceptions from players, fix is not necessary
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
save_scope_as = dueltarget # For Loc
|
|
move_to_pool_at = root.location # Fixes endless loop where the thief gets stretched across half the map
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Send off to italy
|
|
name = fp2_struggle.2021.a
|
|
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
pay_short_term_gold = {
|
|
target = ROOT
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
custom_tooltip = fp2_struggle.2021.a.a
|
|
scope:fp2_2021_angry_italian = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = raided_me_opinion
|
|
opinion = -40
|
|
}
|
|
}
|
|
|
|
hidden_effect = { # Possible random outcomes
|
|
random_list = {
|
|
10 = { # "Retires", buys a house in italy and lives as an old man happily ever after (just like your dog went to a farm when it got old)
|
|
scope:fp2_2009_garduna_guild_master = { silent_disappearance_effect = yes }
|
|
|
|
modifier = {
|
|
add = 30
|
|
scope:fp2_2009_event_outcome = flag:lobbed_head
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
scope:fp2_2009_event_outcome = flag:worked_together
|
|
}
|
|
}
|
|
30 = { # He just sorta roams around italy
|
|
scope:fp2_2009_garduna_guild_master = { move_to_pool_at = scope:fp2_2021_angry_italian.location }
|
|
|
|
modifier = {
|
|
add = 10
|
|
scope:fp2_2009_event_outcome = flag:cleared_out
|
|
}
|
|
}
|
|
10 = { # Joins napolitan court
|
|
scope:fp2_2009_garduna_guild_master = { remove_nickname = yes } # Becomes a functional member of society
|
|
scope:fp2_2021_angry_italian = {
|
|
add_courtier = scope:fp2_2009_garduna_guild_master
|
|
|
|
add_opinion = {
|
|
target = scope:fp2_2009_garduna_guild_master
|
|
modifier = impressed_opinion
|
|
opinion = 20
|
|
}
|
|
reverse_add_opinion = {
|
|
target = scope:fp2_2009_garduna_guild_master
|
|
modifier = opinion_welcomed_with_tea
|
|
}
|
|
}
|
|
|
|
modifier = {
|
|
add = 20
|
|
scope:fp2_2009_event_outcome = flag:paid_off
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Recruit into court (cures courtier's depression if they were a member of the thief-king's gang)
|
|
name = fp2_struggle.2021.b
|
|
|
|
pay_short_term_gold = {
|
|
target = scope:fp2_2009_garduna_guild_master
|
|
gold = medium_gold_value
|
|
}
|
|
every_powerful_vassal = {
|
|
limit = { NOT = { has_trait = forgiving } }
|
|
custom = fp2_every_major_vassal_notifier
|
|
add_opinion = {
|
|
target = root
|
|
modifier = suspicion_opinion
|
|
opinion = -15
|
|
}
|
|
}
|
|
add_courtier = scope:fp2_2009_garduna_guild_master
|
|
if = {
|
|
limit = { exists = scope:fp2_2009_garduna_young_thief }
|
|
remove_trait = depressed_1 # My old boss survived! (though the rest are dead but shhh)
|
|
}
|
|
|
|
hidden_effect = {
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
add_opinion = {
|
|
target = root
|
|
modifier = hired_me_opinion
|
|
opinion = 15
|
|
}
|
|
|
|
if = { # There can only be one top dog, one master of the shadows.
|
|
limit = { scope:fp2_2021_spymaster != scope:fp2_2009_garduna_young_thief }
|
|
random = {
|
|
chance = 25
|
|
set_relation_rival = {
|
|
target = scope:fp2_2021_spymaster
|
|
reason = rival_garduna_young_thief
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { # Establish a spy network
|
|
name = fp2_struggle.2021.c
|
|
flavor = fp2_struggle.2021.c.flavor
|
|
|
|
trigger = {
|
|
OR = {
|
|
exists = scope:fp2_2021_secreto_numero_ichi
|
|
exists = scope:fp2_2021_secreto_numero_ni
|
|
}
|
|
}
|
|
|
|
pay_short_term_gold = {
|
|
target = scope:fp2_2009_garduna_guild_master
|
|
gold = major_gold_value
|
|
}
|
|
|
|
custom_tooltip = fp2_struggle.2021.c.a # Perhaps it can mention the spymaster?
|
|
hidden_effect = { # Note: You might end up learning secrets you already know, this is WAD
|
|
if = {
|
|
limit = {
|
|
exists = scope:fp2_2021_secreto_numero_ichi
|
|
exists = scope:fp2_2021_secreto_numero_ni
|
|
}
|
|
|
|
send_interface_toast = {
|
|
type = event_intrigue_good
|
|
title = fp2_struggle.2021.c.spynet.a
|
|
|
|
scope:fp2_2021_secreto_numero_ichi = { reveal_to = root }
|
|
scope:fp2_2021_secreto_numero_ni = { reveal_to = root }
|
|
}
|
|
}
|
|
else = {
|
|
if = {
|
|
limit = { exists = scope:fp2_2021_secreto_numero_ichi }
|
|
send_interface_toast = {
|
|
type = event_intrigue_good
|
|
title = fp2_struggle.2021.c.spynet.a
|
|
|
|
scope:fp2_2021_secreto_numero_ichi = { reveal_to = root }
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { exists = scope:fp2_2021_secreto_numero_ni }
|
|
send_interface_toast = {
|
|
type = event_intrigue_good
|
|
title = fp2_struggle.2021.c.spynet.a
|
|
|
|
scope:fp2_2021_secreto_numero_ni = { reveal_to = root }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scope:fp2_2009_garduna_guild_master = { silent_disappearance_effect = yes }
|
|
}
|
|
|
|
option = { # Duel option (get title late)
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:fp2_2009_event_outcome = flag:lobbed_head }
|
|
desc = fp2_struggle.2021.d.alt
|
|
}
|
|
desc = fp2_struggle.2021.d
|
|
}
|
|
}
|
|
}
|
|
trigger = { NOT = { age < 14 } }
|
|
|
|
custom_tooltip = fp2_struggle.2021.d.b
|
|
show_as_tooltip = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_any_nickname = no
|
|
has_bad_nickname = yes
|
|
}
|
|
}
|
|
give_nickname = nick_the_Thief_Slayer
|
|
}
|
|
}
|
|
ROOT = { save_scope_as = fp2_2021_root_in_duel }
|
|
scope:fp2_2009_garduna_guild_master = {
|
|
set_variable = {
|
|
name = signature_weapon
|
|
value = flag:dagger
|
|
}
|
|
}
|
|
|
|
if = { # Changes the background to match, you cannot use conditional values on scripted effects
|
|
limit = { scope:fp2_2009_event_outcome = flag:cleared_out }
|
|
configure_start_single_combat_effect = {
|
|
SC_INITIATOR = root
|
|
SC_ATTACKER = root
|
|
SC_DEFENDER = scope:fp2_2009_garduna_guild_master
|
|
FATALITY = always
|
|
FIXED = no
|
|
LOCALE = alley_day
|
|
OUTPUT_EVENT = fp2_struggle.2022
|
|
INVALIDATION_EVENT = fp2_struggle.2022
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_2009_event_outcome = flag:paid_off }
|
|
configure_start_single_combat_effect = {
|
|
SC_INITIATOR = root
|
|
SC_ATTACKER = root
|
|
SC_DEFENDER = scope:fp2_2009_garduna_guild_master
|
|
FATALITY = always
|
|
FIXED = no
|
|
LOCALE = tavern
|
|
OUTPUT_EVENT = fp2_struggle.2022
|
|
INVALIDATION_EVENT = fp2_struggle.2022
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_2009_event_outcome = flag:worked_together }
|
|
configure_start_single_combat_effect = {
|
|
SC_INITIATOR = root
|
|
SC_ATTACKER = root
|
|
SC_DEFENDER = scope:fp2_2009_garduna_guild_master
|
|
FATALITY = always
|
|
FIXED = no
|
|
LOCALE = throne_room
|
|
OUTPUT_EVENT = fp2_struggle.2022
|
|
INVALIDATION_EVENT = fp2_struggle.2022
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:fp2_2009_event_outcome = flag:lobbed_head }
|
|
configure_start_single_combat_effect = {
|
|
SC_INITIATOR = root
|
|
SC_ATTACKER = root
|
|
SC_DEFENDER = scope:fp2_2009_garduna_guild_master
|
|
FATALITY = always
|
|
FIXED = no
|
|
LOCALE = alley_night
|
|
OUTPUT_EVENT = fp2_struggle.2022
|
|
INVALIDATION_EVENT = fp2_struggle.2022
|
|
}
|
|
}
|
|
}
|
|
|
|
after = { remove_global_variable = fp2_struggle_2009_thief_king_char }
|
|
}
|
|
|
|
fp2_struggle.2022 = { # You become the KING OF THIEVES again, well, late is better than never...
|
|
hidden = yes
|
|
immediate = {
|
|
if = {
|
|
limit = {
|
|
exists = scope:fp2_2022_reuse_gate
|
|
root = scope:fp2_2021_root_in_duel
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = fp2_struggle.2021.d.a
|
|
right_icon = ROOT
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_any_nickname = no
|
|
has_bad_nickname = yes
|
|
}
|
|
}
|
|
give_nickname = nick_the_Thief_Slayer
|
|
}
|
|
add_prestige = medium_prestige_gain # Penalty for finishing the job late
|
|
add_gold = minor_gold_value
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_as = fp2_2022_reuse_gate
|
|
trigger_event = {
|
|
id = fp2_struggle.2022
|
|
days = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# The Price of War
|
|
# by Veronica Pazos
|
|
###################################
|
|
# You pawn your crown to get some gold to help in your war
|
|
##############################################################
|
|
fp2_struggle.3001 = {
|
|
type = character_event
|
|
title = fp2_struggle.3001.t
|
|
desc = {
|
|
desc = fp2_struggle.3001.desc
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
is_at_war = yes
|
|
}
|
|
desc = fp2_struggle.3001.desc_war_intro
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
is_at_war = no
|
|
}
|
|
desc = fp2_struggle.3001.desc_no_war_intro
|
|
}
|
|
}
|
|
desc = fp2_struggle.3001.desc_outro
|
|
}
|
|
|
|
theme = crown
|
|
cooldown = { years = 5 } #in case you don't sell your crown you'll have to wait to get the chance again
|
|
override_background = { reference = council_chamber }
|
|
left_portrait = {
|
|
character = root
|
|
animation = worry
|
|
}
|
|
right_portrait = {
|
|
character = cp:councillor_steward
|
|
animation = personality_rational
|
|
}
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes #dlc check
|
|
is_available_even_at_war_adult = yes
|
|
primary_title.tier >= tier_kingdom #so we make sure you have an actual crown
|
|
OR = { #someone has to suggest this
|
|
exists = cp:councillor_steward
|
|
any_courtier = {
|
|
stewardship >= medium_skill_rating
|
|
}
|
|
}
|
|
gold < minor_gold_value #you don't have much gold
|
|
NOT = { has_character_flag = sold_crown_charmod } #you haven't sold your crown before
|
|
struggle:iberian_struggle = {
|
|
NOT = { is_struggle_phase = struggle_iberia_phase_compromise } #you're not in the compromise phase
|
|
}
|
|
}
|
|
|
|
weight_multiplier = { #more likely to trigger the poorer you are
|
|
modifier = {
|
|
add = 0.25
|
|
gold <= 25
|
|
}
|
|
modifier = {
|
|
add = 0.25
|
|
gold <= 20
|
|
}
|
|
modifier = {
|
|
add = 0.5
|
|
gold <= 15
|
|
}
|
|
modifier = {
|
|
add = 0.5
|
|
gold <= 10
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
play_music_cue = "mx_cue_touching_moment"
|
|
if = {
|
|
limit = {
|
|
exists = cp:councillor_steward
|
|
}
|
|
cp:councillor_steward = { save_scope_as = struggle_3001_steward }
|
|
}
|
|
else = {
|
|
random_courtier = {
|
|
limit = {
|
|
stewardship >= medium_skill_rating
|
|
}
|
|
save_scope_as = struggle_3001_steward
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_any_artifact = yes
|
|
any_character_artifact = { artifact_type = helmet } #we check if you have a crown artifact
|
|
}
|
|
random_character_artifact = {
|
|
limit = { artifact_type = helmet }
|
|
save_scope_as = struggle_3001_crown_artifact
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
is_married = yes
|
|
}
|
|
primary_spouse = {
|
|
save_scope_as = struggle_3001_spouse
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #sell your own crown
|
|
name = fp2_struggle.3001.a
|
|
flavor = fp2_struggle.3001.a_flavour
|
|
add_character_flag = sold_crown_charmod #you lose your crown
|
|
give_nickname = nick_the_crownless #now everyone knows
|
|
add_gold = medium_gold_max_value
|
|
add_prestige = major_prestige_loss
|
|
stress_impact = {
|
|
arrogant = medium_stress_impact_gain
|
|
humble = minor_stress_loss
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 5
|
|
modifier = {
|
|
add = 5
|
|
gold <= 15
|
|
}
|
|
ai_value_modifier = {
|
|
ai_greed = 0.15
|
|
ai_rationality = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #sell artifact crown instead
|
|
name = fp2_struggle.3001.b
|
|
trigger = { #triggers if you actually have one
|
|
any_character_artifact = {
|
|
artifact_slot_type = helmet
|
|
}
|
|
}
|
|
add_gold = medium_gold_value
|
|
add_prestige = minor_prestige_loss
|
|
destroy_artifact = scope:struggle_3001_crown_artifact
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 5
|
|
modifier = {
|
|
add = 5
|
|
gold <= 15
|
|
}
|
|
ai_value_modifier = {
|
|
ai_greed = -0.3
|
|
ai_rationality = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #but my spouse also has a crown...
|
|
name = fp2_struggle.3001.c
|
|
flavor = fp2_struggle.3001.c_flavour
|
|
trigger = {
|
|
is_married = yes #you have a spouse
|
|
scope:struggle_3001_spouse = {
|
|
NOT = { has_character_flag = sold_crown_charmod } #and you didn't sell their crown
|
|
}
|
|
}
|
|
add_gold = medium_gold_value
|
|
add_prestige = minor_prestige_loss
|
|
if = {
|
|
limit = {
|
|
scope:struggle_3001_spouse = {
|
|
has_trait = humble
|
|
}
|
|
}
|
|
scope:struggle_3001_spouse = {
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -25 #they are displeased
|
|
modifier = struggle_3001_spouse_crown_modifier
|
|
}
|
|
add_character_flag = sold_crown_charmod #your spouse loses their crown
|
|
}
|
|
}
|
|
else = {
|
|
scope:struggle_3001_spouse = {
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -75 #they REALLY hate you
|
|
modifier = struggle_3001_spouse_crown_modifier
|
|
}
|
|
add_character_flag = sold_crown_charmod #your spouse loses their crown
|
|
}
|
|
}
|
|
stress_impact = {
|
|
generous = medium_stress_impact_gain
|
|
compassionate = medium_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
modifier = {
|
|
add = 5
|
|
gold <= 15
|
|
}
|
|
ai_value_modifier = {
|
|
ai_greed = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #I'll be dead before losing my crown
|
|
name = fp2_struggle.3001.d
|
|
stress_impact = {
|
|
base = medium_stress_gain #you really need money
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# Order of the Hatchet
|
|
# By Veronica Pazos
|
|
###################################
|
|
# Order of the Hachet - Woman are defending your city
|
|
#######################################################
|
|
fp2_struggle.3011 = {
|
|
type = character_event
|
|
title = fp2_struggle.3011.t
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
faith = { has_doctrine = doctrine_gender_female_dominated }
|
|
}
|
|
desc = fp2_struggle.3011.desc_men #reverse genre event
|
|
}
|
|
desc = fp2_struggle.3011.desc
|
|
}
|
|
desc = fp2_struggle.3011.desc_outro
|
|
}
|
|
|
|
theme = realm
|
|
cooldown = { years = 20 }
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = cp:councillor_marshal
|
|
animation = marshal
|
|
}
|
|
lower_right_portrait = scope:bishop
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes #there's an ongoing struggle (includes dlc check)
|
|
is_available_even_at_war_adult = yes
|
|
is_landed_or_landless_administrative = yes
|
|
any_character_war = {
|
|
war_days >= 30 #a battle has likely happened
|
|
}
|
|
exists = cp:councillor_marshal #someone tells you about the incident
|
|
exists = cp:councillor_court_chaplain
|
|
faith = {
|
|
NOT = { has_doctrine = doctrine_gender_equal } #checks that this is unusual
|
|
}
|
|
OR = { #checks again that this makes sense, Ola Jentzsch's note
|
|
has_game_rule = default_gender_equality
|
|
has_game_rule = inversed_gender_equality
|
|
}
|
|
struggle:iberian_struggle = { #there's a struggle going on
|
|
OR = {
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
is_struggle_phase = struggle_iberia_phase_opportunity
|
|
}
|
|
}
|
|
any_sub_realm_barony = {
|
|
exists = holder
|
|
title_province = { has_holding_type = city_holding }
|
|
}
|
|
}
|
|
|
|
weight_multiplier = {
|
|
base = 1
|
|
}
|
|
|
|
immediate = {
|
|
cp:councillor_marshal = { save_scope_as = struggle_3011_marshal }
|
|
cp:councillor_court_chaplain = { save_scope_as = bishop }
|
|
random_sub_realm_barony = {
|
|
limit = {
|
|
exists = holder
|
|
title_province = { has_holding_type = city_holding }
|
|
}
|
|
county = { save_scope_as = struggle_3011_county_town }
|
|
}
|
|
}
|
|
|
|
option = { #that's dope
|
|
name = fp2_struggle.3011.a
|
|
scope:struggle_3011_county_town = {
|
|
add_county_modifier = {
|
|
modifier = fp2_order_of_the_hachet_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
scope:bishop = {
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -25
|
|
modifier = angry_opinion
|
|
}
|
|
}
|
|
every_vassal = {
|
|
custom = custom.every_zealous_callous_or_sadistic_vassal
|
|
limit = {
|
|
OR = {
|
|
has_trait = zealous
|
|
has_trait = callous
|
|
}
|
|
}
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -10
|
|
modifier = annoyed_opinion
|
|
}
|
|
}
|
|
stress_impact = {
|
|
zealous = medium_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = -1 #zealous AI will never pick this
|
|
ai_compassion = 0.2
|
|
ai_honor = 0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #ridiculous
|
|
name = {
|
|
trigger = {
|
|
faith = { has_doctrine = doctrine_gender_male_dominated }
|
|
}
|
|
text = fp2_struggle.3011.b
|
|
}
|
|
name = {
|
|
trigger = {
|
|
faith = { has_doctrine = doctrine_gender_female_dominated }
|
|
}
|
|
text = fp2_struggle.3011.b_men
|
|
}
|
|
scope:bishop = {
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = 10
|
|
modifier = grateful_opinion
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
faith = { has_doctrine = doctrine_gender_male_dominated }
|
|
}
|
|
every_courtier = {
|
|
custom = custom.every_female_courtier
|
|
limit = {
|
|
is_female = yes
|
|
}
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -10
|
|
modifier = insult_opinion
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
faith = { has_doctrine = doctrine_gender_female_dominated }
|
|
}
|
|
every_courtier = {
|
|
custom = custom.every_male_courtier
|
|
limit = {
|
|
is_male = yes
|
|
}
|
|
add_opinion = {
|
|
target = ROOT
|
|
opinion = -10
|
|
modifier = insult_opinion
|
|
}
|
|
}
|
|
}
|
|
stress_impact = {
|
|
cynical = medium_stress_impact_gain
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.2
|
|
ai_rationality = -0.2
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #witches!
|
|
name = fp2_struggle.3011.c
|
|
trigger = {
|
|
has_trait = zealous
|
|
}
|
|
add_dread = medium_dread_gain
|
|
add_character_modifier = {
|
|
modifier = fp2_punished_order_of_the_hachet_modifier
|
|
years = 5
|
|
}
|
|
|
|
ai_chance = { #zealous AI will pick this option
|
|
base = 1
|
|
ai_value_modifier = {
|
|
ai_zeal = 0.8
|
|
ai_energy = -0.7
|
|
ai_vengefulness = 0.5
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #I shall save these damsels in distress!
|
|
name = fp2_struggle.3011.d
|
|
trigger = {
|
|
faith = { has_doctrine = doctrine_gender_male_dominated }
|
|
OR = {
|
|
has_trait = gallant
|
|
has_trait = arrogant
|
|
culture = {
|
|
has_cultural_tradition = tradition_chanson_de_geste
|
|
}
|
|
}
|
|
}
|
|
random_list = { #how does that go
|
|
75 = {
|
|
add_stress = medium_stress_gain
|
|
}
|
|
25 = {
|
|
add_stress = medium_stress_impact_loss
|
|
}
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
}
|
|
|
|
###################################
|
|
# The Wrath of Heaven
|
|
# By Veronica Pazos
|
|
###################################
|
|
# "Lightning stones" in a siege
|
|
###################################
|
|
fp2_struggle.3021 = {
|
|
type = character_event
|
|
title = fp2_struggle.3021.t
|
|
desc = fp2_struggle.3021.desc
|
|
|
|
theme = martial
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_cynical
|
|
}
|
|
right_portrait = {
|
|
character = scope:struggle_3021_knight
|
|
animation = shock
|
|
}
|
|
lower_right_portrait = scope:struggle_3021_courtier
|
|
|
|
trigger = {
|
|
has_fp2_dlc_trigger = yes
|
|
fp2_character_any_involvement_iberian_struggle_trigger = yes
|
|
is_available_even_at_war_adult = yes
|
|
NOT = { has_character_flag = had_event_struggle_3021 } #so you don't research the same thing again
|
|
struggle:iberian_struggle = { #there's some kind of hostility going on
|
|
is_struggle_phase = struggle_iberia_phase_hostility
|
|
|
|
}
|
|
any_knight = { #someone sees this
|
|
is_available_healthy_ai_adult = yes
|
|
}
|
|
any_courtier = { #someone will research this
|
|
is_available_healthy_ai_adult = yes
|
|
count > 0
|
|
}
|
|
any_directly_owned_province = { #we have a castle to use it on
|
|
has_holding_type = castle_holding
|
|
NOT = { has_province_modifier = fp2_lightning_stones_modifier }
|
|
}
|
|
}
|
|
|
|
weight_multiplier = {
|
|
base = 1
|
|
modifier = {
|
|
add = 1
|
|
is_at_war = yes
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
add_character_flag = had_event_struggle_3021
|
|
random_knight = {
|
|
limit = {
|
|
is_available_healthy_ai_adult = yes
|
|
}
|
|
save_scope_as = struggle_3021_knight
|
|
}
|
|
every_courtier = { #get your courtiers
|
|
limit = {
|
|
is_available_ai_adult = yes
|
|
this != root.primary_spouse #you shouldn't lose your spouse or heir because of this
|
|
this != root.player_heir
|
|
}
|
|
add_to_list = struggle_3021_courtier_list
|
|
}
|
|
ordered_in_list = { #sort through to pick the one with highest learning
|
|
list = struggle_3021_courtier_list
|
|
order_by = learning
|
|
max = 1
|
|
save_scope_as = struggle_3021_courtier
|
|
}
|
|
random_directly_owned_province = { #this is where we can try it
|
|
limit = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
save_scope_as = lightning_stones_province
|
|
}
|
|
}
|
|
|
|
option = { #we need to research this stuff
|
|
name = fp2_struggle.3021.a
|
|
|
|
scope:struggle_3021_courtier = { #This is who is doing the research
|
|
duel = {
|
|
skill = learning #The skill needed for research
|
|
value = average_skill_rating #Found in 00_basic_values.txt - An 8 in this case
|
|
12 = { #Success - We keep the weight values fairly close to our skill values so they can be affected. 20 is a good max.
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 2 #This multiplies the *difference* between the skill and the target. Meaning folks with good skills will be much more likely to get it.
|
|
min = -5 #This prevents truly terrible people from completely losing the chance to succeed.
|
|
}
|
|
desc = good_struggle_3021_courtier_desc
|
|
root = {
|
|
send_interface_toast = {
|
|
title = good_stone_research_title
|
|
left_icon = scope:struggle_3021_courtier
|
|
scope:lightning_stones_province = {
|
|
add_province_modifier = {
|
|
modifier = fp2_lightning_stones_modifier
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
14 = { #Failure!
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -2 #This multiplies and inverts the *difference* between the skill and the target. Meaning folks with bad skills will be much more likely to get this.
|
|
}
|
|
desc = bad_struggle_3021_courtier_desc
|
|
root = {
|
|
send_interface_toast = { #send a toast
|
|
title = bad_stone_research_title
|
|
desc = bad_struggle_3021_courtier_desc
|
|
left_icon = scope:struggle_3021_courtier
|
|
scope:struggle_3021_courtier = {
|
|
death = { death_reason = death_accident }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
zealous = medium_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
option = { #this is not the greatest idea
|
|
name = fp2_struggle.3021.b
|
|
reverse_add_opinion = {
|
|
target = scope:struggle_3021_courtier
|
|
modifier = insulted_opinion
|
|
opinion = -15
|
|
}
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
zealous = medium_stress_impact_gain
|
|
craven = minor_stress_impact_loss
|
|
brave = medium_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
option = { #we can maybe use this in a feast
|
|
name = fp2_struggle.3021.c
|
|
trigger = {
|
|
OR = {
|
|
has_trait = vengeful
|
|
has_trait = deceitful
|
|
has_trait = arbitrary
|
|
has_trait = callous
|
|
intrigue >= high_skill_rating
|
|
has_lifestyle = intrigue_lifestyle
|
|
}
|
|
}
|
|
|
|
duel = {
|
|
skill = learning
|
|
target = scope:struggle_3021_courtier
|
|
30 = { #it works
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 0.5
|
|
}
|
|
desc = good_struggle_3021_courtier_desc
|
|
root = {
|
|
send_interface_toast = {
|
|
title = good_stone_research_title
|
|
left_icon = scope:struggle_3021_courtier
|
|
|
|
add_character_modifier = {
|
|
modifier = fp2_lightning_stones_poison_modifier
|
|
years = 5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
70 = { #it doesnt work
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
}
|
|
desc = bad_struggle_3021_courtier_desc
|
|
root = {
|
|
send_interface_toast = { #send a toast
|
|
title = bad_stone_research_title
|
|
desc = bad_struggle_3021_courtier_desc
|
|
left_icon = scope:struggle_3021_courtier
|
|
|
|
scope:struggle_3021_courtier = {
|
|
death = { death_reason = death_accident }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
forgiving = medium_stress_impact_gain
|
|
honest = medium_stress_impact_gain
|
|
compassionate = medium_stress_impact_gain
|
|
zealous = medium_stress_impact_gain
|
|
}
|
|
ai_chance = {
|
|
base = 10
|
|
ai_value_modifier = {
|
|
ai_boldness = 0.2
|
|
ai_vengefulness = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #god's punihsment!
|
|
name = fp2_struggle.3021.d
|
|
trigger = {
|
|
OR = {
|
|
has_trait = zealous
|
|
stress >= high_medium_stress
|
|
}
|
|
}
|
|
add_piety = minor_piety_gain
|
|
stress_impact = {
|
|
zealous = minor_stress_loss
|
|
}
|
|
}
|
|
|
|
option = { #lightning stones for the lightning stone god
|
|
name = fp2_struggle.3021.e
|
|
trigger = {
|
|
religion = { is_in_family = rf_pagan }
|
|
}
|
|
add_piety = medium_piety_gain
|
|
}
|
|
}
|