You are on page 1of 22

namespace = varangian

# Events about the Varangian Guard


# varangian.0001 - Find a potential Varangian and fire chain, by Petter
Vilberg
# varangian.0002 - Event for the liege of the Varangian candidate, by Petter
Vilberg
# varangian.0003 - Emperor gets a new varangian, by Petter Vilberg
# varangian.1001 - Varangian decides to return, by Petter Vilberg
# varangian.1002 - Varangian comes home to liege, by Petter Vilberg

# Ongoing Varangian events


# varangian.2001 - Become Best Friends with another Varangian, by Petter
Vilberg
# varangian.2002 - Become Lover with a fellow Varangian, by Petter Vilberg
# varangian.2003 - Become Friends with a local ruler, by Petter Vilberg
# varangian.2004 - Become Rivals with a local ruler, by Petter Vilberg
# varangian.2005 - Marry your lover, by Petter Vilberg
# varangian.2008 - Get wounded, by Petter Vilberg
# varangian.2011 - Become lover with a local, by Petter Vilberg
# varangian.2012 - Increase Prowess, by Petter Vilberg
# varangian.2013 - Increase Martial, by Petter Vilberg
# varangian.2014 - Increase Learning, by Petter Vilberg
# varangian.2015 - Increase Diplomacy, by Petter Vilberg
# varangian.2016 - Become Brave, by Petter Vilberg
# varangian.2017 - Become Ambitious, by Petter Vilberg
# varangian.2018 - Become Diligent, by Petter Vilberg

# Evaluate whether the target is valid for varangians


scripted_trigger varangian_0001_available_varangian_trigger = {
can_be_knight_trigger = {
ARMY_OWNER = title:e_byzantium.holder
}
age < 40
is_married = no
NOR = {
has_character_flag = has_asked_to_be_varangian
has_trait = varangian
}
religion = religion:germanic_religion
NOR = {
faith = {
has_doctrine_parameter = pacifist_opinion_active
}
has_trait = craven
has_truce = title:e_byzantium.holder
is_at_war_with = title:e_byzantium.holder
has_relation_rival = title:e_byzantium.holder
}
}

varangian.0001 = {
hidden = yes

trigger = {
religion = religion:germanic_religion
NOR = {
faith = {
has_doctrine_parameter = pacifist_opinion_active
}
has_character_flag = had_recent_varangian_sendoff
}
is_at_war = no
age >= 6
exists = title:e_byzantium.holder
NOR = {
this = title:e_byzantium.holder
has_truce = title:e_byzantium.holder
is_at_war_with = title:e_byzantium.holder
any_sub_realm_county = {
this = title:c_byzantion
}
has_relation_rival = title:e_byzantium.holder
}
any_courtier = {
varangian_0001_available_varangian_trigger = yes
}
}

immediate = {
# Find a suitable courtier
random_courtier = {
limit = {
varangian_0001_available_varangian_trigger = yes
}
weight = {
base = 1
compare_modifier = {
value = martial
multiplier = 0.25
}
compare_modifier = {
value = prowess
multiplier = 0.5
}
modifier = {
add = 5
OR = {
has_trait = brave
has_trait = arrogant
}
}
modifier = {
add = -1
has_trait = content
}
modifier = {
add = -1
has_trait = lazy
}
modifier = {
add = -1
has_trait = craven
}
modifier = {
add = 3
is_of_major_interest_to_root_trigger = yes
}
modifier = {
add = 2
is_of_minor_interest_to_root_trigger = yes
}
modifier = {
add = 1
exists = dynasty
}
# Reduce chances if they seem likely to inherit stuff soon
modifier = {
factor = 0.2
any_heir_title = {
holder = {
this = root
OR = {
age >= 60
health <= poor_health
}
}
}
}
}
add_character_flag = has_asked_to_be_varangian
save_scope_as = varangian_candidate
}

title:e_byzantium.holder = {
save_scope_as = emperor
if = {
limit = { capital_county = title:c_byzantion }
set_local_variable = {
name = to_miklagard
value = yes
}
}
}

# Send event to court owner


trigger_event = varangian.0002
}
}

