Bugs fixing

This commit is contained in:
Heidesommer 2026-05-24 05:01:46 -04:00
parent cb926c39aa
commit ebc206bb1c
117 changed files with 59950 additions and 11056 deletions

View file

@ -0,0 +1,601 @@
#################################
# Embellish Capital #
# By Ola Jentzsch #
# Reworked by Chad Uhl #
#################################
### Embellish Capital ###
fp3_embellish_capital_decision = {
title = fp3_embellish_capital_decision_name
picture = {
trigger = {
culture = { has_graphical_japanese_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/event_scenes/tgp_japanese_city.dds"
}
picture = {
trigger = {
culture = { has_graphical_east_asia_culture_group_trigger = yes }
}
reference = "gfx/interface/illustrations/decisions/tgp_great_project.dds"
}
picture = {
reference = "gfx/interface/illustrations/decisions/decision_golden_age.dds"
}
desc = fp3_embellish_capital_decision.desc
selection_tooltip = fp3_embellish_capital_decision_tooltip
cooldown = { years = 30 }
sort_order = 150
is_shown = {
dynasty ?= {
has_dynasty_perk = fp3_khvarenah_legacy_5
}
exists = capital_county
}
is_valid = {
OR = {
custom_tooltip = {
text = recently_conquered_land_tooltip
any_held_county = {
this != this.holder.top_liege.capital_county
recent_history = {
type = conquest
years = 10
}
}
}
short_term_gold >= embellish_capital_gold_cost
}
}
is_valid_showing_failures_only = {
is_available_at_peace_adult = yes
OR = {
# At least one of the decision options is available
employs_court_position = royal_architect_court_position
any_consort = { fp3_embellish_capital_decision_character_trigger = yes }
any_courtier = { fp3_embellish_capital_decision_character_trigger = yes }
cp:councillor_court_chaplain ?= { fp3_embellish_capital_decision_character_trigger = yes }
}
}
cost = {
gold = {
value = 0
if = {
limit = {
NOR = {
has_treasury = yes
any_held_county = {
NOT = { this = this.holder.top_liege.capital_county }
recent_history = {
type = conquest
years = 10
}
}
}
}
add = embellish_capital_gold_cost
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
NOT = {
any_held_county = {
NOT = { this = this.holder.top_liege.capital_county }
recent_history = {
type = conquest
years = 10
}
}
}
}
add = embellish_capital_gold_cost
}
}
}
widget = {
gui = "decision_view_widget_option_list_generic"
controller = decision_option_list_controller
decision_to_second_step_button = "CHOOSE_ARCHITECT_DECISION_NEXT_STEP_BUTTON"
### Royal Architect
# Mausoleum
# Refurbish Residence
# Baths and Fountains
item = {
value = embellish_capital_royal_architect
is_valid = {
employs_court_position = royal_architect_court_position
trigger_if = {
limit = { employs_court_position = royal_architect_court_position }
court_position:royal_architect_court_position = {
fp3_embellish_capital_decision_character_trigger = yes
}
}
}
localization = embellish_capital_option_royal_architect
icon = "gfx/interface/icons/message_feed/building.dds"
ai_chance = {
value = 100
}
}
#### Courtier
# Hammam
# Temple
# Palace
item = {
value = embellish_capital_consort_courtier
is_valid = {
OR = {
any_consort = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
trigger_if = {
limit = {
root = { employs_court_position = royal_architect_court_position }
}
has_court_position = royal_architect_court_position
}
is_councillor_of = root
}
}
any_courtier = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
trigger_if = {
limit = {
root = { employs_court_position = royal_architect_court_position }
}
has_court_position = royal_architect_court_position
}
is_councillor_of = root
}
}
}
}
localization = embellish_capital_option_consort_courtier
icon = "gfx/interface/icons/message_feed/council.dds"
ai_chance = {
value = 90
}
}
#### Chaplain
# Temple
# Dakhma
# Madrasa
# Fresco
item = {
value = embellish_capital_chaplain
is_valid = {
cp:councillor_court_chaplain ?= { fp3_embellish_capital_decision_character_trigger = yes }
}
localization = embellish_capital_option_chaplain
icon = "gfx/interface/icons/message_feed/religious.dds"
ai_chance = {
value = 70
if = {
limit = {
has_trait = zealous
}
add = 30
}
}
}
#### Me
# Monument to myself
item = {
value = embellish_capital_me
is_valid = {
is_available_adult = yes
}
localization = embellish_capital_option_me
icon = "gfx/interface/icons/character_interactions/icon_scheme_claim_throne.dds"
ai_chance = {
value = 60
if = {
limit = {
has_trait = arrogant
}
add = 50
}
}
}
}
effect = {
custom_tooltip = fp3_embellish_capital_decision_effects.tt
hidden_effect = {
save_scope_as = root_scope # For custom tooltips within the event chain
capital_county = { save_scope_as = capital_county }
capital_province = { save_scope_as = capital_province }
if = { # Case: You don't have the gold but you do have the recently conquered county
limit = {
any_held_county = {
this != this.holder.top_liege.capital_county
recent_history = {
type = conquest
years = 10
}
}
NOT = {
short_term_gold >= embellish_capital_gold_cost
}
}
random_held_county = {
limit = {
this != this.holder.top_liege.capital_county
recent_history = {
type = conquest
years = 10
}
}
save_scope_as = target_county
}
# Fire the event based on the option selected
if = { # Royal Architect
limit = { scope:embellish_capital_royal_architect = yes }
random_court_position_holder = {
type = royal_architect_court_position
limit = { fp3_embellish_capital_decision_character_trigger = yes }
save_scope_as = chosen_architect
}
trigger_event = {
id = fp3_dynasty_decision.0004
days = { 3 10 }
}
}
else_if = { # Consort or Courtier
limit = { scope:embellish_capital_consort_courtier = yes }
random_list = {
1 = {
trigger = {
any_consort = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
}
random_consort = {
limit = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
weight = {
base = 1
compare_modifier = {
value = stewardship
multiplier = 0.25
}
modifier = {
has_trait = lazy
add = -50
}
modifier = {
OR = {
has_trait = administrator
has_trait = architect
has_trait = scholar
has_trait = lifestyle_gardener
has_trait = overseer
}
add = 50
}
}
save_scope_as = chosen_architect
}
}
1 = {
trigger = {
any_courtier = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
}
random_courtier = {
limit = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
weight = {
base = 1
compare_modifier = {
value = stewardship
multiplier = 0.25
}
modifier = {
has_trait = lazy
add = -50
}
modifier = {
OR = {
has_trait = administrator
has_trait = architect
has_trait = scholar
has_trait = lifestyle_gardener
has_trait = overseer
}
add = 50
}
}
save_scope_as = chosen_architect
}
}
}
trigger_event = {
id = fp3_dynasty_decision.0005
days = { 3 10 }
}
}
else_if = { # Court Chaplain
limit = { scope:embellish_capital_chaplain = yes }
cp:councillor_court_chaplain = { save_scope_as = chosen_architect }
trigger_event = {
id = fp3_dynasty_decision.0007
days = { 3 10 }
}
}
else_if = { # Me
limit = { scope:embellish_capital_me = yes }
save_scope_as = chosen_architect
trigger_event = {
id = fp3_dynasty_decision.0008
days = { 3 10 }
}
}
}
else_if = { # Case: you have the gold but not the recently conquered county
limit = {
short_term_gold >= embellish_capital_gold_cost
NOT = {
any_held_county = {
this != this.holder.top_liege.capital_county
recent_history = {
type = conquest
years = 10
}
}
}
}
set_variable = {
name = embellish_capital_cost
value = embellish_capital_gold_cost
}
# Fire the event based on the option selected
if = { # Royal Architect
limit = { scope:embellish_capital_royal_architect = yes }
random_court_position_holder = {
type = royal_architect_court_position
limit = { fp3_embellish_capital_decision_character_trigger = yes }
save_scope_as = chosen_architect
}
trigger_event = {
id = fp3_dynasty_decision.0004
days = { 3 10 }
}
}
else_if = { # Consort or Courtier
limit = { scope:embellish_capital_consort_courtier = yes }
random_list = {
1 = {
trigger = {
any_consort = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
}
random_consort = {
limit = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
weight = {
base = 1
compare_modifier = {
value = stewardship
multiplier = 0.25
}
modifier = {
has_trait = lazy
add = -50
}
modifier = {
OR = {
has_trait = administrator
has_trait = architect
has_trait = scholar
has_trait = lifestyle_gardener
has_trait = overseer
}
add = 50
}
}
save_scope_as = chosen_architect
}
}
1 = {
trigger = {
any_courtier = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
}
random_courtier = {
limit = {
fp3_embellish_capital_decision_character_trigger = yes
NOR = {
has_court_position = royal_architect_court_position
is_councillor_of = root
}
}
weight = {
base = 1
compare_modifier = {
value = stewardship
multiplier = 0.25
}
modifier = {
has_trait = lazy
add = -50
}
modifier = {
OR = {
has_trait = administrator
has_trait = architect
has_trait = scholar
has_trait = lifestyle_gardener
has_trait = overseer
}
add = 50
}
}
save_scope_as = chosen_architect
}
}
}
trigger_event = {
id = fp3_dynasty_decision.0005
days = { 3 10 }
}
}
else_if = { # Court Chaplain
limit = { scope:embellish_capital_chaplain = yes }
cp:councillor_court_chaplain = { save_scope_as = chosen_architect }
trigger_event = {
id = fp3_dynasty_decision.0007
days = { 3 10 }
}
}
else_if = { # Me
limit = { scope:embellish_capital_me = yes }
save_scope_as = chosen_architect
trigger_event = {
id = fp3_dynasty_decision.0008
days = { 3 10 }
}
}
scope:chosen_architect = {
add_opinion = {
target = root
modifier = trusted_me_opinion
opinion = 10
}
}
}
else = { # Case: You have both the gold and the recently conquered county, so we let you choose how to pay
# Save the gold value for refund purposes. Deleted later if you choose to pay by pillaging the recently conquered county
set_variable = {
name = embellish_capital_cost
value = embellish_capital_gold_cost
}
# Save architect scope and give opinion
if = { # Royal Architect
limit = { scope:embellish_capital_royal_architect = yes }
random_court_position_holder = {
type = royal_architect_court_position
limit = { fp3_embellish_capital_decision_character_trigger = yes }
save_scope_as = chosen_architect
}
}
else_if = { # Consort or Courtier
limit = { scope:embellish_capital_consort_courtier = yes }
random_list = {
1 = {
trigger = {
any_consort = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
}
}
random_consort = {
limit = { fp3_embellish_capital_decision_character_trigger = yes }
save_scope_as = chosen_architect
}
}
1 = {
trigger = {
any_courtier = {
count >= 1
fp3_embellish_capital_decision_character_trigger = yes
}
}
random_courtier = {
limit = { fp3_embellish_capital_decision_character_trigger = yes }
save_scope_as = chosen_architect
}
}
}
}
else_if = { # Court Chaplain
limit = { scope:embellish_capital_chaplain = yes }
cp:councillor_court_chaplain = { save_scope_as = chosen_architect }
}
else_if = { # Me
limit = { scope:embellish_capital_me = yes }
save_scope_as = chosen_architect
}
random_held_county = {
limit = {
this != this.holder.top_liege.capital_county
recent_history = {
type = conquest
years = 10
}
}
save_scope_as = target_county
}
trigger_event = fp3_dynasty_decision.0003
}
}
}
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
ai_potential = {}
ai_will_do = { base = 100 }
}

