N3OW/events/war_events/raid_events.txt

1489 lines
34 KiB
Text
Raw Normal View History

2026-05-28 09:09:00 -04:00
namespace = raiding
##################################################
#Raiding CB events
#0001-0002 - You have the chance to sack a holding.
#0003 - Your holding may have been sacked (liege or vassal).
#0004 - Your vassal's holding may have been sacked.
#0011 - Raiding notification event, received upon delivering army loot.
#0012 - Raiding notification event, telling involved parties how much loot a defending army stole.
#0021 - Increase raid tally.
#0022 - Chance to fire viking/raider trait acquisition event.
#0023 - Acquire viking/raider trait.
##################################################
##################################################
# Fire and Blood
# by Ewan Cowhig Croft
# #0001-0004
##################################################
# You have the chance to sack a holding.
raiding.0001 = { #Hidden event: do I get a sacking?
hidden = yes
scope = army
trigger = {
#You must be leading your own forces.
scope:raider = { is_at_location = scope:barony.title_province }
scope:barony.title_province = { fort_level > 0 }
#The county must not have recently been sacked.
NOR = {
scope:county = { has_county_modifier = recently_sacked_modifier }
scope:county.title_province = { has_holding_type = herder_holding }
}
}
immediate = {
save_scope_as = raid_army
random = {
chance = 20
modifier = {
add = 20
scope:raider = { has_trait = viking }
}
modifier = {
add = 30
scope:raid_army = { raid_intent = raze_intent }
}
scope:raider = {
# Grab some loc things.
scope:county = { save_scope_as = sacked_county }
scope:barony = { save_scope_as = sacked_barony }
scope:raider.capital_province = { save_scope_as = raider_capital }
trigger_event = raiding.0002
}
}
}
}
raiding.0002 = { #Less hidden event: I do get a sacking!
type = character_event
title = raiding.0002.t
desc = raiding.0002.desc
theme = raid
override_background = { reference = burning_building }
left_portrait = {
character = root
animation = menacing
}
right_portrait = {
character = scope:sacked_county_owner
animation = fear
triggered_animation = {
trigger = {
ai_vengefulness >= medium_positive_ai_value
ai_boldness > high_negative_ai_value
}
animation = rage
}
}
trigger = {
NOT = { has_character_flag = had_event_raiding_0002 }
}
immediate = {
add_character_flag = {
flag = had_event_raiding_0002
days = 365
}
#For loc.
scope:sacked_county.holder = { save_scope_as = sacked_county_owner }
}
#Bring me slaves and scrolls!
option = {
name = raiding.0002.a
trigger = {
NOT = { government_has_flag = government_is_nomadic }
root.capital_county = { development_level < 15 } #If you have a certain amount of development, you can't gain anything from this.
OR = {
scope:county = { development_level > 15 } #The county must actually have enough development to be worth sacking.
scope:county.holder = { #Or at least be a non-tribal place.
NOR = {
government_has_flag = government_is_tribal
government_has_flag = government_is_nomadic
government_has_flag = government_is_herder
}
}
}
}
scope:sacked_county = {
add_county_modifier = { #Prevent the county from being sacked again, by anyone, for quite a while.
modifier = recently_sacked_modifier
years = 20
}
change_county_control = -10
change_development_progress = major_development_progress_loss #Always deduct progress.
if = { #If they don't have enough progress made, burn a level of development.
limit = { development_towards_level_increase < major_development_progress_gain }
change_development_level = -1
}
save_scope_value_as = {
name = sack_status
value = flag:admin_plundered
}
holder = {
trigger_event = raiding.0003
if = {
limit = { top_liege != this }
liege = { trigger_event = raiding.0004 }
}
}
}
root.capital_county = {
change_development_progress = medium_development_progress_gain
}
stress_impact = {
compassionate = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_greed = 0.5
ai_compassion = -0.5
}
modifier = { #Weight down for stress.
add = -20
has_trait = compassionate
}
modifier = { #Weight down for stress.
add = -20
has_trait = forgiving
}
}
}
option = {
name = raiding.0002.a_nomad
trigger = {
government_has_flag = government_is_nomadic
}
scope:sacked_county = {
add_county_modifier = { #Prevent the county from being sacked again, by anyone, for quite a while.
modifier = recently_sacked_modifier
years = 20
}
change_county_control = -10
change_development_progress = major_development_progress_loss #Always deduct progress.
if = { #If they don't have enough progress made, burn a level of development.
limit = { development_towards_level_increase < major_development_progress_gain }
change_development_level = -1
}
save_scope_value_as = {
name = sack_status
value = flag:admin_plundered
}
holder = {
trigger_event = raiding.0003
if = {
limit = { is_independent_ruler = no }
liege = { trigger_event = raiding.0004 }
}
}
}
root.capital_county = {
add_county_modifier = {
modifier = stolen_ewes_and_mares_modifier
years = 10
}
}
stress_impact = {
compassionate = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_greed = 0.5
ai_compassion = -0.5
}
modifier = { #Weight down for stress.
add = -20
has_trait = compassionate
}
modifier = { #Weight down for stress.
add = -20
has_trait = forgiving
}
}
}
#Bring me bounteous plunder!
option = {
name = raiding.0002.b
scope:sacked_county = {
add_county_modifier = { #Prevent the county from being sacked again for quite a while.
modifier = recently_sacked_modifier
years = 20
}
if = { #If they have enough progress gain to take the hit, then they just lose some progress.
limit = {
development_towards_level_increase > medium_development_progress_loss
}
change_development_progress = medium_development_progress_loss
}
else = { #If they don't, then they lose the progress, and a level of development is burned away.
change_development_progress = medium_development_progress_loss
change_development_level = -1
}
save_scope_value_as = {
name = sack_status
value = flag:gold_plundered
}
holder = {
if = {
limit = { top_liege = this }
trigger_event = raiding.0003
}
else = {
trigger_event = raiding.0003
liege = { trigger_event = raiding.0004 }
}
}
}
scope:raid_army = { add_loot = scope:sacked_barony.county.title_province.raid_gold_value }
add_prestige = minor_prestige_value
stress_impact = {
compassionate = minor_stress_impact_gain
forgiving = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_greed = 0.75
ai_compassion = -0.25 #It's more ethical to steal stuff than people, right?
}
modifier = { #Weight down for stress.
add = -20
has_trait = compassionate
}
modifier = { #Weight down for stress.
add = -20
has_trait = forgiving
}
}
}
#I want no part of these shenanigans.
option = {
name = raiding.0002.c
scope:sacked_county = {
#Opinion gain if not primary defender.
save_scope_value_as = {
name = sack_status
value = flag:spared_plundered
}
holder = {
if = {
limit = { top_liege = this }
trigger_event = raiding.0003
}
else = {
trigger_event = raiding.0003
liege = { trigger_event = raiding.0004 }
}
}
}
if = {
limit = {
faith = {
OR = {
trait_is_sin = compassionate
trait_is_sin = forgiving
trait_is_sin = calm
}
}
}
add_piety = minor_piety_loss
}
else = { add_piety = medium_piety_gain }
stress_impact = {
sadistic = minor_stress_impact_gain
vengeful = minor_stress_impact_gain
wrathful = minor_stress_impact_gain
greedy = minor_stress_impact_gain
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = 0.25
ai_greed = -0.25
}
modifier = { #Weight down for stress.
add = -20
has_trait = sadistic
}
modifier = { #Weight down for stress.
add = -20
has_trait = vengeful
}
modifier = { #Weight down for stress.
add = -20
has_trait = wrathful
}
}
}
}
# Your holding may have been sacked (liege or vassal).
raiding.0003 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = { scope:sack_status = flag:spared_plundered }
desc = raiding.0003.t_spared
}
desc = raiding.0003.t_attacked
}
}
desc = {
first_valid = {
triggered_desc = { #If the holding was raided for skilled slaves, let us know of such.
trigger = {
scope:sack_status = flag:admin_plundered
top_liege = this
}
desc = raiding.0003.desc.admin_plundered_independent
}
triggered_desc = { #If the holding was raided for gold, then tell us our shinies are gone.
trigger = {
scope:sack_status = flag:gold_plundered
top_liege = this
}
desc = raiding.0003.desc.gold_plundered_independent
}
triggered_desc = { #If the holding was spared, we have a lukewarm one response.
trigger = {
scope:sack_status = flag:spared_plundered
top_liege = this
}
desc = raiding.0003.desc.spared_plundered_independent
}
triggered_desc = {
trigger = { scope:sack_status = flag:admin_plundered }
desc = raiding.0003.desc.admin_plundered_vassal
}
triggered_desc = {
trigger = { scope:sack_status = flag:gold_plundered }
desc = raiding.0003.desc.gold_plundered_vassal
}
desc = raiding.0003.desc.spared_plundered_vassal
}
}
theme = raid
override_background = {
reference = burning_building
}
left_portrait = {
character = scope:raider
animation = war_over_win
}
#Oh no!
option = {
name = raiding.0003.a
add_prestige = minor_prestige_loss
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -0.25 #I am too lazy to do much more than lament.
ai_vengefulness = -0.25 #I will not stand for this.
}
}
}
#I will avenge this slight!
option = {
name = raiding.0003.b
trigger = {
NOT = { scope:sack_status = flag:spared_plundered }
}
if = {
limit = { has_relation_rival = scope:raider }
add_prestige = miniscule_prestige_gain
}
else = {
progress_towards_rival_effect = {
REASON = rival_raided_me
CHARACTER = scope:raider
OPINION = 0
}
}
stress_impact = { forgiving = minor_stress_impact_gain }
ai_chance = {
base = 0 #Otherwise every raiding culture will have a million rivals.
ai_value_modifier = { #Vengeful characters may do this, though.
ai_vengefulness = 0.2
}
modifier = { #Angry characters can also struggle to get over these things.
add = 10
has_trait = wrathful
}
modifier = { #Vengeful characters are, by definition, not going to let things go.
add = 10
has_trait = vengeful
}
modifier = { #Dead peasants happen, y'know?
add = -20
has_trait = forgiving
}
}
}
#I will pay for the reconstruction.
option = {
name = raiding.0003.c
trigger = {
top_liege = this
NOT = { scope:sack_status = flag:spared_plundered }
NOT = { government_has_flag = government_is_tribal } #Tribes don't care about development.
NOT = { government_has_flag = government_is_nomadic }
OR = {
is_ai = no
short_term_gold >= scope:sacked_barony.county.title_province.raid_gold_value
}
}
remove_treasury_or_gold = scope:sacked_barony.county.title_province.raid_gold_value
scope:sacked_county = {
add_county_modifier = {
modifier = rebuilding_after_sacking_modifier
years = 10
}
}
stress_impact = { lazy = minor_stress_impact_gain }
ai_chance = {
base = 50
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = -0.5
}
modifier = { #Weight down for stress.
add = -20
has_trait = lazy
}
}
}
}
# Your vassal's holding may have been sacked.
raiding.0004 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = { scope:sack_status = flag:spared_plundered }
desc = raiding.0003.t_spared
}
desc = raiding.0003.t_attacked
}
}
desc = {
first_valid = {
triggered_desc = { #If the holding was raided for skilled slaves, let us know of such.
trigger = { scope:sack_status = flag:admin_plundered }
desc = raiding.0004.desc.admin_plundered
}
triggered_desc = { #If the holding was raided for gold, then tell us our vassal's shinies are gone.
trigger = { scope:sack_status = flag:gold_plundered }
desc = raiding.0004.desc.gold_plundered
}
desc = raiding.0004.desc.spared_plundered #If the holding was spared, we have a lukewarm one response.
}
}
theme = raid
override_background = {
reference = burning_building
}
left_portrait = {
character = scope:raider
animation = anger
}
right_portrait = {
character = scope:sacked_county_owner
animation = fear
triggered_animation = {
trigger = {
ai_vengefulness >= medium_positive_ai_value
ai_boldness > high_negative_ai_value
}
animation = rage
}
}
#Oh no!
option = {
name = {
text = raiding.0004.a
trigger = {
NOT = { government_has_flag = government_is_tribal }
}
}
name = {
text = raiding.0004.a.tribal
trigger = { government_has_flag = government_is_tribal }
}
add_prestige = miniscule_prestige_loss
ai_chance = {
base = 50
ai_value_modifier = {
ai_energy = -0.25 #Too lazy to care.
ai_compassion = -0.25 #But wouldn't care anyway.
}
}
}
#Send some cash-monies.
option = {
name = raiding.0004.b
trigger = {
NOT = { scope:sack_status = flag:spared_plundered }
OR = {
is_ai = no
short_term_gold >= medium_gold_value
}
}
pay_treasury_or_gold = {
target = scope:sacked_county.holder
value = scope:sacked_barony.county.title_province.raid_gold_value
}
scope:sacked_county.holder = {
add_opinion = {
target = liege
modifier = grateful_opinion
opinion = 20
}
}
stress_impact = { greedy = medium_stress_impact_gain }
ai_chance = {
base = 20 #Reduced base chance: the AI shouldn't bankrupt itself helping vassals.
ai_value_modifier = {
ai_compassion = 0.25
ai_greed = -0.25
}
modifier = { #Weight down for stress.
add = -20
has_trait = greedy
}
}
}
#I will pay for the reconstruction.
option = {
name = raiding.0004.c
trigger = {
NOR = {
scope:sack_status = flag:spared_plundered
government_has_flag = government_is_tribal #Tribes don't care about development.
government_has_flag = government_is_nomadic
}
OR = {
is_ai = no
short_term_gold >= scope:sacked_barony.county.title_province.raid_gold_value
}
}
remove_treasury_or_gold = scope:sacked_barony.county.title_province.raid_gold_value
scope:sacked_county.holder = {
add_opinion = {
target = liege
modifier = grateful_opinion
opinion = 30
}
}
scope:sacked_county = {
add_county_modifier = {
modifier = rebuilding_after_sacking_modifier
years = 10
}
}
if = {
limit = {
employs_court_position = royal_architect_court_position
any_court_position_holder = {
type = royal_architect_court_position
}
}
random_court_position_holder = {
type = royal_architect_court_position
save_scope_as = architect
}
custom_tooltip = raiding.0004.c.architect
scope:sacked_county.holder = {
send_interface_message = {
type = event_raid_good
title = raiding.0004.c.feed.t
desc = raiding.0004.c.feed.desc2
right_icon = liege
}
}
}
else = {
scope:sacked_county.holder = {
send_interface_message = {
type = event_raid_bad
title = raiding.0004.c.feed.t
desc = raiding.0004.c.feed.desc
right_icon = liege
}
}
}
stress_impact = { greedy = medium_stress_impact_gain }
ai_chance = {
base = 10 #Reduced base chance: the AI shouldn't bankrupt itself helping vassals.
ai_value_modifier = {
ai_compassion = 0.5
ai_greed = -0.5
}
modifier = { #Weight down for stress.
add = -20
has_trait = greedy
}
}
}
}
##################################################
# Raiding Notification Events
# by Ewan Cowhig Croft
# #0011-0012
##################################################
### DEPRECATED ###
# Now the interface message is sent out by raid intents instead
raiding.0011 = {
hidden = yes
orphan = yes
scope = army
immediate = {
set_variable = {
name = raid_loot
value = root.raid_loot
}
if = {
limit = {
scope:raider = {
not_tribal_raid_trigger = yes
}
}
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raiding.0011.t
desc = raiding.0011.desc_non_tribal
right_icon = root.army_commander
hidden_effect = {
add_prestige = {
value = root.var:raid_loot
multiply = not_tribal_raid_prestige_multiplier
multiply = -1
}
}
}
}
}
else = {
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raiding.0011.t
desc = raiding.0011.desc
right_icon = root.army_commander
hidden_effect = { add_prestige = root.var:raid_loot }
}
}
}
}
}
# Loot lost to defending army.
raiding.0012 = {
hidden = yes
scope = army
immediate = {
set_variable = {
name = raid_loot
value = root.raid_loot
}
set_variable = {
name = raid_prestige
value = {
value = root.raid_loot
multiply = 0.5
ceiling = yes
}
}
if = {
limit = {
OR = {
var:raid_loot >= 1
var:raid_prestige >= 1
}
}
scope:raider = {
send_interface_message = {
type = event_raid_bad_text
title = raiding.0012.a.t
desc = raiding.0012.a.desc
left_icon = root.army_commander
right_icon = scope:recipient
}
}
scope:recipient = {
send_interface_message = {
type = event_raid_good_text
title = raiding.0012.b.t
desc = raiding.0012.b.desc
right_icon = root.army_commander
hidden_effect = { add_prestige = root.var:raid_prestige }
}
}
}
}
}
# Prisoner-taking script beyond this point. Much of this is transcribed from work done by Sean Hughes & Mathilda Bjarnehed for siege events.
scripted_trigger raiding_0012_can_be_captured = {
# Captured characters must be located in the raided barony itself.
location = scope:barony.title_province
# Reasons to exclude characters from the capture pool:
NOR = {
# If the raiders have defeated the holder's army, but the army has not yet retreated to a different province, shield them from capture by the raid.
exists = commanding_army
exists = knight_army
# Is imprisoned in the barony stay prisoners (special case, any courtiers/vassals of the raider will get released elsewhere).
is_imprisoned = yes
}
}
# Chance to kidnap prisoners from the holding holder.
raiding.0013 = {
hidden = yes
scope = army
trigger = { # Only take prisoners if this barony is the holder's capital (where their family/courtiers live), or there is an estate
OR = {
scope:barony.holder.capital_barony = scope:barony
location = {
any_province_domicile = {
is_domicile_type = estate
}
}
}
}
immediate = {
# For localization.
scope:raider = { save_scope_as = occupant }
scope:barony.holder = { save_scope_as = holder }
location = {
random_province_domicile = {
limit = {
is_domicile_type = estate
}
owner ?= { save_scope_as = estate_holder }
}
}
#BUILD CAPTURE ATTEMPT LIST
scope:barony.holder = {
if = {
limit = { raiding_0012_can_be_captured = yes }
add_to_list = capture_attempt_targets
}
every_courtier_or_guest = {
limit = { raiding_0012_can_be_captured = yes }
add_to_list = capture_attempt_targets
}
}
scope:estate_holder ?= {
if = {
limit = {
raiding_0012_can_be_captured = yes
is_landed = no # they are at the estate
}
add_to_list = capture_attempt_targets
}
every_courtier_or_guest = {
limit = {
raiding_0012_can_be_captured = yes
location = scope:barony.title_province
}
add_to_list = capture_attempt_targets
}
}
#CALCULATE CAPTURE CHANCE
every_in_list = {
list = capture_attempt_targets
random = {
# Base chance handled in a modifier due to the chance parameter tending to quietly fail to parse scripted values.
chance = 0
# Base chance starts at 20%, before value modifiers & target modifiers.
modifier = { add = raid_base_capture_chance }
# Add -0.5 chance per 1pt of Intrigue, averaging out at -5% chance for 10pts of Intrigue.
modifier = {
add = {
value = this.intrigue
multiply = -0.5
min = -10
}
# Requiring a certain base level to be at all effective.
intrigue > low_skill_rating
}
# Add -0.5 chance per 1pt of Prowess, averaging out at -5% chance for 10pts of Prowess.
modifier = {
add = {
value = this.prowess
multiply = -0.5
min = -10
}
# Requiring a certain base level to be at all effective.
prowess > low_skill_rating
}
# Less likely to capture the ruler themselves in a raid
modifier = {
is_landed = yes
add = -10
}
# Less likely to capture the estate owner themselves
modifier = {
scope:estate_holder ?= this
add = -10
}
# If there is an estate, Watchtowers and Guardhouses make captures less likely
modifier = {
location = {
any_province_domicile = {
is_domicile_type = estate
has_domicile_parameter = raids_less_likely_to_make_prisoners_1
}
}
add = -10
}
modifier = {
location = {
any_province_domicile = {
is_domicile_type = estate
has_domicile_parameter = raids_less_likely_to_make_prisoners_2
}
}
add = -15
}
modifier = {
location = {
any_province_domicile = {
is_domicile_type = estate
has_domicile_parameter = raids_less_likely_to_make_prisoners_3
}
}
add = -20
}
modifier = {
root = {
OR = {
raid_intent = capture_intent_nomadic
raid_intent = capture_intent_norse
}
}
has_raid_intent_immunity = no
add = {
value = 15
if = {
limit = {
has_raid_intent_protection = yes
}
subtract = 10
}
if = {
limit = {
scope:raider = { has_perk = kidnapper_perk }
}
add = 10
}
if = {
limit = {
scope:raider.culture ?= { has_innovation = innovation_motte }
}
add = 5
}
}
}
# Capture Effects
if = {
limit = { desirable_for_capture_trigger = yes }
add_to_list = captured_targets_effects
}
else = { add_to_list = killed_targets }
}
}
#NOTIFY CONCERNED PARTIES
#Inform about captures.
if = {
limit = {
any_in_list = {
list = captured_targets_effects
count >= 1
}
}
#Inform raider.
scope:raider = {
trigger_event = siege.0002
}
#Inform affected holder about captures.
scope:barony.holder = {
if = {
limit = {
save_temporary_scope_as = notification_target
any_in_list = {
list = captured_targets_effects
this != scope:notification_target
}
}
trigger_event = siege.0003
}
}
#Inform concerned players about captures.
every_player = {
limit = {
NOR = {
this = scope:raider
this = scope:barony.holder
}
save_temporary_scope_as = notification_target
any_in_list = {
list = captured_targets_effects
has_any_relation_trigger = { CHARACTER = scope:notification_target }
}
}
trigger_event = siege.0004
}
}
#Inform about kills.
if = {
limit = {
any_in_list = {
list = killed_targets
count >= 1
}
}
# Inform affected holder about kills.
scope:barony.holder = {
trigger_event = siege.0013
}
#Inform concerned players about kills.
every_player = {
limit = {
NOR = {
this = scope:raider
this = scope:barony.holder
}
save_temporary_scope_as = notification_target
any_in_list = {
list = killed_targets
has_any_relation_trigger = { CHARACTER = scope:notification_target }
}
}
trigger_event = siege.0014
}
}
#IMPRISON & KILL EFFECTS
every_in_list = {
list = captured_targets_effects
hidden_effect = {
add_character_flag = {
flag = block_imprisonment_event
days = 1
}
}
prisoner_of_war_capture_effect = {
TARGET = this
IMPRISONER = scope:raider
}
}
every_in_list = {
list = killed_targets
limit = { is_alive = yes }
death = {
death_reason = death_raid
}
}
}
}
scripted_trigger raiding_0014_artifact_can_be_stolen = {
exists = this
OR = {
scope:barony.holder = { # If the character is in the province and not leading an army, their stuff is probably valid to steal
location = scope:barony.title_province
NOR = {
exists = commanding_army
exists = knight_army
is_imprisoned = yes
}
}
is_equipped = no
ep1_artifact_is_court_artifact_trigger = yes
}
}
# Chance to steal an artifact from the holding holder.
raiding.0014 = {
hidden = yes
scope = army
trigger = {
scope:barony.holder = {
# Can only steal an artifact if this barony is the holder's capital (where they have their treasury/royal court.
capital_barony = scope:barony
# Holder also needs to actually possess an artifact to steal.
any_character_artifact = {
raiding_0014_artifact_can_be_stolen = yes
}
}
}
immediate = {
scope:barony.holder = {
random_character_artifact = {
limit = { raiding_0014_artifact_can_be_stolen = yes }
weight = {
base = 1
modifier = {
add = 4
is_equipped = no
}
modifier = {
add = 4
scope:raider = {
can_equip_artifact = prev
}
}
modifier = { # Nudge towards taking non-Court artifacts if you don't have a court yourself
add = 2
scope:raider = {
has_royal_court = no
}
ep1_artifact_is_court_artifact_trigger = no
}
}
save_scope_as = stolen_artifact
}
}
random = {
chance = {
value = 5
scope:barony.holder = {
every_character_artifact = {
limit = {
OR = {
is_equipped = no
ep1_artifact_is_court_artifact_trigger = yes
}
}
add = 1
}
}
# Lower chances based on Antiquarian aptitude
multiply = {
value = 1
scope:barony.holder = {
every_court_position_holder = {
type = antiquarian_court_position
limit = {
is_available_ai_adult = yes
aptitude:antiquarian_court_position > 0
}
divide = aptitude:antiquarian_court_position
}
}
}
}
steal_artifact_in_siege_effect = {
LOCATION = root.location
ATTACKER = scope:raider
DEFENDER = scope:barony.holder
ARTIFACT = scope:stolen_artifact
IS_RAID = yes
}
}
}
}
##################################################
# Becoming a Raider/Viking
# by Ewan Cowhig Croft
# #0021-0022
##################################################
# Increase raid tally
raiding.0021 = {
hidden = yes
scope = army
trigger = {
exists = army_commander
}
immediate = {
root.army_commander = {
if = {
limit = {
NOT = { has_variable = raid_counter }
}
set_variable = {
name = raid_counter
value = 1
}
}
else = {
change_variable = {
name = raid_counter
add = 1
}
}
}
}
}
# Chance to fire viking/raider trait acquisition event
raiding.0022 = {
hidden = yes
scope = army
trigger = {
army_commander ?= {
has_variable = raid_counter
var:raid_counter >= 20
NOT = { has_trait = viking }
}
}
immediate = {
root.army_commander = { save_scope_as = raid_leader }
scope:raid_leader = {
random = {
chance = 20
trigger_event = {
id = raiding.0023
days = { 180 545 }
}
modifier = {
add = 10
var:raid_counter >= 30
}
modifier = {
add = 10
var:raid_counter >= 40
}
modifier = {
add = 10
var:raid_counter >= 50
}
}
}
}
}
# Acquire viking/raider trait
raiding.0023 = {
type = character_event
title = raiding.0023.t
desc = raiding.0023.desc
theme = raid
override_background = {
reference = burning_building
}
left_portrait = {
character = root
animation = war_over_win
}
trigger = {
scope:raid_leader = {
is_alive = yes
NOT = { has_trait = viking }
}
}
immediate = {
if = {
limit = {
OR = {
has_any_nickname = no
has_bad_nickname = yes
}
}
if = {
limit = {
culture = { has_cultural_pillar = heritage_north_germanic }
}
give_nickname = nick_the_viking
}
else_if = {
limit = {
is_male = yes
}
give_nickname = nick_the_bandit_king
}
else_if = {
limit = {
is_female = yes
}
give_nickname = nick_the_bandit_queen
}
}
if = {
limit = { is_landed = no }
liege.capital_province = { save_scope_as = capital_province }
}
else = {
capital_province = { save_scope_as = capital_province }
}
}
#Accept the trait.
option = {
name = raiding.0023.a
add_trait = viking
}
}
#################################
# Hereward special raiding event
# by Nick Meredith
#################################
## You have the chance to sack a holding.
#raiding.0031 = {
# hidden = yes
# scope = army
#
# trigger = {
# #You need to be Hereward, plus leading your own forces.
# army_commander ?= {
# has_trait = the_wake
# }
#
# #The province must be ruled by a Norman, or Norman culture itself
# OR = {
# scope:barony.culture = culture:norman
# scope:barony.holder.culture = culture:norman
# }
# }
#
# immediate = {
# root.army_commander = { save_scope_as = raid_leader }
# scope:raid_leader = {
# add_trait_xp = {
# trait = the_wake
# value = { 1 3 }
# }
# }
# }
#}
# Raid Intent Effects
raiding.0040 = {
hidden = yes
scope = army
immediate = {
if = {
limit = {
raid_intent = raze_intent
has_raid_intent_immunity = no
}
scope:barony.title_province ?= {
random_list = {
10 = {
modifier = {
has_raid_intent_protection = yes
add = 10
}
} # Nothing happens
5 = {
modifier = {
scope:raider.culture ?= { has_innovation = innovation_motte }
add = 2
}
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
show_as_tooltip = {
scope:barony.title_province = {
add_province_modifier = {
modifier = shattered_defenses_modifier
years = 5
}
}
}
}
}
scope:barony.holder = {
send_interface_message = {
type = event_raid_bad
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
scope:barony.title_province = {
add_province_modifier = {
modifier = shattered_defenses_modifier
years = 5
}
}
}
}
}
5 = {
trigger = {
county = { development_level > 0 }
}
modifier = {
scope:raider.culture ?= { has_innovation = innovation_motte }
add = 2
}
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
show_as_tooltip = {
scope:county = { change_development_level = -1 }
}
}
}
scope:barony.holder = {
send_interface_message = {
type = event_raid_bad
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
scope:county = { change_development_level = -1 }
}
}
}
5 = {
trigger = {
num_buildings > 1
}
modifier = {
scope:raider.culture ?= { has_innovation = innovation_motte }
add = 2
}
destroy_random_building_variable_effect = yes
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
show_as_tooltip = {
scope:barony.title_province = {
destroy_random_building_effect = yes
}
}
}
}
scope:barony.holder = {
send_interface_message = {
type = event_raid_bad
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
scope:barony.title_province = {
destroy_random_building_effect = yes
}
}
}
}
}
}
}
else_if = {
limit = {
raid_intent = plunder_intent_nomadic
scope:raider.culture = { can_get_innovation_from = scope:county.culture }
has_raid_intent_immunity = no
}
random = {
chance = {
value = 2
if = {
limit = {
has_raid_intent_protection = yes
}
divide = 2
}
if = {
limit = {
scope:raider.culture ?= { has_innovation = innovation_motte }
}
add = 1
}
}
scope:raider = {
send_interface_message = {
type = event_raid_good
title = raze_intent_message
left_icon = scope:barony.holder
right_icon = root.army_commander
scope:raider.culture = {
get_random_innovation_from = scope:county.culture
}
}
}
}
}
scope:barony.holder ?= {
if = {
limit = {
government_has_flag = government_is_nomadic
}
send_interface_message = {
type = event_raid_bad
title = raid_herd_message
left_icon = scope:barony.holder
right_icon = root.army_commander
scope:barony.holder.domicile ?= {
change_herd = -100
}
}
}
}
}
}