# Varangian requests permission to leave


varangian.0002 = {
type = character_event
title = varangian.0002.t
desc = {
desc = varangian.0002.opening
first_valid = {
triggered_desc = {
trigger = { exists = local_var:to_miklagard }
desc = varangian.0002.miklagard
}
desc = varangian.0002.elsewhere
}
desc = varangian.0002.end
}
theme = martial
left_portrait = scope:varangian_candidate
lower_right_portrait = scope:emperor

immediate = {
add_character_flag = {
flag = had_recent_varangian_sendoff
years = 5
}
}

option = { # Approve
name = varangian.0002.a
show_as_tooltip = {
scope:varangian_candidate = {
visit_court_of = scope:emperor
add_trait = varangian
}
}
hidden_effect = {
scope:emperor = {
trigger_event = varangian.0003
}
}
debug_log = "Someone got sent as a Varangian"
debug_log_scopes = yes
ai_chance = {
base = 100
}
}

option = { # Keep them


name = varangian.0002.b
scope:varangian_candidate = {
add_opinion = {
target = root
modifier = angry_opinion
opinion = -20
}
}
ai_chance = {
base = 0
}
}
}

# Emperor gets a new varangian


varangian.0003 = {
hidden = yes

immediate = {
send_interface_message = {
type = event_martial_text_good
left_icon = scope:varangian_candidate
title = varangian_arrived.title
desc = varangian_arrived.desc
add_visiting_courtier = scope:varangian_candidate
scope:varangian_candidate = {
add_trait = varangian
add_character_flag = is_currently_varangian
set_variable = {
name = years_as_varangian
value = 1 # Set to one year ahead of time for the
sake of event evaluation
}
trigger_event = {
on_action = varangian_ongoing
days = { 340 380 }
}
}
}
}
}

# Return home eventually


scripted_trigger varangian_1001_partner_can_be_brought_home_trigger = {
is_alive = yes
is_landed = no
any_heir_title = {
always = no
}
}

varangian.1001 = {
hidden = yes

trigger = {
exists = liege
var:years_as_varangian > 5
is_available_ai_adult = yes
has_character_flag = is_currently_varangian
}

weight_multiplier = {
base = 1
modifier = {
add = {
value = var:years_as_varangian
subtract = 5
multiply = 0.25
}
always = yes
}
}

immediate = {
if = {
limit = {
exists = var:spouse_from_varangian_guard
var:spouse_from_varangian_guard = {
varangian_1001_partner_can_be_brought_home_trigger =
yes
is_consort_of = root
}
}
var:spouse_from_varangian_guard = {
save_scope_as = new_partner
}
}
else_if = {
limit = {
exists = var:lover_from_varangian_guard
var:lover_from_varangian_guard = {
varangian_1001_partner_can_be_brought_home_trigger =
yes
has_relation_lover = root
}
}
var:lover_from_varangian_guard = {
save_scope_as = new_partner
}
}
remove_character_flag = is_currently_varangian
save_scope_as = returning_varangian
if = {
limit = { exists = title:e_byzantium.holder }
title:e_byzantium.holder = {
save_scope_as = emperor
}
}
liege = {
trigger_event = varangian.1002
}
}
}

# Liege - Varangian returns home