View file

@ -0,0 +1,514 @@
### Avenge the Battle of Nahrawan ###
avenge_the_battle_of_nahrawan_decision = {
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_supremacy.dds"
}
decision_group_type = major
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
sort_order = 30
title = {
first_valid = {
triggered_desc = {
trigger = {
faith = {
OR = {
has_doctrine = tenet_fp3_fedayeen
has_doctrine = tenet_warmonger
has_doctrine_parameter = pluralism_fundamentalist_proselytization_bonus
}
}
}
desc = destroy_the_apostates_decision_name
}
desc = avenge_the_battle_of_nahrawan_decision_name
}
}
desc = avenge_the_battle_of_nahrawan_decision_desc
selection_tooltip = avenge_the_battle_of_nahrawan_decision_tooltip
is_shown = {
has_fp3_dlc_trigger = yes
faith = { has_doctrine = muhammad_succession_muhakkima_doctrine }
capital_province ?= {
OR = {
geographical_region = world_persian_empire
geographical_region = world_middle_east
}
}
NOT = {
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:avenge_the_battle_of_nahrawan_decision
}
}
}
is_valid = {
completely_controls_region = world_mesopotamia
custom_description = {
text = "restore_high_priesthood_holy_sites"
faith = {
any_holy_site = {
OR = {
county.holder = root
county.holder.top_liege = { this = root }
}
count >= 3
}
}
}
custom_description = {
text = avenge_the_battle_of_nahrawan_sunni_caliphate_irrelevant
NOT = { exists = title:d_sunni.holder }
}
custom_description = {
text = avenge_the_battle_of_nahrawan_shia_caliphate_irrelevant
NOT = { exists = title:d_shiite.holder }
}
}
is_valid_showing_failures_only = {
is_alive = yes
not = { exists = involved_activity }
is_imprisoned = no
}
effect = {
save_scope_as = avenger
#Sunni penalty scope save
title:e_arabia = {
random_de_jure_county_holder = { #If there's a big Sunni presence in Arabia
limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_empire
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_kingdom
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_duchy
}
faith = {
save_scope_as = sunni_faith
}
}
}
title:e_persia = {
random_de_jure_county_holder = { #If there's a big Sunni presence in Persia
limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_empire
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_kingdom
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_sunni_doctrine }
highest_held_title_tier = tier_duchy
}
faith = {
save_scope_as = sunni_faith
}
}
}
#Shia penalty scope save
title:e_arabia = {
random_de_jure_county_holder = { #If there's a big Shia presence in Arabia
limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_empire
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_kingdom
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_duchy
}
faith = {
save_scope_as = shia_faith
}
}
}
#Shia penalty scope save
title:e_persia = {
random_de_jure_county_holder = { #If there's a big Shia presence in Persia
limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_empire
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_kingdom
}
alternative_limit = {
faith = { has_doctrine = muhammad_succession_shia_doctrine }
highest_held_title_tier = tier_duchy
}
faith = {
save_scope_as = shia_faith
}
}
}
show_as_tooltip = { avenge_the_battle_of_nahrawan_scripted_effect = yes } #Actually applied in fp3_decision.0011 - Prestige, religion bonuses
#Events
trigger_event = fp3_decision.0011
every_player = {
limit = {
this != scope:avenger
is_within_diplo_range = { CHARACTER = scope:avenger }
}
trigger_event = fp3_decision.0012
}
#Can only be done once
add_to_global_variable_list = {
name = unavailable_unique_decisions
target = flag:avenge_the_battle_of_nahrawan_decision
}
}
ai_will_do = {
base = 100
}
}
### Promote Persian Scriptures ###
fp3_promote_persian_scripture_decision = {
title = fp3_promote_persian_scripture_decision_name
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/friendly.dds"
}
desc = fp3_promote_persian_scripture_decision_desc
decision_group_type = major
selection_tooltip = fp3_promote_persian_scripture_decision_tooltip
sort_order = -10
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
is_shown = {
has_religion = religion:islam_religion
has_fp3_dlc_trigger = yes
is_landed = yes # Don't bother laamps with this
NOT = {
culture = { has_cultural_pillar = heritage_arabic }
}
capital_province ?= { geographical_region = world_persian_empire }
NOT = {
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:promote_persian_scripture_decision
}
}
}
is_valid = {
top_liege = this
highest_held_title_tier >= tier_kingdom
piety_level >= high_piety_level
OR = {
knows_language_of_culture = culture:persian
knows_language_of_culture = culture:khwarezmian
}
culture = {
cultural_acceptance = { target = culture:persian value >= 70 }
}
trigger_if = {
limit = {
AND = {
exists = faith.religious_head
root.faith.religious_head.culture = { has_cultural_pillar = heritage_arabic }
}
}
NOT = {
root.faith.religious_head = { has_strong_hook = root }
}
}
}
is_valid_showing_failures_only = {
is_available_adult = yes
not = { exists = involved_activity }
has_contagious_deadly_disease_trigger = no
custom_description = {
text = "pledged_to_not_promote_persian_desc"
NOT = { has_variable = pledged_to_not_promote_persian }
}
}
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = 500
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = 500
}
}
piety = promote_persian_scripture_piety_cost
}
effect = {
save_scope_as = persian_fanboy
#Can only be done once
add_to_global_variable_list = {
name = unavailable_unique_decisions
target = flag:promote_persian_scripture_decision
}
# Save the piety value for refund purposes.
set_variable = {
name = promote_persian_scripture_piety_refund
value = promote_persian_scripture_piety_cost
}
show_as_tooltip = { promote_persian_scripture_scripted_effect = yes } #Actually applied in fp3_decision.0013.
if = {
limit = {
exists = root.faith.religious_head
root.faith.religious_head = {
is_ai = yes
NOR = {
has_trait = craven
has_trait = shy
has_relation_lover = root
has_relation_soulmate = root
is_vassal_of = root
}
}
}
trigger_event = fp3_decision.0013
}
else = { trigger_event = fp3_decision.0014 }
}
ai_will_do = { #not likely, unless the AI is pluralist or very ambitious
base = 0
modifier = {
add = 25
has_trait = ambitious
}
modifier = {
add = 25
has_trait = diligent
}
modifier = {
add = 25
root.faith = { has_doctrine = doctrine_pluralism_pluralistic }
}
modifier = {
add = 30
exists = root.faith.religious_head
this != root.faith.religious_head
root.faith.religious_head = { num_sinful_traits >= 1 }
}
modifier = { #AI doesn't do it if their Head of Faith is a player, since that'd require additional events
add = -100
exists = root.faith.religious_head
root.faith.religious_head = { is_ai = no }
}
}
}
### Declare Stance in the Iranian Intermezzo ###
fp3_name_read_in_friday_prayer_decision = {
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/antagonistic.dds"
}
selection_tooltip = fp3_name_read_in_friday_prayer_decision_tooltip
decision_group_type = major
sort_order = -20
decision_group_type = struggle
# We check this via the struggle itself.
ai_check_interval = 0
title = {
first_valid = {
# Supporter turns Detractor.
triggered_desc = {
trigger = { has_trait = fp3_struggle_supporter }
desc = fp3_name_read_in_friday_prayer_decision.supporter_turns_detractor.t
}
# Detractor turns Supporter.
triggered_desc = {
trigger = { has_trait = fp3_struggle_detractor }
desc = fp3_name_read_in_friday_prayer_decision.detractor.turns_supporter.t
}
# Neither trait.
desc = fp3_name_read_in_friday_prayer_decision.neutral.t
}
}
desc = {
first_valid = {
# Supporter turns Detractor.
triggered_desc = {
trigger = { has_trait = fp3_struggle_supporter }
desc = fp3_name_read_in_friday_prayer_decision.supporter_turns_detractor.desc
}
# Detractor turns Supporter.
triggered_desc = {
trigger = { has_trait = fp3_struggle_detractor }
desc = fp3_name_read_in_friday_prayer_decision.detractor.turns_supporter.desc
}
# Neither trait.
desc = fp3_name_read_in_friday_prayer_decision.neutral.desc
}
}
is_shown = {
has_fp3_dlc_trigger = yes
any_character_struggle = { this = struggle:persian_struggle }
has_religion = religion:islam_religion
}
is_valid = {
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.orthodox_sunnis_only
faith.religious_head ?= title:d_sunni.holder
}
OR = {
fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = yes
trigger_if = {
# If you meet the requirements, there'll be no warning copy as it just doesn't apply to you.
limit = { fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = no }
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.fallback_validity
always = yes
}
}
}
is_at_war = no
# Supporters can't switch away to detraction if they're allied to the caliph.
trigger_if = {
limit = {
has_trait = fp3_struggle_supporter
exists = title:d_sunni.holder
}
NOT = { is_allied_to = title:d_sunni.holder }
}
}
is_valid_showing_failures_only = {
is_available_adult = yes
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.orthodox_sunnis_only
has_religion = religion:islam_religion
faith.religious_head ?= title:d_sunni.holder
}
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.sunni_caliph_must_exist
exists = title:d_sunni.holder
}
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.sunni_caliph_cannot_change_prayer_order
NOT = { has_title = title:d_sunni }
}
# If you've already got the modifier, then you can't flipflop unless the caliph changes.
trigger_if = {
limit = {
has_variable = last_explicit_friday_prayer_caliph
title:d_sunni.holder ?= var:last_explicit_friday_prayer_caliph
OR = {
has_character_modifier = fp3_name_read_in_friday_prayer_modifier
has_character_modifier = fp3_displayed_pious_submission_to_caliph_modifier
}
}
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.require_new_caliph_or_modifier_lapse
always = no
}
}
# If you rejected the caliph's demands previously, then you can't flipflop unless the caliph changes.
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.require_new_caliph_or_flag_lapse
OR = {
NOT = { has_variable = last_explicit_defied_caliph }
NOT = { title:d_sunni.holder ?= var:last_explicit_defied_caliph }
}
}
# If you killed the caliph at any point, you can't switch at all.
trigger_if = {
limit = {
has_trait = fp3_struggle_detractor
exists = title:d_sunni.holder
exists = title:d_sunni.holder.dynasty
NOT = { dynasty ?= title:d_sunni.holder.dynasty }
}
custom_tooltip = {
text = fp3_name_read_in_friday_prayer_decision.tt.caliph_murderers_cant_become_supporters
NOT = {
any_killed_character = {
save_temporary_scope_as = char_temp
title:d_sunni = {
any_past_holder = { this = scope:char_temp }
}
}
}
}
}
}
cost = {
piety = {
# Base value.
value = 250
# Not meeting the liege trigger reqs gives you an extra surcharge.
if = {
limit = { fp3_name_read_in_friday_prayer_decision_liege_requirements_trigger = no }
add = 350
}
}
}
effect = {
show_as_tooltip = { read_name_in_friday_prayer_scripted_effect = yes }
trigger_event = fp3_decision.0015
}
# No AI checks here as we handle them taking the decision as part of general struggle stuff.
}

