so much event updating

This commit is contained in:
trashmasteruni 2026-04-25 13:36:44 +02:00
parent c4b6d9bdeb
commit 811167944e
135 changed files with 4885 additions and 297691 deletions

View file

@ -4128,10 +4128,8 @@ scripted_trigger ach_coronation_0016_eligible_artifact = {
NOR = {
artifact_slot_type = helmet
artifact_slot_type = regalia
has_variable = banner_house
has_variable = banner_dynasty
has_variable = 1025_treasure_map
}
artifact_can_be_gift_to_trigger = { RECIPIENT = scope:host }
artifact_durability > 10
}
@ -4342,6 +4340,7 @@ ach_coronation.0016 = {
}
}
ordered_character_artifact = { # Try and give away the worst one first
limit = { artifact_can_be_gift_to_trigger = { RECIPIENT = scope:host } }
order_by = {
value = 1
if = {
@ -5371,6 +5370,7 @@ scripted_trigger ach_coronation_0018_eligible_family_member_trigger = {
scripted_trigger ach_coronation_0018_grantable_title_trigger = {
tier = tier_county
this != scope:host.capital_county
is_landless_type_title = no
}
scripted_effect ach_coronation_0018_choose_title_effect = {
@ -6356,6 +6356,13 @@ ach_coronation.0020 = {
trigger = {
involved_activity = {
activity_host = {
any_held_title = {
tier = tier_county
this != prev.capital_county
is_landless_type_title = no
}
}
any_attending_character = {
ach_coronation_0018_eligible_family_member_trigger = yes
}
@ -6708,11 +6715,9 @@ ach_coronation.0022 = {
# Ongoing plague
any_sub_realm_county = {
count >= 3
any_county_province = {
any_province_epidemic = {
count >= 1
outbreak_intensity > minor
}
any_county_province_epidemic = {
count >= 1
outbreak_intensity > minor
}
}
}
@ -6738,11 +6743,9 @@ ach_coronation.0022 = {
# Ongoing plague
any_sub_realm_county = {
count >= 10
any_county_province = {
any_province_epidemic = {
count >= 1
outbreak_intensity > minor
}
any_county_province_epidemic = {
count >= 1
outbreak_intensity > minor
}
}
}
@ -6755,11 +6758,9 @@ ach_coronation.0022 = {
# Ongoing plague
any_sub_realm_county = {
count >= 3
any_county_province = {
any_province_epidemic = {
count >= 1
outbreak_intensity > major
}
any_county_province_epidemic = {
count >= 1
outbreak_intensity > major
}
}
}
@ -6788,11 +6789,9 @@ ach_coronation.0022 = {
limit = {
any_sub_realm_county = {
count >= 4
any_county_province = {
any_province_epidemic = {
count >= 1
outbreak_intensity = apocalyptic
}
any_county_province_epidemic = {
count >= 1
outbreak_intensity = apocalyptic
}
}
}
@ -6913,7 +6912,6 @@ ach_coronation.0022 = {
}
}
}
custom_tooltip = available_because_intent_tt
flavor = ach_coronation.0022.a.coronation_disrupt_loyalists.flavor
reason = activity_intent
skill = diplomacy
@ -7022,7 +7020,7 @@ ach_coronation.0022 = {
option = { # It's not our goodly Host's fault!
name = ach_coronation.0022.a.offer_support
trigger = { has_activity_intent = coronation_offer_support }
custom_tooltip = available_because_intent_tt
reason = activity_intent
flavor = ach_coronation.0022.a.offer_support.flavor
add_piety = medium_piety_loss

View file

@ -1,720 +0,0 @@
namespace = ach_maintenance_events
ach_maintenance_events.0001 = { # Clean up of Coronation realm law, will happen 1 tick after you gain the title (due to on_actions)
type = character_event
hidden = yes
trigger = {
coronation_trigger = yes
}
immediate = {
if = {
limit = {
NOT = {
has_game_rule = coronation_laws_off
}
}
if = {
limit = {
has_variable = crowned_king_var
NOT = { has_realm_law = crowned_king }
}
add_realm_law_skip_effects = crowned_king
}
else_if = {
limit = {
has_variable = crowned_emperor_var
NOT = { has_realm_law = crowned_emperor }
}
add_realm_law_skip_effects = crowned_emperor
}
else_if = {
limit = {
NOR = {
has_variable = crowned_king_var
has_variable = crowned_emperor_var
}
NOT = { has_realm_law = uncrowned }
}
add_realm_law_skip_effects = uncrowned
}
}
}
}
ach_maintenance_events.0002 = { # ACH Oath synergy culture rewards
type = character_event
hidden = yes
trigger = {
has_variable = mend_the_fracture_oath_target_culture
culture ?= {
has_cultural_tradition = oath_mend_the_fracture_tradition
}
top_liege = root
var:mend_the_fracture_oath_target_culture = {
has_cultural_tradition = oath_mend_the_fracture_tradition
NOT = { this = root.culture }
any_culture_county = {
count >= 3
top_liege = root.top_liege
}
}
}
immediate = {
# calculate the chances of a positive thing happening
set_variable = {
name = synergy_cultures_chance
value = 0.1
}
set_variable = {
name = synergy_cultures_amount
value = 0
}
var:mend_the_fracture_oath_target_culture = {
if = {
limit = {
cultural_acceptance = {
target = root.culture
value >= 99
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.4
}
}
}
else_if = {
limit = {
cultural_acceptance = {
target = root.culture
value >= 80
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.3
}
}
}
else_if = {
limit = {
cultural_acceptance = {
target = root.culture
value >= 60
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.2
}
}
}
else_if = {
limit = {
cultural_acceptance = {
target = root.culture
value >= 40
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.1
}
}
}
if = {
limit = {
culture_head ?= {
opinion = {
target = root
value >= 80
}
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.3
}
}
}
else_if = {
limit = {
culture_head ?= {
opinion = {
target = root
value >= 40
}
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.2
}
}
}
else_if = {
limit = {
culture_head ?= {
opinion = {
target = root
value >= 20
}
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.1
}
}
}
}
if = {
limit = {
exists = var:mend_the_fracture_oath_target_culture.culture_head
}
if = {
limit = {
opinion = {
target = var:mend_the_fracture_oath_target_culture.culture_head
value >= 80
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.3
}
}
}
else_if = {
limit = {
opinion = {
target = var:mend_the_fracture_oath_target_culture.culture_head
value >= 40
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.2
}
}
}
else_if = {
limit = {
opinion = {
target = var:mend_the_fracture_oath_target_culture.culture_head
value >= 20
}
}
root = {
change_variable = {
name = synergy_cultures_chance
add = 0.1
}
}
}
}
if = {
limit = {
prestige_level = 5
}
change_variable = {
name = synergy_cultures_chance
add = 0.2
}
}
else_if = {
limit = {
prestige_level = 4
}
change_variable = {
name = synergy_cultures_chance
add = 0.15
}
}
else_if = {
limit = {
prestige_level = 3
}
change_variable = {
name = synergy_cultures_chance
add = 0.1
}
}
else_if = {
limit = {
prestige_level = 2
}
change_variable = {
name = synergy_cultures_chance
add = 0.05
}
}
else_if = {
limit = {
prestige_level = 1
}
change_variable = {
name = synergy_cultures_chance
add = 0.02
}
}
if = {
limit = {
var:synergy_cultures_chance >= 1
}
change_variable = {
name = synergy_cultures_amount
add = var:synergy_cultures_chance
multiply = 2
}
set_variable = {
name = synergy_cultures_chance
value = 1
}
}
# calculate the amount of a positive things happening
var:mend_the_fracture_oath_target_culture = {
every_culture_county = {
limit = {
top_liege = root.top_liege
}
change_variable = {
name = synergy_cultures_amount
add = 1
}
}
}
change_variable = {
name = synergy_cultures_amount
multiply = 0.2
multiply = var:synergy_cultures_chance
min = 1
}
while = {
limit = {
var:synergy_cultures_amount > 0
}
random_list = {
1 = {
culture ?= {
random_culture_county = {
limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
holder = root
}
alternative_limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
top_liege = root.top_liege
}
alternative_limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
}
add_county_modifier = {
modifier = oath_mend_the_fracture_county
years = 2
}
add_to_list = synergy_culture_counties
}
}
var:mend_the_fracture_oath_target_culture = {
random_culture_county = {
limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
holder = root
}
alternative_limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
top_liege = root.top_liege
}
alternative_limit = {
NOT = {
has_county_modifier = oath_mend_the_fracture_county
}
}
add_county_modifier = {
modifier = oath_mend_the_fracture_county
years = 3
}
add_to_list = synergy_culture_counties
}
}
save_scope_as = county_reward
}
1 = {
modifier = {
NOT = {
root.culture.culture_head ?= root
}
factor = 0
}
spawn_army = {
name = ach_culture_synergy_troops
men_at_arms = {
type = accolade_maa_archers
stacks = 1
}
men_at_arms = {
type = accolade_maa_skirmishers
stacks = 1
}
location = root.capital_province
uses_supply = no
inheritable = yes
}
var:mend_the_fracture_oath_target_culture = {
if = {
limit = {
NOT = {
culture_head ?= root
}
}
}
culture_head ?= {
spawn_army = {
name = ach_culture_synergy_troops
men_at_arms = {
type = accolade_maa_skirmishers
stacks = 1
}
location = root.capital_province
uses_supply = no
inheritable = yes
}
}
}
save_scope_as = army_reward
}
1 = {
modifier = {
NOT = {
root.culture.culture_head ?= root
var:mend_the_fracture_oath_target_culture.culture_head != root
}
factor = 0
}
modifier = {
opinion = {
target = var:mend_the_fracture_oath_target_culture.culture_head
value = 100
}
factor = 0
}
add_opinion = {
target = var:mend_the_fracture_oath_target_culture.culture_head
opinion = 20
modifier = ach_synergy_culture_opinion
}
save_scope_as = opinion_reward
}
}
change_variable = {
name = synergy_cultures_amount
subtract = 1
}
}
# inform the player about what happened
send_interface_message = {
title = ach_maintenance_events.0002.title
if = {
limit = {
exists = scope:army_reward
}
custom_tooltip = ach_maintenance_events.0002.army_reward
}
if = {
limit = {
exists = scope:opinion_reward
}
custom_tooltip = ach_maintenance_events.0002.opinion_reward
}
if = {
limit = {
exists = scope:county_reward
}
every_in_list = {
list = synergy_culture_counties
show_as_tooltip = {
add_county_modifier = {
modifier = oath_mend_the_fracture_county
years = 2
}
}
}
}
}
if = {
limit = {
var:mend_the_fracture_oath_target_culture = {
any_culture_county = {
holder = {
culture = var:mend_the_fracture_oath_target_culture
is_ai = no
}
}
}
}
send_interface_message = {
title = ach_maintenance_events.0002.title
if = {
limit = {
exists = scope:army_reward
}
custom_tooltip = ach_maintenance_events.0002.army_reward
}
if = {
limit = {
exists = scope:opinion_reward
}
custom_tooltip = ach_maintenance_events.0002.opinion_reward
}
if = {
limit = {
exists = scope:county_reward
}
every_in_list = {
list = synergy_culture_counties
show_as_tooltip = {
add_county_modifier = {
modifier = oath_mend_the_fracture_county
years = 2
}
}
}
}
}
}
remove_variable = synergy_cultures_chance
remove_variable = synergy_cultures_amount
}
}
ach_maintenance_events.0100 = { #Coronation host is ded, notify guests
type = character_event
title = ach_maintenance_events.0100.t
desc = ach_maintenance_events.0100.desc
theme = realm
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:host
animation = dead
}
immediate = {
}
option = {
name = ach_maintenance_events.0100.a
}
}
ach_maintenance_events.0101 = { #Coronation host has been imprisoned, notify guests
type = character_event
title = ach_maintenance_events.0101.t
desc = ach_maintenance_events.0101.desc
theme = realm
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:host
animation = prisonhouse
}
lower_left_portrait = {
character = scope:gaoler
}
immediate = {
scope:host.imprisoner = {
save_scope_as = gaoler
}
}
trigger = {
NOT = { #you know what you did
this = scope:host.imprisoner
}
}
option = {
name = ach_maintenance_events.0101.a
}
}
ach_maintenance_events.0102 = { #Coronation host has been imprisoned, notify host and cancellation
type = character_event
title = ach_maintenance_events.0102.t
desc = ach_maintenance_events.0102.desc
theme = realm
left_portrait = {
character = root
animation = prisonhouse
}
right_portrait = {
character = scope:gaoler
animation = manic
}
immediate = {
scope:host.imprisoner = {
save_scope_as = gaoler
}
}
option = {
name = ach_maintenance_events.0102.a
}
}
ach_maintenance_events.0103 = { #No one shows up, notify host
type = character_event
title = ach_maintenance_events.0103.t
desc = ach_maintenance_events.0103.desc
theme = realm
left_portrait = {
character = root
animation = worry
}
immediate = {
}
option = {
name = ach_maintenance_events.0103.a
}
}
ach_maintenance_events.0104 = { #Officiator ded, host cancelled the coronation, notify guests
type = character_event
title = ach_maintenance_events.0104.t
desc = ach_maintenance_events.0104.desc
theme = realm
left_portrait = {
character = root
animation = stunned
}
right_portrait = {
character = scope:host
animation = wailing
}
lower_right_portrait = {
character = scope:dead_officiator
}
immediate = {
scope:activity.var:officiator ?= { save_scope_as = dead_officiator }
}
option = {
name = ach_maintenance_events.0104.a
}
}
ach_maintenance_events.0105 = { #Host excommunicated, notify guests
type = character_event
title = ach_maintenance_events.0105.t
desc = ach_maintenance_events.0105.desc
theme = realm
left_portrait = {
character = root
animation = worry
}
center_portrait = {
character = scope:host
animation = shame
}
right_portrait = {
character = scope:hof
animation = go_to_your_room
}
immediate = {
faith.religious_head = { save_scope_as = hof }
}
option = {
name = ach_maintenance_events.0105.a
}
}
ach_maintenance_events.0106 = { #Host excommunicated, notify host
type = character_event
title = ach_maintenance_events.0106.t
desc = ach_maintenance_events.0106.desc
theme = realm
left_portrait = {
character = root
animation = shame
}
right_portrait = {
character = scope:hof
animation = go_to_your_room
}
immediate = {
faith.religious_head = { save_scope_as = hof }
}
option = {
name = ach_maintenance_events.0106.a
}
}

View file

@ -5791,7 +5791,6 @@ bp3_journey.2200 = {
is_available_healthy_ai_adult = yes
bodyguard_validity_trigger = { EMPLOYER = root }
}
is_valid_to_hire_court_position_type = master_of_spoils_camp_officer
}
random_pool_character = {
province = scope:location

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -90,6 +90,16 @@ epidemic_events.0100 = {
title = epidemic_events.0100.t
desc = epidemic_events.0100.desc
theme = plague
override_background = {
trigger = {
NOT = {
capital_county = {
has_province_with_epidemic = { intensity = any }
}
}
}
reference = tavern
}
left_portrait = {
character = root
animation = fear
@ -110,6 +120,16 @@ epidemic_events.0101 = {
title = epidemic_events.0101.t
desc = epidemic_events.0101.desc
theme = plague
override_background = {
trigger = {
NOT = {
capital_county = {
has_province_with_epidemic = { intensity = any }
}
}
}
reference = courtyard
}
left_portrait = {
character = root
animation = personality_content
@ -1833,7 +1853,7 @@ epidemic_events.1060 = {
20 = {
trigger = {
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = trait:witch
FAITH = root.faith
GENDER_CHARACTER = root
}
@ -2514,7 +2534,7 @@ epidemic_events.1063 = {
AND = {
is_witch_trigger = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = trait:witch
FAITH = root.faith
GENDER_CHARACTER = root
}
@ -2522,7 +2542,7 @@ epidemic_events.1063 = {
AND = {
is_incestuous_trigger = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = incestuous
TRAIT = trait:incestuous
FAITH = root.faith
GENDER_CHARACTER = root
}
@ -6719,7 +6739,7 @@ epidemic_events.5007 = {
trigger = {
is_available = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = trait:witch
FAITH = root.faith
GENDER_CHARACTER = root
}
@ -6760,7 +6780,7 @@ epidemic_events.5007 = {
is_available_healthy_ai_adult = yes
is_ai = yes
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = trait:witch
FAITH = this.faith
GENDER_CHARACTER = this
}

View file

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

View file

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

View file

@ -4460,7 +4460,7 @@ legend_spread_events.5230 = {
}
# Just to ensure people are actually freaked out by this
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = {
TRAIT = cannibal
TRAIT = trait:cannibal
GENDER_CHARACTER = root
}
}
@ -6307,10 +6307,8 @@ legend_spread_events.5320 = {
random_character_artifact = {
limit = {
artifact_can_be_gift_to_trigger = { RECIPIENT = scope:vassal }
NOR = {
#Ensure it's not trash
has_variable = unwanted_artifact
#And doesn't have a claim on it
any_artifact_claimant = {
is_alive = no

File diff suppressed because it is too large Load diff

View file

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

File diff suppressed because it is too large Load diff

View file

@ -1,719 +0,0 @@
namespace = ep1_character_interaction
##################################################
#
# Character Interaction Events
#
# 0001 - 0010 Indebt Guest
##################################################
##################################################
# CHARACTER INTERACTION EVENTS
##################################################
# A Sensible Recompense
# by Ewan Cowhig Croft
# 0001 - 0010
##################################################
scripted_trigger ep1_character_interaction_0001_valid_hostile_relation_trigger = {
# Must be at a court of some kind *other* than your own.
exists = host
scope:actor != host
# And not in scope:actor's prison.
NOR = {
imprisoner ?= scope:actor
}
# Double check that this'd be an appropriate court to send a plant.
save_temporary_scope_as = current_target
scope:actor = {
OR = {
# Either you've got a scheme on the go...
any_scheme = {
hostile_scheme_trigger = yes
scheme_target_character = scope:current_target
}
# ... or you could start one.
can_start_hostile_scheme_against_trigger = { TARGET = scope:current_target}
}
}
}
scripted_trigger ep1_character_interaction_0001_valid_rival_trigger = {
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
OR = {
NOT = { exists = scope:actor_nemesis }
this != scope:actor_nemesis
}
}
scripted_effect ep1_character_interaction_0001_move_character_and_family_effect = {
scope:recipient = {
# Whatever else happens, just move them.
scope:actor = { remove_courtier_or_guest = scope:recipient }
$DESTINATION$ = { add_courtier = scope:recipient }
# If they have any family, quietly send them along too.
hidden_effect = {
if = {
limit = {
any_traveling_family_member = { }
}
every_traveling_family_member = {
save_temporary_scope_as = family_to_shunt
scope:actor = { remove_courtier_or_guest = scope:family_to_shunt }
$DESTINATION$ = { add_courtier = scope:family_to_shunt }
}
}
}
}
}
# Trick a guest into a debt & turn them into an agent.
ep1_character_interaction.0001 = {
type = character_event
title = ep1_character_interaction.0001.t
desc = {
desc = ep1_character_interaction.0001.desc.intro
first_valid = {
triggered_desc = {
trigger = { scope:false_flag_type = flag:lustful }
desc = ep1_character_interaction.0001.desc.lustful
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:chaste }
desc = ep1_character_interaction.0001.desc.chaste
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:gluttonous }
desc = ep1_character_interaction.0001.desc.gluttonous
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:temperate }
desc = ep1_character_interaction.0001.desc.temperate
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:greedy }
desc = ep1_character_interaction.0001.desc.greedy
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:generous }
desc = ep1_character_interaction.0001.desc.generous
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:lazy }
desc = ep1_character_interaction.0001.desc.lazy
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:diligent }
desc = ep1_character_interaction.0001.desc.diligent
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:wrathful }
desc = ep1_character_interaction.0001.desc.wrathful
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:calm }
desc = ep1_character_interaction.0001.desc.calm
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:patient }
desc = ep1_character_interaction.0001.desc.patient
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:impatient }
desc = ep1_character_interaction.0001.desc.impatient
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:arrogant }
desc = ep1_character_interaction.0001.desc.arrogant
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:humble }
desc = ep1_character_interaction.0001.desc.humble
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:deceitful }
desc = ep1_character_interaction.0001.desc.deceitful
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:honest }
desc = ep1_character_interaction.0001.desc.honest
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:craven }
desc = ep1_character_interaction.0001.desc.craven
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:brave }
desc = ep1_character_interaction.0001.desc.brave
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:shy }
desc = ep1_character_interaction.0001.desc.shy
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:gregarious }
desc = ep1_character_interaction.0001.desc.gregarious
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:ambitious }
desc = ep1_character_interaction.0001.desc.ambitious
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:content }
desc = ep1_character_interaction.0001.desc.content
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:arbitrary }
desc = ep1_character_interaction.0001.desc.arbitrary
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:just }
desc = ep1_character_interaction.0001.desc.just
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:cynical }
desc = ep1_character_interaction.0001.desc.cynical
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:zealous }
desc = ep1_character_interaction.0001.desc.zealous
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:paranoid }
desc = ep1_character_interaction.0001.desc.paranoid
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:trusting }
desc = ep1_character_interaction.0001.desc.trusting
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:compassionate }
desc = ep1_character_interaction.0001.desc.compassionate
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:callous }
desc = ep1_character_interaction.0001.desc.callous
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:sadistic }
desc = ep1_character_interaction.0001.desc.sadistic
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:stubborn }
desc = ep1_character_interaction.0001.desc.stubborn
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fickle }
desc = ep1_character_interaction.0001.desc.fickle
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:vengeful }
desc = ep1_character_interaction.0001.desc.vengeful
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:forgiving }
desc = ep1_character_interaction.0001.desc.forgiving
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fallback_1 }
desc = ep1_character_interaction.0001.desc.fallback_1
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fallback_2 }
desc = ep1_character_interaction.0001.desc.fallback_2
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fallback_3 }
desc = ep1_character_interaction.0001.desc.fallback_3
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fallback_4 }
desc = ep1_character_interaction.0001.desc.fallback_4
}
triggered_desc = {
trigger = { scope:false_flag_type = flag:fallback_5 }
desc = ep1_character_interaction.0001.desc.fallback_5
}
}
desc = ep1_character_interaction.0001.desc.outro
}
theme = intrigue_skulduggery_focus
left_portrait = {
character = scope:actor
animation = schadenfreude
}
right_portrait = {
character = scope:recipient
animation = fear
}
lower_center_portrait = scope:actor_nemesis
lower_right_portrait = scope:actor_rival
override_background = { reference = throne_room }
immediate = {
# Apply the interaction's effects.
indebt_guest_interaction_accepted_effect = yes
# Roll the offending crime.
## Percentages even throughout: we're not fussed about which result you roll.
scope:recipient = {
random_list = {
# lustful
100 = {
trigger = { has_trait = lustful }
save_scope_value_as = {
name = false_flag_type
value = flag:lustful
}
}
# chaste
100 = {
trigger = { has_trait = chaste }
save_scope_value_as = {
name = false_flag_type
value = flag:chaste
}
}
# gluttonous
100 = {
trigger = { has_trait = gluttonous }
save_scope_value_as = {
name = false_flag_type
value = flag:gluttonous
}
}
# temperate
100 = {
trigger = { has_trait = temperate }
save_scope_value_as = {
name = false_flag_type
value = flag:temperate
}
}
# greedy
100 = {
trigger = { has_trait = greedy }
save_scope_value_as = {
name = false_flag_type
value = flag:greedy
}
}
# generous
100 = {
trigger = { has_trait = generous }
save_scope_value_as = {
name = false_flag_type
value = flag:generous
}
}
# lazy
100 = {
trigger = { has_trait = lazy }
save_scope_value_as = {
name = false_flag_type
value = flag:lazy
}
}
# diligent
100 = {
trigger = { has_trait = diligent }
save_scope_value_as = {
name = false_flag_type
value = flag:diligent
}
}
# wrathful
100 = {
trigger = { has_trait = wrathful }
save_scope_value_as = {
name = false_flag_type
value = flag:wrathful
}
}
# calm
100 = {
trigger = { has_trait = calm }
save_scope_value_as = {
name = false_flag_type
value = flag:calm
}
}
# patient
100 = {
trigger = { has_trait = patient }
save_scope_value_as = {
name = false_flag_type
value = flag:patient
}
}
# impatient
100 = {
trigger = { has_trait = impatient }
save_scope_value_as = {
name = false_flag_type
value = flag:impatient
}
}
# arrogant
100 = {
trigger = { has_trait = arrogant }
save_scope_value_as = {
name = false_flag_type
value = flag:arrogant
}
}
# humble
100 = {
trigger = { has_trait = humble }
save_scope_value_as = {
name = false_flag_type
value = flag:humble
}
}
# deceitful
100 = {
trigger = { has_trait = deceitful }
save_scope_value_as = {
name = false_flag_type
value = flag:deceitful
}
}
# honest
100 = {
trigger = { has_trait = honest }
save_scope_value_as = {
name = false_flag_type
value = flag:honest
}
}
# craven
100 = {
trigger = { has_trait = craven }
save_scope_value_as = {
name = false_flag_type
value = flag:craven
}
}
# brave
100 = {
trigger = { has_trait = brave }
save_scope_value_as = {
name = false_flag_type
value = flag:brave
}
}
# shy
100 = {
trigger = { has_trait = shy }
save_scope_value_as = {
name = false_flag_type
value = flag:shy
}
}
# gregarious
100 = {
trigger = { has_trait = gregarious }
save_scope_value_as = {
name = false_flag_type
value = flag:gregarious
}
}
# ambitious
100 = {
trigger = { has_trait = ambitious }
save_scope_value_as = {
name = false_flag_type
value = flag:ambitious
}
}
# content
100 = {
trigger = { has_trait = content }
save_scope_value_as = {
name = false_flag_type
value = flag:content
}
}
# arbitrary
100 = {
trigger = { has_trait = arbitrary }
save_scope_value_as = {
name = false_flag_type
value = flag:arbitrary
}
}
# just
100 = {
trigger = { has_trait = just }
save_scope_value_as = {
name = false_flag_type
value = flag:just
}
}
# cynical
100 = {
trigger = { has_trait = cynical }
save_scope_value_as = {
name = false_flag_type
value = flag:cynical
}
}
# zealous
100 = {
trigger = { has_trait = zealous }
save_scope_value_as = {
name = false_flag_type
value = flag:zealous
}
}
# paranoid
100 = {
trigger = { has_trait = paranoid }
save_scope_value_as = {
name = false_flag_type
value = flag:paranoid
}
}
# trusting
100 = {
trigger = { has_trait = trusting }
save_scope_value_as = {
name = false_flag_type
value = flag:trusting
}
}
# compassionate
100 = {
trigger = { has_trait = compassionate }
save_scope_value_as = {
name = false_flag_type
value = flag:compassionate
}
}
# callous
100 = {
trigger = { has_trait = callous }
save_scope_value_as = {
name = false_flag_type
value = flag:callous
}
}
# sadistic
100 = {
trigger = { has_trait = sadistic }
save_scope_value_as = {
name = false_flag_type
value = flag:sadistic
}
}
# stubborn
100 = {
trigger = { has_trait = stubborn }
save_scope_value_as = {
name = false_flag_type
value = flag:stubborn
}
}
# fickle
100 = {
trigger = { has_trait = fickle }
save_scope_value_as = {
name = false_flag_type
value = flag:fickle
}
}
# vengeful
100 = {
trigger = { has_trait = vengeful }
save_scope_value_as = {
name = false_flag_type
value = flag:vengeful
}
}
# forgiving
100 = {
trigger = { has_trait = forgiving }
save_scope_value_as = {
name = false_flag_type
value = flag:forgiving
}
}
# fallback_1
100 = {
save_scope_value_as = {
name = false_flag_type
value = flag:fallback_1
}
}
# fallback_2
100 = {
save_scope_value_as = {
name = false_flag_type
value = flag:fallback_2
}
}
# fallback_3
100 = {
save_scope_value_as = {
name = false_flag_type
value = flag:fallback_3
}
}
# fallback_4
100 = {
save_scope_value_as = {
name = false_flag_type
value = flag:fallback_4
}
}
# fallback_5
100 = {
save_scope_value_as = {
name = false_flag_type
value = flag:fallback_5
}
}
}
}
# Sort scopes for event options.
scope:actor = {
# If scope:actor has a nemesis, save them for loc.
if = {
limit = {
any_relation = {
type = nemesis
count >= 1
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
}
}
random_relation = {
type = nemesis
limit = { ep1_character_interaction_0001_valid_hostile_relation_trigger = yes }
save_scope_as = actor_nemesis
}
}
# If scope:actor has any valid rivals, pick a random one for option B.
if = {
limit = {
any_relation = {
type = rival
count >= 1
ep1_character_interaction_0001_valid_rival_trigger = yes
}
}
random_relation = {
type = rival
# Prefer rivals that are targets of hostile schemes.
limit = {
any_targeting_scheme = {
scheme_owner = scope:actor
is_hostile = yes
}
ep1_character_interaction_0001_valid_rival_trigger = yes
}
# Failing that, rivals who are targets of any schemes.
alternative_limit = {
any_targeting_scheme = {
scheme_owner = scope:actor
is_hostile = no
}
ep1_character_interaction_0001_valid_rival_trigger = yes
}
# Otherwise just any rando rival who could be schemed against.
alternative_limit = { ep1_character_interaction_0001_valid_rival_trigger = yes }
save_scope_as = actor_rival
}
}
}
}
# *Cackling* Oh yes, [actor_nemesis.GetFirstName] will never see this coming!
option = {
name = ep1_character_interaction.0001.a
trigger = { exists = scope:actor_nemesis }
# Quietly add scope:recipient as a courtier of scope:actor_nemesis.
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_nemesis }
stress_impact = {
patient = miniscule_stress_impact_loss
vengeful = minor_stress_impact_loss
impatient = medium_stress_impact_gain
trusting = major_stress_impact_gain
}
ai_chance = {
# If valid, this should always be the choice selected.
base = 100
}
}
# Excellent! Now, you will deliver yourself to [actor_rival.GetFirstNamePossessive] court...
option = {
name = ep1_character_interaction.0001.b
trigger = { exists = scope:actor_rival }
# Quietly add scope:recipient as a courtier of scope:actor_rival.
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_rival }
stress_impact = {
patient = miniscule_stress_impact_loss
vengeful = minor_stress_impact_loss
impatient = medium_stress_impact_gain
trusting = major_stress_impact_gain
}
ai_chance = {
# Never pick this option...
base = 0
# ... unless there's no nemesis, in which case it should be the default.
modifier = {
add = 100
NOT = { exists = scope:actor_rival }
}
}
}
# Now, begone till I have need of you.
option = {
name = ep1_character_interaction.0001.c
# Boot 'em out.
hidden_effect = {
scope:recipient = { select_and_move_to_pool_effect = yes }
}
show_as_tooltip = {
remove_courtier_or_guest = scope:recipient
}
stress_impact = {
shy = minor_stress_impact_loss
gregarious = minor_stress_impact_gain
}
ai_chance = {
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
base = 0
}
}
# Naturally, you will stay where I can keep an eye on you.
option = {
name = ep1_character_interaction.0001.d
# Status quo: no extra changes here.
# No stress impact necessary for the fallback option.
ai_chance = {
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
base = 0
}
}
}

