552 lines
14 KiB
Text
552 lines
14 KiB
Text
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 }
|
|
}
|
|
}
|