Professional Documents
Culture Documents
Tribal Events
Tribal Events
# Flavor events
# tribal.1001-1999
#################
# #
# FLAVOR #
# #
#################
#########################################
# Someone challenges your rule! #
# by Linnéa Thimrén #
#########################################
scripted_effect tribal_1001_transfer_liege_title_effect = {
scope:title_being_fought_over.holder = {
add_to_temporary_list = transfered_vassals
every_vassal = {
limit = {
NOT = {
this = scope:challenger
}
}
add_to_temporary_list = transfered_vassals
}
}
create_title_and_vassal_change = {
type = usurped
save_scope_as = change
add_claim_on_loss = no
}
scope:title_being_fought_over = {
change_title_holder = {
holder = scope:challenger
change = scope:change
}
}
every_in_list = {
list = transfered_vassals
change_liege = {
LIEGE = scope:challenger
CHANGE = scope:change
}
}
resolve_title_and_vassal_change = scope:change
if = {
limit = {
root = scope:challenger
}
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = usurped_title
}
}
}
else = {
hidden_effect = {
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = usurped_title
}
}
}
}
}
scripted_effect tribal_1001_challenger_lost_effect = {
if = {
limit = {
root = scope:liege_to_challenge
}
scope:liege_to_challenge = {
add_prestige = medium_prestige_gain
}
}
else = {
hidden_effect = {
scope:liege_to_challenge = {
add_prestige = medium_prestige_gain
}
}
}
add_prestige_level = -1
if = {
limit = {
root = scope:challenger
}
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = tried_to_usurped_title
}
}
}
else = {
hidden_effect = {
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = tried_to_usurped_title
}
}
}
}
}
scripted_effect tribal_1001_challenger_backed_out_effect = {
add_prestige = major_prestige_loss
if = {
limit = {
root = scope:challenger
}
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = tried_to_usurped_title
}
}
}
else = {
hidden_effect = {
scope:liege_to_challenge = {
add_opinion = {
target = scope:challenger
modifier = tried_to_usurped_title
}
}
}
}
}
scripted_effect tribal_1001_start_sce_bout_effect = {
custom_tooltip =
challenge_to_single_combat_interaction.enter_non_lethal_bout.tt
random_list = {
100 = {
show_chance = no
trigger = { exists = scope:liege_champion }
desc = tribal.1001.a_champion_success
scope:challenger = { tribal_1001_challenger_lost_effect = yes }
}
100 = {
show_chance = no
trigger = { exists = scope:liege_champion }
desc = tribal.1001.a_champion_failure
scope:challenger = { tribal_1001_transfer_liege_title_effect =
yes }
}
100 = {
show_chance = no
trigger = {
NOT = { exists = scope:liege_champion }
this = scope:liege_to_challenge
}
desc = tribal.1001.a_success
scope:challenger = { tribal_1001_challenger_lost_effect = yes }
}
100 = {
show_chance = no
trigger = {
NOT = { exists = scope:liege_champion }
this = scope:liege_to_challenge
}
desc = tribal.1001.a_failure
scope:challenger = { tribal_1001_transfer_liege_title_effect =
yes }
}
100 = {
show_chance = no
trigger = {
NOT = { exists = scope:liege_champion }
this = scope:challenger
}
desc = tribal.1001.a_failure
scope:challenger = { tribal_1001_challenger_lost_effect = yes }
}
100 = {
show_chance = no
trigger = {
NOT = { exists = scope:liege_champion }
this = scope:challenger
}
desc = tribal.1001.a_success
scope:challenger = { tribal_1001_transfer_liege_title_effect =
yes }
}
}
}
scripted_trigger tribal_1001_champion_check_trigger = {
NOT = { this = scope:challenger }
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
is_available = yes
is_adult = yes
is_ai = yes
NOT = { has_relation_rival = root }
can_start_single_combat_trigger = yes
}
tribal.1001 = {
type = character_event
title = tribal.1001.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
age >= 45
}
desc = tribal.1001.desc_old
}
triggered_desc = {
trigger = {
prowess < scope:challenger.prowess
}
desc = tribal.1001.desc_weak
}
triggered_desc = {
trigger = {
scope:challenger = {
has_dread_level_towards = {
target = root
level = 2
}
}
}
desc = tribal.1001.desc_meak
}
desc = tribal.1001.desc_fallback
}
desc = tribal.1001.desc
}
theme = realm
left_portrait = {
character = scope:challenger
animation = personality_bold
}
trigger = {
scope:challenger = { can_start_single_combat_trigger = yes }
}
immediate = {
play_music_cue = mx_cue_combat_2
scope:challenger = {
add_character_flag = { #To block the event and block the decision
flag = recently_took_the_tribal_challenge_ruler_decision
years = 10
}
}
#If you cannot fight yourself then find a champion
if = {
limit = {
NAND = {
can_be_combatant_based_on_gender_trigger =
{ ARMY_OWNER = root }
can_start_single_combat_trigger = yes
}
}
if = {
limit = {
any_court_position_holder = {
type = champion_court_position
tribal_1001_champion_check_trigger = yes
}
}
every_court_position_holder = {
type = champion_court_position
limit = { tribal_1001_champion_check_trigger = yes }
add_to_list = champion_candidates
}
}
if = {
limit = {
any_relation = {
type = friend
tribal_1001_champion_check_trigger = yes
}
}
every_relation = {
type = friend
limit = { tribal_1001_champion_check_trigger = yes }
add_to_list = champion_candidates
}
}
if = {
limit = {
exists = cp:councillor_marshal
cp:councillor_marshal =
{ tribal_1001_champion_check_trigger = yes }
}
cp:councillor_marshal = { add_to_list = champion_candidates
}
}
if = {
limit = {
any_knight = { tribal_1001_champion_check_trigger =
yes }
}
every_knight = {
limit = { tribal_1001_champion_check_trigger = yes }
add_to_list = champion_candidates
}
}
#Still empty list?
if = {
limit = {
any_in_list = {
list = champion_candidates
count < 1
}
}
if = {
limit = {
any_vassal =
{ tribal_1001_champion_check_trigger = yes }
}
every_vassal = {
limit = { tribal_1001_champion_check_trigger =
yes }
add_to_list = champion_candidates
}
}
if = {
limit = {
any_courtier =
{ tribal_1001_champion_check_trigger = yes }
}
every_courtier = {
limit = { tribal_1001_champion_check_trigger =
yes }
add_to_list = champion_candidates
}
}
}
#Save champion
if = {
limit = {
any_in_list = {
list = champion_candidates
count >= 1
}
}
random_in_list = {
list = champion_candidates
limit = { #We prioritize your champions
has_court_position = champion_court_position
is_court_position_employer = {
court_position = champion_court_position
who = root
}
}
alternative_limit = { prowess > high_skill_rating }
alternative_limit = { always = yes }
weight = {
base = 1
compare_modifier = {
value = prowess
multiplier = 10
}
opinion_modifier = {
opinion_target = root
multiplier = 1
}
}
save_scope_as = liege_champion
}
}
}
}
option = { #Fight!
name = {
trigger = { age > scope:challenger.age }
text = tribal.1001.a_child
}
name = {
trigger = { age <= scope:challenger.age }
text = tribal.1001.a
}
trigger = {
OR = {
AND = {
can_be_combatant_based_on_gender_trigger =
{ ARMY_OWNER = root }
can_start_single_combat_trigger = yes
}
exists = scope:liege_champion
}
}
if = {
limit = { exists = scope:liege_champion }
custom_tooltip = tribal.1001.a_champion
show_as_tooltip = {
scope:liege_champion = { tribal_1001_start_sce_bout_effect
= yes }
}
}
else = {
show_as_tooltip = { tribal_1001_start_sce_bout_effect = yes }
}
ai_chance = {
base = 50
modifier = {
trigger = { NOT = { exists = scope:liege_champion } }
add = 30
prowess > scope:challenger.prowess
}
modifier = {
trigger = { exists = scope:liege_champion }
add = 30
scope:liege_champion.prowess > scope:challenger.prowess
}
ai_value_modifier = {
ai_boldness = 0.75
}
}
}
option = { #Flyting!
name = tribal.1001.b
trigger = {
culture = {
OR = {
has_cultural_pillar = heritage_north_germanic
has_cultural_pillar = heritage_west_germanic
has_cultural_pillar = heritage_brythonic
has_cultural_pillar = heritage_goidelic
}
}
}
show_as_tooltip = {
duel = {
skill = learning
target = scope:challenger
10 = {
desc = tribal.1001.b_success
compare_modifier = {
value = scope:duel_value
multiplier = 2
}
scope:challenger = {
tribal_challenger_lost_effect = yes
}
}
10 = {
desc = tribal.1001.b_failure
scope:challenger = {
tribal_transfer_liege_title_effect = yes
}
}
}
}
scope:challenger = {
trigger_event = tribal.1006
}
ai_chance = {
base = 50
modifier = {
add = 30
learning > scope:challenger.learning
}
}
}
immediate = {
tribal_transfer_liege_title_effect = yes
}
option = {
name = tribal.1002.a
}
}
immediate = {
set_signature_weapon_effect = yes
if = {
limit = {
exists = scope:liege_champion
}
scope:liege_champion = {
set_signature_weapon_effect = yes
}
}
else = {
scope:liege_to_challenge = {
set_signature_weapon_effect = yes
}
}
}
#Challenger won!
tribal.1004 = {
orphan = yes
type = character_event
title = tribal.1001.t
desc = {
desc = tribal.1004.desc_opening
desc = tribal.1004.desc
}
theme = realm
left_portrait = {
character = scope:challenger
animation = happiness
}
option = {
name = tribal.1004.a
scope:challenger = {
tribal_transfer_liege_title_effect = yes
}
}
}
#Challenger lost
tribal.1005 = {
orphan = yes
type = character_event
title = tribal.1001.t
desc = {
desc = tribal.1004.desc_opening
desc = tribal.1005.desc
}
theme = realm
left_portrait = {
character = scope:challenger
animation = sadness
}
option = {
name = tribal.1005.a
show_as_tooltip = {
scope:challenger = {
tribal_challenger_lost_effect = yes
}
}
}
}
option = {
name = tribal.1014.a
scope:challenger = {
tribal_transfer_liege_title_effect = yes
}
}
}
option = {
name = tribal.1015.a
show_as_tooltip = {
scope:challenger = {
tribal_challenger_lost_effect = yes
}
}
scope:liege_champion = {
add_opinion = {
target = root
modifier = respect_opinion
opinion = 20
}
}
}
}
immediate = {
hidden_effect = {
random_list = {
1 = {
save_scope_value_as = {
name = rhyme_group
value = flag:a
}
}
1 = {
save_scope_value_as = {
name = rhyme_group
value = flag:b
}
}
1 = {
save_scope_value_as = {
name = rhyme_group
value = flag:c
}
}
}
}
}
option = {
name = tribal.1006.a
duel = {
skill = learning
target = scope:liege_to_challenge
10 = {
desc = tribal.1006.a_success
send_interface_toast = {
title = tribal.1006.a_success
left_icon = scope:liege_to_challenge
show_as_tooltip = {
tribal_transfer_liege_title_effect = yes
}
}
scope:liege_to_challenge = {
trigger_event = tribal.1007
}
}
10 = {
desc = tribal.1006.a_failure
compare_modifier = {
value = scope:duel_value
multiplier = -2
}
send_interface_toast = {
title = tribal.1006.a_failure
left_icon = scope:liege_to_challenge
tribal_challenger_lost_effect = yes
}
scope:liege_to_challenge = {
trigger_event = tribal.1008
}
}
}
}
#Challenger won!
tribal.1007 = {
type = character_event
title = tribal.1001.t
desc = {
desc = tribal.1008.desc
desc = {
random_valid = {
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_1_a_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_1_a_02
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_1_b_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_1_b_02
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_1_c_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_1_c_02
}
}
random_valid = {
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_2_a_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_2_b_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_2_c_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_2_c_02
}
}
}
desc = tribal.1007.desc_ending
}
theme = realm
left_portrait = {
character = scope:challenger
animation = happiness
}
immediate = {
scope:challenger = {
tribal_transfer_liege_title_effect = yes
}
}
option = {
name = tribal.1007.a
}
}
#Challenger lost
tribal.1008 = {
type = character_event
title = tribal.1001.t
desc = {
desc = tribal.1008.desc
desc = {
random_valid = {
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_1_a_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_1_a_02
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_1_b_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_1_b_02
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_1_c_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_1_c_02
}
}
random_valid = {
triggered_desc = {
trigger = { scope:rhyme_group = flag:a }
desc = insult_poetry_line_2_a_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:b }
desc = insult_poetry_line_2_b_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_2_c_01
}
triggered_desc = {
trigger = { scope:rhyme_group = flag:c }
desc = insult_poetry_line_2_c_02
}
}
}
desc = tribal.1008.desc_ending
}
theme = realm
left_portrait = {
character = scope:challenger
animation = sadness
}
immediate = {
show_as_tooltip = {
scope:challenger = {
tribal_challenger_lost_effect = yes
}
}
}
option = {
name = tribal.1008.a
}
}
immediate = {
add_prestige = medium_prestige_gain
show_as_tooltip = {
scope:challenger = {
tribal_1001_challenger_backed_out_effect = yes
}
}
}
option = {
name = tribal.1010.a
}
}
tribal.1022 = {
hidden = yes
immediate = {
# Put your shirts back on.
if = {
limit = { exists = scope:liege_champion }
single_combat_clean_shirtlessness_effect = {
ATTACKER = scope:challenger
DEFENDER = scope:liege_champion
}
}
else = {
single_combat_clean_shirtlessness_effect = {
ATTACKER = scope:challenger
DEFENDER = scope:liege_to_challenge
}
}
# Inform both parties that the duel has invalidated.
scope:challenger = {
send_interface_toast = {
title = tribal.1022.trigger_failure.challenger
left_icon = scope:liege_to_challenge
}
}
scope:liege_to_challenge = {
send_interface_toast = {
title = tribal.1022.trigger_failure.liege_to_challenge
left_icon = scope:challenger
}
}
}
}
#########################################
# Holmgång with a rival #
# by Linnéa Thimrén #
#########################################
scripted_trigger tribal_1101_victim_trigger = {
basic_is_available_ai = yes
is_in_the_same_court_as_or_guest = root
NOR = {
this = scope:rival
has_relation_lover = scope:rival
has_relation_friend = scope:rival
has_trait_rank = {
trait = wounded
rank >= 2
}
}
}
tribal.1101 = {
type = character_event
title = tribal.1101.t
desc = tribal.1101.desc
theme = rival_relation
left_portrait = {
character = scope:rival
animation = rage
}
right_portrait = {
character = scope:victim
animation = pain
}
lower_right_portrait = {
character = scope:friend
animation = anger
}
trigger = {
faith = faith:norse_pagan
has_government = tribal_government
NOT = { has_character_flag = had_event_tribal_1101 }
any_relation = {
type = rival
faith = faith:norse_pagan
basic_is_available_ai = yes
save_temporary_scope_as = rival
}
OR = {
any_heir = {
tribal_1101_victim_trigger = yes
}
any_child = {
tribal_1101_victim_trigger = yes
}
any_spouse = {
tribal_1101_victim_trigger = yes
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
any_relation = {
type = rival
faith = faith:norse_pagan
basic_is_available_ai = yes
is_in_the_same_court_as_or_guest = root
}
}
}
immediate = {
add_character_flag = {
flag = had_event_tribal_1101
years = 10
}
random_relation = {
type = rival
limit = {
faith = faith:norse_pagan
is_in_the_same_court_as_or_guest = root
basic_is_available_ai = yes
}
alternative_limit = {
faith = faith:norse_pagan
basic_is_available_ai = yes
}
weight = {
base = 1
modifier = {
add = 10
has_relation_nemesis = root
}
}
save_scope_as = rival
}
hidden_effect = {
random_list = {
10 = {
trigger = {
any_heir = {
tribal_1101_victim_trigger = yes
}
}
random_heir = {
limit = {
tribal_1101_victim_trigger = yes
}
weight = {
base = 1
modifier = {
add = 10
is_player_heir_of = root
}
modifier = {
add = 5
has_friendly_relationship_with_root_trigger = yes
}
}
save_scope_as = victim
}
}
10 = {
trigger = {
any_child = {
tribal_1101_victim_trigger = yes
}
}
random_child = {
limit = {
tribal_1101_victim_trigger = yes
}
weight = {
base = 1
modifier = {
add = 5
is_heir_of = root
}
modifier = {
add = 10
has_friendly_relationship_with_root_trigger = yes
}
}
save_scope_as = victim
}
}
10 = {
trigger = {
any_spouse = {
tribal_1101_victim_trigger = yes
}
}
random_spouse = {
limit = {
tribal_1101_victim_trigger = yes
}
weight = {
base = 1
modifier = {
add = 10
has_friendly_relationship_with_root_trigger = yes
}
}
save_scope_as = victim
}
}
}
}
scope:victim = {
increase_wounds_effect = { REASON = fight }
}
#You won!!
tribal.1102 = {
type = character_event
title = tribal.1101.t
desc = {
desc = tribal.1102.desc_opening
desc = tribal.1102.desc
}
theme = rival_relation
left_portrait = scope:rival
immediate = {
set_signature_weapon_effect = yes
scope:rival = {
add_prestige_level = -1
death = {
death_reason = death_duel
killer = root
}
}
add_prestige = medium_prestige_gain
}
option = {
name = tribal.1102.a
}
}
immediate = {
scope:friend = {
set_signature_weapon_effect = yes
}
scope:rival = {
add_prestige_level = -1
death = {
death_reason = death_duel
killer = root
}
}
add_prestige = medium_prestige_gain
}
option = {
name = tribal.1102.a
}
}
#Rival won...
tribal.1104 = {
type = character_event
title = tribal.1101.t
desc = {
desc = tribal.1102.desc_opening
desc = tribal.1104.desc
}
theme = rival_relation
left_portrait = {
character = scope:rival
animation = personality_bold
}
immediate = {
set_signature_weapon_effect = yes
scope:rival = {
set_signature_weapon_effect = yes
}
increase_wounds_effect = { REASON = fight }
add_prestige = minor_prestige_loss
}
option = {
name = tribal.1104.a
}
}
immediate = {
scope:friend = {
set_signature_weapon_effect = yes
increase_wounds_effect = { REASON = fight }
}
scope:rival = {
set_signature_weapon_effect = yes
}
add_prestige = minor_prestige_loss
}
option = {
name = tribal.1105.a
}
}
#########################################
# Horse Racing #
# by Linnéa Thimrén #
#########################################
tribal.1201 = {
type = character_event
title = tribal.1201.t
desc = {
desc = tribal.1201.desc_opening
first_valid = {
triggered_desc = {
trigger = {
any_owned_story = {
story_type =
story_cycle_martial_lifestyle_warhorse
}
}
desc = tribal.1201.desc_warhorse
}
desc = tribal.1201.desc
}
desc = tribal.1201.desc_ending
}
theme = hunting
left_portrait = scope:racer
right_portrait = scope:villain_racer
trigger = {
is_available_adult = yes
has_government = tribal_government
capital_province = { geographical_region = world_steppe }
NOT = { has_character_flag = had_event_tribal_1201 }
OR = {
any_vassal = {
count >= 2
is_available_ai_adult = yes
}
any_courtier = {
count >= 2
is_available_ai_adult = yes
}
any_neighboring_realm_same_rank_owner = {
count >= 2
is_available_ai_adult = yes
has_government = tribal_government
capital_province = { geographical_region = world_steppe }
}
}
}
weight_multiplier = {
base = 1
modifier = {
add = 1
OR = { #More likely if someone that can be involved has a
warhorse story going on
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
}
any_vassal = {
is_available_ai_adult = yes
any_owned_story = {
story_type =
story_cycle_martial_lifestyle_warhorse
}
}
any_courtier = {
is_available_ai_adult = yes
any_owned_story = {
story_type =
story_cycle_martial_lifestyle_warhorse
}
}
any_neighboring_realm_same_rank_owner = {
has_government = tribal_government
capital_province = { geographical_region =
world_steppe }
is_available_ai_adult = yes
any_owned_story = {
story_type =
story_cycle_martial_lifestyle_warhorse
}
}
}
}
}
immediate = {
add_character_flag = {
flag = had_event_tribal_1201
years = 10
}
if = {
limit = {
any_vassal = {
is_available_ai_adult = yes
}
}
every_vassal = {
limit = {
is_available_ai_adult = yes
}
add_to_list = potential_racers
}
}
if = {
limit = {
any_neighboring_realm_same_rank_owner = {
is_available_ai_adult = yes
has_government = tribal_government
capital_province = { geographical_region =
world_steppe }
}
}
every_neighboring_realm_same_rank_owner = {
limit = {
is_available_ai_adult = yes
has_government = tribal_government
capital_province = { geographical_region =
world_steppe }
}
add_to_list = potential_racers
}
}
if = {
limit = {
any_courtier = {
is_available_ai_adult = yes
}
}
every_courtier = {
limit = {
is_available_ai_adult = yes
}
add_to_list = potential_racers
}
}
#To save the "good" racer
random_in_list = {
list = potential_racers
limit = {
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
}
}
alternative_limit = {
has_court_position = master_of_horse_court_position
}
alternative_limit = {
is_of_major_interest_to_root_trigger = yes
}
alternative_limit = {
always = yes
}
weight = {
base = 1
modifier = {
add = 10
has_any_good_relationship_with_root_trigger = yes
}
modifier = {
add = 5
is_powerful_vassal_of = root
}
opinion_modifier = {
opinion_target = root
multiplier = 10
}
}
save_scope_as = racer
}
#To save the "bad" racer
random_in_list = {
list = potential_racers
limit = {
any_owned_story = {
story_type = story_cycle_martial_lifestyle_warhorse
}
NOT = { this = scope:racer }
}
alternative_limit = {
has_court_position = master_of_horse_court_position
NOT = { this = scope:racer }
}
alternative_limit = {
is_of_major_interest_to_root_trigger = yes
NOT = { this = scope:racer }
}
alternative_limit = {
NOT = { this = scope:racer }
}
weight = {
base = 1
modifier = {
add = 10
has_personality_malicious_trigger = yes
}
modifier = {
add = 10
has_any_bad_relationship_with_root_trigger = yes
}
modifier = {
add = 5
is_powerful_vassal_of = root
}
opinion_modifier = {
opinion_target = root
multiplier = -10
}
}
save_scope_as = villain_racer
}
}
option = { #Join!
name = tribal.1201.a
custom_tooltip = tribal.1201.a.tt
trigger_event = {
id = tribal.1202
days = { 7 10 }
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
}
}
}
#Sabotage time
tribal.1202 = {
type = character_event
title = tribal.1201.t
desc = tribal.1202.desc
theme = hunting
left_portrait = {
character = scope:villain_racer
animation = personality_dishonorable
}
immediate = {
option = { #Intervene
name = tribal.1202.a
scope:villain_racer = {
add_opinion = {
target = root
modifier = insult_opinion
opinion = -20
}
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_honor = 0.75
}
}
}
after = {
trigger_event = {
id = tribal.1203
days = { 7 10 }
}
}
}
#Time to race!
tribal.1203 = {
type = character_event
title = tribal.1201.t
desc = {
desc = tribal.1203.desc_opening
first_valid = {
triggered_desc = {
trigger = {
exists = scope:sabotaged_you
}
desc = tribal.1203.desc_sabotaged_you
}
triggered_desc = {
trigger = {
exists = scope:sabotaged_racer
}
desc = tribal.1203.desc_sabotaged_racer
}
triggered_desc = {
trigger = {
exists = scope:sabotaged_villain
}
desc = tribal.1203.desc_sabotaged_villain
}
desc = tribal.1203.desc
}
}
theme = hunting
left_portrait = {
character = scope:racer
triggered_animation = {
trigger = {
exists = scope:sabotaged_racer
}
animation = pain
}
triggered_animation = {
trigger = {
NOT = { exists = scope:sabotaged_racer }
}
animation = idle
}
}
right_portrait = {
character = scope:villain_racer
triggered_animation = {
trigger = {
exists = scope:sabotaged_villain
}
animation = pain
}
triggered_animation = {
trigger = {
NOT = { exists = scope:sabotaged_villain }
}
animation = idle
}
}
immediate = {
if = {
limit = {
exists = scope:sabotaged_racer
}
scope:racer = {
increase_wounds_effect = { REASON = horse_riding_accident }
}
}
if = {
limit = {
exists = scope:sabotaged_villain
}
scope:villain_racer = {
increase_wounds_effect = { REASON = horse_riding_accident }
}
}
if = {
limit = {
exists = scope:sabotaged_you
}
increase_wounds_effect = { REASON = horse_riding_accident }
}
}
after = {
trigger_event = {
id = tribal.1204
days = { 7 10 }
}
}
}
#Finish line
tribal.1204 = {
type = character_event
title = tribal.1201.t
desc = {
first_valid = {
triggered_desc = {
trigger = {
OR = {
exists = scope:stopped_and_helped
exists = scope:sabotaged_you
}
}
desc = tribal.1204.desc_slow
}
desc = tribal.1204.desc_fast
}
first_valid = {
triggered_desc = {
trigger = {
exists = scope:racer_in_the_lead
}
desc = tribal.1204.desc_racer
}
triggered_desc = {
trigger = {
exists = scope:villain_in_the_lead
}
desc = tribal.1204.desc_villain
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:jumped_horses
}
desc = tribal.1204.desc_you_jumped_horses
}
desc = tribal.1204.desc_you
}
}
}
}
theme = hunting
left_portrait = {
character = scope:racer
triggered_animation = {
trigger = {
exists = scope:racer_in_the_lead
}
animation = happiness
}
triggered_animation = {
trigger = {
NOT = { exists = scope:racer_in_the_lead }
}
animation = sadness
}
}
right_portrait = {
character = scope:villain_racer
triggered_animation = {
trigger = {
exists = scope:villain_in_the_lead
OR = {
exists = scope:sabotaged_you
exists = scope:sabotaged_racer
}
}
animation = schadenfreude
}
triggered_animation = {
trigger = {
exists = scope:villain_in_the_lead
NOR = {
exists = scope:sabotaged_you
exists = scope:sabotaged_racer
}
}
animation = happiness
}
triggered_animation = {
trigger = {
NOT = { exists = scope:villain_in_the_lead }
}
animation = sadness
}
}
immediate = {
hidden_effect = {
random_list = {
5 = { #You win!
trigger = {
NOT = {
exists = scope:sabotaged_you
}
}
save_scope_value_as = {
name = in_the_lead
value = yes
}
modifier = {
add = root.prowess
}
modifier = {
add = -4
exists = scope:rammed_villains_horse
}
}
5 = { #Racer wins
trigger = {
NOT = {
exists = scope:sabotaged_racer
}
}
save_scope_value_as = {
name = racer_in_the_lead
value = yes
}
modifier = {
add = scope:racer.prowess
}
}
5 = { #Villain wins
trigger = {
NOT = {
exists = scope:sabotaged_villain
}
}
save_scope_value_as = {
name = villain_in_the_lead
value = yes
}
modifier = {
add = scope:villain_racer.prowess
}
}
}
}
}
option = { #I won!
name = tribal.1204.a
trigger = {
exists = scope:in_the_lead
}
add_prestige = major_prestige_gain
}
#########################################
# Crocodile Encounter #
# by Linnéa Thimrén #
#########################################
#Based on the travel narrative of Abu Abdalla ibn Battuta (he was alive a bit
later, but still...!)
tribal.1301 = {
type = character_event
title = tribal.1301.t
desc = tribal.1301.desc
theme = friendly
override_background = {
event_background = wilderness
}
left_portrait = {
character = scope:peasant
animation = dismissal
}
trigger = {
is_available_adult = yes
has_government = tribal_government
capital_province = { geographical_region = world_africa }
NOT = { has_character_flag = had_event_tribal_1301 }
}
immediate = {
add_character_flag = {
flag = had_event_tribal_1301
years = 20
}
create_character = {
template = servant_character
dynasty = none
location = root.capital_province
gender_female_chance = 50
save_scope_as = peasant
}
hidden_effect = {
scope:peasant = {
add_trait = brave
}
}
capital_county = {
save_scope_as = capital
}
}
option = { #Thanks.
name = tribal.1301.d
custom_tooltip = tribal.1301.d.tt
ai_chance = {
base = 50
}
}
}
immediate = {
increase_wounds_effect = { REASON = crocodile }
}
option = {
name = tribal.1302.a
}
}
#########################################
# Irrigate Oasis #
# by Linnéa Thimrén #
#########################################
tribal.1303 = {
type = character_event
title = tribal.1303.t
desc = tribal.1303.desc
theme = realm
left_portrait = scope:councillor
trigger = {
is_available_adult = yes
has_government = tribal_government
capital_province = { geographical_region = world_africa }
exists = cp:councillor_steward
short_term_gold >= medium_gold_value
NOT = { has_character_flag = had_event_tribal_1301 }
}
immediate = {
add_character_flag = {
flag = had_event_tribal_1301
years = 10
}
cp:councillor_steward = {
save_scope_as = councillor
}
capital_county = {
save_scope_as = capital
}
}
option = { #Invest
name = tribal.1303.a
scope:capital = {
add_county_modifier = {
modifier = irrigated_oasis_modifier
years = 10
}
}
remove_short_term_gold = medium_gold_value
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 0.75
}
}
}
option = { #Leave it
name = tribal.1303.c
scope:capital = {
add_county_modifier = {
modifier = oasis_modifier
years = 10
}
}
}
}