varangian.1002 = {
type = character_event
title = varangian.1002.t
desc = {
desc = varangian.1002.opening
triggered_desc = {
trigger = {
exists = scope:new_partner
}
desc = varangian.1002.new_partner
}
desc = varangian.1002.ending
}
theme = martial
left_portrait = {
character = scope:returning_varangian
animation = pride
}
lower_left_portrait = scope:new_partner
lower_right_portrait = scope:emperor

immediate = {
scope:returning_varangian = {
if = {
limit = {
is_foreign_court_guest = yes
}
return_to_court = yes
}
else_if = {
limit = {
exists = dynasty.dynast.primary_title
}
dynasty.dynast = {
if = {
limit = {
scope:returning_varangian = {
NOT = {
is_courtier_of = prev
}
}
}
add_courtier = scope:returning_varangian
}
}
}
else_if = {
limit = {
exists = dynasty
any_close_family_member = {
is_ai = no
}
}
random_close_family_member = {
limit = {
is_ai = no
}
add_courtier = scope:returning_varangian
}
}
else_if = {
limit = {
any_close_family_member = {
is_ruler = yes
}
}
random_close_family_member = {
add_courtier = dynasty.dynast
}
}
else = {
move_to_pool = yes
}
}
hidden_effect = {
if = {
limit = {
exists = scope:new_partner
NOT = { scope:new_partner = { is_courtier_of = root }
}
}
scope:returning_varangian.court_owner = {
add_courtier = scope:new_partner
}
}
}
debug_log = "Someone got home from the Varangian Guard"
debug_log_scopes = yes
}
option = { # Wow
name = varangian.1002.a
scope:returning_varangian = {
add_prestige = medium_prestige_gain
add_gold = medium_gold_value
}
}
}

# Return home because of inheritance


# varangian.1003

# Liege - Varangian has returned home to be vassal


# varangian.1004

# Become friends with local Varangian


scripted_trigger varangian_2001_varangian_friend_trigger = {
has_character_flag = is_currently_varangian
is_ai = yes
NOR = {
this = root
has_relation_rival = root
has_relation_lover = root
}
}

varangian.2001 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
# Only if you don't have any friends
any_relation = {
type = best_friend
always = no
}
exists = host
host = {
any_courtier_or_guest = {
varangian_2001_varangian_friend_trigger = yes
}
}
}

immediate = {
host = {
random_courtier_or_guest = {
limit = {
varangian_2001_varangian_friend_trigger = yes
}
weight = {
base = 1
opinion_modifier = {
opinion_target = root
multiplier = 0.1 # +10 at 100
}
modifier = {
add = 10
OR = {
has_relation_potential_friend = root
has_relation_friend = root
}
}
}
save_scope_as = varangian_friend
}
}
set_relation_best_friend = scope:varangian_friend
}
}

# Become lover with a fellow Varangian


scripted_trigger varangian_2002_varangian_lover_trigger = {
has_character_flag = is_currently_varangian
is_ai = yes
is_adult = yes
save_temporary_scope_as = potential_cheater
OR = {
is_married = no
any_spouse = {
count = all
save_temporary_scope_as = partner
scope:potential_cheater = { might_cheat_on_partner_trigger =
{ PARTNER = scope:partner } }
}
}
is_attracted_to_gender_of = root
root = {
is_attracted_to_gender_of = prev
}
NOR = {
this = root
has_relation_rival = root
has_relation_lover = root
}
opinion = {
target = root
value > 10
}
reverse_opinion = {
target = root
value > 0
}
}

varangian.2002 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
# Only if you don't have any lovers
any_relation = {
type = lover
always = no
}
exists = host
host = {
any_courtier_or_guest = {
varangian_2002_varangian_lover_trigger = yes
}
}
}

immediate = {
host = {
random_courtier_or_guest = {
limit = {
varangian_2002_varangian_lover_trigger = yes
}
weight = {
base = 1
opinion_modifier = {
opinion_target = root
multiplier = 0.1 # +10 at 100
}
modifier = {
add = 10
has_relation_potential_lover = root
}
}
save_scope_as = varangian_lover
}
}
set_relation_lover = scope:varangian_lover
set_variable = {
name = lover_from_varangian_guard
value = scope:varangian_lover
}
}
}

# Become friends with local ruler


