N3OW/events/excavation_events.txt
2026-06-02 02:58:30 -04:00

1722 lines
No EOL
37 KiB
Text

# Events for handling the excavation activity
namespace = excavation
## excavation events
## by Linnéa Thimrén, Petter Vilberg, Bianca Savazzi, and Joe Parkin
############################
## Setup and maintenance events
## 0000-0999
############################
############################
## Random event chains
## 1000-3999
## by Linnéa Thimrén and Petter Vilberg
############################
#excavation.1001 - Generic excavation, chase the animal!
#excavation.1011 - A vassal rival, or a vassal that doesn't like you, is being an ass
#excavation.1021 - Beautiful Peasant Chain: Meet a beautiful peasant in the forest
#excavation.1023 - You have a dog that helps you to fell an animal
############################
## Random pulse
## 4000-4999
## by Linnéa Thimrén and Petter Vilberg
############################
#excavation.4003 - Run into poachers
#excavation.4005 - You bring down a particularly large animal - II
#excavation.4006 - Poor Peasants are foraging in the forest
#excavation.4007 - Run into a rampaging animal
#excavation.4008 - excavation with your heir
#excavation.4009 - Someone has a murder/abduct scheme against you
#excavation.4010 - Someone has a murder/abduct scheme against a close family member
#excavation.4011 - Your lover has come with, sneak away together
#excavation.4012 - See glimpse of mystical animal
#excavation.4014 - A courtier is injured
#excavation.4015 - You walk in (out?) on lovers
#excavation.4016 - You fake a catch
#excavation.4018 - You get another glimpse of the mystical white animal
#excavation.4020 - Rally your clan to fell a large beast
#excavation.5001 - You get the urge to pick herbs and flowers
#excavation.5002 - Someone in your excavationing party gets the urge to pick herbs and
#excavation.5060 - Find an eyas
#excavation.7001 - Meet local madman
#excavation.7020 - Boulder jumping
#excavation.7100 - Seduce intent convo
#excavation.7200 - Falconry Practice
############################
## Choose your artifact events
## 8001 - 8999
## by Bianca Savazzi
############################
#excavation.8001 - Hide or Skull?
############################
## Complication events
############################
#excavation.1002 - Chase goes well
#excavation.1012 - Do you shoot your murder target or not? - Ambush
#excavation.1080 - EP2: Party murders you
#excavation.3020 - EP2: Tracks skill check
#excavation.4009 - Participant has murder/abduct scheme against you (or you heir dislikes you)
#excavation.4010 - Participant has murder/abduct scheme against close family
#excavation.4910 - A guest is injured
#excavation.5010 - EP2: Fawning doe
#excavation.7011 - EP2: Trapped guest
#excavation_mystical_animal.1007 # Alice in Wonderland trip
#excavation.4018 - You get the mystical white animal!
#excavation.5050 - EP2: Falcon snatched
############################
## Outcome events
############################
#excavation.1003 # Chase success
#excavation.1004 # Chase failure
#excavation.1032 # Ambush success
#excavation.1033 # Ambush failure
#excavation.4001 # Stealth success
#excavation.1043 # Stealth failure
#excavation.1062 # Falconry success
#excavation.1063 # Falconry failure
#excavation.1052 # Captive success
#excavation.1053 # Captive failure
#excavation.4017 # Legendary animal found and killed
#excavation.4019 # Substitute animal found
#excavation_mystical_animal.9001 # Legendary animal found and killed
#excavation_mystical_animal.1005 # Legendary animal found but escaped
#excavation.1090 # Legendary animal escaped
############################
## End-events
## 9000-9999
############################
#excavation.9001 - excavation has ended in success
#excavation.9002 - excavation has ended in failure
#excavation.4004 - You bring down a particularly large animal - I
#Things to use in excavation-events:
# excavation_activity_standard_game_effect - find a game animal
# excavation_activity_dangerous_game_effect - find a dangerous animal
# excavation_activity_falconry_game_effect - find a falcon prey
# excavation_activity_random_subordinate_participant_effect - save a subordinate on the excavation
# excavation_activity_random_interest_participant_effect - save a notable guest
# excavation_animal_melee_kill_effect - fight animal alone
# excavation_animal_melee_kill_group_effect - fight animal with all excavationers
# excavation_animal_bow_kill_effect - try to shoot animal
#####################################
# SETUP AND MAINTENANCE EVENTS #
# 0000 - 0099 #
#####################################
#######################
# excavation invalidated
# by Joe Parkin
#######################
# Death
excavation.0080 = {
type = character_event
title = {
first_valid = {
triggered_desc = {
trigger = {
NOR = {
this = scope:host
is_in_list = attendees
}
}
desc = excavation.0080.t.inheritor
}
desc = excavation.0080.t
}
}
desc = {
first_valid = { # Summary
# Dead Host
triggered_desc = {
trigger = {
NOR = {
this = scope:host
is_in_list = attendees
}
}
desc = excavation.0080.death_inheritor
}
triggered_desc = {
trigger = {
exists = scope:host.killer
this = scope:killer
NOR = {
this = scope:host
is_in_list = attendees
}
}
desc = excavation.0080.death_inheritor_killer
}
# Dead Guest
triggered_desc = {
trigger = {
exists = scope:host.killer
this = scope:killer
NOR = {
this = scope:host
is_in_list = attendees
}
}
desc = excavation.0080.death_inheritor_killer
}
desc = excavation.0080.death
}
first_valid = {
triggered_desc = {
trigger = {
OR = {
is_in_list = attendees
this = scope:host
}
NAND = {
has_character_flag = excavation_heir
exists = scope:death_invalidation
scope:invalidated_flavor ?= scope:host
}
}
desc = excavation.0080.desc
}
desc = excavation.0080.desc_inheritor
}
}
left_portrait = {
character = root
animation = worry
trigger = {
OR = {
is_in_list = attendees
this = scope:host
}
}
}
right_portrait = {
character = scope:host
trigger = {
NOR = {
this = root
scope:invalidated_culprit ?= this
}
}
triggered_animation = {
trigger = { is_alive = no }
animation = loss_1
}
animation = stress
}
center_portrait = {
character = scope:invalidated_flavor
trigger = {
exists = scope:invalidated_flavor
NOR = {
scope:invalidated_flavor ?= root
scope:invalidated_flavor ?= scope:host
}
}
}
artifact = {
position = lower_left_portrait
target = scope:newly_created_artifact
trigger = { exists = scope:newly_created_artifact }
}
theme = hunt_activity
override_background = {
trigger = { is_participant_in_activity = scope:activity }
reference = wilderness
}
override_background = {
trigger = {
NOT = { is_participant_in_activity = scope:activity }
}
reference = relaxing_room
}
cooldown = { weeks = 1 }
immediate = {
if = {
limit = {
this != scope:host
}
excavation_invalidation_event_effect = yes
}
}
option = {
name = excavation.0080.a
if = {
limit = { exists = scope:newly_created_artifact }
hidden_effect = { destroy_artifact = scope:newly_created_artifact }
}
ai_chance = {
base = 100
}
}
option = {
name = excavation.1013.a
trigger = { this = scope:host }
scope:activity = {
set_variable = {
name = excavation_invalidated
value = flag:death
}
set_variable = {
name = excavation_invalidated_flavor
value = scope:invalidated_flavor
}
if = {
limit = { exists = scope:invalidated_culprit }
set_variable = {
name = excavation_invalidated_culprit
value = scope:invalidated_culprit
}
}
}
excavation_invalidation_event_effect = yes
if = {
limit = { exists = scope:newly_created_artifact }
hidden_effect = { destroy_artifact = scope:newly_created_artifact }
}
ai_chance = {
base = 25
}
}
}
# Dead before excavation
excavation.0087 = {
type = character_event
title = excavation.0080.t
desc = excavation.0080.death
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:host
triggered_animation = {
trigger = { is_alive = no }
animation = loss_1
}
animation = stress
}
theme = hunt_activity
cooldown = { weeks = 1 }
immediate = {
if = {
limit = { NOT = { this = scope:host } }
excavation_invalidation_event_effect = yes
}
}
option = {
name = excavation.0080.a
custom_tooltip = excavation_ends_tt
}
}
# Wound Decision
excavation.0081 = {
type = activity_event
title = excavation.0081.t
desc = {
first_valid = { # Summary
triggered_desc = {
trigger = {
NOR = {
has_trait = wounded
has_trait = maimed
}
}
desc = excavation.0081.sick
}
desc = excavation.0081.wounded
}
first_valid = {
triggered_desc = {
trigger = { this = scope:host }
desc = excavation.0081.host
}
desc = excavation.0081.guest
}
}
left_portrait = {
character = root
triggered_animation = {
trigger = {
NOR = {
has_trait = wounded
has_trait = maimed
}
}
animation = pain
}
triggered_animation = {
trigger = {
OR = {
has_trait = wounded
has_trait = maimed
}
}
animation = sick
}
}
right_portrait = {
character = scope:host
trigger = {
this != scope:host
}
animation = worry
}
theme = hunt_activity
trigger = {
is_healthy = no
OR = {
has_trait = wounded
has_character_flag = recent_excavation_wound
}
NOT = { has_character_flag = excavation_wound_ignored }
NOT = { exists = scope:activity.var:excavation_success }
}
option = {
name = excavation.0081.a
if = {
limit = { this = scope:host }
scope:activity = {
set_variable = {
name = excavation_invalidated
value = flag:wound
}
set_variable = {
name = excavation_invalidated_flavor
value = scope:host
}
}
excavation_invalidation_event_effect = yes
}
else = {
scope:host = {
send_interface_toast = {
title = excavation_wounded_guest_leaves_toast
left_icon = root
root = { remove_from_activity = scope:activity }
}
}
}
stress_impact = {
brave = minor_stress_impact_gain
arrogant = minor_stress_impact_gain
}
}
option = {
name = excavation.0081.b
add_character_flag = excavation_wound_ignored
stress_impact = {
craven = minor_stress_impact_gain
humble = minor_stress_impact_gain
}
}
}
# Host Imprisoned
excavation.0082 = {
type = character_event
title = excavation.0080.t
desc = {
first_valid = { # Summary
# Host Imprisoned
triggered_desc = {
trigger = {
scope:host = {
is_alive = yes
is_imprisoned = yes
}
this = scope:host
}
desc = excavation.0080.imprisoned_self
}
triggered_desc = {
trigger = {
scope:host = {
is_alive = yes
is_imprisoned = yes
}
}
desc = excavation.0080.imprisoned
}
}
}
left_portrait = {
character = root
animation = worry
}
right_portrait = {
character = scope:host
animation = prisonhouse
}
lower_left_portrait = scope:host.imprisoner
theme = hunt_activity
cooldown = { weeks = 1 }
immediate = {
excavation_invalidation_event_effect = yes
show_as_tooltip = {
scope:host.imprisoner = {
imprison = {
target = scope:host
type = house_arrest
}
}
}
}
option = {
name = excavation.0080.a
custom_tooltip = excavation_ends_tt
}
}
# Assassination Attempt
excavation.0083 = {
type = character_event
title = excavation.0082.t
desc = {
first_valid = {
triggered_desc = {
trigger = { exists = scope:invalidated_culprit }
desc = excavation.0080.assassination_culprit
}
desc = excavation.0080.assassination
}
}
left_portrait = {
character = root
animation = worry
trigger = { is_in_list = attendees }
}
right_portrait = {
character = scope:host
trigger = {
NOR = {
this = root
this = scope:invalidated_culprit
}
}
animation = stress
}
lower_right_portrait = {
character = scope:invalidated_flavor
trigger = {
exists = scope:invalidated_flavor
NOR = {
scope:invalidated_flavor = root
scope:invalidated_flavor = scope:host
}
}
}
lower_center_portrait = {
character = scope:invalidated_culprit
trigger = {
exists = scope:invalidated_culprit
scope:invalidated_culprit != root
}
}
theme = hunt_activity
cooldown = { weeks = 1 }
trigger = {
# No need for invalidation ping for botched scheme targets
NOR = {
scope:invalidated_flavor ?= root
scope:invalidated_culprit ?= root
}
}
immediate = {
if = {
limit = {
this != scope:host
}
excavation_invalidation_event_effect = yes
}
show_as_tooltip = {
if = {
limit = {
exists = scope:invalidated_culprit
}
scope:invalidated_flavor = {
add_opinion = {
target = scope:invalidated_culprit
modifier = attempted_murder_me_crime
}
}
}
}
}
option = {
name = excavation.0082.a
ai_chance = {
base = 100
}
}
option = {
name = excavation.1013.a
trigger = { this = scope:host }
scope:activity = {
set_variable = {
name = excavation_invalidated
value = flag:assassination_attempt
}
set_variable = {
name = excavation_invalidated_flavor
value = scope:invalidated_flavor
}
set_variable = {
name = excavation_invalidated_culprit
value = scope:invalidated_culprit
}
}
excavation_invalidation_event_effect = yes
ai_chance = {
base = 25
}
}
}
# Abduction Attempt
excavation.0084 = {
type = character_event
title = excavation.0082.t
desc = {
desc = excavation.0080.abduction_attempt
triggered_desc = {
trigger = { exists = scope:invalidated_culprit }
desc = excavation.0080.assassination_culprit
}
}
left_portrait = {
character = root
animation = worry
trigger = { is_in_list = attendees }
}
right_portrait = {
character = scope:host
trigger = {
NOR = {
this = root
this = scope:invalidated_culprit
}
}
animation = stress
}
lower_right_portrait = {
character = scope:invalidated_flavor
trigger = {
exists = scope:invalidated_flavor
NOR = {
scope:invalidated_flavor = root
scope:invalidated_flavor = scope:host
}
}
}
lower_center_portrait = {
character = scope:invalidated_culprit
trigger = {
exists = scope:invalidated_culprit
scope:invalidated_culprit != root
}
}
theme = hunt_activity
cooldown = { weeks = 1 }
trigger = {
# No need for invalidation ping for botched scheme targets
NOR = {
scope:invalidated_flavor ?= this
scope:invalidated_culprit ?= this
}
}
immediate = {
if = {
limit = {
this != scope:host
}
excavation_invalidation_event_effect = yes
}
show_as_tooltip = {
scope:invalidated_flavor = {
add_opinion = {
target = scope:invalidated_culprit
modifier = attempted_abduct_me_crime
}
}
}
}
option = {
name = excavation.0082.a
ai_chance = {
base = 100
}
}
option = {
name = excavation.1013.a
trigger = { this = scope:host }
scope:activity = {
set_variable = {
name = excavation_invalidated
value = flag:abduction_attempt
}
set_variable = {
name = excavation_invalidated_flavor
value = scope:invalidated_flavor
}
set_variable = {
name = excavation_invalidated_culprit
value = scope:invalidated_culprit
}
}
excavation_invalidation_event_effect = yes
ai_chance = {
base = 25
}
}
}
# Abduction
excavation.0085 = {
type = character_event
title = excavation.0082.t
desc = {
desc = excavation.0080.abduction
triggered_desc = {
trigger = { exists = scope:invalidated_culprit }
desc = excavation.0080.abduction_culprit
}
}
left_portrait = {
character = root
animation = worry
trigger = { is_in_list = attendees }
}
right_portrait = {
character = scope:host
trigger = {
NOR = {
this = root
this = scope:invalidated_culprit
}
}
animation = stress
}
lower_right_portrait = {
character = scope:invalidated_flavor
trigger = {
exists = scope:invalidated_flavor
NOR = {
scope:invalidated_flavor = root
scope:invalidated_flavor = scope:host
}
}
}
lower_center_portrait = {
character = scope:invalidated_culprit
trigger = {
exists = scope:invalidated_culprit
scope:invalidated_culprit != root
}
}
theme = hunt_activity
cooldown = { weeks = 1 }
trigger = {
# No need for invalidation ping for botched scheme targets
NOR = {
scope:abduct_target ?= this
scope:invalidated_culprit ?= this
}
}
immediate = {
if = {
limit = {
this != scope:host
}
excavation_invalidation_event_effect = yes
}
show_as_tooltip = {
hard_imprison_character_effect = {
TARGET = scope:invalidated_flavor
IMPRISONER = scope:invalidated_culprit
}
scope:invalidated_flavor = {
add_opinion = {
target = scope:invalidated_culprit
modifier = abducted_me_opinion
}
}
}
}
option = {
name = excavation.0082.a
ai_chance = {
base = 100
}
}
option = {
name = excavation.1013.a
trigger = { this = scope:host }
scope:activity = {
set_variable = {
name = excavation_invalidated
value = flag:abduction
}
set_variable = {
name = excavation_invalidated_flavor
value = scope:invalidated_flavor
}
set_variable = {
name = excavation_invalidated_culprit
value = scope:invalidated_culprit
}
}
excavation_invalidation_event_effect = yes
ai_chance = {
base = 25
}
}
}
# Wound
excavation.0086 = {
type = character_event
title = excavation.0080.t
desc = {
first_valid = { # Summary
# Wounded Guest
triggered_desc = {
trigger = { scope:invalidated_flavor ?= root }
desc = excavation.0080.wounded_self
}
desc = excavation.0080.wounded
}
}
left_portrait = {
character = root
animation = worry
trigger = { is_in_list = attendees }
}
right_portrait = {
character = scope:host
trigger = {
this != root
}
triggered_animation = {
trigger = { is_alive = no }
animation = loss_1
}
animation = stress
}
lower_right_portrait = {
character = scope:invalidated_flavor
trigger = {
exists = scope:invalidated_flavor
NOR = {
scope:invalidated_flavor = root
scope:invalidated_flavor = scope:host
}
}
}
theme = hunt_activity
cooldown = { weeks = 1 }
immediate = {
excavation_invalidation_event_effect = yes
}
option = {
name = excavation.0080.a
custom_tooltip = excavation_ends_tt
}
}
################
# Standard start
# by Joe Parkin
################
scripted_effect excavation_activity_random_attending_effect = {
scope:activity = {
if = {
limit = {
any_attending_character = {
this != root
}
}
random_attending_character = {
limit = {
OR = {
has_court_position = antiquarian_court_position
has_court_position = huntperson_camp_officer
has_trait = lifestyle_hunter
}
OR = {
has_trait = brave
NOT = { has_trait = craven }
}
this != root
}
alternative_limit = {
OR = {
has_court_position = antiquarian_court_position
has_court_position = huntperson_camp_officer
has_trait = lifestyle_hunter
}
this != root
}
alternative_limit = {
this != root
}
save_scope_as = excavation_participant
}
}
}
}
excavation.0500 = {
type = activity_event
title = {
first_valid = {
triggered_desc = {
trigger = {
scope:activity.activity_location = { has_building_or_higher = zone_rouge_01 }
}
desc = excavation.0500.t.tell
}
triggered_desc = {
trigger = {
scope:activity.activity_location = { terrain = tells }
}
desc = excavation.0500.t.tell
}
}
}
desc = {
first_valid = {
triggered_desc = {
trigger = {
exists = scope:excavation_participant
scope:excavation_participant = {
has_court_position = antiquarian_court_position
}
}
desc = excavation_antiquarian
}
triggered_desc = {
trigger = { exists = scope:excavation_participant }
desc = excavation_opening_excavation_leader
}
desc = excavation_opening
}
first_valid = {
triggered_desc = {
trigger = {
scope:activity.activity_location = { terrain = tells }
}
desc = excavation_opening_tells
}
triggered_desc = {
trigger = {
scope:activity.activity_location = { has_building_or_higher = zone_rouge_01 }
}
desc = excavation_opening_excavationing_grounds
}
desc = excavation_opening_rural
}
first_valid = {
# triggered_desc = {
# trigger = {
# scope:activity = {
# activity_location.county = { has_building_or_higher = zone_rouge_01 }
# has_activity_option = { category = excavation_option_attendants option = excavation_attendants_few }
# }
# }
# desc = excavation_opening_entourage_few_dangerous
# }
# triggered_desc = {
# trigger = {
# scope:activity = {
# activity_location.county = { has_building_or_higher = zone_rouge_01}
# has_activity_option = { category = excavation_option_attendants option = excavation_attendants_normal }
# }
# }
# desc = excavation_opening_entourage_normal_dangerous
# }
# triggered_desc = {
# trigger = {
# scope:activity = {
# activity_location.county = { has_building_or_higher = zone_rouge_01}
# has_activity_option = { category = excavation_option_attendants option = excavation_attendants_many }
# }
# }
# desc = excavation_opening_entourage_many_dangerous
# }
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = { category = excavation_option_attendants option = excavation_attendants_few }
}
}
desc = excavation_opening_entourage_few
}
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = { category = excavation_option_attendants option = excavation_attendants_normal }
}
}
desc = excavation_opening_entourage_normal
}
triggered_desc = {
trigger = {
scope:activity = {
has_activity_option = { category = excavation_option_attendants option = excavation_attendants_many }
}
}
desc = excavation_opening_entourage_many
}
}
first_valid = {
triggered_desc = {
trigger = { scope:activity.activity_location = { has_building_or_higher = zone_rouge_01 } }
desc = excavation.0500.rouge
}
triggered_desc = {
trigger = { scope:activity.activity_location = { terrain = tells } }
desc = excavation.0500.tells
}
desc = excavation_opening_sighting
}
}
theme = hunt_activity_camp
left_portrait = {
character = scope:host
animation = thinking
}
right_portrait = {
character = scope:excavation_participant
animation = storyteller
}
immediate = {
excavation_activity_random_attending_effect = yes
}
trigger = {
scope:activity = {
has_activity_option = { category = special_type option = excavation_type_standard }
}
}
option = { # We'll chase it!
name = excavation.0500.a
custom_tooltip = excavation_seek_current_tt
ai_chance = {
base = 25
ai_value_modifier = {
ai_boldness = -0.5
ai_energy = 1
}
}
}
after = {
if = {
limit = { this = scope:host }
scope:activity = {
every_attending_character = {
limit = {
this != scope:host
}
trigger_event = excavation.0500
}
set_variable = excavation_started
add_activity_log_entry = {
key = excavation_quarry_selected_log
score = 25
tags = { quarry }
character = scope:host
}
excavation_activity_success_change_effect = { CHANGE = increase_medium }
set_variable = {
name = excavation_success_chance
value = excavation_success_chance_value
}
}
}
}
}
###############
#
#
# Conclusion
#
###############
excavation.1003 = {
type = activity_event
title = hunt.1001.t
desc = {
desc = hunt.1003.desc
}
theme = hunt_activity
left_portrait = {
character = scope:host
animation = throne_room_two_handed_passive_1
}
right_portrait = {
trigger = { exists = scope:excavation_participant }
character = scope:excavation_participant
animation = admiration
}
lower_right_portrait = {
trigger = {
exists = scope:intentee
NOT = { scope:excavation_participant ?= scope:intentee }
}
character = scope:intentee
}
cooldown = { weeks = 1 }
trigger = {
always = yes
}
weight_multiplier = {
base = 1
modifier = { add = involved_activity.var:excavation_success_chance }
}
immediate = {
scope:activity = {
set_variable = {
name = excavation_success
value = flag:yes
}
}
scope:activity = {
random_attending_character = {
limit = {
this != scope:host
}
save_scope_as = hunt_participant
}
}
save_scope_as = excavation_ending
hunt_outcome_scope_effect = yes
}
option = { #Take the shot
name = {
trigger = {
}
text = hunt.1003.a
}
flavor = hunt.1003.a.flavor
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_energy = 0.5
ai_greed = 0.5
}
}
}
}
#Corner escape
excavation.1004 = {
type = activity_event
title = excavation.1001.t
desc = {
first_valid = {
desc = excavation.1004.desc
triggered_desc = {
trigger = { exists = scope:wounded_guest }
desc = hunt.1004.wounded
}
triggered_desc = {
trigger = { exists = scope:wounded_host }
desc = excavation.1004.wounded_host
}
}
}
theme = hunt_activity
left_portrait = {
character = scope:host
animation = disapproval
}
right_portrait = {
character = scope:excavation_participant
animation = stress
}
center_portrait = {
character = root
animation = worry
trigger = {
NOR = {
scope:host ?= this
scope:excavation_participant ?= this
}
}
}
cooldown = { weeks = 1 }
trigger = {
always = yes
}
weight_multiplier = {
base = 1
modifier = {
add = {
value = 100
subtract = involved_activity.var:excavation_success_chance
}
}
}
immediate = {
if = {
limit = { this = scope:host }
save_scope_as = excavation_ending
scope:activity = {
set_variable = {
name = excavation_success
value = flag:no
}
}
}
custom_tooltip = hunt_fails_tt
}
option = { #Drat!
name = hunt.1004.a
ai_chance = {
base = 25
}
}
}
####Generico
#######################
# A excavation guest is about to share a secret about someone when they are interrupted
# by Petter Vilberg
#######################
scripted_trigger excavation_4002_secret_knower_trigger = {
this != root
opinion = {
target = root
value > 0
}
save_temporary_scope_as = secret_knower_temp
any_known_secret = {
NOR = {
secret_owner ?= scope:secret_knower_temp
is_known_by = root
secret_owner ?= root
}
secret_owner ?= {
OR = {
is_of_major_interest_trigger = { CHARACTER = root }
is_of_minor_interest_trigger = { CHARACTER = root }
}
}
}
}
excavation.4002 = {
type = activity_event
title = excavation.4002.t
desc = excavation.4002.desc
theme = hunt_activity
left_portrait = {
character = root
animation = eavesdrop
}
right_portrait = {
character = scope:secret_sharer
animation = paranoia
}
lower_right_portrait = scope:secret_owner
cooldown = { years = 2 }
trigger = {
scope:activity = {
any_attending_character = { excavation_4002_secret_knower_trigger = yes }
}
}
immediate = {
scope:activity = {
random_attending_character = {
limit = { excavation_4002_secret_knower_trigger = yes }
save_scope_as = secret_sharer
random_known_secret = {
limit = { #Prefer a secret about someone highly relevant to activity_host
NOR = {
secret_owner = scope:secret_sharer
is_known_by = root
secret_owner = root
}
secret_owner ?= {
is_of_major_interest_trigger = { CHARACTER = root }
}
}
alternative_limit = { #Fallback to minor interest characters
NOR = {
secret_owner = scope:secret_sharer
is_known_by = root
secret_target = root
}
secret_owner ?= {
is_of_minor_interest_trigger = { CHARACTER = root }
}
}
save_scope_as = secret_to_share
secret_owner ?= {
save_scope_as = secret_owner
}
}
}
}
}
option = { #Truly interesting, but get that animal!
name = excavation.4002.a
flavor = excavation.4002.a.flavor
scope:activity = {
add_activity_log_entry = {
key = excavation_secret_animal_log
score = 25
tags = { random neutral social }
character = root
target = scope:secret_owner
# Effect
root = {
add_prestige = minor_prestige_gain
excavation_activity_success_change_effect = { CHANGE = increase_medium }
stress_impact = {
paranoid = minor_stress_impact_gain
trusting = minor_stress_impact_loss
diligent = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
impatient = minor_stress_impact_loss
}
}
}
}
ai_chance = {
base = 50
ai_value_modifier = {
ai_boldness = 0.5
ai_compassion = -0.25
ai_honor = 0.25
}
}
}
option = { #No wait, tell me!
name = excavation.4002.b
flavor = excavation.4002.b.tt
scope:activity = {
add_activity_log_entry = {
key = excavation_secret_learned_log
score = 25
tags = { random neutral social }
character = root
target = scope:secret_owner
# Effect
root = {
custom_tooltip = excavation.4002.b.reveal
excavation_activity_success_change_effect = { CHANGE = decrease_minor }
add_prestige = minor_prestige_loss
hidden_effect = {
scope:secret_to_share = { reveal_to = root }
}
stress_impact = {
arrogant = minor_stress_impact_gain
impatient = minor_stress_impact_gain
trusting = minor_stress_impact_gain
diligent = minor_stress_impact_gain
paranoid = minor_stress_impact_loss
}
}
}
}
ai_chance = {
base = 100
ai_value_modifier = {
ai_rationality = 0.5
ai_greed = 0.25
}
}
}
}
#######################
# Run into looters
# by Petter Vilberg
#######################
excavation.4003 = {
type = activity_event
title = excavation.4003.t
desc = excavation.4003.desc
theme = hunt_activity
left_portrait = {
character = root
animation = war_over_win
}
right_portrait = {
character = scope:looter
animation = beg
outfit_tags = { travel_cloak }
}
cooldown = { years = 10 }
trigger = {
OR = {
involved_activity.activity_host = this
has_court_position = antiquarian_court_position
}
scope:activity.activity_location.county = {
NOR = {
has_county_modifier = excavation_punished_locals_modifier
}
}
}
weight_multiplier = {
base = 1
modifier = {
factor = 0.5
scope:activity.activity_location = {
NOR = {
terrain = forest
terrain = taiga
terrain = jungle
}
}
}
}
immediate = {
create_character = {
template = hunter_template
faith = scope:activity.activity_location.faith
culture = scope:activity.activity_location.culture
location = scope:activity.activity_location
save_scope_as = looter
}
scope:activity = {
activity_location = {
county = {
save_scope_as = county
holder = { save_scope_as = land_owner }
}
}
}
}
option = {
name = excavation.4003.adventurer
trigger = { has_government = landless_adventurer_government }
add_courtier = scope:looter
excavation_activity_success_change_effect = { CHANGE = increase_minor }
domicile = {
change_provisions = microscopic_provisions_gain
}
stress_impact = {
paranoid = minor_stress_impact_gain
}
ai_chance = {
base = 100
}
}
option = { #Punish them
name = excavation.4003.a
trigger = { scope:land_owner.top_liege = root.top_liege }
scope:activity = {
add_activity_log_entry = {
key = excavation_looters_punished_log
score = 25
tags = { random bad }
character = root
target = scope:looter
# Effect
scope:activity.activity_location.county = {
add_county_modifier = {
modifier = excavation_punished_locals_modifier
years = 10
}
}
root = {
stress_impact = {
forgiving = minor_stress_impact_gain
compassionate = minor_stress_impact_gain
arbitrary = minor_stress_impact_loss
vengeful = minor_stress_impact_loss
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = -0.5
ai_boldness = 1
}
}
}
# option = { #I will let you go if you teach me a thing or two
# name = excavation.4003.b
# trigger = {
# antiquarian_lifestyle_track_less_trigger = { TRACK = archaeologist LESS_THAN = 100 }
# }
# scope:activity = {
# add_activity_log_entry = {
# key = excavation_looters_lesson_log
# score = 25
# tags = { random bad }
# character = root
# target = scope:poacher
#
# # Effect
# root = {
# excavation_activity_success_change_effect = { CHANGE = decrease_minor }
# add_character_modifier = {
# modifier = excavation_looters_training_modifier
# years = 10
# }
# hidden_effect = {
# antiquarian_progress_point_gain_effect = { CHANGE = 1 RANDOM_CHANGE = 1 } #Gives points towards ranking up the excavationer Lifestyle
# }
# stress_impact = {
# just = minor_stress_impact_loss
# vengeful = minor_stress_impact_gain
# forgiving = minor_stress_impact_loss
# ambitious = minor_stress_impact_loss
# }
# }
# }
# }
# ai_chance = {
# base = 10
# ai_value_modifier = {
# ai_energy = 1
# ai_honor = -0.5
# }
# }
# }
option = { #Claim the animals and a legal right to their lives
name = excavation.4003.c
scope:activity = {
add_activity_log_entry = {
key = excavation_looters_legal_log
score = 25
tags = { random bad }
character = root
target = scope:looter
# Effect
root = {
if = {
limit = {
has_government = landless_adventurer_government
}
domicile = {
change_provisions = microscopic_provisions_gain
}
add_treasury_or_gold = minor_treasury_or_gold_value
excavation_activity_success_change_effect = { CHANGE = increase_minor }
}
else = {
duel = {
skill = stewardship
value = average_skill_rating
8 = {
compare_modifier = {
value = scope:duel_value
multiplier = 0.25
}
desc = excavation.4003.c.tt_success
send_interface_toast = {
title = excavation.4003.c.tt_success
add_treasury_or_gold = minor_treasury_or_gold_value
add_prestige = medium_prestige_gain
excavation_activity_success_change_effect = { CHANGE = increase_minor }
}
}
12 = {
compare_modifier = {
value = scope:duel_value
multiplier = -0.25
min = -9
}
desc = excavation.4003.c.tt_failure
send_interface_toast = {
title = excavation.4003.c.tt_failure
add_prestige = minor_prestige_loss
scope:county = {
add_county_modifier = {
modifier = excavation_upset_excavationing_county_modifier
years = 10
}
}
}
excavation_activity_success_change_effect = { CHANGE = decrease_major }
}
}
}
stress_impact = {
compassionate = medium_stress_impact_gain
honest = medium_stress_impact_gain
vengeful = minor_stress_impact_loss
arrogant = minor_stress_impact_loss
ambitious = minor_stress_impact_loss
arbitrary = minor_stress_impact_loss
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_greed = 1
ai_boldness = -0.5
}
}
}
option = { #Let them off, as it's not your land
name = {
text = excavation.4003.d
trigger = {
NOR = {
scope:land_owner.top_liege = root.top_liege
has_relation_rival = scope:land_owner
}
}
}
name = {
text = excavation.4003.d.rival
trigger = { has_relation_rival = scope:land_owner }
}
name = {
text = excavation.4003.d.vassal
trigger = {
root != root.top_liege
scope:land_owner.top_liege = root.top_liege
}
}
name = {
text = excavation.4003.d.own
trigger = { scope:land_owner.top_liege = root }
}
scope:activity = {
add_activity_log_entry = {
key = excavation_looters_pardon_log
score = 25
tags = { random bad }
character = root
target = scope:looter
#Effect
root = {
if = {
limit = {
this != scope:land_owner
}
reverse_add_opinion = {
target = scope:land_owner
modifier = excavation_released_looters_opinion
opinion = -10
}
}
if = {
limit = { has_relation_rival = scope:land_owner }
stress_impact = {
base = medium_stress_impact_loss
just = minor_stress_impact_gain
vengeful = minor_stress_impact_loss
}
}
else_if = {
limit = { scope:land_owner.top_liege = root.top_liege }
stress_impact = {
just = minor_stress_impact_gain
vengeful = minor_stress_impact_loss
callous = minor_stress_impact_loss
}
}
else = {
stress_impact = {
just = minor_stress_impact_gain
sadistic = minor_stress_impact_loss
}
}
}
}
}
ai_chance = {
base = 10
ai_value_modifier = {
ai_compassion = 0.5
ai_honor = -0.5
ai_boldness = -0.5
}
}
}
after = {
scope:looter = {
if = {
limit = {
NOR = {
root = { is_ai = no }
is_courtier = yes
}
}
silent_disappearance_effect = yes
}
}
}
}