View file

@ -1,552 +0,0 @@
namespace = court_position
################################
# FLAVOR EVENTS
# 1001 - 8999
################################
#############################
# MURDER SAVE EVENTS
# 9001 - 9199
# by Linnéa Thimrén
#############################
###############
# SAVED BY FOOD TASTER
# FOR MURDERER: Saved from poisoned food by food taster
# by Linnéa Thimrén
court_position.9001 = {
type = character_event
window = scheme_failed_event
title = court_position.9001.t
desc = {
desc = court_position.9001.desc
triggered_desc = {
trigger = { exists = local_var:food_taster_dies }
desc = court_position.9001.food_taster_dies
}
}
theme = murder_scheme
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
center_portrait = {
character = scope:food_taster
animation = poison
}
right_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
override_background = { reference = feast }
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
trigger = {
scope:target = {
employs_court_position = food_taster_court_position
any_court_position_holder = {
type = food_taster_court_position
foodtaster_will_actually_do_job_trigger = yes
}
}
}
immediate = {
scope:target = {
random_court_position_holder = {
type = food_taster_court_position
limit = { is_physically_able = yes }
save_scope_as = food_taster
}
}
murder_failure_effect = yes
hidden_effect = {
random = {
chance = 75
set_local_variable = {
name = food_taster_dies
value = yes
}
}
}
}
option = {
name = murder_save.0001.a
scope:scheme = { end_scheme = yes }
}
option = {
name = murder_save.0001.b
restart_murder_scheme_effect = yes
}
after = {
# Fire the rest of the outcome.
scope:target = { trigger_event = court_position.9002 }
if = {
limit = { exists = local_var:food_taster_dies }
show_as_tooltip = {
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:food_taster
REASON = death_poison
}
}
}
}
}
# FOR TARGET: Food taster dies to poison
court_position.9002 = {
type = character_event
window = scheme_target_event
title = court_position.9001.t
desc = {
desc = court_position.9002.desc
triggered_desc = {
trigger = { exists = local_var:food_taster_dies }
desc = court_position.9002.food_taster_dies
}
triggered_desc = {
trigger = { exists = scope:scheme_discovered }
desc = court_position.9002.owner_discovered
}
}
theme = murder_scheme
left_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
center_portrait = {
character = scope:food_taster
animation = poison
}
right_portrait = {
character = scope:owner_to_reveal
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
immediate = {
set_variable = {
name = block_death_event_from
value = scope:food_taster
days = 3
}
# Handle the death of the food taster, if necessary
if = {
limit = { exists = local_var:food_taster_dies }
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:food_taster
REASON = death_poison
}
}
}
# Who could do such a thing?
option = {
name = murder_save.1001.a
trigger = {
NOT = { exists = scope:scheme_discovered }
}
custom_tooltip = murder_save.failure_unknown_owner_tt
}
# Vengeance!
option = {
name = murder_save.1001.b
trigger = { exists = scope:scheme_discovered }
custom_tooltip = murder_save.failure_known_owner_tt
}
after = {
add_character_modifier = {
modifier = watchful_modifier
days = watchful_modifier_duration
}
}
}
###############
# SAVED BY CUP-BEARER
# FOR MURDERER: Saved from poisoned drink by cup-bearer
# by Linnéa Thimrén
court_position.9011 = {
type = character_event
window = scheme_failed_event
title = court_position.9011.t
desc = {
desc = court_position.9011.desc
triggered_desc = {
trigger = { exists = local_var:cupbearer_dies }
desc = court_position.9011.cupbearer_dies
}
}
theme = murder_scheme
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
center_portrait = {
character = scope:food_taster
animation = poison
}
right_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
trigger = {
scope:target = {
employs_court_position = cupbearer_court_position
any_court_position_holder = {
type = cupbearer_court_position
cupbearer_will_actually_do_job_trigger = yes
}
}
}
immediate = {
scope:target = {
random_court_position_holder = {
type = cupbearer_court_position
limit = { is_physically_able = yes }
save_scope_as = cupbearer
}
}
murder_failure_effect = yes
hidden_effect = {
random = {
chance = 75
set_local_variable = {
name = cupbearer_dies
value = yes
}
}
}
}
option = {
name = murder_save.0001.a
scope:scheme = { end_scheme = yes }
}
option = {
name = murder_save.0001.b
restart_murder_scheme_effect = yes
}
after = {
# Fire the rest of the outcome.
scope:target = { trigger_event = court_position.9012 }
if = {
limit = { exists = local_var:cupbearer_dies }
show_as_tooltip = {
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:cupbearer
REASON = death_poison
}
}
}
}
}
# FOR TARGET: Cup-bearer dies to poison
court_position.9012 = {
type = character_event
window = scheme_target_event
title = court_position.9011.t
desc = {
desc = court_position.9012.desc
triggered_desc = {
trigger = { exists = local_var:cupbearer_dies }
desc = court_position.9012.cupbearer_dies
}
triggered_desc = {
trigger = { exists = scope:scheme_discovered }
desc = court_position.9002.owner_discovered
}
}
theme = murder_scheme
left_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
center_portrait = {
character = scope:food_taster
animation = poison
}
right_portrait = {
character = scope:owner_to_reveal
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
immediate = {
set_variable = {
name = block_death_event_from
value = scope:cupbearer
days = 3
}
# Handle the death of the cupbearer, if necessary
if = {
limit = { exists = local_var:cupbearer_dies }
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:cupbearer
REASON = death_poison
}
}
}
# Who could do such a thing?
option = {
name = murder_save.1001.a
trigger = {
NOT = { exists = scope:scheme_discovered }
}
custom_tooltip = murder_save.failure_unknown_owner_tt
}
# Vengeance!
option = {
name = murder_save.1001.b
trigger = { exists = scope:scheme_discovered }
custom_tooltip = murder_save.failure_known_owner_tt
}
after = {
add_character_modifier = {
modifier = watchful_modifier
days = watchful_modifier_duration
}
}
}
###############
# SAVED BY BODYGUARD
# FOR MURDERER: Saved from assassin by bodyguard
# by Linnéa Thimrén
court_position.9021 = {
type = character_event
window = scheme_failed_event
title = court_position.9021.t
desc = {
desc = court_position.9021.desc
triggered_desc = {
trigger = { exists = local_var:bodyguard_dies }
desc = court_position.9021.bodyguard_dies
}
}
theme = murder_scheme
left_portrait = {
character = scope:owner
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
center_portrait = {
character = scope:bodyguard
triggered_animation = {
trigger = { is_alive = no }
animation = map_fear
}
animation = random_weapon_aggressive
camera = camera_event_center_pointing_left
}
right_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
widget = {
gui = "event_window_widget_scheme"
container = "custom_widgets_container"
}
trigger = {
scope:target = {
employs_court_position = bodyguard_court_position
any_court_position_holder = {
type = bodyguard_court_position
bodyguard_will_actually_do_job_trigger = yes
}
}
}
immediate = {
scope:target = {
random_court_position_holder = {
type = bodyguard_court_position
limit = { is_physically_able = yes }
save_scope_as = bodyguard
}
}
murder_failure_effect = yes
hidden_effect = {
random = {
chance = 75
set_local_variable = {
name = bodyguard_dies
value = yes
}
}
}
}
option = {
name = murder_save.0001.a
scope:scheme = { end_scheme = yes }
}
option = {
name = murder_save.0001.b
restart_murder_scheme_effect = yes
}
after = {
# Fire the rest of the outcome.
scope:target = { trigger_event = court_position.9022 }
if = {
limit = { exists = local_var:bodyguard_dies }
show_as_tooltip = {
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:bodyguard
REASON = death_murder
}
}
}
}
}
# FOR TARGET: Bodyguard dies to assassin
court_position.9022 = {
type = character_event
window = scheme_target_event
title = court_position.9021.t
desc = {
desc = court_position.9022.desc
triggered_desc = {
trigger = { exists = local_var:bodyguard_dies }
desc = court_position.9022.bodyguard_dies
}
triggered_desc = {
trigger = { exists = scope:scheme_discovered }
desc = court_position.9002.owner_discovered
}
}
theme = murder_scheme
left_portrait = {
character = scope:target
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = rage
}
animation = paranoia
}
center_portrait = {
character = scope:bodyguard
triggered_animation = {
trigger = { is_alive = no }
animation = map_fear
}
animation = random_weapon_aggressive
}
right_portrait = {
character = scope:owner_to_reveal
triggered_animation = {
trigger = { exists = scope:scheme_discovered }
animation = fear
}
animation = stress
}
immediate = {
set_variable = {
name = block_death_event_from
value = scope:bodyguard
days = 3
}
# Handle the death of the bodyguard, if necessary
if = {
limit = { exists = local_var:bodyguard_dies }
murder_interception_handle_extra_deaths_effect = {
VICTIM = scope:bodyguard
REASON = death_murder
}
}
}
# Who could do such a thing?
option = {
name = murder_save.1001.a
trigger = {
NOT = { exists = scope:scheme_discovered }
}
custom_tooltip = murder_save.failure_unknown_owner_tt
}
# Vengeance!
option = {
name = murder_save.1001.b
trigger = { exists = scope:scheme_discovered }
custom_tooltip = murder_save.failure_known_owner_tt
}
after = {
add_character_modifier = {
modifier = watchful_modifier
days = watchful_modifier_duration
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1033,6 +1033,16 @@ scripted_trigger fund_inspiration_0031_title_based_option_trigger = {
global_var:flag_created_siam_kingdom = root
NOT = { exists = scope:book_topic_creation }
}
AND = {
exists = global_var:flag_created_brunei_kingdom
global_var:flag_created_brunei_kingdom = root
NOT = { exists = scope:book_topic_creation }
}
AND = {
exists = global_var:flag_created_brunei_empire
global_var:flag_created_brunei_empire = root
NOT = { exists = scope:book_topic_creation }
}
AND = {
exists = global_var:flag_formed_rum_sultanate
global_var:flag_formed_rum_sultanate = root
@ -2382,7 +2392,7 @@ fund_inspiration.0031 = {
if = {
limit = {
NOT = { is_witch_trigger = yes }
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = root }
}
if = {
limit = {
@ -2489,19 +2499,19 @@ fund_inspiration.0031 = {
add = -70
exists = scope:lifestyle_option_witch
NOT = { has_trait = witch }
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = root }
}
modifier = { # If it's hidden secrets it's rare that they write about it
add = -70
exists = scope:lifestyle_option_deviant
NOT = { has_trait = deviant }
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = root.faith GENDER_CHARACTER = root }
}
modifier = { # If it's hidden secrets it's rare that they write about it
add = -70
exists = scope:lifestyle_option_cannibal
NOT = { has_trait = cannibal }
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = root.faith GENDER_CHARACTER = root }
}
modifier = { #However, the might if they're arrogant
add = 50
@ -3586,11 +3596,7 @@ fund_inspiration.0043 = {
}
NOR = {
any_artifact = {
trigger_if = {
limit = { exists = var:banner_dynasty }
var:banner_dynasty = root.dynasty
}
trigger_else = { always = no }
var:banner_dynasty ?= root.dynasty
OR = {
artifact_owner = root
artifact_owner = { in_diplomatic_range = root }
@ -6811,15 +6817,15 @@ fund_inspiration.1031 = {
OR = {
AND = {
scope:newly_created_artifact = { has_artifact_feature = book_subject_witch }
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = root }
}
AND = {
scope:newly_created_artifact = { has_artifact_feature = book_subject_cannibal }
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = root.faith GENDER_CHARACTER = root }
}
AND = {
scope:newly_created_artifact = { has_artifact_feature = book_subject_deviant }
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = root.faith GENDER_CHARACTER = root }
}
}
}
@ -15002,7 +15008,7 @@ scripted_trigger fund_inspiration_3001_witch_topic_trigger = {
exists = scope:inspiration_owner.var:book_subject
scope:inspiration_owner.var:book_subject = flag:witch
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = trait:witch
GENDER_CHARACTER = root
FAITH = root.faith
}
@ -15011,7 +15017,7 @@ scripted_trigger fund_inspiration_3001_cannibal_topic_trigger = {
exists = scope:inspiration_owner.var:book_subject
scope:inspiration_owner.var:book_subject = flag:cannibal
trait_is_criminal_in_faith_trigger = {
TRAIT = cannibal
TRAIT = trait:cannibal
GENDER_CHARACTER = root
FAITH = root.faith
}
@ -15020,7 +15026,7 @@ scripted_trigger fund_inspiration_3001_deviant_topic_trigger = {
exists = scope:inspiration_owner.var:book_subject
scope:inspiration_owner.var:book_subject = flag:deviant
trait_is_shunned_or_criminal_in_faith_trigger = {
TRAIT = deviant
TRAIT = trait:deviant
GENDER_CHARACTER = root
FAITH = root.faith
}
@ -18427,8 +18433,8 @@ scripted_trigger homosexual_poet_trigger = {
has_sexuality = bisexual
}
OR = {
trait_is_shunned_in_faith_trigger = { TRAIT = sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
trait_is_shunned_in_faith_trigger = { TRAIT = trait:sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
}
}
@ -18748,7 +18754,7 @@ fund_inspiration.6301 = {
}
triggered_desc = {
trigger = {
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = root.faith GENDER_CHARACTER = scope:inspiration_owner }
}
desc = fund_inspiration.6301.crime_desc
}
@ -19898,7 +19904,7 @@ fund_inspiration.6513 = {
if = {
limit = {
sex_same_as = scope:adventurer_lover
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = sodomite GENDER_CHARACTER = scope:inspiration_owner }
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = trait:sodomite GENDER_CHARACTER = scope:inspiration_owner }
}
if = {
limit = {
@ -19919,7 +19925,7 @@ fund_inspiration.6513 = {
if = {
limit = {
sex_same_as = scope:inspiration_owner
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = sodomite GENDER_CHARACTER = scope:adventurer_lover }
trait_is_shunned_or_criminal_in_my_or_lieges_faith_trigger = { TRAIT = trait:sodomite GENDER_CHARACTER = scope:adventurer_lover }
}
if = {
limit = {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1081,7 +1081,7 @@ ep2_wedding_ewan.0001 = {
name = ep2_wedding_ewan.0001.c
flavor = ep2_wedding_ewan.0001.c.tt
trigger = { has_activity_intent = murder_attendee_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
scope:intent_target = {
# They're unsettled by your staring.
@ -1899,7 +1899,7 @@ ep2_wedding_ewan.0011 = {
name = ep2_wedding_ewan.0011.c
# Check for target directly, rather than just the intent, because there isn't a pre-defined intent target and we may have failed to acquire someone suitable.
trigger = { exists = scope:intent_target }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# You try to trip a server onto someone.
duel = {
@ -2744,7 +2744,7 @@ ep2_wedding_ewan.0021 = {
option = {
name = ep2_wedding_ewan.0021.c
trigger = { has_activity_intent = woo_attendee_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# Sprinkle a bit of opinion in there.
reverse_add_opinion = {
@ -3246,7 +3246,7 @@ ep2_wedding_ewan.0031 = {
option = {
name = ep2_wedding_ewan.0031.g
trigger = { has_activity_intent = reduce_stress_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# Decent middling prestige.
add_prestige = medium_prestige_gain
@ -3463,7 +3463,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.b
trigger = { has_activity_intent = reduce_stress_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# If you're the host, gain prestige.
if = {
@ -3499,7 +3499,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.c
trigger = { has_activity_intent = murder_attendee_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
scope:intent_target = {
# They're a bit freaked out.
@ -3531,7 +3531,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.d
trigger = { has_activity_intent = woo_attendee_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# You try to keep it juuuuust about down-low.
duel = {
@ -3624,7 +3624,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.e
trigger = { has_activity_intent = diplomatic_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# Try to give a big, impressive speech.
duel = {
@ -3694,7 +3694,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.f
trigger = { has_activity_intent = matchmaking_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# Gain opinion with scope:activity_intent.
reverse_add_opinion = {
@ -3729,7 +3729,7 @@ ep2_wedding_ewan.0041 = {
option = {
name = ep2_wedding_ewan.0041.g
trigger = { has_activity_intent = banquet_mischief_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# We take your highest of diplomacy or intrigue and let you duel against it.
if = {
@ -3840,7 +3840,7 @@ scripted_trigger ep2_wedding_ewan_0051_legal_rake_trigger = {
save_temporary_scope_as = char_temp
NOT = {
trait_is_criminal_in_faith_trigger = {
TRAIT = adulterer
TRAIT = trait:adulterer
FAITH = scope:char_temp.faith
GENDER_CHARACTER = scope:char_temp
}
@ -5707,7 +5707,7 @@ ep2_wedding_ewan.0061 = {
option = {
name = ep2_wedding_ewan.0061.d
trigger = { has_activity_intent = banquet_mischief_intent }
custom_tooltip = available_because_intent_tt
reason = activity_intent
# Same as the .e rolls, but we remove the minor result and just roll between success & crit success.
duel = {

File diff suppressed because it is too large Load diff

View file

@ -2650,7 +2650,7 @@ ep3_decisions_event.2090 = {
remove_variable = confirmation_grace
}
# Refund any costs
add_prestige = standard_activity_cost
add_prestige = standard_activity_base_cost
}
trigger_event = ep3_decisions_event.2080
}
@ -4429,6 +4429,12 @@ ep3_decisions_event.4022 = {
participants = { missionary = scope:evangelizer sender = scope:sender }
}
set_character_faith_with_conversion = scope:evangelizer.faith
if = {
limit = {
scope:evangelizer.faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
custom_tooltip = ep3_decisions_event.4022.a.tt
custom_tooltip = negotiated_alliance_delay_tt
show_as_tooltip = {
@ -5171,6 +5177,23 @@ ep3_decisions_event.4060 = {
}
add_character_modifier = { modifier = first_admin_emperor }
}
# NF tooltip
if = {
limit = { exists = scope:new_title } # some gov types don't need to create a new title
get_title = scope:new_title
}
# Adopting vassal tooltip
every_powerful_vassal = {
limit = { has_same_government = root }
switch = {
trigger = has_government
japan_administrative_government = { change_government = japan_administrative_government }
celestial_government = { change_government = celestial_government }
meritocratic_government = { change_government = meritocratic_government }
steppe_admin_government = { change_government = steppe_admin_government }
fallback = { change_government = administrative_government }
}
}
}
hidden_effect = {
ordered_vassal = {
@ -6138,6 +6161,17 @@ ep3_decisions_event.4090 = {
desc = appointment_timeout_desc_retired_governor
}
}
else_if = {
limit = {
government_is_japanese_trigger = yes
}
add_gold = major_gold_value
change_influence = major_influence_value
add_character_modifier = {
modifier = renounced_governorship_japan
years = 15
}
}
else = {
add_gold = massive_gold_value
add_character_modifier = {
@ -6766,14 +6800,14 @@ ep3_decisions_event.5020 = {
ordered_in_list = {
list = available_heresies
order_by = num_county_followers
position = 1
position = 0
save_scope_as = heresy_1
}
ordered_in_list = {
list = available_heresies
limit = { this != scope:heresy_1 }
order_by = num_county_followers
position = 1
position = 0
save_scope_as = heresy_2
}
ordered_in_list = {
@ -6783,7 +6817,7 @@ ep3_decisions_event.5020 = {
this != scope:heresy_2
}
order_by = num_county_followers
position = 1
position = 0
save_scope_as = heresy_3
}
}
@ -6791,6 +6825,12 @@ ep3_decisions_event.5020 = {
option = {
name = ep3_decisions_event.5020.a
set_character_faith_with_conversion = scope:heresy_1
if = {
limit = {
scope:heresy_1 = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
add_heresiarch_trait_effect = yes
# Otherwise the conversion event will remove the trait
add_character_flag = converted_by_heresy_decision
@ -6830,6 +6870,12 @@ ep3_decisions_event.5020 = {
exists = scope:heresy_2
}
set_character_faith_with_conversion = scope:heresy_2
if = {
limit = {
scope:heresy_2 = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
add_heresiarch_trait_effect = yes
# Otherwise the conversion event will remove the trait
add_character_flag = converted_by_heresy_decision
@ -6869,6 +6915,12 @@ ep3_decisions_event.5020 = {
exists = scope:heresy_3
}
set_character_faith_with_conversion = scope:heresy_3
if = {
limit = {
scope:heresy_3 = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
add_heresiarch_trait_effect = yes
# Otherwise the conversion event will remove the trait
add_character_flag = converted_by_heresy_decision
@ -6995,6 +7047,12 @@ ep3_decisions_event.5021 = {
root = {
primary_title = { set_state_faith = scope:heresy }
set_character_faith_with_conversion = scope:heresy
if = {
limit = {
scope:heresy = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
add_opinion = {
target = scope:heretic
modifier = forced_state_heresy_opinion
@ -7376,9 +7434,22 @@ ep3_decisions_event.6001 = {
}
}
scope:liege = { save_scope_as = new_liege }
location.duchy.holder ?= {
if = {
limit = {
this != scope:new_liege
can_set_relation_rival_trigger = { CHARACTER = root }
}
set_relation_rival = {
target = root
reason = seized_my_realm_crime
}
}
}
set_variable = separatist_uprising_decision_var
set_variable = became_landed_through_separatist_uprising_var
location.duchy = {
save_scope_as = target
add_to_list = transfer_titles
# All De Jure Counties held by the liege will be moved over
every_de_jure_county = {
@ -7475,11 +7546,12 @@ ep3_decisions_event.6001 = {
resolve_title_and_vassal_change = scope:heir_change
}
}
ep3_become_landed_transfer_no_ennobled_modifier_effect = {
ep3_become_landed_transfer_effect = {
TITLE_RECEIVER = root
TITLE_LIST = transfer_titles
TYPE = granted
REASON = flag:culture_champion
ENNOBLED_ADVENTURER = flag:no
}
hidden_effect = {
scope:old_heir ?= {
@ -7536,7 +7608,14 @@ ep3_decisions_event.6001 = {
option = { # Let me think about it
name = ep3_decisions_event.6001.d
hidden_effect = {
send_interface_toast = {
title = champion_culture_costs_refunded
left_icon = root
add_prestige_no_experience = 2000
add_short_term_gold = 500
}
}
ai_chance = {
base = 0
}

View file

@ -2,8 +2,8 @@
##############################
# EP3 Admin (Emperor) Events #
# by Claudia Baldassi #
# 2000 - 2999 #
# by Claudia Baldassi #
# 2000 - 2999 #
##############################
# Byzantine-only: you have reconquered an important city of the long-lost Empire
@ -161,13 +161,13 @@ ep3_emperor_yearly.2000 = {
limit = {
scope:county = title:c_tourraine
}
NOT = { exists = var:ep3_reconquered_tourraine }
NOT = { exists = global_var:ep3_reconquered_tourraine }
}
trigger_else_if = {
limit = {
scope:county = title:c_chandax
}
NOT = { exists = var:ep3_reconquered_chandax }
NOT = { exists = global_var:ep3_reconquered_chandax }
}
trigger_else_if = {
limit = {
@ -176,91 +176,91 @@ ep3_emperor_yearly.2000 = {
scope:county = title:c_northumberland
}
}
NOT = { exists = var:ep3_reconquered_hadrian }
NOT = { exists = global_var:ep3_reconquered_hadrian }
}
trigger_else_if = {
limit = {
scope:county = title:c_trier
}
NOT = { exists = var:ep3_reconquered_trier }
NOT = { exists = global_var:ep3_reconquered_trier }
}
trigger_else_if = {
limit = {
scope:county = title:c_lombardia
}
NOT = { exists = var:ep3_reconquered_lombardia }
NOT = { exists = global_var:ep3_reconquered_lombardia }
}
trigger_else_if = {
limit = {
scope:county = title:c_murcia
}
NOT = { exists = var:ep3_reconquered_murcia }
NOT = { exists = global_var:ep3_reconquered_murcia }
}
trigger_else_if = {
limit = {
scope:county = title:c_tangiers
}
NOT = { exists = var:ep3_reconquered_tangiers }
NOT = { exists = global_var:ep3_reconquered_tangiers }
}
trigger_else_if = {
limit = {
scope:county = title:c_tunis
}
NOT = { exists = var:ep3_reconquered_tunis }
NOT = { exists = global_var:ep3_reconquered_tunis }
}
trigger_else_if = {
limit = {
scope:county = title:c_ravenna
}
NOT = { exists = var:ep3_reconquered_ravenna }
NOT = { exists = global_var:ep3_reconquered_ravenna }
}
trigger_else_if = {
limit = {
scope:county = title:c_roma
}
NOT = { exists = var:ep3_reconquered_roma }
NOT = { exists = global_var:ep3_reconquered_roma }
}
trigger_else_if = {
limit = {
scope:county = title:c_siracusa
}
NOT = { exists = var:ep3_reconquered_siracusa }
NOT = { exists = global_var:ep3_reconquered_siracusa }
}
trigger_else_if = {
limit = {
scope:county = title:c_bari
}
NOT = { exists = var:ep3_reconquered_bari }
NOT = { exists = global_var:ep3_reconquered_bari }
}
trigger_else_if = {
limit = {
scope:county = title:c_edessa
}
NOT = { exists = var:ep3_reconquered_edessa }
NOT = { exists = global_var:ep3_reconquered_edessa }
}
trigger_else_if = {
limit = {
scope:county = title:c_abbadan
}
NOT = { exists = var:ep3_reconquered_abbadan }
NOT = { exists = global_var:ep3_reconquered_abbadan }
}
trigger_else_if = {
limit = {
scope:county = title:c_alexandria
}
NOT = { exists = var:ep3_reconquered_alexandria }
NOT = { exists = global_var:ep3_reconquered_alexandria }
}
trigger_else_if = {
limit = {
scope:county = title:c_jerusalem
}
NOT = { exists = var:ep3_reconquered_jerusalem }
NOT = { exists = global_var:ep3_reconquered_jerusalem }
}
trigger_else_if = {
limit = {
scope:county = title:c_antiocheia
}
NOT = { exists = var:ep3_reconquered_antiocheia }
NOT = { exists = global_var:ep3_reconquered_antiocheia }
}
trigger_else = {
always = no
@ -268,6 +268,60 @@ ep3_emperor_yearly.2000 = {
}
immediate = {
switch = {
trigger = scope:county
title:c_antiocheia = {
set_global_variable = ep3_reconquered_antiocheia
}
title:c_jerusalem = {
set_global_variable = ep3_reconquered_jerusalem
}
title:c_alexandria = {
set_global_variable = ep3_reconquered_alexandria
}
title:c_abbadan = {
set_global_variable = ep3_reconquered_abbadan
}
title:c_edessa = {
set_global_variable = ep3_reconquered_edessa
}
title:c_bari = {
set_global_variable = ep3_reconquered_bari
}
title:c_siracusa = {
set_global_variable = ep3_reconquered_siracusa
}
title:c_roma = {
set_global_variable = ep3_reconquered_roma
}
title:c_ravenna = {
set_global_variable = ep3_reconquered_ravenna
}
title:c_tunis = {
set_global_variable = ep3_reconquered_tunis
}
title:c_tangiers = {
set_global_variable = ep3_reconquered_tangiers
}
title:c_murcia = {
set_global_variable = ep3_reconquered_murcia
}
title:c_lombardia = {
set_global_variable = ep3_reconquered_lombardia
}
title:c_trier = {
set_global_variable = ep3_reconquered_trier
}
title:c_northumberland = {
set_global_variable = ep3_reconquered_hadrian
}
title:c_chandax = {
set_global_variable = ep3_reconquered_chandax
}
title:c_tourraine = {
set_global_variable = ep3_reconquered_tourraine
}
}
change_influence = massive_influence_gain
add_prestige = major_prestige_gain
}
@ -408,112 +462,6 @@ ep3_emperor_yearly.2000 = {
}
after = {
if = {
limit = {
scope:county = title:c_antiocheia
}
set_global_variable = ep3_reconquered_antiocheia
}
else_if = {
limit = {
scope:county = title:c_jerusalem
}
set_global_variable = ep3_reconquered_jerusalem
}
else_if = {
limit = {
scope:county = title:c_alexandria
}
set_global_variable = ep3_reconquered_alexandria
}
else_if = {
limit = {
scope:county = title:c_abbadan
}
set_global_variable = ep3_reconquered_abbadan
}
else_if = {
limit = {
scope:county = title:c_edessa
}
set_global_variable = ep3_reconquered_edessa
}
else_if = {
limit = {
scope:county = title:c_bari
}
set_global_variable = ep3_reconquered_bari
}
else_if = {
limit = {
scope:county = title:c_siracusa
}
set_global_variable = ep3_reconquered_siracusa
}
else_if = {
limit = {
scope:county = title:c_roma
}
set_global_variable = ep3_reconquered_roma
}
else_if = {
limit = {
scope:county = title:c_ravenna
}
set_global_variable = ep3_reconquered_ravenna
}
else_if = {
limit = {
scope:county = title:c_tunis
}
set_global_variable = ep3_reconquered_tunis
}
else_if = {
limit = {
scope:county = title:c_tangiers
}
set_global_variable = ep3_reconquered_tangiers
}
else_if = {
limit = {
scope:county = title:c_murcia
}
set_global_variable = ep3_reconquered_murcia
}
else_if = {
limit = {
scope:county = title:c_lombardia
}
set_global_variable = ep3_reconquered_lombardia
}
else_if = {
limit = {
scope:county = title:c_trier
}
set_global_variable = ep3_reconquered_trier
}
else_if = {
limit = {
OR = {
scope:county = title:c_cumberland
scope:county = title:c_northumberland
}
}
set_global_variable = ep3_reconquered_hadrian
}
else_if = {
limit = {
scope:county = title:c_chandax
}
set_global_variable = ep3_reconquered_chandax
}
else_if = {
limit = {
scope:county = title:c_tourraine
}
set_global_variable = ep3_reconquered_tourraine
}
if = {
limit = {
NOT = {
@ -764,7 +712,7 @@ ep3_emperor_yearly.2020 = {
random_character_trait = {
limit = {
save_temporary_scope_as = temp_trait
scoped_trait_is_criminal_in_faith_trigger = { TRAIT = scope:temp_trait FAITH = root.faith GENDER_CHARACTER = root }
trait_is_criminal_in_faith_trigger = { TRAIT = scope:temp_trait FAITH = root.faith GENDER_CHARACTER = root }
}
save_scope_as = target_criminal_trait
}
@ -1518,7 +1466,7 @@ ep3_emperor_yearly.2050 = {
house = root.house
this != root
}
position = 1
position = 0
save_scope_as = last_emperor
}
}
@ -4364,7 +4312,10 @@ ep3_emperor_yearly.2170 = {
years = 50
}
}
change_influence = major_influence_gain
if = {
limit = { government_has_flag = government_has_influence }
change_influence = major_influence_gain
}
stress_impact = {
greedy = major_stress_impact_gain
paranoid = medium_stress_impact_gain
@ -6214,6 +6165,12 @@ ep3_emperor_yearly.2300 = {
faith != liege.primary_title.state_faith
}
set_character_faith = liege.primary_title.state_faith
if = {
limit = {
liege.primary_title.state_faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
stress_impact = {
zealous = major_stress_impact_gain
disloyal = major_stress_impact_gain
@ -6364,6 +6321,12 @@ ep3_emperor_yearly.2310 = {
faith != top_liege.primary_title.state_faith
}
set_character_faith = top_liege.primary_title.state_faith
if = {
limit = {
top_liege.primary_title.state_faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
change_influence = medium_influence_gain
stress_impact = {
zealous = major_stress_impact_gain
@ -6757,6 +6720,12 @@ ep3_emperor_yearly.2340 = {
option = {
name = ep3_emperor_yearly.2340.a
set_character_faith = top_liege.primary_title.state_faith
if = {
limit = {
top_liege.primary_title.state_faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
if = {
limit = {
top_liege = this
@ -6958,7 +6927,7 @@ ep3_emperor_yearly.2410 = {
}
send_interface_message = {
title = 2410_noble_family_tt
type = msg_new_powerful_family
type = msg_new_noble_family
left_icon = scope:noble_family_head
right_icon = scope:new_title
desc = 2410_noble_family_tt_desc
@ -7015,6 +6984,7 @@ ep3_emperor_yearly.2420 = {
title = 2420_noble_family_tt
type = msg_new_powerful_family
left_icon = scope:noble_family_head
right_icon = scope:noble_family_head.house
desc = 2420_noble_family_tt_desc
}
}

File diff suppressed because it is too large Load diff

View file

@ -2236,8 +2236,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { is_incestuous_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = kinslayer
@ -2250,8 +2250,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { has_trait = adulterer }
}
trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = fornicator
@ -2263,24 +2263,24 @@ ep3_governor_yearly.3020 = {
}
}
}
trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = deviant
NOT = {
root = { is_deviant_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = witch
NOT = {
root = { is_witch_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = sodomite
@ -2292,16 +2292,16 @@ ep3_governor_yearly.3020 = {
}
}
}
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
has_trait = cannibal
NOT = {
root = { is_cannibal_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = scope:emperor_temp.faith GENDER_CHARACTER = scope:emperor_temp }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = root.faith GENDER_CHARACTER = scope:emperor_temp }
}
AND = {
root.culture = {
@ -2346,8 +2346,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { is_incestuous_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = incestuous FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:incestuous FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2380,8 +2380,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { has_trait = adulterer }
}
trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = adulterer FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:adulterer FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2401,8 +2401,8 @@ ep3_governor_yearly.3020 = {
}
}
}
trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = fornicator FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:fornicator FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2417,8 +2417,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { is_deviant_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = deviant FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:deviant FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2433,8 +2433,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { is_witch_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = witch FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:witch FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2454,8 +2454,8 @@ ep3_governor_yearly.3020 = {
}
}
}
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = sodomite FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:sodomite FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -2470,8 +2470,8 @@ ep3_governor_yearly.3020 = {
NOT = {
root = { is_cannibal_trigger = yes }
}
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = cannibal FAITH = root.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = scope:emperor.faith GENDER_CHARACTER = scope:emperor }
trait_is_criminal_in_faith_trigger = { TRAIT = trait:cannibal FAITH = root.faith GENDER_CHARACTER = scope:emperor }
}
random_character_trait = {
limit = {
@ -5386,7 +5386,7 @@ ep3_governor_yearly.3060 = {
trigger = {
scope:emperor = {
capital_county = title:c_byzantion
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
religion = religion:christianity_religion
NOT = {
has_character_flag = ep3_new_emperor_afield
}
@ -5399,7 +5399,7 @@ ep3_governor_yearly.3060 = {
NOT = {
scope:emperor = {
capital_county = title:c_byzantion
OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
religion = religion:christianity_religion
}
}
scope:emperor = {
@ -5455,7 +5455,7 @@ ep3_governor_yearly.3060 = {
left_portrait = {
character = scope:emperor
triggered_animation = {
trigger = { OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion } }
trigger = { religion = religion:christianity_religion }
animation = acknowledging # anim uses crucifix scepter
}
animation = war_over_win
@ -5466,21 +5466,12 @@ ep3_governor_yearly.3060 = {
camera = camera_event_right_forward
}
lower_right_portrait = scope:previous_holder
trigger = {
exists = scope:emperor
scope:emperor = {
is_alive = yes
}
top_liege ?= {
this = scope:emperor
}
}
immediate = {
play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Byzantine_Flavor/ep3_mx_sting_byzantineflavor_become_emperor"
tgp_save_realm_ceremonial_liege_effect = yes
if = {
limit = {
scope:ceremonial_liege = scope:emperor
scope:ceremonial_liege ?= scope:emperor
}
clear_saved_scope = ceremonial_liege
}
@ -5494,7 +5485,7 @@ ep3_governor_yearly.3060 = {
is_in_army = yes
}
#Is not at sea
location = {
location.county = {
exists = holder
}
}
@ -6896,7 +6887,6 @@ ep3_governor_yearly.3070 = {
limit = {
ep3_governor_yearly_3070_close_governor_trigger = yes
save_temporary_scope_as = temp_vassal
ep3_governor_yearly_3070_close_governor_trigger = yes
"scope:liege.capital_province.squared_distance(scope:temp_vassal.capital_province)" < 25000
}
save_scope_as = close_governor
@ -6959,10 +6949,16 @@ ep3_governor_yearly.3070 = {
trigger = {
is_landed = no
}
change_influence = medium_influence_gain
domicile = {
move_domicile = scope:liege.capital_province
custom_tooltip = {
text = domicile_move_to_province.tt
}
change_influence = medium_influence_gain
hidden_effect = {
domicile = {
move_domicile = scope:liege.capital_province
}
}
house = {
every_house_member = {
custom = custom.every_house_member

View file

@ -767,6 +767,7 @@ ep3_interactions_events.0031 = { # By Jason Cantalini
has_graphical_mena_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_building_gfx = indian_building_gfx
has_building_gfx = tibetan_building_gfx
}
}
NOT = { government_has_flag = government_is_tribal }
@ -782,6 +783,7 @@ ep3_interactions_events.0031 = { # By Jason Cantalini
has_graphical_mena_culture_group_trigger = yes
has_graphical_african_culture_group_trigger = yes
has_building_gfx = indian_building_gfx
has_building_gfx = tibetan_building_gfx
}
}
government_has_flag = government_is_tribal
@ -1549,6 +1551,13 @@ ep3_interactions_events.0111 = {
scope:actor.primary_title ?= this
scope:actor.capital_county.de_jure_liege ?= this
}
any_de_jure_county = {
holder.top_liege = scope:actor
NOR = {
scope:actor.capital_county ?= this
scope:actor.primary_title ?= this
}
}
is_noble_family_title = no
is_landless_type_title = no
}
@ -1562,16 +1571,26 @@ ep3_interactions_events.0111 = {
scope:actor.primary_title ?= this
scope:actor.capital_county.de_jure_liege ?= this
}
any_de_jure_county = {
holder.top_liege = scope:actor
NOR = {
scope:actor.capital_county ?= this
scope:actor.primary_title ?= this
}
}
is_noble_family_title = no
is_landless_type_title = no
}
add_to_list = purchased_titles
if = {
limit = { tier = tier_duchy }
every_de_jure_county = {
limit = { ep3_purchase_land_valid_county_trigger = yes }
add_to_list = purchased_titles
every_de_jure_county = {
limit = {
holder.top_liege = scope:actor
NOR = {
scope:actor.capital_county ?= this
scope:actor.primary_title ?= this
}
}
add_to_list = purchased_titles
}
}
}
@ -1594,7 +1613,13 @@ ep3_interactions_events.0111 = {
if = {
limit = { tier = tier_duchy }
every_de_jure_county = {
limit = { ep3_purchase_land_valid_county_trigger = yes }
limit = {
holder.top_liege = scope:actor
NOR = {
scope:actor.capital_county ?= this
scope:actor.primary_title ?= this
}
}
add_to_list = purchased_titles
}
}
@ -1608,6 +1633,7 @@ ep3_interactions_events.0111 = {
is_landless_type_title = no
}
save_scope_as = new_primary_title
save_scope_as = target
}
scope:actor = {
@ -1617,6 +1643,7 @@ ep3_interactions_events.0111 = {
random_character_artifact = {
limit = {
scope:recipient = { can_equip_artifact = prev }
artifact_can_be_gift_to_trigger = { RECIPIENT = scope:recipient }
}
save_scope_as = actor_artifact
}
@ -1671,6 +1698,7 @@ ep3_interactions_events.0111 = {
TITLE_LIST = purchased_titles
TYPE = granted
REASON = flag:purchased
ENNOBLED_ADVENTURER = flag:yes
}
}
scope:actor = {
@ -2025,6 +2053,34 @@ ep3_interactions_events.0111 = {
}
}
#Refuse all for 5 years
option = {
name = ep3_interactions_events.0111.refuse_5_years
scope:actor = {
send_interface_toast = {
left_icon = scope:actor
right_icon = scope:recipient
title = ep3_interactions_events.0111.refuse
scope:actor = {
add_opinion = {
target = scope:recipient
modifier = rejected_hiring_as_mercenaries
}
}
}
}
custom_tooltip = ep3_interactions_events.0111.refuse_5_years.tt
add_character_flag = {
flag = ai_hire_blocker
years = 5
}
ai_chance = {
base = 0
}
}
#Refuse
option = {
name = ep3_interactions_events.0111.f
@ -2110,6 +2166,7 @@ ep3_interactions_events.0112 = {
TITLE_LIST = purchased_titles
TYPE = granted
REASON = flag:purchased
ENNOBLED_ADVENTURER = flag:yes
}
# Extra purchase land specific
scope:actor = {
@ -2179,7 +2236,10 @@ ep3_interactions_events.0112 = {
add_defender = scope:recipient
}
scope:recipient = {
add_character_flag = joined_as_mercenary
set_variable = {
name = joined_as_mercenary
value = scope:actor
}
}
ai_chance = {
@ -2373,7 +2433,10 @@ ep3_interactions_events.0112 = {
add_defender = scope:recipient
}
scope:recipient = {
add_character_flag = joined_as_mercenary
set_variable = {
name = joined_as_mercenary
value = scope:actor
}
}
ai_chance = {
base = 1000
@ -2436,11 +2499,11 @@ ep3_interactions_events.0121 = {
limit = {
is_alive = yes
}
save_temporary_scope_as = laamp_temp
save_scope_as = laamp_temp
scope:employer = {
pay_treasury_or_gold = {
target = prev
value = ep3_hire_laamp_mercs_payment_value
value = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
}
if = {
@ -2475,16 +2538,16 @@ ep3_interactions_events.0121 = {
limit = {
is_alive = yes
}
save_temporary_scope_as = laamp_temp
save_temporary_scope_as = laamp_temp_b
save_scope_value_as = {
name = war_contribution_value
value = "scope:war.war_contribution(scope:laamp_temp)"
value = "scope:war.war_contribution(scope:laamp_temp_b)"
}
scope:employer = {
pay_treasury_or_gold = {
target = prev
value = {
add = ep3_hire_laamp_mercs_payment_value
add = scope:laamp_temp_b.ep3_hire_laamp_mercs_payment_value
divide = 2
}
}
@ -2625,7 +2688,7 @@ ep3_interactions_events.0122 = {
scope:employer = {
pay_treasury_or_gold = {
target = prev
value = ep3_hire_laamp_mercs_payment_value
value = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
}
}
}
@ -2636,7 +2699,7 @@ ep3_interactions_events.0122 = {
pay_treasury_or_gold = {
target = prev
value = {
add = ep3_hire_laamp_mercs_payment_value
add = scope:laamp_temp.ep3_hire_laamp_mercs_payment_value
divide = 2
}
}
@ -2899,10 +2962,10 @@ ep3_interactions_events.0500 = {
show_as_unavailable = { always = yes }
custom_description_no_bullet = {
text = evict_adventurer_consequences_tt
object = scope:recipient
subject = scope:actor
object = scope:actor
subject = scope:recipient
}
custom_tooltip = evict_adventurer_casus_belli_tt
scope:actor = { custom_tooltip = evict_adventurer_casus_belli_tt }
show_as_tooltip = {
reverse_add_opinion = {
target = scope:actor
@ -2918,17 +2981,20 @@ ep3_interactions_events.0500 = {
}
custom_description_no_bullet = {
text = evict_adventurer_consequences_tt
object = scope:recipient
subject = scope:actor
object = scope:actor
subject = scope:recipient
}
custom_tooltip = evict_adventurer_forced_tt
custom_tooltip = evict_adventurer_forced_tt.part_2
scope:actor = { custom_tooltip = evict_adventurer_casus_belli_tt }
show_as_tooltip = {
reverse_add_opinion = {
target = scope:actor
modifier = eviction_ignored_opinion
}
}
scope:actor = {
custom_tooltip = evict_adventurer_forced_tt
custom_tooltip = evict_adventurer_forced_tt.part_2
}
}
after = { trigger_event = ep3_interactions_events.0502 }
@ -3006,7 +3072,7 @@ ep3_interactions_events.0501 = {
interaction = imprison_interaction
actor = scope:expeller
recipient = scope:adventurer
execute_threshold = decline
send_threshold = decline
}
}
}
@ -4284,9 +4350,7 @@ ep3_interactions_events.0610 = {
ordered_succession_appointment_investors = {
candidate = root
limit = {
NOT = {
house ?= root.house
}
NOT = { house ?= root.house }
is_alive = yes
is_imprisoned = no
NOR = {
@ -4299,34 +4363,18 @@ ep3_interactions_events.0610 = {
}
if = {
limit = {
NOT = {
exists = scope:new_landed_admin
}
NOT = { exists = scope:new_landed_admin }
}
save_scope_as = new_landed_admin
}
if = {
limit = {
scope:recipient = {
top_liege != this
}
}
scope:recipient.top_liege = {
save_scope_as = emperor
}
limit = { scope:recipient.top_liege != this }
scope:recipient.top_liege = { save_scope_as = emperor }
}
else = {
scope:recipient = {
save_scope_as = emperor
}
}
show_as_tooltip = {
get_title = primary_title
domicile = {
add_domicile_building = estate_main_01
}
scope:recipient = { save_scope_as = emperor }
}
show_as_tooltip = { get_title = primary_title }
}
#I'm a new kinda landless now

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,328 +0,0 @@
namespace = ep3_laamp_flavor_oltner
scripted_trigger suitable_pool_marriage_trigger = {
save_temporary_scope_as = pool_marriage_target
is_physically_able_adult = yes
allowed_to_marry_character_gender_trigger = { CHARACTER = $FOLLOWER_TARGET$ }
$FOLLOWER_TARGET$ ?= { allowed_to_marry_character_gender_trigger = { CHARACTER = prev } }
are_characters_sensible_lovers_trigger = { INSTIGATING_LOVER = $FOLLOWER_TARGET$ TARGET_OF_LOVE = scope:pool_marriage_target }
is_married = no
can_marry_trigger = yes
is_concubine = no
NOT = {
exists = betrothed
}
has_no_particular_noble_roots_trigger = yes
}
scripted_trigger suitable_follower_marriage_character_trigger = {
is_physically_able_adult = yes
this != root
is_married = no
can_marry_trigger = yes
is_concubine = no
age <= 50
health >= fine_health
NOR = {
house = root.house
is_close_family_of = root
exists = betrothed
has_relation_rival = root
}
save_temporary_scope_as = entourage_member
any_pool_character = {
province = root.location
age <= 40
health >= fine_health
suitable_pool_marriage_trigger = { FOLLOWER_TARGET = scope:entourage_member }
}
}
# A Follower's Heart
ep3_laamp_flavor_oltner.0001 = {
type = character_event
title = ep3_laamp_flavor_oltner.3001.t
desc = ep3_laamp_flavor_oltner.3001.desc
theme = marriage
override_background = { reference = market_scope }
left_portrait = {
character = scope:entourage_to_marry_2
animation = beg
camera = camera_event_very_left
}
right_portrait = {
character = scope:marriage_material
animation = dismissal
camera = camera_event_right_pointing_left
}
cooldown = { years = 10 }
trigger = {
has_government = landless_adventurer_government
location = {
has_holding = yes
}
any_courtier = {
suitable_follower_marriage_character_trigger = yes
}
}
immediate = {
save_scope_as = root_char
random_courtier = {
limit = {
suitable_follower_marriage_character_trigger = yes
}
save_scope_as = entourage_to_marry_2
}
random_pool_character = {
province = root.location
limit = {
suitable_pool_marriage_trigger = { FOLLOWER_TARGET = scope:entourage_to_marry_2 }
}
save_scope_as = marriage_material
}
location.county.title_province = { save_scope_as = background_market_scope }
}
option = { # Tell them to pay it themselves
name = ep3_laamp_flavor_oltner.0001.a
trigger = {
scope:entourage_to_marry_2.gold >= {
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
}
}
scope:entourage_to_marry_2 = {
remove_short_term_gold = {
add = scope:marriage_material.sum_of_all_skills_value
add = scope:marriage_material.prowess
}
}
add_courtier = scope:marriage_material
scope:entourage_to_marry_2 = {
if = {
limit = {
is_female = yes
is_lowborn = no
scope:marriage_material = {
is_lowborn = yes
}
}
marry_matrilineal = scope:marriage_material
}
else_if = {
limit = {
is_male = yes
is_lowborn = yes
scope:marriage_material = {
is_lowborn = no
}
}
marry_matrilineal = scope:marriage_material
}
else = {
marry = scope:marriage_material
}
}
ai_chance = {
base = 100
}
}
option = { # Pay the dowry
name = ep3_laamp_flavor_oltner.0001.b
stress_impact = {
generous = massive_stress_impact_loss
greedy = medium_stress_impact_gain
}
remove_short_term_gold = {
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
}
add_courtier = scope:marriage_material
scope:entourage_to_marry_2 = {
if = {
limit = {
is_female = yes
is_lowborn = no
scope:marriage_material = {
is_lowborn = yes
}
}
marry_matrilineal = scope:marriage_material
}
else_if = {
limit = {
is_male = yes
is_lowborn = yes
scope:marriage_material = {
is_lowborn = no
}
}
marry_matrilineal = scope:marriage_material
}
else = {
marry = scope:marriage_material
}
progress_towards_friend_effect = {
CHARACTER = root
OPINION = 0
REASON = friend_helped_me_marry
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 50
}
}
scope:marriage_material = { save_scope_as = relationship_reason_involved_character }
clear_saved_scope = relationship_reason_involved_character
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = greedy
gold <= {
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
multiply = 2
}
}
}
}
}
option = { # Convince them to run away with you
name = ep3_laamp_flavor_oltner.0001.c
skill = intrigue
stress_impact = {
generous = medium_stress_impact_gain
}
duel = {
skill = intrigue
value = high_skill_rating
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
desc = ep3_laamp_flavor_oltner.0001.c.success
send_interface_toast = {
title = ep3_laamp_flavor_oltner.0001.c.success
left_icon = scope:entourage_to_marry_2
right_icon = scope:marriage_material
add_courtier = scope:marriage_material
scope:entourage_to_marry_2 = {
if = {
limit = {
is_female = yes
is_lowborn = no
scope:marriage_material = {
is_lowborn = yes
}
}
marry_matrilineal = scope:marriage_material
}
else_if = {
limit = {
is_male = yes
is_lowborn = yes
scope:marriage_material = {
is_lowborn = no
}
}
marry_matrilineal = scope:marriage_material
}
else = {
marry = scope:marriage_material
}
progress_towards_friend_effect = {
CHARACTER = root
OPINION = 0
REASON = friend_helped_me_marry
}
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 50
}
}
scope:marriage_material = { save_scope_as = relationship_reason_involved_character }
clear_saved_scope = relationship_reason_involved_character
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
desc = ep3_laamp_flavor_oltner.0001.c.failure
send_interface_toast = {
title = ep3_laamp_flavor_oltner.0001.c.failure
left_icon = scope:entourage_to_marry_2
right_icon = scope:marriage_material
scope:entourage_to_marry_2 = {
add_stress = medium_stress_gain
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -30
}
}
}
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
has_trait = generous
}
}
}
option = { # Ignore your follower
name = ep3_laamp_flavor_oltner.0001.d
stress_impact = {
compassionate = medium_stress_impact_gain
generous = medium_stress_impact_gain
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
chaste = minor_stress_impact_loss
shy = minor_stress_impact_loss
}
scope:entourage_to_marry_2 = {
add_opinion = {
target = root
modifier = heartbroken_opinion
opinion = -30
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = generous
}
}
}
}
}

File diff suppressed because it is too large Load diff

View file

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

View file

@ -3405,6 +3405,7 @@ ep3_story_cycle_admin_eunuch.2060 = {
court_position_generator_effect = {
VAR = target
EMPLOYER = root
ONLY_EMPTY = no
}
}
}
@ -3520,6 +3521,7 @@ ep3_story_cycle_admin_eunuch.2061 = {
court_position_generator_effect = {
VAR = target
EMPLOYER = root
ONLY_EMPTY = no
}
}
}

View file

@ -526,6 +526,7 @@ grand_ambitions.0003 = {
immediate = {
# Create Adventurer
save_scope_as = adventurer
clear_saved_scope = lost_primary_title
hidden_effect = {
# Plus for our memory variable.
scope:story.var:target_title = { save_scope_as = lost_primary_title }

File diff suppressed because it is too large Load diff

View file

@ -47,6 +47,10 @@ ep3_story_cycle_violet_poet.0001 = {
modifier = double_moon_modifier
save_scope_as = double_moon_book
}
random_owned_story = {
type = story_cycle_violet_poet
set_variable = { name = artifact value = scope:double_moon_book }
}
hidden_effect = {
scope:double_moon_book = {
set_artifact_rarity = illustrious

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -416,7 +416,7 @@ fp1_yearly.0001 = {
scripted_trigger offensive_courtier_candidate_trigger = {
#Filter out the basic miscs.
is_available_ai_adult = yes
#Have some commited some genuine malfeasance, or just be irritating to at least some people.
#Have committed some genuine malfeasance, or just be irritating to at least some people.
OR = {
#Having committed murder by poison is a solid way to become a nithing; this might be a secret, but we assume local rumours about a shady buyer of poisons abound...
has_character_flag = murdered_by_poison
@ -2124,6 +2124,12 @@ fp1_yearly.0041 = {
add_courtier = scope:explorer
#Sort conversion.
set_character_faith_with_conversion = scope:explorer.faith
if = {
limit = {
scope:explorer.faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
#Get scope:sponsoring_liege as a friend, if possible.
if = {
limit = {
@ -14221,6 +14227,12 @@ fp1_yearly.1012 = {
#Perform the conversion.
set_character_faith_with_conversion = scope:ms_faith
if = {
limit = {
scope:ms_faith = { has_doctrine = doctrine_monotheist }
}
custom_description_no_bullet = { text = mandala_monotheist_warning_tt }
}
#Recoup lost piety, and get paid a little extra.
custom_tooltip = fp1_yearly.1012.a.recoup_lost_piety.tt
@ -14992,8 +15004,9 @@ fp1_yearly.1061 = {
# Germanic faith.
religion = religion:germanic_religion
# Shouldn't ever happen, but just in case, exempt sky burials so that the character is never buried twice.
NOT = {
NOR = {
faith = { has_doctrine_parameter = sky_burials_active }
has_dead_character_variable = body_has_been_disposed
}
# And we shouldn't really be erecting glorious mounds to long lives that were actually cut short too early.
age >= 30
@ -15196,6 +15209,10 @@ fp1_yearly.1062 = {
is_available_even_at_war_adult = yes
# Must still be the same faith as scope:ship_funeral_candidate, for ease of loc and such.
faith = scope:ship_funeral_candidate.faith
# Check that they haven't been buried already (e.g. via funeral activity)
scope:ship_funeral_candidate = {
NOT = { has_dead_character_variable = body_has_been_disposed }
}
}
# A small stone ship.
@ -16072,6 +16089,11 @@ fp1_yearly.1063 = {
is_available_even_at_war_adult = yes
# Must still be the same faith as scope:ship_funeral_candidate, for ease of loc and such.
faith = scope:ship_funeral_candidate.faith
# Check that they haven't been buried already (e.g. via funeral activity)
scope:ship_funeral_candidate = {
NOT = { has_dead_character_variable = body_has_been_disposed }
}
}
on_trigger_fail = {
@ -16325,6 +16347,14 @@ fp1_yearly.1063 = {
}
after = {
scope:ship_funeral_candidate = {
set_dead_character_variable = {
name = body_has_been_disposed
value = yes
years = 5
}
}
# Clear up remaining values on the character.
fp1_funeral_longship_clear_variables_effect = yes
}

File diff suppressed because it is too large Load diff

View file

@ -1,552 +0,0 @@
namespace = fp2_struggle
######################################
# EL CID'S BIZARRE ADVENTURE SYSTEM
# By Hugo Cortell
######################################
fp2_struggle.2045 = {
hidden = yes
trigger = {
is_landless_adventurer = no
}
immediate = {
if = { # Startup changes (give the cid his full nickname when he starts adventuring)
limit = { NOT = { has_character_flag = has_already_begun_travelling } }
remove_nickname = yes
give_nickname = nick_the_cid_campeador
add_character_flag = has_already_begun_travelling # Prevents yearly pulse from stacking up requests
add_character_flag = blocked_from_leaving # Prevents el cid from vacationing in far away lands
}
if = {
limit = { NOT = { has_character_flag = finished_el_cids_travels } } # In case several requests for the event are stacked up
if = { # Being a guest is used as a boolean to check if the character is in an "evaluation" phase or already in a court. DO NOT USE THE GUEST SYSTEM FOR THIS.
limit = {
OR = {
is_pool_guest = yes
is_pool_character = yes
is_foreign_court_guest = yes
}
}
random_county_in_region = { # Naturally biased in favor of larger states
limit = { exists = holder.liege }
weight = {
base = 1
modifier = {
add = 10
holder.liege = { has_relation_friend = root }
}
modifier = {
add = 30
holder.liege = { has_relation_best_friend = root }
}
compare_modifier = {
value = holder.prestige_level
multiplier = 1.5
}
}
region = world_europe_west_iberia # Locks el cid's forced travels to iberia
holder.liege = { trigger_event = fp2_struggle.2051 }
}
}
else = {
if = {
limit = { exists = liege }
liege = { trigger_event = fp2_struggle.2050 } # This is you, you get the event, while el cid gets the "system event"
}
else = {
employer = { trigger_event = fp2_struggle.2050 } # ditto
}
}
}
}
}
#############################################################
# Unease About El Sidi
# By The Content Design Team (And scripted by Hugo Cortell)
#############################################################
scripted_trigger el_cid_too_important_trigger = {
OR = {
any_extended_family_member = { this = scope:fp2_2050_el_cid }
scope:fp2_2050_el_cid = { is_vassal_of = ROOT }
has_relation_best_friend = scope:fp2_2050_el_cid
is_spouse_of = scope:fp2_2050_el_cid
}
}
fp2_struggle.2050 = {
type = character_event
title = {
random_valid = {
triggered_desc = { # Muslim Titles
trigger = { religion = religion:islam_religion }
desc = {
random_valid = {
desc = fp2_struggle.2050.t_muslim_one
desc = fp2_struggle.2050.t_muslim_two
desc = fp2_struggle.2050.t_muslim_three
desc = fp2_struggle.2050.t_muslim_four
}
}
}
triggered_desc = { # Generic (Christian, nickname-like) Titles
trigger = { NOT = { religion = religion:islam_religion } }
desc = {
random_valid = {
desc = fp2_struggle.2050.t_generic_one
desc = fp2_struggle.2050.t_generic_two
desc = fp2_struggle.2050.t_generic_three
desc = fp2_struggle.2050.t_generic_four
}
}
}
}
}
desc = { # See immediate for flags
first_valid = {
triggered_desc = {
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:generic_court }
desc = fp2_struggle.2050.desc_court
}
triggered_desc = {
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:jelly_knights }
desc = fp2_struggle.2050.desc_knights
}
triggered_desc = {
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:upset_nobles }
desc = fp2_struggle.2050.desc_nobles
}
triggered_desc = {
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:faith_discomfort }
desc = fp2_struggle.2050.desc_faith
}
desc = board_games.0001.desc.i_am_winning.trait.rowdy # Theoretically impossible to trigger, but if something breaks, players will see this and report it for sure
}
}
theme = corruption
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:fp2_2050_el_cid
animation = throne_room_two_handed_passive_1
}
immediate = {
character:107590 = { save_scope_as = fp2_2050_el_cid }
random_list = { # Spin the wheel to decide who and why wishes ill on el cid
10 = { # Generic "the court thinks he is bad"
save_scope_value_as = {
name = fp2_2050_reason_for_kicking_out_el_cid
value = flag:generic_court
}
}
10 = { # Your knights are all sore losers
modifier = {
add = 30
any_knight = {
OR = {
has_relation_rival = scope:fp2_2050_el_cid
has_relation_nemesis = scope:fp2_2050_el_cid
}
}
}
save_scope_value_as = {
name = fp2_2050_reason_for_kicking_out_el_cid
value = flag:jelly_knights
}
}
10 = { # Nobles dislike upstart poor people
modifier = {
add = 30
any_vassal = {
OR = {
has_relation_rival = scope:fp2_2050_el_cid
has_relation_nemesis = scope:fp2_2050_el_cid
}
}
}
save_scope_value_as = {
name = fp2_2050_reason_for_kicking_out_el_cid
value = flag:upset_nobles
}
}
10 = { # Generic faith concerns from your bishop
save_scope_value_as = {
name = fp2_2050_reason_for_kicking_out_el_cid
value = flag:faith_discomfort
}
}
}
}
option = { # Family, Friend or Vassal
name = fp2_struggle.2050.a
trigger = { el_cid_too_important_trigger = yes }
hidden_effect = {
scope:fp2_2050_el_cid = { add_character_flag = finished_el_cids_travels } # At this point we can imagine that this character has settled, this stops the cycle to prevent spam
}
custom_tooltip = fp2_struggle.2050.a.serve_tooltip
send_interface_toast = {
type = event_toast_effect_good
title = fp2_struggle.2050.a.notif.t
right_icon = scope:fp2_2050_el_cid
reverse_add_opinion = {
target = scope:fp2_2050_el_cid
modifier = stood_by_me_opinion
opinion = 10
years = 20
}
}
stress_impact = {
fickle = minor_stress_impact_gain
}
ai_chance = { base = 1000 }
}
option = { # No, I stand by my knight and he can stay!
name = fp2_struggle.2050.b
trigger = {
is_ai = no
NOT = { scope:fp2_2050_el_cid = { is_vassal_of = ROOT } }
}
custom_tooltip = fp2_struggle.2050.a.serve_tooltip
send_interface_toast = {
type = event_toast_effect_good
title = fp2_struggle.2050.a.notif.t
right_icon = scope:fp2_2050_el_cid
if = {
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:generic_court }
add_character_modifier = {
modifier = fp2_kept_accused_traitor_in_court_modifier
years = 10
}
}
else_if = {
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:jelly_knights }
add_character_modifier = {
modifier = fp2_kept_op_knight_in_court_modifier
years = 10
}
}
else_if = {
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:upset_nobles }
add_character_modifier = {
modifier = fp2_kept_upstart_knight_in_court_modifier
years = 10
}
}
else_if = {
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:faith_discomfort }
add_character_modifier = {
modifier = fp2_kept_godless_mercenary_in_court_modifier
years = 10
}
}
reverse_add_opinion = {
target = scope:fp2_2050_el_cid
modifier = stood_by_me_opinion
opinion = 10
years = 20
}
scope:fp2_2050_el_cid = {
trigger_event = {
id = fp2_struggle.2045
years = { 4 12 }
}
}
}
stress_impact = {
fickle = minor_stress_impact_gain
}
}
option = { # Okay, please do not give me malus
name = fp2_struggle.2050.c
trigger = {
NOT = { scope:fp2_2050_el_cid = { is_vassal_of = ROOT } }
}
send_interface_toast = {
type = event_toast_effect_bad
title = fp2_struggle.2051.t
right_icon = scope:fp2_2050_el_cid
scope:fp2_2050_el_cid = {
move_to_pool = yes
trigger_event = {
id = fp2_struggle.2045
days = { 1 4 }
}
}
}
stress_impact = {
generous = minor_stress_impact_gain
}
ai_chance = { base = 1 }
}
option = { # Vanish el cid, even though he is your vassal (suggested by Max)
name = fp2_struggle.2050.c
trigger = {
is_ai = no
scope:fp2_2050_el_cid = { is_vassal_of = ROOT }
}
# The only reason to ever select this option is to gain those "repossessed" lands, but it is very mean.
# It will give you tyranny, but it won't directly anger your vassals as they are *narratively* the reason why this is happening.
# The primary reason this exists is to prevent ludonarrative dissonance with the event's description. It is less resource intensive than making new loc.
# We set the tyranny and opinion loss based on how much was lost (Placed outside the toast to prevent clutter)
add_tyranny = {
value = medium_tyranny_gain
multiply = scope:fp2_2050_el_cid.primary_title.tier
}
if = {
limit = { can_set_relation_rival_trigger = { CHARACTER = scope:fp2_2050_el_cid } }
set_relation_rival = scope:fp2_2050_el_cid
}
if = { # This is not out of order, it is WAD. If can_set_relation_rival_trigger fails, you just lose a friend but not gain a rival.
limit = { has_relation_friend = scope:fp2_2050_el_cid }
remove_relation_friend = scope:fp2_2050_el_cid
}
if = {
limit = { scope:fp2_2050_el_cid.primary_title.tier < tier_kingdom }
scope:fp2_2050_el_cid = {
add_opinion = {
modifier = betrayed_me_opinion
target = root
opinion = -100
}
}
}
else = {
scope:fp2_2050_el_cid = {
add_opinion = {
modifier = betrayed_me_opinion
target = root
opinion = -200
}
}
}
create_title_and_vassal_change = { # This tells the engine to start paying closer attention to title changes (and not butt in)
type = revoked
save_scope_as = change
}
scope:fp2_2050_el_cid = {
every_held_title = {
change_title_holder = {
holder = root
change = scope:change
}
}
}
resolve_title_and_vassal_change = scope:change # Tells the engine that it is safe to go about its buisness with titles
show_as_tooltip = { scope:fp2_2050_el_cid = { move_to_pool = yes } } # Just jomini things~
hidden_effect = { # Prevents rendering of toast on option highlight
send_interface_toast = {
type = event_toast_effect_bad
title = fp2_struggle.2051.t
right_icon = scope:fp2_2050_el_cid
show_as_tooltip = { # Condensed version to fit into the toast
if = {
limit = { scope:fp2_2050_el_cid.primary_title.tier > tier_duchy }
scope:fp2_2050_el_cid = {
if = {
limit = { has_relation_nemesis = ROOT }
set_relation_nemesis = ROOT
}
add_opinion = {
modifier = betrayed_me_opinion
target = root
opinion = -200
}
}
}
else = {
if = {
limit = { has_relation_rival = ROOT }
set_relation_rival = ROOT
}
add_opinion = {
modifier = betrayed_me_opinion
target = root
opinion = -100
}
}
}
# Standard stuff
scope:fp2_2050_el_cid = {
move_to_pool = yes
trigger_event = {
id = fp2_struggle.2045
days = { 1 4 }
}
}
}
}
stress_impact = { # This kind of action comes with quite a bit of stress
generous = minor_stress_impact_gain
brave = medium_stress_impact_gain
forgiving = major_stress_impact_gain
gregarious = medium_stress_impact_gain
honest = minor_stress_impact_gain
humble = medium_stress_impact_gain
just = major_stress_impact_gain
trusting = medium_stress_impact_gain
compassionate = major_stress_impact_gain
august = minor_stress_impact_gain
gallant = medium_stress_impact_gain
}
}
}
############################################################
# El Cid Arrives At Your Court
# By The Content Design Team (And scripted by Hugo Cortell)
############################################################
fp2_struggle.2051 = {
type = character_event
title = fp2_struggle.2051.t
desc = fp2_struggle.2051.desc
theme = vassal
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:fp2_2050_el_cid
animation = throne_room_one_handed_passive_1
}
immediate = {
character:107590 = { save_scope_as = fp2_2050_el_cid }
add_visiting_courtier = scope:fp2_2050_el_cid
}
option = { # You will enjoy a high position at my court!
name = fp2_struggle.2051.a
send_interface_toast = {
type = event_toast_effect_good
title = fp2_struggle.2050.a.notif.t
right_icon = scope:fp2_2050_el_cid
pay_treasury_or_gold = {
target = scope:fp2_2050_el_cid
value = medium_treasury_or_gold_value
}
add_courtier = scope:fp2_2050_el_cid
}
if = {
limit = { exists = cp:councillor_marshal }
fire_councillor = cp:councillor_marshal
}
assign_councillor_type = {
type = councillor_marshal
target = scope:fp2_2050_el_cid
}
scope:fp2_2050_el_cid = {
add_opinion = {
target = root
modifier = hired_me_opinion
opinion = 20
}
add_opinion = {
target = root
modifier = given_luxuries_opinion
opinion = 10
}
trigger_event = {
id = fp2_struggle.2045
years = { 4 12 }
}
}
trigger = { is_ai = no }
}
option = { # Welcome or whatever
name = fp2_struggle.2051.b
send_interface_toast = {
type = event_toast_effect_good
title = fp2_struggle.2050.a.notif.t
right_icon = scope:fp2_2050_el_cid
pay_treasury_or_gold = {
target = scope:fp2_2050_el_cid
value = minor_treasury_or_gold_value
}
add_courtier = scope:fp2_2050_el_cid
}
scope:fp2_2050_el_cid = {
trigger_event = {
id = fp2_struggle.2045
years = { 4 10 }
}
}
ai_chance = { base = 65 }
}
option = { # Away with you vile beggar!
name = fp2_struggle.2051.c
send_interface_toast = {
type = event_toast_effect_bad
title = fp2_struggle.2051.t
right_icon = scope:fp2_2050_el_cid
custom_tooltip = fp2_struggle.2050.c.notif
scope:fp2_2050_el_cid = {
move_to_pool = yes
trigger_event = {
id = fp2_struggle.2045
days = { 1 4 }
}
}
}
ai_chance = { base = 45 }
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -554,7 +554,7 @@ fp2_struggle.0900 = { # Hostility
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
fp2_struggle_ending_involved_list_effect = yes
give_nickname = nick_the_conquistador
dynasty = { add_dynasty_prestige = 10000 }
}
@ -838,7 +838,7 @@ fp2_struggle.0901 = { # Compromise
value = yes
}
# Add all involved rulers to a list, for ping event
fp2_stuggle_ending_involved_list_effect = yes
fp2_struggle_ending_involved_list_effect = yes
}
# Ok
@ -993,7 +993,7 @@ fp2_struggle.0902 = { # Conciliation
value = yes
}
# Add all involved rulers to a list, for ping event
fp2_stuggle_ending_involved_list_effect = yes
fp2_struggle_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
@ -1763,7 +1763,7 @@ fp2_struggle.1001 = {
fp2_struggle.1001_weird_option_traits = no
trait_is_shunned_or_criminal_in_faith_trigger = {
FAITH = faith
TRAIT = adulterer
TRAIT = trait:adulterer
GENDER_CHARACTER = dummy_female
}
}
@ -2054,6 +2054,7 @@ scripted_trigger neighboring_ruler_proper_culture_trigger = {
culture = culture:baranis
culture = culture:butr
culture = culture:levantine
culture = culture:sephardi
}
}
@ -4093,7 +4094,10 @@ fp2_struggle.1020 = {
every_close_or_extended_family_member = {
custom = all_family_members
if = {
limit = { is_ai = yes }
limit = {
is_ai = yes
this != root
}
add_opinion = {
target = root
opinion = -20
@ -6178,8 +6182,8 @@ fp2_struggle.2003 = {
add_prestige = medium_prestige_loss
scope:fp2_2003_county_town = {
add_county_modifier = {
scope:fp2_2003_county_town.title_province = {
add_province_modifier = {
modifier = recently_looted_modifier
years = 5
}
@ -6312,9 +6316,11 @@ fp2_struggle.2003 = {
modifier = fp2_local_garrison_slaughtered_modifier
years = 5
}
add_county_modifier = {
modifier = recently_looted_modifier
years = 5
title_province = {
add_province_modifier = {
modifier = recently_looted_modifier
years = 5
}
}
}
}
@ -6331,9 +6337,11 @@ fp2_struggle.2003 = {
years = 5
}
hidden_effect = {
add_county_modifier = {
modifier = recently_looted_modifier
years = 5
title_province = {
add_province_modifier = {
modifier = recently_looted_modifier
years = 5
}
}
}
}
@ -6468,9 +6476,11 @@ fp2_struggle.2003 = {
title = fp2_struggle.2003.e.notif.a
scope:fp2_2003_county_town = {
add_county_modifier = {
modifier = recently_looted_modifier
years = 5
title_province = {
add_province_modifier = {
modifier = recently_looted_modifier
years = 5
}
}
}
}
@ -7360,13 +7370,13 @@ fp2_struggle.2006 = {
if = {
limit = {
trait_is_criminal_in_faith_trigger = {
TRAIT = witch
TRAIT = 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
TRAIT = trait:witch
GENDER_CHARACTER = scope:fp2_2006_vassal_in_crisis
FAITH = scope:fp2_2006_foreign_faith
}
@ -10128,12 +10138,14 @@ fp2_struggle.2014 = {
any_character_artifact = {
NOT = { has_variable = historical_unique_artifact }
artifact_high_rarity_trigger = yes
artifact_can_be_gift_to_trigger = { RECIPIENT = root }
}
}
random_character_artifact = {
limit = {
NOT = { has_variable = historical_unique_artifact }
artifact_high_rarity_trigger = yes
artifact_can_be_gift_to_trigger = { RECIPIENT = root }
}
set_owner = root # If it breaks, use set_artifact_owner
}
@ -10198,12 +10210,14 @@ fp2_struggle.2014 = {
any_character_artifact = {
NOT = { has_variable = historical_unique_artifact }
artifact_low_rarity_trigger = yes
artifact_can_be_gift_to_trigger = { RECIPIENT = root }
}
}
random_character_artifact = {
limit = {
NOT = { has_variable = historical_unique_artifact }
artifact_low_rarity_trigger = yes
artifact_can_be_gift_to_trigger = { RECIPIENT = root }
}
set_owner = root
}

View file

@ -5,7 +5,7 @@
## 1001 - 1001 Chess Two by Daniel Moore
## 1002 - 1002 Compromising Position by Daniel Moore
## 1003 - 1003 Tilting at Giants by Daniel Moore
## 1004 - 1004 The Hawk of Quarysh by Daniel Moore
## 1004 - 1004 The Hawk of Quraysh by Daniel Moore
## 1005 - 1005 Lost Viking by Daniel Moore
## 1006 - 1007 Viking Cheese by Daniel Moore
## 1008 - 1008 Consuming the Cheese by Daniel Moore
@ -364,7 +364,7 @@ fp2_yearly.1003 = {
}
###################################
# The Hawk of Quarysh
# The Hawk of Quraysh
# By Daniel Moore
###################################
fp2_yearly.1004 = {
@ -429,7 +429,7 @@ fp2_yearly.1004 = {
option = { #How he inspired soldiers
name = fp2_yearly.1004.a
add_character_modifier = {
modifier = fp2_hawk_of_quarysh_martial_modifier
modifier = fp2_hawk_of_quraysh_martial_modifier
years = 10
}
@ -445,7 +445,7 @@ fp2_yearly.1004 = {
option = { #How diplomatic he was
name = fp2_yearly.1004.b
add_character_modifier = {
modifier = fp2_hawk_of_quarysh_diplomacy_modifier
modifier = fp2_hawk_of_quraysh_diplomacy_modifier
years = 10
}
@ -5915,6 +5915,709 @@ fp2_yearly.8006 = {
# Conversos and Jewish events
# By James Beaumont
###################################
scripted_trigger valid_grantable_county_barony = {
title_province = {
geographical_region = world_europe_west_iberia
}
title_province = { has_building_or_higher = common_tradeport_01 }
is_holy_site = no
county.holder = {
any_held_title = { # Make sure it isn't revoking their last title
title_tier = county
count >= 2
}
}
}
fp2_yearly.9000 = {
type = character_event
title = fp2_james.0001.t
desc = fp2_james.0001.desc
theme = secret
override_background = {
reference = docks
}
left_portrait = {
character = root
animation = personality_rational
}
right_portrait = {
character = scope:fp2_james_0001_jewish_trader
animation = personality_bold
}
trigger = {
NOT = { root.religion = religion:judaism_religion }
highest_held_title_tier >= tier_county
any_sub_realm_barony = {
valid_grantable_county_barony = yes
}
}
immediate = {
random_sub_realm_barony = {
limit = {
valid_grantable_county_barony = yes
}
save_scope_as = fp2_james_0001_thriving_community
}
create_character = {
template = spanish_jewish_merchant_character
location = root.capital_province
save_scope_as = fp2_james_0001_jewish_trader
}
}
option = {
name = fp2_james.0001.a
scope:fp2_james_0001_thriving_community.county = {
add_county_modifier = {
modifier = fp2_jewish_community_denied_modifier
years = 10
}
}
scope:fp2_james_0001_jewish_trader.culture = {
change_cultural_acceptance = {
target = root.culture
value = low_negative_culture_acceptance
desc = cultural_acceptance_gain_conversos_tolerance
}
}
stress_impact = {
callous = minor_stress_impact_loss
greedy = minor_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = -0.5
ai_greed = -0.5
ai_zeal = 1.5
}
}
}
option = {
name = fp2_james.0001.b
trigger = {
NOT = { # Prevent all of Iberia from converting
any_county_in_region = {
region = world_europe_west_iberia
culture = culture:sephardi
}
}
}
create_title_and_vassal_change = {
type = granted
save_scope_as = change
add_claim_on_loss = no
}
scope:fp2_james_0001_thriving_community.county = {
change_title_holder = {
holder = scope:fp2_james_0001_jewish_trader
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
hidden_effect = {
add_opinion = {
target = scope:fp2_james_0001_jewish_trader
modifier = received_title_county
}
}
scope:fp2_james_0001_thriving_community.county = {
add_county_modifier = {
modifier = fp2_thriving_jewish_community_modifier
years = 10
}
set_county_culture = scope:fp2_james_0001_jewish_trader.culture
set_county_faith = scope:fp2_james_0001_jewish_trader.faith
}
scope:fp2_james_0001_jewish_trader.culture = {
change_cultural_acceptance = {
target = root.culture
value = medium_positive_culture_acceptance
desc = cultural_acceptance_gain_conversos_tolerance
}
}
stress_impact = {
compassionate = minor_stress_impact_loss
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = 1.5
ai_greed = 1.5
ai_zeal = -0.5
}
}
}
option = {
name = fp2_james.0001.c
scope:fp2_james_0001_thriving_community.county = {
add_county_modifier = {
modifier = fp2_thriving_jewish_community_modifier
years = 10
}
}
scope:fp2_james_0001_jewish_trader.culture = {
change_cultural_acceptance = {
target = root.culture
value = low_positive_culture_acceptance
desc = cultural_acceptance_gain_conversos_tolerance
}
}
stress_impact = {
compassionate = minor_stress_impact_loss
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = 1.5
ai_greed = 1.5
ai_zeal = -0.5
}
}
}
}
scripted_effect fp2_polish_should_heritage_israelite_get_upset_effect = {
if = {
limit = {
scope:fp2_james_0002_conversos_character = { culture = { has_cultural_pillar = heritage_israelite } }
}
scope:fp2_james_0002_conversos_character.culture = {
change_cultural_acceptance = {
target = root.culture
value = low_negative_culture_acceptance
desc = cultural_acceptance_loss_conversos_tolerance
}
}
}
}
# Suspect Conversos of secretly praciticing Judaism
fp2_yearly.9001 = {
type = character_event
title = fp2_james.0002.t
desc = fp2_james.0002.desc
theme = secret
override_background = {
reference = temple
}
left_portrait = {
character = root
animation = paranoia
}
right_portrait = {
character = scope:fp2_james_0002_conversos_character
animation = personality_cynical
}
trigger = {
root.religion = religion:christianity_religion
is_landed = yes
NOT = { faith = faith:conversos }
}
weight_multiplier = {
base = 1
modifier = {
add = 1
any_character_struggle = {
is_struggle_type = iberian_struggle
is_struggle_phase = struggle_iberia_phase_hostility
}
}
}
immediate = {
every_sub_realm_county = {
limit = {
faith = faith:conversos
holder = {
liege = { # Don't convert player-Conversos territory
OR = {
is_ai = yes
NOT = { faith = faith:conversos }
}
}
}
}
add_to_list = fp2_james_0002_conversos_county
}
# Try to find a Conversos vassal if one exists
if = {
limit = {
any_vassal = {
faith = faith:conversos
is_available_ai = yes
}
}
random_vassal = {
limit = {
faith = faith:conversos
is_available_ai = yes
}
save_scope_as = fp2_james_0002_conversos_character
}
}
# Otherwise find a pool character
else_if = {
limit = {
any_pool_character = {
province = root.capital_province
faith = faith:conversos
}
}
random_pool_character = {
province = root.capital_province
limit = {
faith = faith:conversos
}
save_scope_as = fp2_james_0002_conversos_character
}
}
# Otherwise create one
else = {
create_character = {
template = spanish_conversos_character
location = root.capital_province
save_scope_as = fp2_james_0002_conversos_character
}
}
scope:fp2_james_0002_conversos_character = {
random_list = {
50 = {
add_character_flag = is_secretly_jewish_flag
}
50 = {
}
}
}
# Get a religion for them to potentially be secretly praciticing
religion:judaism_religion = {
random_faith = {
limit = { is_mainstream_jewish_faith = yes }
save_scope_as = fp2_james_0002_jewish_faith
}
}
}
option = {
name = fp2_james.0002.a
custom_tooltip = fp2_james.0002.a.tt
hidden_effect = {
if = {
limit = {
scope:fp2_james_0002_conversos_character = { has_character_flag = is_secretly_jewish_flag }
}
send_interface_toast = {
type = event_toast_effect_good
title = fp2_james.0002.a.jewish_communities_thrive
every_in_list = {
list = fp2_james_0002_conversos_county
set_county_faith = scope:fp2_james_0002_jewish_faith
}
scope:fp2_james_0002_conversos_character = {
set_character_faith = scope:fp2_james_0002_jewish_faith
every_vassal = {
limit = {
faith = faith:conversos
is_available_ai = yes
}
set_character_faith = scope:fp2_james_0002_jewish_faith
}
}
}
}
else = {
send_interface_toast = {
type = event_toast_effect_good
title = fp2_james.0002.a.nothing_happened_toast
}
}
fp2_polish_should_heritage_israelite_get_upset_effect = yes
}
stress_impact = {
zealous = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = -0.5
ai_zeal = 1.5
}
}
}
option = {
name = fp2_james.0002.b
duel = {
skill = intrigue
target = scope:fp2_james_0002_conversos_character
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
}
desc = fp2_james.0002.b.succesful_interrogation
if = {
limit = { scope:fp2_james_0002_conversos_character = { has_character_flag = is_secretly_jewish_flag } }
send_interface_message = { # Begrudgingly added "unecessary" polish
type = event_prison_good
title = fp2_james.0002.t
right_icon = scope:fp2_james_0002_conversos_character
rightfully_imprison_character_effect = {
TARGET = scope:fp2_james_0002_conversos_character
IMPRISONER = root
}
fp2_polish_should_heritage_israelite_get_upset_effect = yes
}
}
else = {
send_interface_message = {
type = event_intrigue_bad
title = fp2_james.0002.a.offended_conversos
right_icon = scope:fp2_james_0002_conversos_character
reverse_add_opinion = {
target = scope:fp2_james_0002_conversos_character
modifier = hate_opinion
opinion = -30
}
fp2_polish_should_heritage_israelite_get_upset_effect = yes
}
}
}
50 = {
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
}
desc = fp2_james.0002.b.failed_interrogation
send_interface_message = {
type = event_intrigue_bad
title = fp2_james.0002.a.offended_conversos
right_icon = scope:fp2_james_0002_conversos_character
every_sub_realm_county = {
custom = fp2_james_0002.b.failed_interrogation.tt
limit = {
faith = {
religion = {
OR = {
this = religion:christianity_religion
this = religion:judaism_religion
}
}
}
}
add_county_modifier = {
modifier = fp2_conversos_persecution_modifier
years = 10
}
}
reverse_add_opinion = {
target = scope:fp2_james_0002_conversos_character
modifier = hate_opinion
opinion = -30
}
fp2_polish_should_heritage_israelite_get_upset_effect = yes
}
}
}
stress_impact = { compassionate = medium_stress_impact_gain }
ai_chance = {
base = 10
ai_value_modifier = {
ai_zeal = 0.5
}
}
}
option = { # Imprison the suspect without trial
name = fp2_james.0002.c
send_interface_message = {
type = event_prison_neutral
title = fp2_james.0002.t
right_icon = scope:fp2_james_0002_conversos_character
imprison_character_effect = {
TARGET = scope:fp2_james_0002_conversos_character
IMPRISONER = root
}
fp2_polish_should_heritage_israelite_get_upset_effect = yes
stress_impact = {
compassionate = medium_stress_impact_gain
diligent = medium_stress_impact_gain
just = medium_stress_impact_gain
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
zealous = minor_stress_impact_loss
}
}
ai_chance = {
base = 10
modifier = {
factor = 0
OR = {
has_trait = compassionate
has_trait = diligent
has_trait = just
}
}
modifier = {
factor = 2
OR = {
has_trait = callous
has_trait = sadistic
}
has_trait = zealous
}
}
}
}
# Jewish people come fleeing persecution from a nearby realm
fp2_yearly.9002 = {
type = character_event
title = fp2_james.0003.t
desc = fp2_james.0003.desc
theme = secret
override_background = {
reference = throne_room
}
left_portrait = {
character = root
animation = paranoia
}
right_portrait = {
character = scope:fp2_james_003_jewish_refugee_leader
animation = beg
}
trigger = {
NOT = { root.religion = religion:judaism_religion }
NOT = { faith = faith:conversos }
any_neighboring_and_across_water_top_liege_realm = { # There is someone to do persecuting
holder = {
is_ai = yes
NOT = { root.religion = religion:judaism_religion }
NOT = { faith = faith:conversos }
}
}
highest_held_title_tier >= tier_county
any_held_county = {
is_landless_type_title = no
title_province = {
geographical_region = world_europe_west_iberia
}
NOT = { # Don't give away the capital
this = this.holder.top_liege.capital_county
}
holder = {
any_held_title = {
title_tier = county
count >= 2
}
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
any_character_struggle = {
is_struggle_type = iberian_struggle
is_struggle_phase = struggle_iberia_phase_hostility
}
}
modifier = {
factor = 0.1
any_county_in_region = {
region = world_europe_west_iberia
culture = culture:sephardi
}
}
}
immediate = {
# Grab the neighbour for loc purposes
random_neighboring_and_across_water_top_liege_realm = {
limit = {
holder = {
is_ai = yes
NOT = { root.religion = religion:judaism_religion }
NOT = { faith = faith:conversos }
}
}
holder = { save_scope_as = fp2_james_003_intolerant_ruler }
}
# find a pool character
if = {
limit = {
any_pool_character = {
province = root.capital_province
religion = religion:judaism_religion
}
}
random_pool_character = {
province = root.capital_province
limit = {
religion = religion:judaism_religion
}
save_scope_as = fp2_james_003_jewish_refugee_leader
}
}
# Otherwise create one
else = {
create_character = {
template = spanish_jewish_merchant_character # May as well reuse the template
location = root.capital_province
save_scope_as = fp2_james_003_jewish_refugee_leader
}
}
# Get a religion for them to potentially be secretly praciticing
religion:judaism_religion = {
random_faith = {
limit = { is_mainstream_jewish_faith = yes }
save_scope_as = fp2_james_0003_jewish_faith
}
}
random_held_county = {
limit = {
is_landless_type_title = no
title_province = {
geographical_region = world_europe_west_iberia
}
NOT = { # Don't give away the capital
this = this.holder.top_liege.capital_county
}
holder = {
any_held_title = {
title_tier = county
count >= 2
}
}
}
weight = {
modifier = { # Low-dev counties should be more highly considered
add = 50
development_level <= medium_development_level
}
}
save_scope_as = fp2_james_0003_province_to_convert
}
}
option = { # Offer the community protection in your realm
name = fp2_james.0003.a
create_title_and_vassal_change = {
type = granted
save_scope_as = change
add_claim_on_loss = no
}
scope:fp2_james_0003_province_to_convert.county = {
change_title_holder = {
holder = scope:fp2_james_003_jewish_refugee_leader
change = scope:change
}
}
resolve_title_and_vassal_change = scope:change
hidden_effect = {
add_opinion = {
target = scope:fp2_james_003_jewish_refugee_leader
modifier = received_title_county
}
}
scope:fp2_james_0003_province_to_convert.county = {
change_development_level = 1
if = {
limit = {
root = {
is_ai = no
}
NOT = {
any_county_in_region = {
region = world_europe_west_iberia
culture = culture:sephardi
}
}
}
set_county_culture = scope:fp2_james_003_jewish_refugee_leader.culture
set_county_faith = scope:fp2_james_003_jewish_refugee_leader.faith
add_county_modifier = {
modifier = fp2_thriving_jewish_community_modifier
years = 10
}
}
else = {
add_county_modifier = {
modifier = fp2_thriving_jewish_community_modifier
years = 10
}
}
}
scope:fp2_james_003_jewish_refugee_leader.culture = {
change_cultural_acceptance = {
target = root.culture
value = medium_positive_culture_acceptance
desc = cultural_acceptance_gain_conversos_tolerance
}
}
stress_impact = {
callous = minor_stress_impact_gain
greedy = minor_stress_impact_gain
compassionate = medium_stress_impact_loss
zealous = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = 1.5
ai_zeal = -0.5
}
}
}
option = {
name = fp2_james.0003.b
scope:fp2_james_003_jewish_refugee_leader = { silent_disappearance_effect = yes }
stress_impact = {
paranoid = minor_stress_impact_loss
zealous = minor_stress_impact_loss
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_honor = -0.5
ai_zeal = 1.5
}
}
}
}
###################################
# Toledan Nights
# By James Beaumont

View file

@ -426,7 +426,7 @@ fp3_yearly.8020 = {
#premise checks - we need ROOT's faith to not have been reformed into a matriarchal faith for this historical context
OR = {
has_religion = religion:islam_religion
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
}
has_game_rule = default_gender_equality #this triggers an error. Suspected code issue.
@ -2380,7 +2380,7 @@ fp3_yearly.8032 = {
trigger = {
OR = {
has_religion = religion:islam_religion
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
}
}
@ -2415,7 +2415,7 @@ fp3_yearly.8032 = {
has_trait = zealous
}
AND = {
OR = { has_religion = religion:eastern_orthodox_religion has_religion = religion:catholic_religion has_religion = religion:protestant_religion }
has_religion = religion:christianity_religion
has_trait = zealous
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,153 +0,0 @@
namespace = fp3_story_cycle_seljuks_invasion_events
### RISE OF THE SELJUKS #############################################
## 0001 Leader and Story Cycle Creation by Maxence Voleau
## 0002 The First Settlers by Hugo Cortell
#####################################################################
###################################
# Setup: we create the leader and start the story cycle
# By Maxence Voleau
###################################
fp3_story_cycle_seljuks_invasion_events.0001 = {
scope = none
hidden = yes
immediate = {
spawn_seljuk_character_effect = yes
scope:lead_seljuk = {
create_story = story_seljuk_invasion
}
}
}
###################################
# The First Settlers
# By Hugo Cortell
###################################
fp3_story_cycle_seljuks_invasion_events.0002 = {
type = character_event
title = fp3_story_cycle_seljuks_invasion_events.0001.t
desc = {
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc
first_valid = {
triggered_desc = {
trigger = { highest_held_title_tier > tier_duchy }
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_vassal
}
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_independent
}
}
theme = realm
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:lead_seljuk
animation = personality_honorable
}
immediate = {
save_scope_as = seljuk_victim
random_sub_realm_county = {
limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
de_jure_liege = scope:fp3_seljuk_settle_target
}
alternative_limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
any_neighboring_county = { de_jure_liege = scope:fp3_seljuk_settle_target }
}
alternative_limit = {
any_neighboring_county = {
exists = holder
holder.top_liege != scope:seljuk_victim
}
}
random_county_province = {
limit = {
this != scope:fp3_seljuk_settle_target.title_capital_county.title_province
}
save_scope_as = spawn_location
}
}
save_scope_value_as = {
name = victim_strength_modifier
value = {
value = current_military_strength
divide = 10000
add = 1.25
}
}
scope:lead_seljuk = {
#move to the army spawn location, so it's less confusing when you want to see where they are
set_location = scope:spawn_location
var:seljuk_birthplace = { save_scope_as = seljuk_birthplace }
}
}
option = { # Yes - Serve me well!
name = fp3_story_cycle_seljuks_invasion_events.0001.a_liege
fp3_story_cycle_seljuks_invasion_events_grant_seljuks_land_effect = yes
scope:lead_seljuk = {
add_trait = loyal
culture = {
change_cultural_acceptance = {
target = scope:seljuk_victim.culture
value = 30
desc = STEWARD_PROMOTE_CULTURE_ALLOWED_NOMAD_SETTLEMENT
}
}
}
create_seljuk_army_at_peace_effect = yes
debug_log = "Seljuk got the land and were vassalized"
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = -0.5
ai_compassion = 0.2
ai_greed = -0.5
ai_energy = -0.5
ai_rationality = 0.3
ai_sociability = 0.3
}
}
}
option = { # No - To war with you!
name = fp3_story_cycle_seljuks_invasion_events.0001.b
# Start war
scope:lead_seljuk = {
start_war = {
casus_belli = fp3_seljuk_invasion_cb
target = root
target_title = scope:fp3_seljuk_settle_target
}
random_character_war = { save_scope_as = war }
}
create_seljuk_army_effect = yes
debug_log = "Seljuk have to win a war"
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_greed = 0.5
ai_energy = 0.5
ai_vengefulness = 0.5
}
}
}
}

View file

@ -1,726 +0,0 @@
namespace = fp3_story_cycle_zanj_rebellion_events
### Ali Ibn Muhammad and Zanj Rebellion Setup
fp3_story_cycle_zanj_rebellion_events.0001 = {
scope = none
hidden = yes
immediate = {
spawn_zanj_leader_character_effect = yes
scope:zanj_leader = {
save_scope_as = story_owner
create_story = story_zanj_rebellion
give_nickname = nick_albaghid
}
title:c_basra.holder = {
add_visiting_courtier = scope:zanj_leader
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0002
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0005
days = { 60 120 }
}
}
}
}
### Ali Ibn Muhammad riling up locals in Basra
fp3_story_cycle_zanj_rebellion_events.0002 = {
type = character_event
theme = intrigue
override_background = { reference = wilderness_wetlands }
title = fp3_story_cycle_zanj_rebellion_events.0002.t
desc = fp3_story_cycle_zanj_rebellion_events.0002.desc
left_portrait = {
character = root
animation = marshal
}
right_portrait = {
character = scope:zanj_leader
animation = scheme
}
immediate = {
scope:zanj_leader = {
save_scope_as = outspoken_rebel
}
}
#Try to arrest Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0002.a
duel = {
skill = intrigue
target = scope:outspoken_rebel
50 = {
# You arrest Ali Ibn Muhammad
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0002.a.success
left_icon = root
right_icon = scope:outspoken_rebel
rightfully_imprison_character_effect = {
TARGET = scope:outspoken_rebel
IMPRISONER = root
}
}
inherit_zanj_rebellion_effect = yes
}
50 = {
# Ali Ibn Muhammad escapes
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
left_icon = root
right_icon = scope:outspoken_rebel
}
hidden_effect = {
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 4
}
}
title:c_baghdad.holder = {
hidden_effect = {
title:c_baghdad.holder = {
add_visiting_courtier = scope:outspoken_rebel
}
}
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0003
days = { 30 60 }
}
}
}
}
}
root = {
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_opressed_me
CHARACTER = scope:outspoken_rebel
OPINION = default_rival_opinion
}
}
stress_impact = {
paranoid = medium_stress_impact_loss
just = minor_stress_impact_loss
callous = minor_stress_impact_loss
sadistic = minor_stress_impact_loss
trusting = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = trusting
has_trait = forgiving
has_trait = compassionate
}
}
}
}
#Ignore Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0002.c
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 2
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
hidden_effect = {
title:c_baghdad.holder = {
add_visiting_courtier = scope:outspoken_rebel
}
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0003
days = { 30 60 }
}
}
stress_impact = {
paranoid = medium_stress_impact_gain
just = minor_stress_impact_gain
callous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
trusting = medium_stress_impact_loss
forgiving = medium_stress_impact_loss
compassionate = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = paranoid
has_trait = just
has_trait = callous
has_trait = sadistic
}
}
}
}
}
### Setup to find correct scope for event 0004 and check if Ali is dead or imprisoned
fp3_story_cycle_zanj_rebellion_events.0003 = {
scope = none
hidden = yes
immediate = {
if ={
#check if Ali is still alive and not in prison and is not an inheritor of the rebellion
limit = {
scope:zanj_leader = {
AND = {
is_alive = yes
is_imprisoned = no
NOT = { has_character_flag = new_zanj_leader }
}
}
}
title:c_baghdad.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0004
}
}
}
}
}
### Ali Ibn Muhammad claims divinity
fp3_story_cycle_zanj_rebellion_events.0004 = {
type = character_event
theme = faith
title = fp3_story_cycle_zanj_rebellion_events.0004.t
desc = fp3_story_cycle_zanj_rebellion_events.0004.desc
left_portrait = {
character = root
animation = dismissal
}
right_portrait = {
character = scope:zanj_leader
animation = personality_zealous
}
#Contest Ali Ibn Muhammad's claims
option = {
name = fp3_story_cycle_zanj_rebellion_events.0004.a
duel = {
skill = learning
target = scope:zanj_leader
50 = {
# You disprove Ali's claims
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0004.a.success
add_piety = medium_piety_gain
add_prestige = minor_prestige_gain
left_icon = root
right_icon = scope:zanj_leader
}
}
50 = {
# Ali Ibn Muhammad validates his claims
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
send_interface_toast = {
title = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
left_icon = root
right_icon = scope:zanj_leader
scope:zanj_leader = {
add_trait = sayyid
add_pressed_claim = title:e_arabia
change_variable = {
name = zanj_rebellion_strength_score
add = 4
}
}
}
}
}
root = {
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_opressed_me
CHARACTER = scope:zanj_leader
OPINION = default_rival_opinion
}
}
stress_impact = {
paranoid = minor_stress_impact_loss
just = minor_stress_impact_loss
zealous = medium_stress_impact_loss
trusting = medium_stress_impact_gain
forgiving = medium_stress_impact_gain
cynical = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = cynical
has_trait = trusting
has_trait = forgiving
}
}
}
}
#Ignore Ali
option = {
name = fp3_story_cycle_zanj_rebellion_events.0004.b
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
scope:zanj_leader = {
add_trait = sayyid
add_pressed_claim = title:e_arabia
change_variable = {
name = zanj_rebellion_strength_score
add = 2
}
}
stress_impact = {
paranoid = minor_stress_impact_gain
just = minor_stress_impact_gain
zealous = medium_stress_impact_gain
trusting = minor_stress_impact_loss
forgiving = medium_stress_impact_loss
cynical = medium_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = paranoid
has_trait = just
has_trait = zealous
}
}
}
}
}
### Setup event to find the correct scope and check if Ali or the current Zanj Leader is dead or imprisoned
fp3_story_cycle_zanj_rebellion_events.0005 = {
scope = none
hidden = yes
immediate = {
if = {
limit = {
scope:zanj_leader = {
OR = {
is_imprisoned = yes
is_alive = no
is_landed = yes
}
}
}
inherit_zanj_rebellion_effect = yes
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0006
}
}
}
}
### A Zanj Steps Forth
fp3_story_cycle_zanj_rebellion_events.0006 = {
type = character_event
theme = corruption
title = fp3_story_cycle_zanj_rebellion_events.0006.t
desc = {
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.a
triggered_desc = {
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.b
}
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.c
}
left_portrait = {
character = root
animation = eyeroll
}
right_portrait = {
character = scope:outspoken_rebel
animation = worry
}
lower_left_portrait = {
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
character = scope:zanj_leader
}
immediate = {
if = {
limit = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
spawn_zanj_representative_character_effect = yes
scope:zanj_representative = { save_scope_as = outspoken_rebel }
}
else = {
scope:zanj_leader = { save_scope_as = outspoken_rebel }
}
}
#Give Basra to the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.a
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
title:c_basra = {
set_county_culture = culture:east_bantu
set_county_faith = faith:azariqa
}
show_as_tooltip = { # UI/UX
title:c_basra = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
}
}
scope:outspoken_rebel = {
becomes_independent = {
change = scope:change
}
add_truce_both_ways = {
character = root
years = 10
name = fp3_landed_zanj_reason
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
add_tyranny = 30
set_relation_rival = {
reason = fp3_rival_gave_title_away
target = title:c_basra.holder
}
}
hidden_effect = {
title:c_basra = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
every_de_jure_county = {
change_title_holder = {
holder = scope:outspoken_rebel
change = scope:change
}
}
}
scope:zanj_leader = {
random_owned_story = {
type = story_zanj_rebellion
end_story = yes
}
}
}
resolve_title_and_vassal_change = scope:change
stress_impact = {
compassionate = medium_stress_impact_loss
just = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
generous = medium_stress_impact_loss
content = medium_stress_impact_loss
callous = medium_stress_impact_gain
sadistic = major_stress_impact_gain
ambitious = medium_stress_impact_gain
greedy = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = callous
has_trait = sadistic
has_trait = ambitious
has_trait = greedy
}
}
}
}
#Make minor concessions to the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.b
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 3
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
hidden_effect = {
title:c_basra.holder = {
if = {
limit = { scope:zanj_leader != scope:outspoken_rebel}
add_visiting_courtier = scope:zanj_leader
}
add_visiting_courtier = scope:outspoken_rebel
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
progress_towards_rival_effect = {
REASON = fp3_zanj_rebellion_interfered_with_my_workers
CHARACTER = title:c_basra.holder
OPINION = default_rival_opinion
}
}
title:c_basra = {
add_county_modifier = {
modifier = fp3_zanj_rebellion_work_concessions_modifier
years = 5
}
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0007
days = { 30 60 }
}
stress_impact = {
compassionate = minor_stress_impact_loss
just = minor_stress_impact_loss
forgiving = minor_stress_impact_loss
generous = minor_stress_impact_loss
content = minor_stress_impact_loss
callous = minor_stress_impact_gain
sadistic = medium_stress_impact_gain
ambitious = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = callous
has_trait = sadistic
has_trait = ambitious
has_trait = greedy
}
}
}
}
#Ignore the Zanj
option = {
name = fp3_story_cycle_zanj_rebellion_events.0006.c
scope:zanj_leader = {
change_variable = {
name = zanj_rebellion_strength_score
add = 5
}
}
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
hidden_effect = {
title:c_basra.holder = {
add_visiting_courtier = scope:zanj_leader
add_visiting_courtier = scope:zanj_representative
}
}
if = {
limit = {
NOT = { title:c_basra.holder = root }
}
progress_towards_friend_effect = {
REASON = fp3_rival_stayed_out_of_my_business
CHARACTER = title:c_basra.holder
OPINION = default_friend_opinion
}
}
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0007
days = { 30 60 }
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
generous = minor_stress_impact_gain
content = minor_stress_impact_gain
callous = minor_stress_impact_loss
sadistic = medium_stress_impact_loss
ambitious = minor_stress_impact_loss
greedy = minor_stress_impact_loss
}
ai_chance = {
base = 100
modifier = {
factor = 0.5
OR = {
has_trait = compassionate
has_trait = just
has_trait = forgiving
has_trait = generous
}
}
}
}
}
fp3_story_cycle_zanj_rebellion_events.0007 = {
scope = none
hidden = yes
immediate = {
if = {
limit = {
scope:zanj_leader = {
OR = {
is_imprisoned = yes
is_alive = no
is_landed = yes
}
}
}
inherit_zanj_rebellion_effect = yes
}
title:c_basra.holder.top_liege = {
trigger_event = {
id = fp3_story_cycle_zanj_rebellion_events.0008
}
}
}
}
### The Zanj Rebellion
fp3_story_cycle_zanj_rebellion_events.0008 = {
type = character_event
theme = battle
override_background = { reference = wilderness_wetlands }
title = fp3_story_cycle_zanj_rebellion_events.0008.t
desc = {
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.a
triggered_desc = {
trigger = {
scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader}}
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.b
}
triggered_desc = {
trigger = {
scope:zanj_leader = { has_character_flag = new_zanj_leader }
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.c
}
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.d
}
left_portrait = {
character = root
animation = shock
}
right_portrait = {
character = scope:zanj_leader
animation = celebrate_sword
}
immediate = {
scope:zanj_leader = {
give_nickname = nick_chief_of_the_zanj
hidden_effect = {
random_owned_story = {
type = story_zanj_rebellion
end_story = yes
}
}
}
hidden_effect = {
fp3_start_zanj_rebellion_effect = {
TARGET_COUNTY = title:c_basra
REBEL_LEADER = scope:zanj_leader
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
create_zanj_courtier_effect = {
EMPLOYER = scope:zanj_leader
LOCATION = scope:zanj_leader.location
}
}
}
option = {
name = fp3_story_cycle_zanj_rebellion_events.0008.a
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,286 +0,0 @@
namespace = fp3_h_yearly
###################################
# You have pissed off your ulema and you're a drunkard
# By Hugo Cortell
# Rewritten by Henrik Lohmander
###################################
fp3_h_yearly.0001 = {
type = character_event
title = fp3_h_yearly.0001.t
desc = {
triggered_desc = {
trigger = { always = yes }
desc = fp3_h_yearly.0001.desc.main
}
}
theme = feast_activity
override_background = { reference = throne_room }
left_portrait = {
character = root
animation = drink_goblet
}
right_portrait = {
character = scope:ulema_member
animation = disapproval
}
cooldown = { years = 10 }
weight_multiplier = {
base = 1
modifier = {
exists = cp:councillor_court_chaplain
cp:councillor_court_chaplain = { has_trait = drunkard }
factor = 0.4
}
modifier = {
any_character_struggle = {
is_struggle_type = persian_struggle
}
add = 0.5
}
modifier = {
has_trait = fp3_struggle_supporter
add = -0.5
}
modifier = {
has_trait = fp3_struggle_detractor
add = 0.5
}
}
trigger = {
has_fp3_dlc_trigger = yes
has_trait = drunkard
NOT = { has_character_modifier = ulema_displeased_drinking }
exists = cp:councillor_court_chaplain
NOT = {
has_hook = cp:councillor_court_chaplain
}
cp:councillor_court_chaplain = {
is_ai = yes
faith = { trait_is_sin = drunkard }
trigger_if = {
limit = { exists = house }
house != root.house
}
NOT = {
has_trait = lifestyle_mystic
}
OR = {
opinion = { # They will not do this unless they have reason to dislike you
target = root
value < -25
}
has_relation_rival = root
}
}
}
immediate = {
cp:councillor_court_chaplain = { save_scope_as = ulema_member }
save_scope_as = actor
scope:ulema_member = { save_scope_as = recipient }
}
option = { #Deflection (They are a drunkard too) Look who is talking!
name = fp3_h_yearly.0001.a
trigger = { scope:ulema_member = { has_trait = drunkard } }
#No duel, this deflection always succeeds.
stress_impact = {
craven = minor_stress_gain
deceitful = minor_stress_loss
callous = minor_stress_loss
}
add_prestige = medium_prestige_gain
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
}
option = { #Deflection - Argue that drinking is healthy to the human spirit
name = fp3_h_yearly.0001.b
trigger = {
OR = {
has_trait = scholar
has_trait = theologian
has_trait = whole_of_body
has_trait = lifestyle_physician
has_trait = lifestyle_poet
faith = { trait_is_virtue = drunkard }
}
}
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
duel = {
desc = fp3_h_yearly.0001.b.desc
skill = learning
target = scope:annoying_clergy
35 = { #Success
desc = fp3_h_yearly.0001.b.success
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
send_interface_toast = {
type = event_toast_effect_good
title = fp3_h_yearly.0001.b.success
left_icon = root
add_prestige = minor_prestige_gain
}
}
65 = {
desc = fp3_h_yearly.0001.b.failure
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
send_interface_toast = {
title = fp3_h_yearly.0001.b.failure
left_icon = root
add_piety = medium_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 10
}
}
}
}
stress_impact = {
honest = minor_stress_gain
humble = minor_stress_gain
callous = minor_stress_loss
deceitful = minor_stress_loss
}
}
option = { # You do not get to speak to me in this way!
name = fp3_h_yearly.0001.e
add_dread = medium_dread_gain
imprison_court_chaplain_consequences_effect = yes
imprison_character_effect = {
TARGET = scope:recipient
IMPRISONER = scope:actor
}
stress_impact = {
just = medium_stress_gain
zealous = medium_stress_gain
deceitful = minor_stress_loss
callous = minor_stress_loss
}
}
option = { #Bribery - Offer a generous donation
name = fp3_h_yearly.0001.c
trigger = { NOT = { scope:ulema_member = { has_trait = drunkard } } } #If you can deflect we don't show this option
custom_tooltip = fp3_h_yearly.0001.c.tt
pay_short_term_gold = {
target = scope:ulema_member
gold = medium_gold_value
}
random_list = {
75 = {
modifier = {
scope:ulema_member = {
has_trait = greedy
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = deceitful
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = ambitious
}
factor = 2
}
desc = fp3_h_yearly.0001.c.success
send_interface_toast = {
title = fp3_h_yearly.0001.c.success
left_icon = root
add_prestige = minor_prestige_gain
}
}
25 = {
modifier = {
scope:ulema_member = {
has_trait = zealous
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = honest
}
factor = 2
}
modifier = {
scope:ulema_member = {
has_trait = just
}
factor = 2
}
desc = fp3_h_yearly.0001.c.failure
send_interface_toast = {
title = fp3_h_yearly.0001.c.failure
left_icon = root
add_piety = medium_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 10
}
reverse_add_opinion = {
target = scope:ulema_member
modifier = ignored_concerns
}
}
}
}
stress_impact = {
just = medium_stress_gain
greedy = minor_stress_gain
honest = minor_stress_gain
callous = minor_stress_loss
deceitful = minor_stress_loss
}
}
option = { # There is nothing I can do!
name = fp3_h_yearly.0001.d
add_piety = minor_piety_loss
add_character_modifier = {
modifier = ulema_displeased_drinking
years = 5
}
stress_impact = {
arrogant = minor_stress_gain
deceitful = minor_stress_gain
drunkard = minor_stress_gain
honest = minor_stress_loss
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,824 +0,0 @@
namespace = fp3_yearly
scripted_trigger not_steppe_nomad_trigger = {
culture = {
NOR = {
has_cultural_pillar = heritage_mongolic
has_cultural_pillar = heritage_turkic
has_cultural_tradition = tradition_horse_lords
}
}
}
scripted_trigger suitable_nomad_settling_province_trigger = {
has_holding_type = castle_holding
barony = {
is_under_holy_order_lease = no
#is_capital_barony = no
}
}
fp3_yearly.8888 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8888.t
desc = fp3_yearly.8888.desc
theme = vassal
left_portrait = {
character = scope:upset_vassal
animation = anger
}
right_portrait = {
character = root
animation = personality_rational
triggered_animation = {
trigger = {
diplomacy >= decent_skill_rating
}
animation = personality_honorable
}
}
lower_left_portrait = {
character = scope:possibly_capable_marshal
}
lower_right_portrait = {
character = scope:turkic_leader
}
trigger = {
#standard checks
has_fp3_dlc_trigger = yes
root.capital_province = { geographical_region = world_persian_empire }
is_available_at_peace_adult = yes
#event fluff triggers
not_steppe_nomad_trigger = yes
NOT = { has_character_flag = had_turkic_tribe_story } #since this event starts the story
exists = cp:councillor_marshal
cp:councillor_marshal = {
NOT = { has_trait = craven }
is_ai = yes
}
any_vassal = {
not_steppe_nomad_trigger = yes
is_ai = yes
NOT = {
this = root.cp:councillor_marshal
}
any_held_county = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
}
any_held_county = { any_county_province = { suitable_nomad_settling_province_trigger = yes } }
}
cooldown = { years = 50 }
immediate = {
random_vassal = {
limit = {
not_steppe_nomad_trigger = yes
is_ai = yes
NOT = {
this = root.cp:councillor_marshal
}
any_held_county = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
}
save_scope_as = upset_vassal
random_held_county = {
limit = {
any_county_province = {
geographical_region = dlc_fp3_eastern_persian_frontier_regions
NOT = { terrain = steppe }
}
}
save_scope_as = nomads_county
}
}
random_held_county = {
limit = {
any_county_province = { suitable_nomad_settling_province_trigger = yes }
}
save_scope_as = nomads_new_county #for use in the claim the former_master might get
}
scope:nomads_new_county = {
random_county_province = {
limit = { suitable_nomad_settling_province_trigger = yes }
barony = { save_scope_as = nomads_barony }
}
}
cp:councillor_marshal = { save_scope_as = possibly_capable_marshal }
scope:nomads_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 50
}
}
create_character = {
location = root.capital_province
template = fp3_turko-mongol_leader
save_scope_as = turkic_leader
}
}
option = {
name = fp3_yearly.8888.a
duel = {
skill = diplomacy
value = average_skill_rating
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
root = {
custom_tooltip = fp3_treating_with_turks.success.tt
trigger_event = {
id = fp3_yearly.8889
days = { 2 3 }
}
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
custom_tooltip = fp3_treating_with_turks.failure.tt
send_interface_toast = {
title = fp3_treating_with_turks_toast.failure
left_icon = root
}
}
}
scope:upset_vassal = {
if = {
limit = {
OR = { #if he's diplomatically minded, he'll appreciate this
has_trait = forgiving
has_trait = trusting
has_trait = compassionate
has_diplomacy_lifestyle_trait_trigger = yes
}
}
add_opinion = {
target = root
opinion = 20
modifier = respect_opinion
}
}
else = {
add_opinion = { #but otherwise, they're not on board
target = root
opinion = -10
modifier = fp3_treats_with_barbarians_opinion
}
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
stress_impact = {
craven = medium_stress_impact_gain
lazy = medium_stress_impact_gain
shy = medium_stress_impact_gain
gregarious = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.5
ai_boldness = 1
ai_compassion = 0.5
}
}
}
option = {
name = fp3_yearly.8888.b
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = grateful_opinion
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = 10
modifier = trusted_me_opinion
}
}
scope:possibly_capable_marshal = {
duel = {
skill = martial
value = average_skill_rating
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
root = {
custom_tooltip = fp3_fighting_turks.success.tt
trigger_event = {
id = fp3_yearly.8890
days = { 2 3 }
}
}
}
20 = {
compare_modifier = {
value = scope:duel_value
multiplier = -1
}
root = {
custom_tooltip = fp3_fighting_turks.failure.tt
send_interface_toast = {
title = fp3_fighting_turks_toast.failure
left_icon = scope:possibly_capable_marshal
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 1
ai_vengefulness = 0.5
}
}
}
option = { #Ignore the issue
name = fp3_yearly.8888.c
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -20
modifier = angry_opinion
}
}
scope:possibly_capable_marshal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
stress_impact = {
ambitious = minor_stress_impact_gain
diligent = minor_stress_impact_gain
just = minor_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_energy = -1
}
}
}
}
fp3_yearly.8889 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8889.t
desc = fp3_yearly.8889.desc
theme = vassal
left_portrait = {
character = scope:turkic_leader
animation = disapproval
}
right_portrait = {
character = root
animation = drink_goblet
triggered_animation = {
trigger = {
diplomacy >= decent_skill_rating
NOR = {
has_trait = callous
has_trait = wrathful
has_trait = vengeful
}
}
animation = personality_compassionate
}
}
lower_left_portrait = {
character = scope:upset_vassal
}
override_background = { reference = wilderness }
trigger = {
#standard checks
is_available_adult = yes
#event not breaking sanity triggers
exists = scope:upset_vassal
scope:upset_vassal = { is_alive = yes }
exists = scope:turkic_leader
scope:turkic_leader = { is_alive = yes }
exists = scope:nomads_county
exists = scope:nomads_new_county
}
option = {
name = fp3_yearly.8889.a
if = {
limit = {
scope:upset_vassal = {
NOT = {
has_relation_rival = root
has_relation_nemesis = root
}
}
}
root = {
progress_towards_rival_effect = {
CHARACTER = scope:upset_vassal
REASON = rival_let_hostile_nomads_roam_free
OPINION = -20
}
}
}
else = {
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -40
modifier = hate_opinion
}
}
}
add_courtier = scope:turkic_leader
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
stress_impact = {
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.4
ai_boldness = 0.7
ai_vengefulness = 0.3
}
}
}
option = {
name = fp3_yearly.8889.b
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -10
modifier = disappointed_opinion
}
}
add_courtier = scope:turkic_leader
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
scope:nomads_county = {
remove_county_modifier = fp3_nomad_friction_county_modifier
}
scope:nomads_new_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 30
}
}
stress_impact = {
generous = medium_stress_impact_loss
content = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_sociability = 0.6
ai_boldness = 1
ai_compassion = 0.2
}
}
}
option = { #no deal
name = fp3_yearly.8889.c
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = pleased_opinion
}
}
stress_impact = {
ambitious = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_greed = -0.5
ai_vengefulness = 0.5
}
}
}
}
fp3_yearly.8890 = { #Nomads story cycle
type = character_event
title = fp3_yearly.8890.t
desc = {
desc = fp3_yearly.8890.desc_beginning
first_valid = {
triggered_desc = {
trigger = {
scope:upset_vassal = {
AND = {
ai_compassion < medium_positive_ai_value
ai_vengefulness > medium_positive_ai_value
}
}
}
desc = fp3_yearly.8890_brutal_demands
}
desc = fp3_yearly.8890_nonbrutal_demands
}
desc = fp3_yearly.8890.desc_ending
}
theme = vassal
left_portrait = {
character = scope:turkic_leader
animation = prisonhouse
}
right_portrait = {
character = root
animation = personality_rational
triggered_animation = {
trigger = {
diplomacy < high_skill_rating
NOR = {
has_trait = compassionate
has_trait = forgiving
has_trait = just
}
}
animation = personality_callous
}
}
lower_left_portrait = {
character = scope:upset_vassal
}
lower_right_portrait = {
character = scope:possibly_capable_marshal
}
trigger = {
#standard checks
is_available_adult = yes
#event not breaking sanity triggers
exists = scope:upset_vassal
scope:upset_vassal = { is_alive = yes }
exists = scope:turkic_leader
scope:turkic_leader = { is_alive = yes }
exists = scope:nomads_county
exists = scope:nomads_new_county
}
option = {
name = fp3_yearly.8890.a
scope:upset_vassal = {
add_opinion = {
target = root
opinion = -15
modifier = fp3_suspicious_motives_opinion
}
}
add_courtier = scope:turkic_leader
add_hook = {
type = indebted_hook
target = scope:turkic_leader
}
spawn_army = {
men_at_arms = {
type = horse_archers
stacks = 1
}
location = root.capital_province
war_keep_on_attacker_victory = yes
uses_supply = yes
inheritable = no
save_scope_as = horsemen_army
name = turkic_tribal_event_troops
}
#This is needed to make the story cycle able to pick up the scopes
set_variable = {
name = turkic_leader
value = scope:turkic_leader
}
set_variable = {
name = upset_vassal
value = scope:upset_vassal
}
set_variable = {
name = nomads_county
value = scope:nomads_county
}
set_variable = {
name = nomads_new_county
value = scope:nomads_new_county
}
create_story = turkic_tribe_story
scope:nomads_county = {
remove_county_modifier = fp3_nomad_friction_county_modifier
}
scope:nomads_new_county = {
add_county_modifier = {
modifier = fp3_nomad_friction_county_modifier
years = 30
}
}
stress_impact = {
content = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_boldness = 0.5
ai_rationality = 0.5
}
}
}
option = { #execute the nomad leader
name = fp3_yearly.8890.b
add_dread = medium_dread_gain
scope:upset_vassal = {
if = {
limit = {
AND = { #if they're cruel, he'll enjoy this
ai_compassion < 0
ai_vengefulness > medium_positive_ai_value
}
}
add_opinion = {
target = root
opinion = 30
modifier = fp3_very_very_pleased_opinion
}
}
else = {
add_opinion = { #but otherwise, they're not on board
target = root
opinion = -10
modifier = fp3_went_too_far_opinion
}
}
}
scope:turkic_leader = {
death = {
death_reason = death_execution
killer = root
}
}
random_list = {
50 = {
send_interface_toast = {
title = nomad_friction_gone.tt
left_icon = root
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
}
}
50 = {
send_interface_toast = {
title = nomad_friction_active.tt
left_icon = root
scope:nomads_county = {
add_county_modifier = {
modifier = fp3_vengeful_nomads_county_modifier
years = 10
}
}
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
just = medium_stress_impact_gain
arbitrary = medium_stress_impact_loss
sadistic = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
ai_compassion = -1
}
}
}
option = {
name = fp3_yearly.8890.c
add_dread = minor_dread_gain
scope:turkic_leader = {
hard_imprison_character_effect = {
TARGET = this
IMPRISONER = root
}
}
scope:upset_vassal = {
add_opinion = {
target = root
opinion = 20
modifier = pleased_opinion
}
}
random = {
chance = 75
send_interface_toast = {
title = nomad_friction_gone.tt
left_icon = root
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
just = minor_stress_impact_gain
arbitrary = minor_stress_impact_loss
cynical = minor_stress_impact_loss
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_vengefulness = 0.5
ai_rationality = 1
ai_compassion = -0.5
}
}
}
}

View file

@ -1,307 +0,0 @@
namespace = court_astrologer_events
#Triggered by the "Consult the Skies" decision
court_astrologer_events.0001 = {
type = character_event
title = court_astrologer_events.0001.t
desc = court_astrologer_events.0001.desc
theme = faith
override_effect_2d = {
reference = legend_glow
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
has_trait = zealous
}
animation = beg
}
triggered_animation = {
trigger = {
OR = {
has_trait = craven
has_trait = paranoid
}
}
animation = worry
}
triggered_animation = {
trigger = {
OR = {
has_trait = cynical
has_trait = arrogant
}
}
animation = boredom
}
animation = prayer
}
right_portrait = {
character = scope:astrologer
animation = holding_staff
}
immediate = {
random_courtier = {
limit = { has_court_position = court_astrologer_court_position }
save_scope_as = astrologer
}
}
option = { # Tell me about my love life
name = court_astrologer_events.0001.a
random_list = {
50 = {
desc = court_astrologer_events.0001.a.success
send_interface_toast = {
title = court_astrologer_events.0001.a.success
left_icon = root
custom_tooltip = court_astrologer_events.0001.a.success.tt
if = {
limit = {
culture ?= { has_cultural_pillar = ethos_spiritual }
}
add_character_modifier = {
modifier = mpo_divination_love_spiritual_modifier
years = 5
}
}
else = {
add_character_modifier = {
modifier = mpo_divination_love_modifier
years = 5
}
}
}
}
50 = {
desc = court_astrologer_events.0001.a.failure
send_interface_toast = {
title = court_astrologer_events.0001.a.failure
left_icon = root
add_stress = minor_stress_loss
}
}
}
stress_impact = {
paranoid = miniscule_stress_impact_gain
cynical = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Tell me about war
name = court_astrologer_events.0001.b
random_list = {
50 = {
desc = court_astrologer_events.0001.b.success
send_interface_toast = {
title = court_astrologer_events.0001.b.success
left_icon = root
if = {
limit = {
culture ?= { has_cultural_pillar = ethos_spiritual }
}
add_character_modifier = {
modifier = mpo_divination_war_spiritual_modifier
years = 5
}
}
else = {
add_character_modifier = {
modifier = mpo_divination_war_modifier
years = 5
}
}
}
}
50 = {
desc = court_astrologer_events.0001.a.failure
send_interface_toast = {
title = court_astrologer_events.0001.a.failure
left_icon = root
add_stress = minor_stress_loss
}
}
}
stress_impact = {
paranoid = miniscule_stress_impact_gain
cynical = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Just tell me about life
name = court_astrologer_events.0001.c
random_list = {
50 = {
desc = court_astrologer_events.0001.c.success
send_interface_toast = {
title = court_astrologer_events.0001.c.success
left_icon = root
if = {
limit = {
culture ?= { has_cultural_pillar = ethos_spiritual }
}
add_character_modifier = {
modifier = mpo_divination_life_spiritual_modifier
years = 5
}
}
else = {
add_character_modifier = {
modifier = mpo_divination_life_modifier
years = 5
}
}
}
}
50 = {
desc = court_astrologer_events.0001.a.failure
send_interface_toast = {
title = court_astrologer_events.0001.a.failure
left_icon = root
add_stress = minor_stress_loss
}
}
}
stress_impact = {
paranoid = miniscule_stress_impact_gain
cynical = miniscule_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Actually, not right now
name = court_astrologer_events.0001.d
remove_decision_cooldown = mpo_divination_decision
ai_chance = {
base = 0
}
}
}
# Migration Suggestion
scripted_trigger court_astrologer_events_0002_neighbour_trigger = {
government_has_flag = government_is_nomadic
current_domain_fertility >= root.current_domain_fertility
is_independent_ruler = yes
}
court_astrologer_events.0002 = {
type = character_event
title = court_astrologer_events.0002.t
desc = {
desc = court_astrologer_events.0002.desc.intro
first_valid = {
triggered_desc = {
trigger = {
location.county.county_fertility <= bad_county_fertility_level
}
desc = court_astrologer_events.0002.desc.bad
}
desc = court_astrologer_events.0002.desc.meh
}
desc = court_astrologer_events.0002.desc.outro
}
theme = nomads
override_background = { reference = mpo_steppe_evening }
left_portrait = {
character = root
animation = thinking
}
right_portrait = {
character = scope:astrologer
animation = holding_staff
}
lower_center_portrait = scope:target_realm_owner
cooldown = { years = 5 }
trigger = {
has_mpo_dlc_trigger = yes
government_has_flag = government_is_nomadic
is_available = yes
employs_court_position = court_astrologer_court_position
court_position:court_astrologer_court_position = { is_available = yes }
any_neighboring_realm_same_rank_owner = {
court_astrologer_events_0002_neighbour_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
current_domain_fertility <= bad_county_fertility_level
factor = 2
}
}
immediate = {
court_position:court_astrologer_court_position = {
save_scope_as = astrologer
get_quirk_character_effect = yes
}
ordered_neighboring_realm_same_rank_owner = {
limit = {
court_astrologer_events_0002_neighbour_trigger = yes
}
order_by = current_domain_fertility
save_scope_as = target_realm_owner
primary_title = { save_scope_as = target_realm }
}
}
option = { # Sounds like a great idea
name = court_astrologer_events.0002.a
custom_tooltip = court_astrologer_events.0002.a.tt
set_variable = {
name = astrologer_desired_area
value = scope:target_realm
years = 5
}
stress_impact = {
paranoid = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Thank you for your feedback
name = court_astrologer_events.0002.b
scope:astrologer = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 20
}
}
stress_impact = {
paranoid = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # I'm good
name = court_astrologer_events.0002.c
add_prestige = minor_prestige_gain
stress_impact = {
paranoid = medium_stress_impact_gain
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,453 +0,0 @@
namespace = mpo_flavor_events_settled
# mpo_flavor_events_settled.0001 - You hear of a Havsarsan Zud
# mpo_flavor_events_settled.0010 - Horse Lord at your door
#######################
# You hear of a Havsarsan Zud
#######################
mpo_flavor_events_settled.0001 = {
type = character_event
title = mpo_flavor_events_settled.0001.t
desc = mpo_flavor_events_settled.0001.desc
theme = nomads
override_background = { reference = ep3_city_gate }
left_portrait = {
character = root
triggered_animation = {
trigger = {
OR = {
has_trait = callous
has_trait = sadistic
}
}
animation = schadenfreude
}
triggered_animation = {
trigger = {
OR = {
has_trait = brave
has_trait = arrogant
}
}
animation = dismissal
}
animation = worry
}
right_portrait = {
character = scope:nomad
animation = horse_exhausted
camera = camera_event_horse_right
}
widget = {
gui = "event_window_widget_vfx_snowstorm"
container = "foreground_shader_vfx_container"
}
cooldown = { years = 10 }
trigger = {
has_mpo_dlc_trigger = yes
NOT = { government_has_flag = government_is_nomadic }
OR = {
any_character_situation = { # You are a settled ruler in the Great Steppe
any_participant_group = {
participant_group_type = settled_rulers
participant_group_has_character = root
}
any_situation_sub_region = {
sub_region_current_phase = situation_steppe_havsarsan_zud_season
}
}
any_sub_realm_county = { # You are neighbouring the Great Steppe
any_neighboring_county = {
holder != root
any_county_situation = {
situation:the_great_steppe ?= this
any_situation_sub_region = {
sub_region_current_phase = situation_steppe_havsarsan_zud_season
}
}
}
}
}
}
immediate = {
if = {
limit = {
any_neighboring_top_liege_realm_owner = {
government_has_flag = government_is_nomadic
}
}
random_neighboring_top_liege_realm_owner = {
limit = { government_has_flag = government_is_nomadic }
save_scope_as = nomad_lord
}
}
else = {
random_ruler = {
limit = {
in_diplomatic_range = root
government_has_flag = government_is_nomadic
}
save_scope_as = nomad_lord
}
}
create_character = {
location = root.location
template = nomadic_hunter_template
faith = scope:nomad_lord.faith
culture = scope:nomad_lord.culture
save_scope_as = nomad
}
scope:nomad = { add_trait = nomadic_philosophy }
}
option = { # Get out
name = mpo_flavor_events_settled.0001.aa
reason = faith
add_internal_flag = special
trigger = {
faith = {
trait_is_virtue = callous
}
}
add_piety = medium_piety_gain
stress_impact = {
callous = major_stress_impact_loss
generous = medium_stress_impact_gain
paranoid = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
factor = 2
has_trait = callous
}
modifier = {
factor = 0
OR = {
has_trait = generous
has_trait = paranoid
}
}
}
}
option = { # Let's prepare
name = mpo_flavor_events_settled.0001.a
remove_short_term_gold = medium_gold_value
every_sub_realm_county = {
limit = { holder = root }
add_county_modifier = {
modifier = mpo_settled_preparations_war_county_modifier
years = 15
}
}
stress_impact = {
wrathful = medium_stress_impact_loss
brave = medium_stress_impact_loss
craven = medium_stress_impact_gain
greedy = medium_stress_impact_gain
avaricious = medium_stress_impact_gain
}
ai_chance = {
base = 100
modifier = {
OR = {
has_trait = wrathful
has_trait = brave
}
factor = 0
}
modifier = {
OR = {
short_term_gold <= major_gold_value
has_trait = greedy
has_trait = avaricious
has_trait = craven
}
factor = 0
}
}
}
option = { # We should focus on building
name = mpo_flavor_events_settled.0001.b
every_sub_realm_county = {
limit = { holder = root }
add_county_modifier = {
modifier = mpo_settled_preparations_building_county_modifier
years = 10
}
}
stress_impact = {
compassionate = major_stress_impact_loss
greedy = medium_stress_impact_gain
avaricious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Recruit this guy
name = mpo_flavor_events_settled.0001.c
trigger = {
NOT = {
faith = {
trait_is_virtue = callous
}
}
}
add_courtier = scope:nomad
if = {
limit = {
faith = { trait_is_virtue = compassionate }
}
add_piety = major_piety_gain
}
else = {
add_piety = medium_piety_gain
}
stress_impact = {
compassionate = major_stress_impact_loss
callous = major_stress_impact_gain
}
ai_chance = {
base = 100
}
}
after = {
custom_tooltip = mpo_flavor_events_settled.0001.tt
if = {
limit = { is_ai = yes }
scope:nomad = { silent_disappearance_effect = yes }
}
}
}
#######################
# Horse Lord at your door
#######################
scripted_trigger mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = {
government_has_flag = government_is_nomadic
NOR = {
is_close_family_of = root
is_vassal_of = root
is_tributary_of = root
this = root.liege
this = root.suzerain
}
any_character_situation = {
situation:the_great_steppe ?= this
}
}
mpo_flavor_events_settled.0010 = {
type = character_event
title = mpo_flavor_events_settled.0010.t
desc = mpo_flavor_events_settled.0010.desc
theme = nomads
override_background = { reference = ep3_city_gate }
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:nomad
animation = horse_conversing_left
camera = camera_event_horse_right
}
lower_right_portrait = scope:nomad_lord
cooldown = { years = 10 }
trigger = {
has_mpo_dlc_trigger = yes
NOT = { government_has_flag = government_is_nomadic }
any_neighboring_top_liege_realm_owner = {
mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = yes
}
}
weight_multiplier = {
base = 1
modifier = {
any_neighboring_top_liege_realm_owner = {
government_has_flag = government_is_nomadic
highest_held_title_tier >= tier_kingdom
}
factor = 2
}
}
immediate = {
random_neighboring_top_liege_realm_owner = {
limit = { mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = yes }
weight = {
base = 1
modifier = {
highest_held_title_tier >= tier_kingdom
add = 5
}
}
save_scope_as = nomad_lord
}
create_character = {
location = root.location
template = nomadic_commander_template
faith = scope:nomad_lord.faith
culture = scope:nomad_lord.culture
save_scope_as = nomad
}
hidden_effect = {
scope:nomad = { add_trait = nomadic_philosophy }
scope:nomad_lord = { add_courtier = scope:nomad }
}
}
option = { # Pay tribute
name = mpo_flavor_events_settled.0010.a
trigger = {
OR = {
scope:nomad_lord.primary_title.tier > root.primary_title.tier
scope:nomad_lord.current_military_strength > root.current_military_strength
}
}
start_tributary_interaction_effect = {
TRIBUTARY = root
SUZERAIN = scope:nomad_lord
}
scope:nomad_lord = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 25
}
}
add_prestige = medium_prestige_gain
stress_impact = {
vengeful = major_stress_impact_loss
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 0
}
}
option = { # Pay to get truce
name = mpo_flavor_events_settled.0010.b
trigger = {
NOR = {
scope:nomad_lord.primary_title.tier > root.primary_title.tier
scope:nomad_lord.current_military_strength > root.current_military_strength
}
}
if = {
limit = {
has_perk = defensive_measures_perk
}
custom_tooltip = mpo_flavor_events_settled.0010.b_perk_tt
pay_short_term_gold = {
target = scope:nomad_lord
gold = root.purchase_truce_interaction_small_sum
}
add_truce_both_ways = {
character = scope:nomad_lord
days = purchase_truce_interaction_truce_days_medium_value
name = TRUCE_PURCHASED
}
}
else = {
pay_short_term_gold = {
target = scope:nomad_lord
gold = root.purchase_truce_interaction_medium_sum
}
add_truce_both_ways = {
character = scope:nomad_lord
days = purchase_truce_interaction_truce_days_medium_value
name = TRUCE_PURCHASED
}
}
stress_impact = {
brave = medium_stress_impact_gain
ambitious = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
ai_chance = {
base = 50
modifier = {
OR = {
has_trait = content
has_trait = craven
}
factor = 2
}
modifier = {
OR = {
has_trait = brave
has_trait = ambitious
has_trait = arrogant
has_trait = greedy
gold <= root.purchase_truce_interaction_major_sum
}
factor = 0
}
}
}
option = { # Offend them
name = mpo_flavor_events_settled.0010.c
add_dread = medium_dread_value
scope:nomad_lord = {
progress_towards_rival_effect = {
CHARACTER = root
OPINION = -40
REASON = rival_disrespected_envoy
}
}
stress_impact = {
callous = major_stress_impact_loss
craven = major_stress_impact_gain
vengeful = major_stress_impact_gain
}
ai_chance = {
base = 0
modifier = {
add = 150
has_trait = callous
current_military_strength > scope:nomad_lord.current_military_strength
}
}
}
option = { # Let's just be friends
name = mpo_flavor_events_settled.0010.d
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
scope:nomad_lord = {
add_opinion = {
target = root
modifier = pleased_opinion
opinion = 5
}
}
stress_impact = {
gregarious = medium_stress_impact_loss
}
ai_chance = {
base = 200
}
}
after = {
if = {
limit = { is_ai = yes }
scope:nomad = { silent_disappearance_effect = yes }
}
}
}

View file

@ -1,450 +0,0 @@
namespace = mpo_jamukha_flavor
#######################
# Become Blood Brothers with Temujin
#######################
mpo_jamukha_flavor.0001 = {
type = character_event
title = mpo_jamukha_flavor.0001.t
desc = mpo_jamukha_flavor.0001.desc
theme = nomads
override_background = {
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
animation = happiness
camera = camera_event_very_left
}
right_portrait = {
character = scope:temujin
animation = inspect_weapon
}
trigger = {
scope:temujin = {
is_alive = yes
NOR = {
has_relation_blood_brother = root
has_relation_rival = root
}
}
is_alive = yes
}
immediate = {
play_music_cue = "mx_cue_touching_moment"
scope:temujin = {
save_scope_as = blood_bro
}
}
option = { # Yay
name = mpo_jamukha_flavor.0001.a
name = mpo_jamukha_flavor.0001.a.tt
scope:temujin = {
set_relation_blood_brother = {
target = scope:jamukha
reason = blood_brother_temujin_jamukha
}
}
if = {
limit = {
NOR = {
has_character_flag = had_warhorse_story
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
exists = var:story_cycle_horse_name
}
}
scope:jamukha = {
NOR = {
has_character_flag = had_warhorse_story
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
exists = var:story_cycle_horse_name
}
}
}
}
custom_tooltip = temujin_warhorse_jamukha_tt
custom_tooltip = jamukha_warhorse_jamukha_tt
hidden_effect = {
start_warhorse_story_cycle_effect = yes
scope:temujin = {
start_warhorse_story_cycle_effect = yes
}
}
}
custom_tooltip = blood_brother_gains_hook_tt
custom_tooltip = blood_brother_gains_hook_other_tt
add_character_modifier = blood_brother_warrior_modifier
scope:temujin = {
add_character_modifier = blood_brother_warrior_modifier
}
stress_impact = {
gregarious = medium_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Not a chance
name = mpo_jamukha_flavor.0001.b
add_dread = minor_dread_gain
add_prestige = minor_prestige_gain
scope:temujin = {
add_opinion = {
target = root
modifier = disappointed_opinion
opinion = -25
}
}
stress_impact = {
base = minor_stress_impact_gain
callous = medium_stress_impact_loss
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 0
}
}
}
#######################
# You consider breaking free from Temujin
#######################
scripted_effect mpo_jamukha_flavor_0010_jamukha_leaving_effect = {
if = {
limit = { is_vassal_of = scope:temujin }
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
becomes_independent = {
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
else = {
end_tributary = yes
}
add_truce_both_ways = {
character = scope:temujin
years = 5
name = temujin_jamukha_truce
}
if = {
limit = {
current_military_strength < scope:temujin.current_military_strength
}
domicile ?= {
change_herd = {
value = scope:temujin.domicile.herd
multiply = 0.5
}
}
}
if = {
limit = {
exists = scope:togrul
}
show_as_tooltip = {
custom_tooltip = negotiate_togrul_alliance_effect_tooltip
create_alliance = {
target = scope:togrul
allied_through_owner = root
allied_through_target = scope:togrul
}
scope:togrul = {
add_opinion = {
target = scope:jamukha
modifier = event_negotiated_alliance_opinion
}
}
}
}
custom_tooltip = jamukha_temujin_response_warning_tt
}
scripted_trigger mpo_jamukha_flavor_0010_togrul_trigger = {
is_ai = yes
is_at_war = no
is_alive = yes
is_ruler = yes
NOR = {
is_at_war_with = root
has_relation_rival = root
is_vassal_of = scope:temujin
}
in_diplomatic_range = root
NOT = {
government_has_flag = government_is_herder
}
}
mpo_jamukha_flavor.0010 = {
type = character_event
title = mpo_jamukha_flavor.0010.t
desc = {
desc = mpo_jamukha_flavor.0010.desc
triggered_desc = {
trigger = {
exists = scope:togrul
}
desc = mpo_jamukha_flavor.0010.desc_togrul
}
}
theme = nomads
override_background = {
reference = mpo_steppe_evening
}
left_portrait = {
character = root
animation = war_attacker
camera = camera_event_very_left
}
right_portrait = {
character = scope:temujin
animation = dismissal
camera = camera_event_very_right
}
lower_right_portrait = scope:togrul
trigger = {
character:125501 = {
has_variable = had_mpo_temujin_flavor_0001
}
is_alive = yes
is_ruler = yes
character:125501 = {
is_alive = yes
is_available = yes
}
OR = {
is_vassal_of = character:125501
is_tributary_of = character:125501
}
NOT = {
is_at_war_with = character:125501
}
}
immediate = {
save_scope_as = jamukha
character:125501 = {
save_scope_as = temujin
}
if = {
limit = {
character:303211 = {
mpo_jamukha_flavor_0010_togrul_trigger = yes
}
}
character:303211 = {
save_scope_as = togrul
}
}
else_if = {
limit = {
character:303211.house ?= {
any_house_member = {
mpo_jamukha_flavor_0010_togrul_trigger = yes
}
}
}
character:303211.house ?= {
ordered_house_member = {
order_by = current_military_strength
limit = {
mpo_jamukha_flavor_0010_togrul_trigger = yes
}
save_scope_as = togrul
}
}
}
else = {
capital_county.empire ?= {
ordered_de_jure_county_holder = {
order_by = current_military_strength
limit = {
highest_held_title_tier <= tier_duchy
mpo_jamukha_flavor_0010_togrul_trigger = yes
}
save_scope_as = togrul
}
}
}
}
#I want to leave Temujin and take Togrul as an ally
option = {
name = mpo_jamukha_flavor.0010.a
show_as_tooltip = {
mpo_jamukha_flavor_0010_jamukha_leaving_effect = yes
}
scope:temujin = {
trigger_event = mpo_temujin_flavor.0010
add_opinion = {
target = root
modifier = betrayal_opinion
opinion = -40
}
}
ai_chance = {
base = 100
}
}
#I want to stay with Temujin and be friends forever
option = {
name = mpo_jamukha_flavor.0010.b
add_character_modifier = {
modifier = jamukha_chose_loyalty_modifier
years = 5
}
scope:temujin = {
add_opinion = {
target = root
modifier = loyalty_opinion
opinion = 30
}
}
stress_impact = {
base = miniscule_stress_impact_gain
}
ai_chance = {
base = 0
}
}
on_trigger_fail = { # Jamukha becomes your rival anyways if you've migrated away
if = {
limit = {
is_independent_ruler = yes
NOT = { is_tributary_of = scope:temujin }
}
hidden_effect = {
scope:temujin = {
trigger_event = {
days = { 360 420 }
id = mpo_temujin_flavor.0020
}
}
}
}
}
}
#######################
# Temujin becomes your rival -- now you must kill him
#######################
mpo_jamukha_flavor.0020 = {
type = character_event
title = mpo_jamukha_flavor.0020.t
desc = mpo_jamukha_flavor.0020.desc
theme = nomads
override_background = {
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
animation = threatening
camera = camera_event_very_left
}
right_portrait = {
character = scope:temujin
animation = aggressive_sword
outfit_tags = { nightgown }
camera = camera_event_very_right
}
window = scheme_successful_event_no_text
immediate = {
play_music_cue = "mx_cue_murder"
custom_tooltip = jamukha_temujin_no_more_positive_tt
custom_tooltip = jamukha_temujin_rivals_tt
custom_tooltip = mpo_temujin_flavor.0020.cb.tt
if = {
limit = {
current_military_strength < scope:temujin.current_military_strength
}
domicile ?= {
change_herd = {
value = scope:temujin.domicile.herd
multiply = 1.5
}
}
add_prestige = major_prestige_gain # For MAA maintenance, mainly
custom_tooltip = jamukha_gain_from_defectors_tt
}
}
option = { # You who I once called brother
name = mpo_jamukha_flavor.0020.a
reason = blood_brother
add_internal_flag = special
trigger = { has_character_flag = was_temujins_bro }
custom_tooltip = {
text = mpo_jamukha_flavor.0020.a_war_win
set_variable = temujin_jamukha_war_var
}
add_character_modifier = {
modifier = temujin_jamukha_war_modifier
years = 5
}
stress_impact = {
base = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Murderrrrrrr
name = mpo_jamukha_flavor.0020.b
custom_tooltip = {
text = mpo_jamukha_flavor.0020.b_murder
set_variable = {
name = temujin_jamukha_murder_var
value = scope:temujin
}
}
stress_impact = {
deceitful = massive_stress_impact_loss
sadistic = massive_stress_impact_loss
}
ai_chance = {
base = 0
}
}
option = { # I'm going to crush your skull
name = mpo_jamukha_flavor.0020.c
trigger = {
NOT = { has_relation_blood_brother = scope:jamukha }
}
add_character_modifier = {
modifier = temujin_jamukha_war_smaller_modifier
years = 5
}
stress_impact = {
wrathful = massive_stress_impact_loss
vengeful = massive_stress_impact_loss
}
ai_chance = {
base = 100
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -916,6 +916,14 @@ mpo_migration_travel_events.0050 = {
random_courtier = {
limit = {
is_eligible_courtier_0050 = yes
save_temporary_scope_as = courtier_temp_im
location = {
any_character_in_location = {
is_eligible_local_0050 = yes
can_set_relation_lover_trigger = { CHARACTER = scope:courtier_temp_im }
is_similar_age_trigger = { CHARACTER = scope:courtier_temp_im }
}
}
}
weight = {
base = 10

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,835 +0,0 @@
namespace = mpo_temujin_flavor
# mpo_temujin_flavor.0001 - Become Blood Brothers with Jamukha
# mpo_temujin_flavor.0010 - Jamukha stops being your vassal
# mpo_temujin_flavor.0020 - Jamukha becomes your rival
# mpo_temujin_flavor.0030 - Borte announces she's pregnant
#######################
# Become Blood Brothers with Jamukha
#######################
mpo_temujin_flavor.0001 = {
type = character_event
title = mpo_temujin_flavor.0001.t
desc = mpo_temujin_flavor.0001.desc
theme = nomads
override_background = {
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
animation = aggressive_dagger
}
right_portrait = {
character = scope:jamukha
animation = celebrate_dagger
}
trigger = {
NOR = {
has_variable = had_mpo_temujin_flavor_0001
has_variable = had_mpo_temujin_flavor_0010
has_variable = had_mpo_temujin_flavor_0020
}
is_physically_able = yes
character:mpo_mongol_1 = {
is_alive = yes
is_physically_able = yes
NOR = {
has_relation_blood_brother = root
has_relation_rival = root
}
}
}
immediate = {
play_music_cue = "mx_cue_touching_moment"
set_variable = had_mpo_temujin_flavor_0001
character:mpo_mongol_1 = {
save_scope_as = jamukha
save_scope_as = blood_bro
}
}
option = { # Yay
name = mpo_temujin_flavor.0001.a
if = {
limit = {
NOR = {
has_character_flag = had_warhorse_story
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
exists = var:story_cycle_horse_name
}
}
scope:jamukha = {
NOR = {
has_character_flag = had_warhorse_story
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
exists = var:story_cycle_horse_name
}
}
}
}
custom_tooltip = temujin_warhorse_tt
custom_tooltip = jamukha_warhorse_tt
if = {
limit = {
scope:jamukha = {
is_ai = yes
}
}
hidden_effect = {
start_warhorse_story_cycle_effect = yes
}
}
if = {
limit = {
scope:jamukha = {
is_ai = yes
}
}
hidden_effect = {
scope:jamukha = {
start_warhorse_story_cycle_effect = yes
}
}
}
}
if = {
limit = {
scope:jamukha = {
is_ai = yes
}
}
set_relation_blood_brother = {
target = scope:jamukha
reason = blood_brother_temujin_jamukha
}
add_character_modifier = blood_brother_warrior_modifier
scope:jamukha = {
add_character_modifier = blood_brother_warrior_modifier
}
}
else = {
custom_tooltip = jamukha_choose_blood_brother_tt
save_scope_as = temujin
scope:jamukha = {
trigger_event = mpo_jamukha_flavor.0001
}
show_as_tooltip = {
add_character_modifier = blood_brother_warrior_modifier
scope:jamukha = {
add_character_modifier = blood_brother_warrior_modifier
}
}
}
custom_tooltip = blood_brother_gains_hook_tt
custom_tooltip = blood_brother_gains_hook_other_tt
stress_impact = {
gregarious = medium_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Not a chance
name = mpo_temujin_flavor.0001.b
add_dread = minor_dread_gain
add_prestige = minor_prestige_gain
set_variable = rejected_jamukha_var
scope:jamukha = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -25
}
}
stress_impact = {
base = minor_stress_impact_gain
callous = medium_stress_impact_loss
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 0
}
}
after = {
hidden_effect = {
scope:jamukha = {
trigger_event = {
days = { 180 360 }
id = mpo_jamukha_flavor.0010
}
}
}
}
}
#######################
# Jamukha stops being your vassal
#######################
scripted_effect mpo_temujin_flavor_0010_jamukha_leaving_effect = {
if = {
limit = { scope:jamukha = { is_vassal_of = root } }
scope:jamukha = {
create_title_and_vassal_change = {
type = independency
save_scope_as = change
add_claim_on_loss = no
}
becomes_independent = {
change = scope:change
}
resolve_title_and_vassal_change = scope:change
}
}
else = {
scope:jamukha = { end_tributary = yes }
}
add_truce_both_ways = {
character = scope:jamukha
years = 5
name = temujin_jamukha_truce
}
hidden_effect = { # This will put him closer to Temujin
scope:jamukha = {
if = {
limit = {
current_military_strength < scope:temujin.current_military_strength
}
domicile ?= {
change_herd = {
value = scope:temujin.domicile.herd
multiply = 0.5
}
}
}
}
}
if = {
limit = {
exists = scope:togrul
}
scope:jamukha = {
custom_tooltip = negotiate_togrul_alliance_effect_tooltip
create_alliance = {
target = scope:togrul
allied_through_owner = scope:jamukha
allied_through_target = scope:togrul
}
hidden_effect = {
scope:togrul = {
add_opinion = {
target = scope:jamukha
modifier = event_negotiated_alliance_opinion
}
}
}
}
}
}
mpo_temujin_flavor.0010 = {
type = character_event
title = mpo_temujin_flavor.0010.t
desc = {
desc = mpo_temujin_flavor.0010.desc.intro
first_valid = {
triggered_desc = {
trigger = { has_variable = rejected_jamukha_var }
desc = mpo_temujin_flavor.0010.desc.rejected
}
triggered_desc = {
trigger = { has_relation_blood_brother = scope:jamukha }
desc = mpo_temujin_flavor.0010.desc.blood_brothers
}
desc = mpo_temujin_flavor.0010.desc.fallback
}
}
theme = nomads
override_background = {
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
animation = personality_vengeful
}
right_portrait = {
character = scope:jamukha
animation = schadenfreude
}
lower_right_portrait = scope:togrul
trigger = {
has_variable = had_mpo_temujin_flavor_0001
NOR = {
has_variable = had_mpo_temujin_flavor_0010
has_variable = had_mpo_temujin_flavor_0020
}
is_alive = yes
is_ruler = yes
character:mpo_mongol_1 = {
is_alive = yes
OR = {
is_vassal_of = root
is_tributary_of = root
}
}
}
immediate = {
set_variable = {
name = had_mpo_temujin_flavor_0010
value = character:mpo_mongol_1
}
character:mpo_mongol_1 = {
save_scope_as = jamukha
}
mpo_temujin_flavor_0010_jamukha_leaving_effect = yes
}
option = { # I will kill you
name = mpo_temujin_flavor.0010.aa
trigger = { dread >= 100 }
if = {
limit = {
has_relation_blood_brother = scope:jamukha
}
custom_tooltip = {
text = mpo_temujin_flavor.0010.aa_remove_blood_brother
remove_relation_blood_brother = scope:jamukha
}
}
scope:jamukha = {
add_dread = major_dread_loss
add_prestige = medium_prestige_loss
}
every_vassal = {
limit = {
has_vassal_stance = belligerent
is_obedient = no
}
custom = every_belligerent_vassal
add_opinion = {
modifier = obedience_opinion
target = root
}
}
every_courtier = {
limit = {
is_obedient = no
NOR = {
has_trait = brave
has_trait = compassionate
}
}
custom = every_non_brave_compassionate_courtier
add_opinion = {
modifier = obedience_opinion
target = root
}
}
stress_impact = {
gregarious = medium_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Look at this clown
name = mpo_temujin_flavor.0010.a
duel = {
skill = diplomacy
target = scope:jamukha
50 = { # Your people are impressed
compare_modifier = {
value = scope:duel_value
multiplier = 3.5
min = -49
}
min = 5
desc = mpo_temujin_flavor.0010.a.tt.success
send_interface_toast = {
title = mpo_temujin_flavor.0010.a.tt.success
left_icon = root
right_icon = scope:jamukha
add_prestige = medium_prestige_gain
scope:jamukha = { add_prestige = medium_prestige_loss }
}
}
50 = { # No one is impressed
compare_modifier = {
value = scope:duel_value
multiplier = -3.5
min = -49
}
min = 5
desc = mpo_temujin_flavor.0010.a.tt.failure
send_interface_toast = {
title = mpo_temujin_flavor.0010.a.tt.failure
left_icon = root
add_prestige = minor_prestige_loss
}
}
}
stress_impact = {
gregarious = medium_stress_impact_loss
callous = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Try to force him to stay
name = mpo_temujin_flavor.0010.b
add_dread = minor_dread_gain
scope:jamukha = {
add_opinion = {
target = root
modifier = hurt_opinion
opinion = -30
}
}
stress_impact = {
callous = medium_stress_impact_loss
gregarious = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Let him go
name = mpo_temujin_flavor.0010.c
scope:jamukha = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
stress_impact = {
generous = medium_stress_impact_loss
callous = major_stress_impact_gain
}
ai_chance = {
base = 100
}
}
after = {
hidden_effect = {
trigger_event = {
days = { 360 420 }
id = mpo_temujin_flavor.0020
}
}
}
}
#######################
# Jamukha becomes your rival -- now you must kill him
#######################
mpo_temujin_flavor.0020 = {
type = character_event
title = mpo_temujin_flavor.0020.t
desc = {
desc = mpo_temujin_flavor.0020.desc.intro
first_valid = {
triggered_desc = {
trigger = { has_relation_blood_brother = scope:jamukha }
desc = mpo_temujin_flavor.0020.desc.blood_brothers
}
triggered_desc = {
trigger = { has_relation_friend = scope:jamukha }
desc = mpo_temujin_flavor.0020.desc.friend
}
triggered_desc = {
trigger = { has_relation_rival = scope:jamukha }
desc = mpo_temujin_flavor.0020.desc.rival
}
desc = mpo_temujin_flavor.0020.desc.fallback
}
desc = mpo_temujin_flavor.0020.desc.outro
}
theme = nomads
override_background = {
reference = mpo_campfire_steppe
}
left_portrait = {
character = root
animation = anger
outfit_tags = { nightgown }
camera = camera_event_very_left
}
right_portrait = {
character = scope:jamukha
animation = horse_conversing_left
camera = camera_event_horse_right
}
window = scheme_successful_event_no_text
trigger = {
NOT = { has_variable = had_mpo_temujin_flavor_0020 }
OR = {
has_variable = had_mpo_temujin_flavor_0010
AND = {
NOT = { has_variable = had_mpo_temujin_flavor_0010 }
character:mpo_mongol_1 = {
NOR = {
is_vassal_of = root
is_tributary = root
}
}
}
}
is_alive = yes
is_ruler = yes
character:mpo_mongol_1 = {
is_alive = yes
in_diplomatic_range = root
is_ruler = yes
}
}
immediate = {
save_scope_as = temujin
play_music_cue = "mx_cue_murder"
set_variable = {
name = had_mpo_temujin_flavor_0020
value = character:mpo_mongol_1
}
character:mpo_mongol_1 = {
save_scope_as = jamukha
}
if = {
limit = {
current_military_strength < scope:jamukha.current_military_strength
}
domicile ?= {
change_herd = {
value = scope:jamukha.domicile.herd
multiply = 1.5
}
}
add_prestige = major_prestige_gain # For MAA maintenance, mainly
custom_tooltip = temujin_gain_from_defectors_tt
}
if = {
limit = {
has_relation_blood_brother = scope:jamukha
}
scope:jamukha = {
add_character_flag = {
flag = was_temujins_bro
years = 30
}
}
}
}
option = { # You who I once called brother
name = mpo_temujin_flavor.0020.a
reason = blood_brother
add_internal_flag = special
trigger = { has_relation_blood_brother = scope:jamukha }
custom_tooltip = {
text = mpo_temujin_flavor.0020.a_war_win
set_variable = temujin_jamukha_war_var
}
add_character_modifier = {
modifier = temujin_jamukha_war_modifier
years = 5
}
stress_impact = {
base = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # Murderrrrrrr
name = mpo_temujin_flavor.0020.b
custom_tooltip = {
text = mpo_temujin_flavor.0020.b_murder
set_variable = {
name = temujin_jamukha_murder_var
value = scope:jamukha
}
}
stress_impact = {
deceitful = massive_stress_impact_loss
sadistic = massive_stress_impact_loss
}
ai_chance = {
base = 0
}
}
option = { # I'm going to crush your skull
name = mpo_temujin_flavor.0020.c
trigger = {
NOT = { has_relation_blood_brother = scope:jamukha }
}
add_character_modifier = {
modifier = temujin_jamukha_war_smaller_modifier
years = 5
}
stress_impact = {
wrathful = massive_stress_impact_loss
vengeful = massive_stress_impact_loss
}
ai_chance = {
base = 100
}
}
after = {
if = { # Remove hooks
limit = {
scope:jamukha = {
has_hook = root
}
}
scope:jamukha = { remove_hook = { target = root } }
}
if = {
limit = {
has_hook = scope:jamukha
}
remove_hook = { target = scope:jamukha }
}
if = { # Remove Truce
limit = {
any_truce_target = { this = scope:jamukha }
}
cancel_truce_both_ways = scope:jamukha
}
custom_tooltip = mpo_temujin_flavor.0020.jamukha_gok_requirement
if = {
limit = { has_relation_blood_brother = scope:jamukha }
custom_tooltip = {
text = mpo_temujin_flavor.0010.aa_remove_blood_brother
remove_relation_blood_brother = scope:jamukha
}
}
else_if = {
limit = { has_relation_friend = scope:jamukha }
custom_tooltip = {
text = mpo_temujin_flavor.0020.remove_friend
remove_relation_friend = scope:jamukha
}
}
if = {
limit = { NOT = { has_relation_rival = scope:jamukha } }
set_relation_rival = {
target = scope:jamukha
reason = rival_temujin_jamukha
}
}
else_if = {
limit = { has_relation_rival = scope:jamukha }
set_relation_nemesis = {
target = scope:jamukha
reason = rival_temujin_jamukha
}
}
else = {
add_opinion = {
target = root
modifier = hate_opinion
opinion = -100
}
}
custom_tooltip = {
text = mpo_temujin_flavor.0020.cb.tt
add_to_variable_list = {
name = retaliation_cb_var_list
target = scope:jamukha
}
scope:jamukha = {
add_to_variable_list = {
name = retaliation_cb_var_list
target = root
}
}
}
scope:jamukha = {
trigger_event = mpo_jamukha_flavor.0020
}
}
}
#######################
# Borte announces she's pregnant
#######################
mpo_temujin_flavor.0030 = {
type = character_event
title = mpo_temujin_flavor.0030.t
desc = mpo_temujin_flavor.0030.desc
theme = pregnancy
left_portrait = {
character = root
animation = anger
}
right_portrait = {
character = scope:borte
animation = worry
}
lower_right_portrait = scope:mergid
trigger = {
NOT = { has_variable = had_mpo_temujin_flavor_0030 } # To make sure it triggers even if you migrate straight away and lose the event time window
character:172004 = {
is_alive = yes
is_spouse_of = root
is_pregnant = no
}
any_neighboring_top_liege_realm_owner = {
NOT = { has_relation_rival = root }
}
}
immediate = {
play_music_cue = "mx_cue_personal_negative"
set_variable = had_mpo_temujin_flavor_0030
character:172004 = {
save_scope_as = borte
}
if = {
limit = {
character:303116 = {
is_alive = yes
NOT = { has_relation_rival = root }
}
}
character:303116 = {
save_scope_as = mergid
}
}
else_if = {
limit = {
any_ruler = {
dynasty = dynasty:2001144
NOT = { has_relation_rival = root }
}
}
random_ruler = {
limit = {
dynasty = dynasty:2001144
NOT = { has_relation_rival = root }
}
save_scope_as = mergid
}
}
else = {
random_neighboring_top_liege_realm_owner = {
limit = { NOT = { has_relation_rival = root } }
save_scope_as = mergid
}
}
scope:borte = {
custom_tooltip = mpo_temujin_flavor.0030.pregnancy_tt
hidden_effect = {
make_pregnant = {
father = scope:mergid
}
}
set_variable = borte_first_child_var
}
}
option = { # I hate those guys
name = mpo_temujin_flavor.0030.a
set_relation_rival = {
target = scope:mergid
reason = rival_temujin_mergid
}
custom_tooltip = {
text = mpo_temujin_flavor.0030.a.tt
add_to_variable_list = {
name = retaliation_cb_var_list
target = scope:mergid
}
}
add_dread = medium_dread_gain
stress_impact = {
vengeful = major_stress_impact_loss
compassionate = medium_stress_impact_gain
}
ai_chance = {
base = 0 # To prevent AI Temüjin from being murdered immediately
}
}
option = { # Let's forget about that, you are more important
name = mpo_temujin_flavor.0030.b
if = {
limit = {
NOT = { has_relation_lover = scope:borte }
}
set_relation_lover = {
target = scope:borte
reason = lover_temujin_borte
}
}
else = {
scope:borte = {
add_opinion = {
target = root
modifier = grateful_opinion
opinion = 20
}
}
}
set_relation_wedding_very_good_fertility = scope:borte
stress_impact = {
compassionate = major_stress_impact_loss
vengeful = medium_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { # I could not care less
name = mpo_temujin_flavor.0030.c
scope:borte = {
add_opinion = {
target = root
modifier = upset_opinion
opinion = -25
}
}
stress_impact = {
callous = major_stress_impact_loss
compassionate = major_stress_impact_gain
vengeful = major_stress_impact_gain
}
ai_chance = {
base = 0
}
}
}