scripted_trigger varangian_2003_local_ruler_friend_trigger = {
is_ai = yes
opinion = {
target = root
value > 0
}
reverse_opinion = {
target = root
value > 0
}
NOR = {
this = root
has_relation_rival = root
has_relation_lover = root
}
}

varangian.2003 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
# Only if you don't have any friends
any_relation = {
type = friend
always = no
}
exists = host
host = {
any_vassal = {
varangian_2003_local_ruler_friend_trigger = yes
}
}
}

immediate = {
host = {
random_vassal = {
limit = {
varangian_2003_local_ruler_friend_trigger = yes
}
weight = {
base = 1
opinion_modifier = {
opinion_target = root
multiplier = 0.1 # +10 at 100
}
modifier = {
add = 10
has_relation_potential_friend = root
}
}
save_scope_as = varangian_friend
}
}
set_relation_lover = scope:varangian_friend
}
}

# Become rivals with local ruler


scripted_trigger varangian_2004_local_ruler_rival_trigger = {
is_ai = yes
opinion = {
target = root
value < 0
}
reverse_opinion = {
target = root
value < 0
}
NOR = {
this = root
has_relation_friend = root
has_relation_lover = root
}
}

varangian.2004 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
# Only if you don't have any rival
any_relation = {
type = rival
always = no
}
exists = host
host = {
any_vassal = {
varangian_2004_local_ruler_rival_trigger = yes
}
}
}

immediate = {
host = {
random_vassal = {
limit = {
varangian_2004_local_ruler_rival_trigger = yes
}
weight = {
base = 1
opinion_modifier = {
opinion_target = root
multiplier = 0.1 # +10 at 100
}
modifier = {
add = 10
has_relation_potential_friend = root
}
}
save_scope_as = varangian_friend
}
}
set_relation_lover = scope:varangian_friend
}
}

# Marry Lover
scripted_trigger varangian_2005_lover_to_marry = {
is_ai = yes
is_married = no
can_marry_character_trigger = {
CHARACTER = root
}
OR = {
is_in_the_same_court_as_or_guest = root
top_liege = root.host
AND = {
exists = host
host.top_liege = root.host
}
}
}

scripted_trigger varangian_2005_should_marry_this_character_matrilineally = {
is_female = yes
OR = {
AND = {
is_landed = yes
$OTHER_CHARACTER$ = { # Not if they are heir to anything
any_heir_title = {
always = no
}
}
}
AND = {
faith = {
has_doctrine = doctrine_gender_female_dominated
}
$OTHER_CHARACTER$ = {
faith = {
OR = {
has_doctrine = doctrine_gender_female_dominated
has_doctrine = doctrine_gender_equal
}
}
}
}
}
}

varangian.2005 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
is_married = no
any_relation = {
type = lover
varangian_2005_lover_to_marry = yes
}
}

immediate = {
random_relation = {
type = lover
limit = {
varangian_2005_lover_to_marry = yes
}
save_scope_as = lover_to_marry
}
if = {
limit = {
OR = {

varangian_2005_should_marry_this_character_matrilineally = { OTHER_CHARACTER
= scope:lover_to_marry }
scope:lover_to_marry = {

varangian_2005_should_marry_this_character_matrilineally = { OTHER_CHARACTER
= root }
}
}
}
marry_matrilineal = scope:lover_to_marry
}
else = {
marry = scope:lover_to_marry
}
set_variable = {
name = spouse_from_varangian_guard
value = scope:lover_to_marry
}
}
}

# Get Murdered
# varangian.2006

# Liege - notification they were murdered

# Get Wounded
varangian.2008 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
NOR = {
has_trait = wounded
has_character_flag = had_severe_injury_in_varangian_guard
}
}

