N3OW/N3OW/common/scripted_effects/05_dlc_fp3_scripted_effects.txt
2025-10-30 12:41:45 +00:00

1268 lines
33 KiB
Text

##################################################
# Struggle & Struggle Decisions
##################################################
##### Struggle Ending #####
fp3_end_persian_struggle_effect = {
if = {
limit = {
exists = title:e_arabia.holder
title:e_arabia.holder = { has_character_modifier = fp3_struggle_caliph_super_suspicious_modifier }
}
title:e_arabia.holder = { remove_character_modifier = fp3_struggle_caliph_super_suspicious_modifier }
}
every_in_global_list = { # We de-flag chars (surprisingly performance friendly, from all possible options)
variable = fp3_intro_flag_character_list
if = {
limit = { has_character_flag = fp3_struggle_intro_event_flag } # Since only alive chars have flags, we don't need to check for anything else
remove_character_flag = fp3_struggle_intro_event_flag
}
}
# Global variable tracking.
## For usage in councillor tasks.
set_global_variable = {
name = fp3_struggle_ending
value = $FLAG$
}
## For debug purposes.
if = {
limit = { gather_debug_variables_for_persian_struggle_trigger = yes }
increment_global_variable_effect = {
VAL = current_year
VAR = sp_end_date
}
}
every_player = {
limit = { fp3_does_this_player_care_about_the_persian_struggle = 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.
}
every_in_list = { # Then we *actually* notify palyers, making sure the struggle has already ended
list = player_to_notify
limit = {
this != root
}
trigger_event = $EVENT$
}
struggle:persian_struggle ?= { end_struggle = $ENDING$ }
}
#### MISC STRUGGLE ENDING(s) STUFF ####
fp3_ending_effects_assertion = {
# Save Sunni caliph or previous one as scope:struggle_liege
fp3_save_sunni_caliph_or_previous_effect = yes
dynasty ?= { add_dynasty_prestige = 10000 }
if = {
limit = {
NOT = { title:e_arabia.holder.dynasty ?= dynasty }
}
title:e_arabia.holder.dynasty ?= { add_dynasty_prestige = 10000 }
}
custom_tooltip = fp3_struggle_assertion_subjugation_expanded_tt
custom_tooltip = fp3_struggle_assertion_caliphal_muslim_faction_protection_tt
hidden_effect = {
destroy_title = title:e_persia
title:d_sunni = {
set_variable = {
name = dar_al_islam
value = yes
}
}
house = {
set_variable = {
name = subjugations_expanded
value = yes
}
}
title:e_arabia.holder.house = {
set_variable = {
name = subjugations_expanded
value = yes
}
}
}
struggle:persian_struggle = {
title:e_arabia.holder = {
add_prestige = 5000
custom_tooltip = fp3_struggle_assertion_caliph_detractor_tt
# Destroy Persia, make each of its kingdoms a de jure part of the Caliph's central title (assuming he still has an empire)
custom_tooltip = {
text = fp3_struggle_assertion_arabia_absorb_persia_swing_rewards_tt
title:e_persia = {
every_in_de_jure_hierarchy = {
limit = { tier = tier_kingdom }
set_de_jure_liege_title = title:e_arabia
}
}
}
# transfer the supporter trait to the next generation while detractors fade away
custom_tooltip = {
text = fp3_struggle_assertion_transfer_supporter_to_next_gen_tt
struggle:persian_struggle = {
every_involved_ruler = {
limit = {
has_trait = fp3_struggle_supporter
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
every_child = {
if = {
limit = {
NOR = {
has_trait = fp3_struggle_supporter
primary_title ?= { is_mercenary_company = yes }
}
}
if = {
limit = { has_trait = fp3_struggle_detractor }
remove_trait = fp3_struggle_detractor
}
add_trait = fp3_struggle_supporter
}
}
}
every_interloper_ruler = {
limit = {
has_trait = fp3_struggle_supporter
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
every_child = {
if = {
limit = {
NOR = {
has_trait = fp3_struggle_supporter
primary_title ?= { is_mercenary_company = yes }
}
}
if = {
limit = { has_trait = fp3_struggle_detractor }
remove_trait = fp3_struggle_detractor
}
add_trait = fp3_struggle_supporter
}
}
}
}
}
custom_tooltip = fp3_struggle_persia_ending_assertion_faction_reluctance_tt
}
hidden_effect = {
every_involved_ruler = {
limit = { has_trait = fp3_struggle_detractor }
custom = every_detractor
title:e_arabia.holder = {
add_opinion = {
modifier = caliphal_authority
target = prev
}
}
}
}
# Vassalize supporters
every_involved_ruler = {
limit = {
top_liege = this
OR = {
has_trait = fp3_struggle_supporter
scope:struggle_liege = {
has_hook_of_type = {
target = prev
type = caliphal_submission_hook
}
}
}
NOR = {
this = scope:struggle_liege
primary_title = { is_mercenary_company = yes }
}
}
custom = fp3_struggle_assertion_vassalization_rewards_tt
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
add_claim_on_loss = no
}
change_liege = {
liege = scope:struggle_liege
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
# Involved event
every_involved_ruler = {
limit = { this != root }
trigger_event = fp3_struggle.0072
}
# Interloper event
every_interloper_ruler = {
limit = { this != root }
trigger_event = fp3_struggle.0072
}
}
faith = {
change_fervor = {
value = 50
desc = fervor_gain_strengthen_caliphate
}
# Propagate the Caliph's Faith in the struggle region
custom_tooltip = {
text = fp3_struggle_assertion_spread_faith_through_struggle_region_tt
struggle:persian_struggle = {
every_involved_county = {
limit = {
faith != root.faith
}
random = {
chance = fp3_strengthen_caliphate_ending_conversion_chance_percent_value
set_county_faith = root.faith
}
}
every_involved_ruler = {
limit = {
NOR = {
faith = root.faith
primary_title = { is_mercenary_company = yes }
}
}
random = {
chance = fp3_strengthen_caliphate_ending_conversion_chance_percent_value
set_character_faith = root.faith
}
}
}
}
# Sunni faiths gets a bonus for the rest of the game converting other counties
custom_tooltip = {
text = struggle_persia_ending_assertion_boost_sunni_county_conversion_tt
set_global_variable = {
name = fp3_struggle_ending_assertion_school
value = flag:sunni
}
}
}
if = {
limit = { is_ai = no }
add_character_flag = {
flag = fp3_abassid_strong_achievement_unlocked
years = 4
}
}
}
fp3_struggle_ending_shia_caliphate_effects = {
### CHARACTER
give_nickname = nick_the_righteous_caliph
create_title_and_vassal_change = {
type = created
save_scope_as = title_change
add_claim_on_loss = no
}
title:e_persia = {
change_title_holder = {
holder = root
change = scope:title_change
}
save_scope_as = title_e_persia
}
resolve_title_and_vassal_change = scope:title_change
save_scope_as = founder
claim_the_imamate_scripted_effect = yes
add_piety = 5000
### FAITH
faith = {
change_fervor = {
value = 50
desc = fervor_gain_shia_caliphate
}
if = {
limit = { has_doctrine = muhammad_succession_muhakkima_doctrine }
# Muhakkima faiths gets a bonus for the rest of the game converting other counties
custom_tooltip = {
text = struggle_persia_ending_assertion_boost_muhakkima_county_conversion_tt
set_global_variable = {
name = fp3_struggle_ending_assertion_school
value = flag:muhakkima
}
}
}
else_if = {
limit = { has_doctrine = muhammad_succession_zandaqa_doctrine }
# Zandaqa faiths gets a bonus for the rest of the game converting other counties
custom_tooltip = {
text = struggle_persia_ending_assertion_boost_zandaqa_county_conversion_tt
set_global_variable = {
name = fp3_struggle_ending_assertion_school
value = flag:zandaqa
}
}
}
else_if = {
limit = { has_doctrine = muhammad_succession_sunni_doctrine }
# Sunni faiths gets a bonus for the rest of the game converting other counties
custom_tooltip = {
text = struggle_persia_ending_assertion_boost_sunni_county_conversion_tt
set_global_variable = {
name = fp3_struggle_ending_assertion_school
value = flag:sunni
}
}
}
else = {
# Shia faiths gets a bonus for the rest of the game converting other counties
custom_tooltip = {
text = struggle_persia_ending_assertion_boost_shia_county_conversion_tt
set_global_variable = {
name = fp3_struggle_ending_assertion_school
value = flag:shia
}
}
}
# Propagate the Caliph's Faith in the struggle region
custom_tooltip = {
text = fp3_struggle_ending_shia_caliphate_spread_faith_through_struggle_region_tt
struggle:persian_struggle = {
every_involved_county = {
limit = {
faith != root.faith
}
random = {
chance = fp3_shia_caliphate_ending_conversion_chance_percent_value
set_county_faith = root.faith
}
}
every_involved_ruler = {
limit = {
NOR = {
faith = root.faith
primary_title = { is_mercenary_company = yes }
}
}
random = {
chance = fp3_shia_caliphate_ending_conversion_chance_percent_value
set_character_faith = root.faith
}
}
}
}
}
if = {
limit = { is_ai = no }
add_character_flag = {
flag = fp3_challenger_caliphate_achievement_unlocked
years = 4
}
}
}
fp3_struggle_ending_vassalize_caliph_effects = {
# We vassalize the caliph, their vassals might use the confusion to declare independence
create_title_and_vassal_change = { # Note: do not attempt to simulate faction logic, it is too volatile
type = usurped
save_scope_as = change
}
title:e_arabia.holder = {
every_vassal = {
add_to_list = vassals_to_transfer
}
add_to_list = vassals_to_transfer
}
title:e_arabia = {
change_title_holder_include_vassals = {
holder = root
change = scope:change
}
save_scope_as = title_e_arabia
}
title:d_sunni.holder = {
change_liege = {
liege = root
change = scope:change
}
}
hidden_effect = {
every_in_list = {
list = vassals_to_transfer
limit = {
root != liege
}
change_liege = {
liege = root
change = scope:change
}
}
}
resolve_title_and_vassal_change = scope:change
dynasty ?= {
add_dynasty_prestige = 5000
}
give_nickname = nick_the_caliph_protector
add_prestige = 5000
# Unlocks permanent bonuses:
house = {
custom_tooltip = fp3_struggle_request_honorary_title_interactions_rewards_tt
custom_tooltip = fp3_struggle_request_unity_interference_interactions_rewards_tt
}
if = {
limit = { is_ai = no }
add_character_flag = {
flag = fp3_vassalize_the_caliph_achievement_unlocked
years = 4
}
}
}
#### REMOVE CONTRACT COOLDOWN ####
fp3_remove_vassal_contract_cooldown_for_tension_effect = {
if = {
limit = { is_struggle_phase = struggle_persia_phase_stabilisation }
every_involved_ruler = {
remove_interaction_cooldown = liege_modify_vassal_contract_interaction
remove_interaction_cooldown = vassal_modify_vassal_contract_interaction
remove_interaction_cooldown = ai_only_liege_modify_vassal_contract_interaction
remove_interaction_cooldown = ai_only_vassal_modify_vassal_contract_interaction
}
}
}
fp3_struggle_apply_independent_vassalage_catalyst_effect = {
$NEW_LIEGE$ = {
# Involved characters vassalising an independent involved ruler.
if = {
limit = {
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_vassalize_independent_ruler
CHAR = $NEW_VASSAL$
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_vassalize_independent_ruler
CHAR = $NEW_VASSAL$
}
}
activate_struggle_catalyst = {
catalyst = catalyst_vassalize_independent_ruler
character = $NEW_LIEGE$
}
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_vassalize_independent_ruler }
}
}
}
}
fp3_struggle_apply_supporter_detractor_war_won_catalysts_effect = {
# During the Persian Struggle, a supporter wins any war in the region.
## Unfair wars.
if = {
limit = {
has_trait = fp3_struggle_supporter
# Scope:attacker won?
trigger_if = {
limit = {
scope:winner = scope:attacker
exists = scope:war.var:struggle_defender_tier
}
highest_held_title_tier > scope:war.var:struggle_defender_tier
}
# Else, scope:defender won.
trigger_if = {
limit = {
scope:winner = scope:defender
exists = scope:war.var:struggle_attacker_tier
}
highest_held_title_tier > scope:war.var:struggle_attacker_tier
}
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_supporter_win_unfair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_supporter_win_unfair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
activate_struggle_catalyst = {
catalyst = catalyst_supporter_win_unfair_war_within_the_region
character = scope:winner
}
scope:war = { set_variable = used_for_struggle_catalyst_on_war_ended }
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_supporter_win_unfair_war_within_the_region }
}
}
## Fair wars.
else_if = {
limit = {
has_trait = fp3_struggle_supporter
# Scope:attacker won?
trigger_if = {
limit = {
scope:winner = scope:attacker
exists = scope:war.var:struggle_defender_tier
}
highest_held_title_tier <= scope:war.var:struggle_defender_tier
}
# Else, scope:defender won.
trigger_if = {
limit = {
scope:winner = scope:defender
exists = scope:war.var:struggle_attacker_tier
}
highest_held_title_tier <= scope:war.var:struggle_attacker_tier
}
scope:war = {
NOT = { has_variable = used_for_struggle_catalyst_on_war_ended }
}
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_supporter_win_fair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_supporter_win_fair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
activate_struggle_catalyst = {
catalyst = catalyst_supporter_win_fair_war_within_the_region
character = scope:winner
}
scope:war = { set_variable = used_for_struggle_catalyst_on_war_ended }
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_supporter_win_fair_war_within_the_region }
}
}
# During the Persian Struggle, a detractor wins any war in the region.
## Unfair wars.
else_if = {
limit = {
has_trait = fp3_struggle_detractor
# Scope:attacker won?
trigger_if = {
limit = {
scope:winner = scope:attacker
exists = scope:war.var:struggle_defender_tier
}
highest_held_title_tier > scope:war.var:struggle_defender_tier
}
# Else, scope:defender won.
trigger_if = {
limit = {
scope:winner = scope:defender
exists = scope:war.var:struggle_attacker_tier
}
highest_held_title_tier > scope:war.var:struggle_attacker_tier
}
scope:war = {
NOT = { has_variable = used_for_struggle_catalyst_on_war_ended }
}
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_detractor_win_unfair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_detractor_win_unfair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
activate_struggle_catalyst = {
catalyst = catalyst_detractor_win_unfair_war_within_the_region
character = scope:winner
}
scope:war = { set_variable = used_for_struggle_catalyst_on_war_ended }
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_detractor_win_unfair_war_within_the_region }
}
}
## Fair wars.
else_if = {
limit = {
has_trait = fp3_struggle_detractor
# Scope:attacker won?
trigger_if = {
limit = {
scope:winner = scope:attacker
exists = scope:war.var:struggle_defender_tier
}
highest_held_title_tier <= scope:war.var:struggle_defender_tier
}
# Else, scope:defender won.
trigger_if = {
limit = {
scope:winner = scope:defender
exists = scope:war.var:struggle_attacker_tier
}
highest_held_title_tier <= scope:war.var:struggle_attacker_tier
}
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_detractor_win_fair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
}
every_character_struggle = {
involvement = involved
limit = {
activate_struggle_catalyst_warfare_check_attacker_involvement_trigger = {
CATALYST = catalyst_detractor_win_fair_war_within_the_region
VAR_SCOPE = scope:war
INVOLVEMENT = involved
}
}
activate_struggle_catalyst = {
catalyst = catalyst_detractor_win_fair_war_within_the_region
character = scope:winner
}
scope:war = { set_variable = used_for_struggle_catalyst_on_war_ended }
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_detractor_win_fair_war_within_the_region }
}
}
}
###################################
# MISC Effects
###################################
remove_any_education_traits_effect = { # Looks ugly but performance is better than with an IF check
remove_trait = education_martial_1
remove_trait = education_martial_2
remove_trait = education_martial_3
remove_trait = education_martial_4
remove_trait = education_martial_prowess_1
remove_trait = education_martial_prowess_2
remove_trait = education_martial_prowess_3
remove_trait = education_martial_prowess_4
remove_trait = education_learning_1
remove_trait = education_learning_2
remove_trait = education_learning_3
remove_trait = education_learning_4
remove_trait = education_intrigue_1
remove_trait = education_intrigue_2
remove_trait = education_intrigue_3
remove_trait = education_intrigue_4
remove_trait = education_stewardship_1
remove_trait = education_stewardship_2
remove_trait = education_stewardship_3
remove_trait = education_stewardship_4
remove_trait = education_diplomacy_1
remove_trait = education_diplomacy_2
remove_trait = education_diplomacy_3
remove_trait = education_diplomacy_4
}
fp3_struggle_ending_concession_effects = {
# All the involved independent rulers get a white peace
custom_tooltip = {
text = fp3_concession_white_peace_tt
struggle:persian_struggle = {
every_involved_ruler = {
limit = {
top_liege = this
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
save_scope_as = peace_target
scope:peace_target = {
every_primary_war_enemy = {
limit = {
top_liege = this
NOT = {
primary_title = { is_mercenary_company = yes }
}
fp3_character_any_involvement_persian_struggle_trigger = yes
}
every_character_war = {
limit = {
OR = {
primary_attacker = scope:peace_target
primary_defender = scope:peace_target
}
}
end_war = white_peace
}
}
}
}
}
# Silk Road bonus towards prosperity if and when Persia's turmoil comes to an end
tgp_silk_road_iranian_intermezzo_ending_effect = yes
}
# All the involved independent rulers gain truces with each other
custom_tooltip = {
text = fp3_concession_truce_tt
struggle:persian_struggle = {
every_involved_ruler = {
limit = {
top_liege = this
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
save_scope_as = first_truce
every_character_struggle = {
limit = { is_struggle_type = persian_struggle }
every_involved_ruler = {
limit = {
NOR = {
this = scope:first_truce
primary_title = { is_mercenary_company = yes }
}
top_liege = this
}
add_truce_both_ways = {
character = scope:first_truce
days = 18250
name = fp3_concession_truce_reason
}
}
}
}
}
}
# All involved rulers, independent or not, lose all their claims
custom_tooltip = {
text = fp3_concession_lose_claim_tt
struggle:persian_struggle = {
every_involved_ruler = {
save_scope_as = claim_loser
every_claim = {
scope:claim_loser = { remove_claim = prev }
}
}
}
}
custom_tooltip = {
text = fp3_concession_rebuilding_efforts_tt
struggle:persian_struggle = {
every_involved_ruler = {
limit = {
has_trait = fp3_struggle_supporter
is_house_head = yes
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
house ?= {
add_house_modifier = {
modifier = fp3_house_modifier_rebuilding_efforts
years = fp3_house_modifier_concession_ending_duration
}
}
}
}
}
custom_tooltip = {
text = fp3_concession_frontier_ambitions_tt
struggle:persian_struggle = {
every_involved_ruler = {
limit = {
has_trait = fp3_struggle_detractor
is_house_head = yes
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
house ?= {
add_house_modifier = {
modifier = fp3_house_modifier_frontier_ambitions
years = fp3_house_modifier_concession_ending_duration
}
}
}
}
}
}
# Strong independent iranian ruler becomes persian emperor, frees all the iranian subjects and has an easier time vassalizing and or converting them
fp3_struggle_rekindle_iran_effects = {
give_nickname = nick_the_rekindler_of_iran
create_title_and_vassal_change = {
type = created
save_scope_as = title_change
add_claim_on_loss = no
}
title:e_persia = {
change_title_holder = {
holder = root
change = scope:title_change
}
save_scope_as = title_e_persia
}
resolve_title_and_vassal_change = scope:title_change
custom_tooltip = fp3_event_troops_reformer_effect_tt
hidden_effect = {
spawn_army = {
name = persian_warriors
men_at_arms = {
type = asawira
stacks = 5
}
men_at_arms = {
type = ayyar
stacks = 10
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
spawn_army = {
name = persian_warriors
men_at_arms = {
type = asawira
stacks = 5
}
men_at_arms = {
type = ayyar
stacks = 10
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
}
add_prestige = 5000
# increase the religious conversion demand and offer vassalage acceptance for this character
dynasty = {
add_dynasty_modifier = { modifier = fp3_rekindler_of_iran_modifier }
custom_tooltip = fp3_rekindler_of_iran_modifier_vassalization_effect_tt
custom_tooltip = fp3_rekindler_of_iran_modifier_conversion_effect_tt
add_dynasty_prestige = 10000
}
if = {
limit = {
scope:struggle_persia_ending_rekindle_iran_decision_option_secret_faith = yes
}
set_character_faith_with_conversion = secret_faith
hidden_effect = {
remove_character_secret_faith = yes
}
}
faith = {
custom_tooltip = {
text = fp3_iranian_faith_for_rekindle_persia_spread_to_fellow_iranians_tt
struggle:persian_struggle = {
every_involved_county = {
limit = {
culture = { has_cultural_pillar = heritage_iranian }
faith != scope:propagated_faith
}
random = {
chance = fp3_iranian_faith_for_rekindle_persia_conversion_chance_percent_value
set_county_faith = scope:propagated_faith
}
}
every_involved_ruler = {
limit = {
culture = { has_cultural_pillar = heritage_iranian }
faith != scope:propagated_faith
NOT = {
primary_title = { is_mercenary_company = yes }
}
}
random = {
chance = fp3_iranian_faith_for_rekindle_persia_conversion_chance_percent_value
set_character_faith = scope:propagated_faith
}
}
}
}
}
struggle:persian_struggle = {
every_involved_ruler = {
limit = { culture = { has_cultural_pillar = heritage_iranian } }
# Add a character modifiers for the Iranian to help them rise!
custom = fp3_flame_of_iran_modifier_effect_tt
add_character_modifier = { modifier = fp3_flame_of_iran_modifier }
custom_tooltip = fp3_flame_of_iran_independence_effect_tt
custom_tooltip = fp3_event_troops_effect_tt
hidden_effect = {
spawn_army = {
name = persian_warriors
men_at_arms = {
type = asawira
stacks = 2
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
spawn_army = {
name = persian_warriors
men_at_arms = {
type = ayyar
stacks = 4
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
spawn_army = {
name = persian_warriors
men_at_arms = {
type = tawashi
stacks = 2
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
spawn_army = {
name = persian_warriors
men_at_arms = {
type = zupin_warrior
stacks = 4
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
spawn_army = {
name = persian_warriors
men_at_arms = {
type = tarkhan
stacks = 2
}
location = this.capital_province
uses_supply = yes
inheritable = yes
}
if = {
limit = {
top_liege != this
NOT = {
liege.culture = { has_cultural_pillar = heritage_iranian }
}
}
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = yes
}
becomes_independent = {
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
}
}
}
culture = {
# increase the cultural acceptance for every iranian culture with the rekindler of iran's culture
custom_tooltip = {
text = fp3_rekindle_iran_cultural_acceptance_tt
every_culture_global = {
limit = {
has_cultural_pillar = heritage_iranian
this != root.culture
}
change_cultural_acceptance = {
target = root.culture
value = 100
desc = fp3_rekindle_iran_cultural_acceptance_tt
}
}
}
custom_tooltip = struggle_persia_ending_rekindle_iran_easier_to_convert_culture_tt
}
if = {
limit = { is_ai = no }
add_character_flag = {
flag = fp3_rekindle_iran_achievement_unlocked
years = 4
}
}
}
fp3_sundered_caliphate_effects = {
save_scope_as = sunderer
# Save Sunni caliph or previous one as scope:struggle_liege
fp3_save_sunni_caliph_or_previous_effect = yes
add_prestige = massive_prestige_gain
house ?= {
add_house_modifier = {
modifier = fp3_house_modifier_destroyed_the_caliphate
years = fp3_house_modifier_sunder_caliphate_duration
}
}
scope:the_caliph = {
add_opinion = {
target = scope:sunderer
modifier = fp3_sundered_caliphate_opinion
opinion = -75
}
# This is here to make effect order pretty
every_vassal = {
custom = fp3_sunder_the_caliphate_same_faith_vassal_tt
limit = { faith = scope:sunderer.faith }
# vassals from same religion as root gains opinion and give hook
save_scope_as = same_faith_caliph_vassal
add_opinion = {
target = scope:sunderer
modifier = fp3_sundered_caliphate_opinion
opinion = 25
}
custom_tooltip = {
text = fp3_sunder_the_caliphate_same_faith_vassal_hook_tt
if = {
limit = {
scope:sunderer = {
can_add_hook = {
type = favor_hook
target = scope:same_faith_caliph_vassal
}
}
}
scope:sunderer = {
add_hook_no_toast = {
type = favor_hook
target = scope:same_faith_caliph_vassal
}
}
}
}
}
every_vassal = {
custom = fp3_sunder_the_caliphate_hostile_faith_vassal_tt
limit = {
faith != root.faith
faith = {
faith_hostility_level = {
target = scope:the_caliph.faith
value >= religious_cb_enabled_hostility_level
}
}
}
# vassals with faith hostile to caliph gains opinion
add_opinion = {
target = scope:sunderer
modifier = fp3_sundered_caliphate_opinion
opinion = 25
}
}
custom_tooltip = destroys_caliph_titles_caliph_tt
if = {
limit = {title:e_arabia.holder = scope:the_caliph }
custom_tooltip = destroys_caliph_titles_arabia_tt
}
}
# Notify players about the fall of the Caliphate
hidden_effect = {
every_player = {
limit = {
OR = {
is_vassal_of = scope:the_caliph
fp3_character_involved_in_struggle_trigger = yes
this = scope:the_caliph
}
this != scope:sunderer
}
trigger_event = fp3_struggle.0192
}
scope:the_caliph = {
destroy_title = title:d_sunni
if = {
limit = { has_title = title:e_arabia }
destroy_title = title:e_arabia
}
}
}
}
fp3_struggle_catalysts_for_activities_effect = {
scope:activity = {
if = {
limit = {
any_special_guest = {
always = yes
}
}
random_special_guest = {
save_scope_as = special_honorary_guest
}
}
}
if = {
limit = {
this = scope:host
scope:special_honorary_guest ?= { is_alive = yes }
scope:host = {
is_alive = yes
any_character_struggle = {
involvement = involved
activate_struggle_catalyst_secondary_character_involvement_involved_trigger = {
CATALYST = catalyst_invite_involved_as_honorary_guests_to_feast_hunt
CHAR = scope:special_honorary_guest
}
}
}
}
scope:host = {
every_character_struggle = {
involvement = involved
limit = { phase_has_catalyst = catalyst_invite_involved_as_honorary_guests_to_feast_hunt }
activate_struggle_catalyst = {
catalyst = catalyst_invite_involved_as_honorary_guests_to_feast_hunt
character = scope:host
}
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_invite_involved_as_honorary_guests_to_feast_hunt }
}
}
}
}
fp3_challenge_house_head_duel_challenger_win_prestige_effect = {
scope:house_challenger = { add_prestige = medium_prestige_gain }
}
fp3_challenge_house_head_duel_challenger_win_house_effect = {
scope:house_challenger.house = { set_house_head = scope:house_challenger }
scope:house_challenger = {
custom_tooltip = {
text = fp3_challenge_house_head_recent_cooldown_tt
add_character_flag = {
flag = fp3_challenge_house_head_recent_flag
years = 3
}
}
}
}
fp3_challenge_house_head_duel_challenger_loss_effect = {
scope:house_challenger = {
if = {
limit = { is_alive = yes }
add_prestige = medium_prestige_loss
}
}
scope:house_head = {
add_prestige = medium_piety_value
if = {
limit = {
scope:house_challenger = { is_alive = yes }
}
add_hook_no_toast = {
type = trial_by_combat_hook
target = scope:house_challenger
}
}
custom_tooltip = {
text = fp3_challenge_house_head_recent_cooldown_tt
add_character_flag = {
flag = fp3_challenge_house_head_recent_flag
years = 3
}
}
}
}
# Saves Sunni holder, or the last one
fp3_save_sunni_caliph_or_previous_effect = {
if = {
limit = { exists = title:d_sunni.holder }
title:d_sunni.holder = { save_scope_as = struggle_liege }
}
else = {
title:d_sunni.previous_holder = { save_scope_as = struggle_liege }
}
}
fp3_struggle_apply_catalyst_interloper_uninvolved_gain_struggle_titles = {
if = {
limit = {
scope:war = {
var:struggle_scope_defender ?= struggle:persian_struggle
var:struggle_involvement_defender ?= flag:involved
}
scope:attacker = {
OR = {
fp3_character_uninvolved_in_struggle_trigger = yes
fp3_character_interloper_in_struggle_trigger = yes
}
}
struggle:persian_struggle = {
phase_has_catalyst = catalyst_interloper_uninvolved_gain_struggle_titles
}
}
struggle:persian_struggle = {
activate_struggle_catalyst = {
catalyst = catalyst_interloper_uninvolved_gain_struggle_titles
character = scope:attacker
}
log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_interloper_uninvolved_gain_struggle_titles }
}
}
}