View file

@ -0,0 +1,54 @@
### Play with the Monkey ###
fp3_play_with_buzina_decision = { #by Ola Jentzsch
picture = {
reference = "gfx/interface/illustrations/decisions/decision_misc.dds"
}
desc = fp3_play_with_buzina_decision_desc
selection_tooltip = fp3_play_with_buzina_decision_tooltip
ai_check_interval = 0
cooldown = { days = 1825 }
is_shown = {
has_character_modifier = fp3_sickly_monkey_modifier
}
is_valid_showing_failures_only = { is_available = yes }
effect = {
random_list = {
80 = {
desc = you_have_fun.flavor
send_interface_toast = {
type = event_toast_effect_good
title = play_with_monkey.success
left_icon = root
add_stress = medium_stress_loss
}
}
20 = {
desc = you_get_scratched.flavor
send_interface_toast = {
type = event_toast_effect_bad
title = play_with_monkey.failure
left_icon = root
increase_wounds_effect = { REASON = botched_head_binding }
}
}
}
}
ai_potential = { always = yes }
ai_will_do = {
base = 0
modifier = {
add = 100
stress > 10
}
}
}

View file

@ -0,0 +1,315 @@
### Sponsor Persian Scholars ###
fp3_sponsor_persian_scholars_decision = {
picture = {
reference = "gfx/interface/illustrations/decisions/decision_golden_age.dds"
}
desc = fp3_sponsor_persian_scholars_decision_desc
selection_tooltip = fp3_sponsor_persian_scholars_decision_tooltip
sort_order = 175
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
is_shown = {
culture = { has_cultural_pillar = heritage_iranian }
has_fp3_dlc_trigger = yes
can_employ_court_position_type = court_scholar_court_position
}
is_valid_showing_failures_only = {
is_available_healthy_adult = yes
}
cost = { prestige = { value = medium_prestige_value } }
cooldown = { years = 5 }
effect = {
set_variable = {
name = number_of_invite_scholars_countdown
value = 3
days = 1000
}
custom_tooltip = fp3_sponsor_persian_scholars_decision.tt
trigger_event = {
id = fp3_scholarship.0001
days = { 20 40 }
}
}
ai_potential = {
can_employ_court_position_type = court_scholar_court_position
}
ai_will_do = {
base = 0
# Won't do if employs a decent court scholar already
modifier = {
factor = 0
employs_court_position = court_scholar_court_position
any_court_position_holder = {
type = court_scholar_court_position
aptitude:court_scholar_court_position > 1
}
}
modifier = {
add = 50
culture = {
culture_head ?= root
}
}
modifier = {
factor = 2
has_trait = education_learning
}
}
}
### Sponsor Research Project ###
fp3_sponsor_research_project_decision = {
picture = {
reference = "gfx/interface/illustrations/decisions/decision_golden_age.dds"
}
desc = fp3_sponsor_research_project_decision_desc
selection_tooltip = fp3_sponsor_research_project_decision_tooltip
sort_order = 1000
is_shown = {
OR = {
can_employ_court_position_type = court_scholar_court_position
employs_court_position = court_scholar_court_position
}
}
is_valid = {
employs_court_position = court_scholar_court_position
custom_tooltip = {
text = fp3_sponsor_research_project_decision.trigger.learning
any_court_position_holder = {
type = court_scholar_court_position
aptitude = {
court_position = court_scholar_court_position
value >= 3
}
}
}
}
is_valid_showing_failures_only = {
trigger_if = {
limit = {
employs_court_position = court_scholar_court_position
}
custom_tooltip = {
text = fp3_sponsor_research_project_decision.trigger.is_available_healthy_adult
any_court_position_holder = {
type = court_scholar_court_position
is_available_healthy_adult = yes
}
}
}
trigger_if = {
limit = {
employs_court_position = court_scholar_court_position
}
custom_tooltip = {
text = fp3_sponsor_research_project_decision.trigger.busy_inspiration
any_court_position_holder = {
type = court_scholar_court_position
NOT = { exists = inspiration }
}
}
}
}
widget = {
gui = "decision_view_widget_generic_multichoice_with_effects"
controller = decision_option_list_controller
decision_to_second_step_button = "CHOOSE_RESEARCH_PATH"
show_from_start = yes
### Military
item = {
value = sponsor_military_research
current_description = sponsor_military_research_desc
localization = sponsor_military_research_name
icon = "gfx/interface/icons/icon_prowess.dds"
ai_chance = {
value = 1
if = {
limit = {
is_at_war = yes
}
add = 10
}
if = {
limit = {
martial > learning
}
add = 10
}
}
}
### Research
item = {
value = sponsor_civil_research
current_description = sponsor_civil_research_desc
localization = sponsor_civil_research_name
icon = "gfx/interface/icons/icon_domain.dds"
ai_chance = {
value = 1
if = {
limit = {
is_at_war = no
}
add = 5
}
if = {
limit = {
stewardship > martial
}
add = 5
}
if = {
limit = {
learning > martial
}
add = 5
}
}
}
}
cooldown = { years = 5 }
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = major_gold_value
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = major_gold_value
}
}
prestige = medium_prestige_value
}
effect = {
hidden_effect = {
court_position:court_scholar_court_position ?= {
set_variable = {
name = research_success_chance
value = {
value = aptitude:court_scholar_court_position
min = 1
}
years = 20 # Just in case
}
create_inspiration = research_inspiration
if = {
limit = { exists = inspiration }
inspiration = {
save_temporary_scope_as = research_project
}
root = { sponsor_inspiration = scope:research_project }
}
}
trigger_event = {
id = fp3_scholarship.8000
}
}
if = {
limit = {
scope:sponsor_military_research = yes
}
custom_tooltip = {
text = fp3_sponsor_military_research_project_decision.tt
court_position:court_scholar_court_position ?= {
remove_character_flag = civil_research
add_character_flag = military_research
}
}
}
if = {
limit = {
scope:sponsor_civil_research = yes
}
custom_tooltip = {
text = fp3_sponsor_civil_research_project_decision.tt
court_position:court_scholar_court_position ?= {
remove_character_flag = military_research
add_character_flag = civil_research
}
}
}
}
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
ai_potential = {
employs_court_position = court_scholar_court_position
any_court_position_holder = {
type = court_scholar_court_position
aptitude = {
court_position = court_scholar_court_position
value >= 3
}
}
gold >= massive_gold_value
}
ai_will_do = {
base = 0
modifier = {
add = 5
gold >= major_gold_value
}
modifier = {
factor = 5
learning >= 15
}
modifier = {
factor = 10
learning >= 20
}
modifier = {
factor = 10
OR = {
has_trait = scholar
has_trait = lifestyle_physician
has_trait = lifestyle_mystic
}
}
modifier = { # Has a tendency to spend money
factor = 10
OR = {
has_trait = generous
has_trait = improvident
}
}
modifier = {
factor = 0
top_liege != this
}
}
}