immediate = {
add_character_flag = had_severe_injury_in_varangian_guard
random_list = {
10 = {
increase_wounds_effect = { REASON = fight }
increase_wounds_effect = { REASON = fight }
}
5 = {
increase_wounds_effect = { REASON = fight }
increase_wounds_effect = { REASON = fight }
increase_wounds_effect = { REASON = fight }
}
5 = {
trigger = {
NOT = { has_trait = one_eyed }
}
add_trait = one_eyed
}
5 = {
trigger = {
NOT = { has_trait = one_legged }
}
add_trait = one_legged
}
2 = {
trigger = {
NOT = {
has_trait = eunuch
is_male = yes
}
}
add_trait = eunuch
}
2 = {
trigger = {
NOT = {
has_trait = blind
is_male = yes
}
}
add_trait = blind
}
}
}
}

# Get Killed in battle


# varangian.2009

# Liege - notification they were killed


# varangian.2010

# Become lover with a local


scripted_trigger varangian_2011_local_lover_trigger = {
is_ai = yes
is_adult = yes
is_attracted_to_gender_of = root
root = {
is_attracted_to_gender_of = prev
}
save_temporary_scope_as = potential_cheater
OR = {
is_married = no
any_spouse = {
count = all
save_temporary_scope_as = partner
scope:potential_cheater = { might_cheat_on_partner_trigger =
{ PARTNER = scope:partner } }
}
}
NOR = {
this = root
has_relation_rival = root
has_relation_lover = root
}
opinion = {
target = root
value > 10
}
reverse_opinion = {
target = root
value > 0
}
}

varangian.2011 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
exists = host
}
immediate = {
random_list = {
10 = { # Find someone suitable
trigger = {
host = {
OR = {
varangian_2011_local_lover_trigger = yes
any_courtier = {
varangian_2011_local_lover_trigger
= yes
}
any_vassal = {
varangian_2011_local_lover_trigger
= yes
any_courtier = {

varangian_2011_local_lover_trigger = yes
}
}
}
}
}
host = {
if = {
limit = { varangian_2011_local_lover_trigger =
yes }
add_to_list = potential_lover
}
every_courtier = {
limit = { varangian_2011_local_lover_trigger =
yes }
add_to_list = potential_lover
}
every_vassal = {
if = {
limit =
{ varangian_2011_local_lover_trigger = yes }
add_to_list = potential_lover
}
every_courtier = {
limit =
{ varangian_2011_local_lover_trigger = yes }
add_to_list = potential_lover
}
}
}
random_in_list = {
list = potential_lover
weight = {
base = 1
modifier = {
add = 5
is_landed = no
}
}
save_scope_as = lover
}
}
10 = { # Create a beautiful peasant
create_character = {
template = beautiful_peasant_character
age = { age_compared_to_root_minus_ten_always_adult
age_compared_to_root_plus_ten_always_adult }
gender_female_chance =
root_attraction_based_female_chance
employer = root.host
faith = root.host.faith
culture = root.host.culture
save_scope_as = lover
}
}
10 = { # Create a noble
create_character = {
template = pool_repopulate_spouse
age = { age_compared_to_root_minus_ten_always_adult
age_compared_to_root_plus_ten_always_adult }
gender_female_chance =
root_attraction_based_female_chance
employer = root.host
faith = root.host.faith
culture = root.host.culture
dynasty = generate
save_scope_as = lover
}
}
5 = { # Create a witch
create_character = {
template = witchy_template
age = { age_compared_to_root_minus_ten_always_adult
age_compared_to_root_plus_ten_always_adult }
gender_female_chance =
root_attraction_based_female_chance
employer = root.host
faith = root.host.faith
culture = root.host.culture
save_scope_as = lover
}
}
5 = { # Create a witch with a Dyansty
create_character = {
template = witchy_template
age = { age_compared_to_root_minus_ten_always_adult
age_compared_to_root_plus_ten_always_adult }
gender_female_chance =
root_attraction_based_female_chance
employer = root.host
faith = root.host.faith
culture = root.host.culture
dynasty = generate
save_scope_as = lover
}
}
}
set_relation_lover = scope:lover
}
}
# Increase Prowess
varangian.2012 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
NOT = { has_character_flag = varangian_recently_increased_prowess }
}

weight_multiplier = {
base = 1
compare_modifier = { # Reduce chance for each current Prowess over 15
value = prowess
multiplier = -0.1
offset = -15
trigger = {
prowess > 15
}
}
}

immediate = {
add_character_flag = {
flag = varangian_recently_increased_prowess
years = 2
}
add_prowess_skill = 1
}
}

# Increase Martial
varangian.2013 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
NOT = { has_character_flag = varangian_recently_increased_martial }
}

weight_multiplier = {
base = 1
compare_modifier = { # Reduce chance for each current martial over 15
value = martial
multiplier = -0.1
offset = -15
trigger = {
martial > 15
}
}
}

immediate = {
add_character_flag = {
flag = varangian_recently_increased_martial
years = 2
}
add_martial_skill = 1
}
}
# Increase Learning
varangian.2014 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
NOT = { has_character_flag = varangian_recently_increased_learning }
}

weight_multiplier = {
base = 1
compare_modifier = { # Reduce chance for each current learning over 15
value = learning
multiplier = -0.1
offset = -15
trigger = {
learning > 15
}
}
}

immediate = {
add_character_flag = {
flag = varangian_recently_increased_learning
years = 2
}
add_learning_skill = 1
}
}

# Increase Diplomacy
varangian.2015 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
NOT = { has_character_flag = varangian_recently_increased_diplomacy }
}

weight_multiplier = {
base = 1
compare_modifier = { # Reduce chance for each current diplomacy over 15
value = diplomacy
multiplier = -0.1
offset = -15
trigger = {
diplomacy > 15
}
}
}

immediate = {
add_character_flag = {
flag = varangian_recently_increased_diplomacy
years = 2
}
add_diplomacy_skill = 1
}
}

# Become Brave
varangian.2016 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
OR = {
has_trait = craven
has_trait = lazy
has_trait = content
}
NOT = { has_trait = brave }
}

weight_multiplier = {
base = 1
}

immediate = {
if = {
limit = { has_trait = craven }
remove_trait = craven
}
else_if = {
limit = { has_trait = lazy }
remove_trait = lazy
}
else = {
limit = { has_trait = content }
remove_trait = content
}
add_trait = brave
}
}

# Become Ambitious
varangian.2017 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
OR = {
has_trait = craven
has_trait = lazy
has_trait = content
}
NOT = { has_trait = ambitious }
}

weight_multiplier = {
base = 1
}

immediate = {
if = {
limit = { has_trait = content }
remove_trait = content
}
else_if = {
limit = { has_trait = lazy }
remove_trait = lazy
}
else = {
limit = { has_trait = craven }
remove_trait = craven
}
add_trait = ambitious
}
}

# Become Diligent
varangian.2018 = {
hidden = yes

trigger = {
has_character_flag = is_currently_varangian
OR = {
has_trait = craven
has_trait = lazy
has_trait = content
}
NOT = { has_trait = diligent }
}

weight_multiplier = {
base = 1
}

immediate = {
if = {
limit = { has_trait = lazy }
remove_trait = lazy
}
else_if = {
limit = { has_trait = diligent }
remove_trait = diligent
}
else = {
limit = { has_trait = craven }
remove_trait = craven
}
add_trait = diligent
}
}

# Liege: Varangian has died saving the Emeperor's life


# by Petter Vilberg
varangian.3001 = {
type = character_event
title = varangian.3001.t
desc = varangian.3001.desc
theme = murder_scheme
left_portrait = scope:varangian
right_portrait = {
character = scope:emperor
animation = sadness
}

option = {
name = varangian.3001.a
add_gold = major_gold_value
}
}

# Emperor: Varangians are great fighters

You might also like