View file

@ -0,0 +1,395 @@
### Establish [ROOT.Char.GetFaith.GetAdherentNameNoTooltip] Stronghold ###
restore_badd_fortress_decision = { #This allows a ruler with a Zandik or Chthonic Redoubts faith to restore the Badd fortress (it's in the barony Ahar, which you'll need to capture) and make it his capital.
title = restore_badd_fortress_decision
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_sunder.dds"
}
desc = restore_badd_fortress_decision_desc
selection_tooltip = restore_badd_fortress_decision_tooltip
decision_group_type = major
sort_order = 20
ai_check_interval_by_tier = {
barony = 0
county = 120
duchy = 120
kingdom = 120
empire = 0
hegemony = 0
}
is_shown = {
faith = { #this is a decision for religious underdogs, needing a mountain home
OR = {
has_doctrine = doctrine_heretic_branch_zandik
has_doctrine = tenet_cthonic_redoubts
}
}
NOT = { exists = root.faith.religious_head }
is_playable_character = yes
exists = dynasty #just for sanity
#Must be in the region
any_held_title = {
title_tier = county
title_province = {
OR = {
geographical_region = world_asia_minor
geographical_region = world_middle_east_jerusalem
geographical_region = world_middle_east_arabia
geographical_region = world_middle_east_persia
}
}
}
#Can't already be an empire, that'd ruin the underdog theme
highest_held_title_tier <= tier_kingdom
#Not repeatable.
NOT = {
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:restored_badd_fortress #so it can't happen twice
}
}
}
is_valid = {
#Should have decent piety
piety_level >= medium_piety_level
#Completely controls Badd
has_title = title:c_tabriz
has_title = title:b_ahar
faith = { #again, a decision for religious underdogs, needing a mountain home
OR = {
has_doctrine = doctrine_heretic_branch_zandik
has_doctrine = tenet_cthonic_redoubts
}
}
custom_tooltip = {
text = babak_fortress_faith_requirements
title:c_tabriz = {
save_temporary_scope_as = tabriz
county = { fp3_fortress_of_faith_county_trigger = yes }
}
}
}
is_valid_showing_failures_only = {
is_landed = yes
is_capable_adult = yes
is_imprisoned = no
}
effect = {
# Trigger effects.
show_as_tooltip = { restore_badd_fortress_scripted_effect = yes }
trigger_event = fp3_decision.0003
hidden_effect = {
add_to_global_variable_list = {
name = unavailable_unique_decisions
target = flag:restored_badd_fortress
}
}
}
cost = {
gold = {
value = 0
if = {
limit = {
has_treasury = no
}
add = 600
}
}
treasury = {
value = 0
if = {
limit = {
has_treasury = yes
}
add = 600
}
}
prestige = 500
}
ai_potential = {
top_liege = this #this is to make it unlikely that the AI takes the decision before the player has a chance to
}
ai_will_do = {
base = 50
}
}
### Reform the [ROOT.Char.GetFaith.random_AltPriestTermPlural] ###
destroy_the_magi_decision = { #This allows a ruler with sufficient piety and control of holy sites to reform the Zoroastrian priesthood's hierarchy.
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_strength.dds"
}
title = {
first_valid = {
triggered_desc = {
trigger = {
AND = {
religion = religion:zoroastrianism_religion
OR = {
has_faith = faith:mazdakism
has_faith = faith:zurvanism
}
}
}
desc = destroy_the_magi_decision_alternate
}
desc = destroy_the_magi_decision
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
AND = {
religion = religion:zoroastrianism_religion
OR = {
has_faith = faith:mazdakism
has_faith = faith:zurvanism
}
}
}
desc = destroy_the_magi_decision_alternate_desc
}
desc = destroy_the_magi_decision_desc
}
}
selection_tooltip = destroy_the_magi_decision_tooltip
decision_group_type = major
sort_order = 70
ai_check_interval = 0
is_shown = { #this is a decision for religious underdogs that have risen to prominence
faith = {
AND = {
has_doctrine = doctrine_heretic_branch_zandik
has_doctrine = doctrine_theocracy_temporal #you need to still have this doctrine for it to work
has_doctrine = doctrine_spiritual_head #you need to still have this doctrine for it to work
}
}
NOT = { exists = root.faith.religious_head } #if you have restored the Zoroastrian priesthood, you wouldn't wanna destroy it
is_ai = no #we don't want the AI to complicate things here
is_playable_character = yes
exists = dynasty #just for sanity
#Not repeatable.
NOT = {
is_target_in_global_variable_list = {
name = unavailable_unique_decisions
target = flag:destroyed_the_magi #so it can't happen twice
}
}
}
is_valid = {
piety_level >= high_piety_level
faith = { has_doctrine = doctrine_heretic_branch_zandik }
custom_description = {
text = "restore_high_priesthood_holy_sites"
faith = {
any_holy_site = {
OR = {
county.holder = root
county.holder.top_liege = { this = root }
}
count >= 3
}
}
}
}
is_valid_showing_failures_only = {
is_landed = yes
is_capable_adult = yes
is_imprisoned = no
top_liege = this
is_at_war = no
}
effect = {
show_as_tooltip = { destroy_the_magi_scripted_effect = yes }
trigger_event = fp3_decision.0004
hidden_effect = {
add_to_global_variable_list = {
name = unavailable_unique_decisions
target = flag:destroyed_the_magi
}
}
}
cost = {
piety = 1000
}
ai_will_do = {
base = 0
}
}
### Kindle Royal Fire ###
kindle_royal_fire_decision = {
title = kindle_royal_fire_decision
picture = {
reference = "gfx/interface/illustrations/decisions/fp3/fp3_decision_foundation.dds"
}
desc = kindle_royal_fire_decision_desc
selection_tooltip = kindle_royal_fire_decision_tooltip
sort_order = 90
is_shown = {
is_playable_character = yes
religion = religion:zoroastrianism_religion
NOT = { has_character_modifier = fp3_royal_fire_modifier }
}
is_valid = {
highest_held_title_tier >= tier_kingdom
religion = religion:zoroastrianism_religion
piety_level >= 3
}
is_valid_showing_failures_only = {
custom_tooltip = {
text = pledged_to_quench_fire_tt
NOT = { has_character_flag = pledged_to_quench_fire }
}
custom_tooltip = {
text = fire_recently_quenched_tt
NOT = { has_character_flag = fire_recently_quenched }
}
}
effect = {
#Describe vaguely what the fire does
custom_tooltip = kindle_royal_fire_decision_effects_list
# Show a warning that it might be destroyed if someone takes over your capital
custom_description_no_bullet = {
text = kindle_royal_fire_decision_warning
}
# Moved ahead to selection.
trigger_event = fp3_decision.0001
}
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 0
kingdom = 120
empire = 120
hegemony = 120
}
ai_potential = {
religion = religion:zoroastrianism_religion
highest_held_title_tier >= tier_kingdom
NOR = {
has_trait = cynical
has_trait = content
has_trait = greedy
has_trait = temperate
}
}
ai_will_do = {
base = 100
}
}
###################################
# Embrace Zoroastrianism
# Adopt a Zoroastrian faith in secret, provided one of your counties follows the chosen faith
###################################
### Embrace Zoroastrianism ###
fp3_embrace_zoroastrianism_decision = {
picture = {
reference = "gfx/interface/illustrations/event_scenes/fp3_temple.dds"
}
desc = fp3_embrace_zoroastrianism_decision_desc
selection_tooltip = fp3_embrace_zoroastrianism_decision_tooltip
sort_order = 120
is_shown = {
culture = { has_cultural_pillar = heritage_iranian }
# Narratively, this decision is about embracing the faith of your ancestors over newer "modern" faiths
# Therefore, this decision should not be available to Zoroastrians looking to change their sect
NOT = { has_religion = religion:zoroastrianism_religion }
current_date <= 960.1.1
}
is_valid = {
# Don't grant more than 1 secret faith at once
custom_tooltip = {
text = no_secret_faith_tt
NOT = { exists = secret_faith }
}
custom_tooltip = {
text = year_960_tt
current_date <= 960.1.1
}
culture = { has_cultural_pillar = heritage_iranian }
NOT = { has_religion = religion:zoroastrianism_religion }
}
is_valid_showing_failures_only = {
is_physically_able_adult = yes
custom_tooltip = {
text = zoroastrian_county_tt
any_sub_realm_county = {
faith = {
religion = religion:zoroastrianism_religion
}
}
}
}
effect = {
custom_tooltip = fp3_embrace_zoroastrianism_decision.tt
trigger_event = fp3_misc_decisions.0015
}
cost = { piety = major_piety_value }
ai_check_interval_by_tier = {
barony = 0
county = 0
duchy = 60
kingdom = 60
empire = 60
hegemony = 60
}
ai_potential = {
ai_zeal <= -25
ai_rationality <= -50
OR = {
has_trait = cynical
has_trait = fickle
has_trait = eccentric
has_trait = lunatic
has_trait = arbitrary
}
}
ai_will_do = {
base = 20
}
}