imported
This commit is contained in:
parent
044af98939
commit
f0574f56c5
150 changed files with 364236 additions and 0 deletions
195
N3OW/events/_events.info
Normal file
195
N3OW/events/_events.info
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
=== Structure ===
|
||||
|
||||
Note: this is very very incomplete...
|
||||
|
||||
event_namespace.42 = {
|
||||
type = character_event/letter_event/court_event/activity_event # Default to character, what type of event this is
|
||||
scope = scope_type # Optional, defaults to character, will make this event fire with a different expected root scope. none can be used to have no scopes set up.
|
||||
window = window_name # Optional, what special event file and widget in gui/event_windows should this event use, only used for character events
|
||||
|
||||
# If you have a cooldown, the recipient will get a variable saved with that duration. The variable name will be the event ID
|
||||
# Anything that checks that an event is legal to fire will also check that the recipient doesn't have that variable
|
||||
cooldown = {
|
||||
days/weeks/months/years = script value
|
||||
}
|
||||
|
||||
# DLC or Mod that this Event belongs to, shown in Event Window if set.
|
||||
content_source = X
|
||||
|
||||
# Specify a character portrait to appear in the event on the specified position.
|
||||
left_portrait = X
|
||||
right_portrait = X
|
||||
center_portrait = X # not used in all event types
|
||||
lower_left_portrait = X
|
||||
lower_center_portrait = X
|
||||
lower_right_portrait = X
|
||||
sender = X # for letter events, required
|
||||
# X can be one of:
|
||||
X = event target
|
||||
X = {
|
||||
character = event target
|
||||
trigger = ... # optional, a trigger saying whether this portrait should be visible, in the scope of the portrait character, the event scope is accessible as root scope
|
||||
animation = animation name # optional, the animation to show for this portrait. It's used if no triggered animations pass their trigger. The default animation will be used if nothing is this item is not specified.
|
||||
scripted_animation = key_of_scripted_animation # optional, instead of 'animation' you can also define a 'scripted_animation'
|
||||
|
||||
# A list of triggered animations. The first triggered animation that passes the trigger check will be used.
|
||||
triggered_animation = {
|
||||
trigger = ...
|
||||
animation = animation name
|
||||
# Instead of 'animation' you can also define a 'scripted_animation'
|
||||
scripted_animation = key_of_scripted_animation
|
||||
|
||||
### brief: camera ( database key, optional )
|
||||
# A camera type defined for a triggered animation will override the default
|
||||
# camera defined for the event portrait if that animation is chosen
|
||||
#
|
||||
camera = camera_name
|
||||
}
|
||||
triggered_animation = ...
|
||||
|
||||
# A list of triggered outfits. The first triggered otfit that passes the trigger check will be used.
|
||||
triggered_outfit = {
|
||||
trigger = ...
|
||||
outfit_tags = ...
|
||||
remove_default_outfit = ...
|
||||
hide_info = ...
|
||||
}
|
||||
triggered_outfit = ...
|
||||
|
||||
# Override camera to be used instead of the normal event ones
|
||||
camera = camera_key
|
||||
|
||||
outfit_tags = { tag1 tag2 } # Specifies outfit tags for this portrait in ascending priority (i.e. tag2 will "override" tag1 here if anything with tag2 is found in a specific portrait modifier category)
|
||||
remove_default_outfit = yes/no # If set to yes, portrait modifier categories in which nothing matches any of the event tags will be disabled completely (no by default)
|
||||
hide_info = yes/no # If set to yes, only the portrait will be shown, with no identifiable elements (no CoA, tooltips, clicks...) (no by default)
|
||||
}
|
||||
|
||||
# Specify an artifact to appear in the event on the specified position
|
||||
artifact = {
|
||||
target = event target
|
||||
position = lower_left_portrait/lower_center_portrait/lower_right_portrait
|
||||
# Can't be in the same position as a portrait
|
||||
trigger = ... # Optional, as for character portraits
|
||||
}
|
||||
|
||||
# This will be run if a queued event (or one triggered immediately from script) does not fulfil its trigger
|
||||
# Events failing to trigger from an on-action will *not* run this
|
||||
on_trigger_fail = {
|
||||
some effect
|
||||
}
|
||||
|
||||
# Specify custom widgets to embed in the event. See section about Custom Widgets below.
|
||||
widgets = {
|
||||
widget = {
|
||||
# Trigger that controls the availability of the widget. Scope: same as the event, after immediate effect. Default: always = yes
|
||||
is_shown = {}
|
||||
# Name of the widget to use. Must be at the path <event_window_widgets>/<widget_name>.gui
|
||||
gui = "<widget_name>"
|
||||
# Name of the widget where this custome widget will be insert
|
||||
container = "<container_widget_name>"
|
||||
# Some widgets require a custom controller (see below). Default: default
|
||||
controller = <controller_type>
|
||||
# Effect to set up the scope as required by the controller. Scope: same as the event, after immediate effect, doesn't modify the event scope, though. Default: {}
|
||||
setup_scope = {}
|
||||
}
|
||||
}
|
||||
widget = { ... } # alternative syntax for a single widget. Follows the same info as the widget in the widgets parameter
|
||||
|
||||
option = { # An option the player/AI can pick
|
||||
# Localization key for the event option button text
|
||||
name = X
|
||||
|
||||
# The effects that will be run when picking the options. Written directly here with no label
|
||||
X..
|
||||
|
||||
# A trigger that has to be fulfilled for this option to be valid.
|
||||
trigger = {}
|
||||
|
||||
# If the event is invalid, but this trigger is valid, then the option will be shown (but disabled).
|
||||
# This behavior is also influenced by the EVENT_OPTIONS_SHOWN_HIDE_UNAVAILABLE or SCHEME_PREPARATION_OPTIONS_SHOWN_HIDE_UNAVAILABLE defines depending on event type.
|
||||
show_as_unavailable = {}
|
||||
|
||||
# Highlights the event portrait of this character while this option is hovered. This is in addition to the automatic highlighting when hovering an event option that has an effect that affects portrait characters.
|
||||
highlight_portrait = scope:a_character
|
||||
|
||||
reason = <flag> # Special reason for why this option is unlocked, can be any arbitrary string, is be checked in the UI to show special by reason
|
||||
|
||||
# Parameters to impact the way ai-characters pick options to resolve their events
|
||||
# We have 2 mutually exclusive parameters; ai_chance, and ai_will_select where the only difference is the syntax for calculating the value
|
||||
ai_chance = { # See common/scripted_modifiers/_scripted_modifiers.info for more details
|
||||
base = 10
|
||||
modifier = {
|
||||
add = 5
|
||||
<trigger>
|
||||
}
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
<trigger>
|
||||
}
|
||||
}
|
||||
|
||||
ai_will_select = { # See common/script_values/_script_values.info for more details
|
||||
base = 10
|
||||
if = {
|
||||
limit = {
|
||||
<trigger>
|
||||
}
|
||||
add = 5
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
<trigger>
|
||||
}
|
||||
multiply = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
theme = "" # Theme to use in the event. For a list, check: 00_event_themes.txt
|
||||
override_background = { # A background that can be shown when the event pops up. This overrides the theme one. In case that there are multiples the first one that fits the trigger will be the one selected. In case none fits the ones inthe theme will be checked after.
|
||||
trigger = {} # Receives the event scope to check if it's valid.
|
||||
reference = "" # Path to the texture
|
||||
}
|
||||
override_transition = { # A transition that can be shown when the event pops up, before the event options and backgrounds. This overrides the theme one. In case that there are multiples the first one that fits the trigger will be the one selected. In case none fits the ones inthe theme will be checked after.
|
||||
trigger = {} # Receives the event scope to check if it's valid.
|
||||
reference = "" # Path to the texture
|
||||
}
|
||||
override_effect_2d = { # A 2d effect that can be put on top of the background. This overrides the theme one. In case that there are multiples the first one that fits the trigger will be the one selected. In case none fits the ones inthe theme will be checked after.
|
||||
trigger = {} # Receives the event scope to check if it's valid.
|
||||
reference = "" # key to the effect
|
||||
}
|
||||
override_icon = { # An icon that can be shown when the event pops up. This overrides the theme one. In case that there are multiples the first one that fits the trigger will be the one selected. In case none fits the ones inthe theme will be checked after.
|
||||
trigger = {} # Receives the event scope to check if it's valid.
|
||||
reference = "" # Path to the texture
|
||||
}
|
||||
override_header_background = { # The header asset located behind the event icon. This overrides the header asset defined by the theme. If there are multiples defined here, the first one that passes its trigger will be selected. If none are valid, then the theme's header asset will be used
|
||||
trigger = {}
|
||||
reference = ""
|
||||
}
|
||||
override_sound = { # A sound that can be played when the event pops up. This overrides the theme one. In case that there are multiples the first one that fits the trigger will be the one selected. In case none fits the ones inthe theme will be checked after.
|
||||
trigger = {} # Receives the event scope to check if it's valid.
|
||||
reference = "" # Reference of the sound
|
||||
}
|
||||
orphan = yes # The game will not log an error about this event being unreferenced. Useful for debug events
|
||||
}
|
||||
|
||||
=== Custom Widgets ===
|
||||
|
||||
Custom widgets can be embedded into events.
|
||||
GUI files must be placed at the event_window_widgets path (see paths.settings). The name of the file must match the widget name.
|
||||
|
||||
Some widgets that modify the game require a custom controller. This should be documented in the widget's GUI file.
|
||||
The data context type available in the GUI depends on the controller type.
|
||||
|
||||
Some controllers require special scope setup, which should be documented under Notes below. Use the setup_scope effect for that.
|
||||
|
||||
Available controllers:
|
||||
|
||||
Controller Type | Data Context Name | Notes
|
||||
------------------------+----------------------------------------+-------------------------------------------------------------------------------------------------------------
|
||||
default | EventWindowWidget | Default controller, no special behavior
|
||||
name_character | EventWindowWidgetNameCharacter | Changes a character's name. Scope must have the name_character_target saved scope.
|
||||
text | EventWindowWidgetEnterText | Saves some text onto the character.
|
||||
event_chain_progress | EventWindowWidgetChainProgress | Displays progress through an event chain, needs event_chain_length and event_chain_progress scope values set
|
||||
struggle_info | EventWindowCustomWidgetStruggleInfo | Displays information for the struggle, needs "start" scope value set
|
||||
situation_info | EventWindowCustomWidgetSituationInfo | Displays information for the situation
|
||||
891
N3OW/events/accolade_events.txt
Normal file
891
N3OW/events/accolade_events.txt
Normal file
|
|
@ -0,0 +1,891 @@
|
|||
namespace = accolade
|
||||
|
||||
#Accolade rank gain notification
|
||||
# by Jason Cantalini
|
||||
accolade.0001 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = acclaimed_knight
|
||||
has_dlc_feature = accolades
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:changing_accolade = {
|
||||
acclaimed_knight = {
|
||||
save_scope_as = acclaimed_knight
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
scope:changing_accolade = {
|
||||
accolade_rank >= 5
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_accolade_gained_rank
|
||||
title = accolade.0001.notification_high
|
||||
desc = accolade_rank_unlock_notification_tooltip_high
|
||||
left_icon = scope:acclaimed_knight
|
||||
}
|
||||
}
|
||||
else = {
|
||||
send_interface_message = {
|
||||
type = msg_accolade_gained_rank
|
||||
title = accolade.0001.notification_low
|
||||
desc = accolade_rank_unlock_notification_tooltip_low
|
||||
left_icon = scope:acclaimed_knight
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Accolade rank loss notification
|
||||
# by Jason Cantalini
|
||||
accolade.0002 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_dlc_feature = accolades
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:changing_accolade.acclaimed_knight
|
||||
}
|
||||
scope:changing_accolade = {
|
||||
acclaimed_knight = {
|
||||
save_scope_as = acclaimed_knight
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
scope:changing_accolade = {
|
||||
accolade_rank >= 5
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_accolade_lost_rank
|
||||
title = accolade.0002.notification_high
|
||||
left_icon = scope:acclaimed_knight
|
||||
desc = {
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:acclaimed_knight = {
|
||||
is_alive = yes
|
||||
}
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_high
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_high_dead
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
scope:changing_accolade = {
|
||||
accolade_rank >= 1
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_accolade_lost_rank
|
||||
title = accolade.0002.notification_low
|
||||
left_icon = scope:acclaimed_knight
|
||||
desc = {
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:acclaimed_knight = {
|
||||
is_alive = yes
|
||||
}
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_low
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_low_dead
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
send_interface_message = {
|
||||
type = msg_accolade_lost_rank
|
||||
title = accolade.0002.notification_low
|
||||
left_icon = scope:acclaimed_knight
|
||||
desc = {
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:acclaimed_knight = {
|
||||
is_alive = yes
|
||||
}
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_no_rank
|
||||
}
|
||||
desc = accolade_rank_loss_notification_tooltip_no_rank_dead
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:changing_accolade.acclaimed_knight }
|
||||
scope:changing_accolade = { accolade_rank >= 1 }
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_accolade_lost_rank
|
||||
title = accolade.0002.notification_empty
|
||||
desc = accolade_rank_loss_notification_tooltip_empty
|
||||
}
|
||||
}
|
||||
else = {
|
||||
send_interface_message = {
|
||||
type = msg_accolade_lost_rank
|
||||
title = accolade.0002.notification_low
|
||||
desc = accolade_rank_loss_notification_tooltip_empty_no_rank
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Accolade becomes idle
|
||||
# by Jason Cantalini
|
||||
accolade.0003 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_dlc_feature = accolades
|
||||
}
|
||||
|
||||
immediate = {
|
||||
send_interface_toast = {
|
||||
type = msg_accolade_active
|
||||
title = accolade.0003.accolade_becomes_idle.tt
|
||||
custom_tooltip = accolade.0003.accolade_becomes_idle_effects.tt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Accolade succession with unchanged types
|
||||
# by Jason Cantalini
|
||||
accolade.0004 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_dlc_feature = accolades
|
||||
}
|
||||
|
||||
immediate = {
|
||||
send_interface_toast = {
|
||||
type = msg_accolade_succession
|
||||
title = accolade.0004.new_acclaimed_knight.tt
|
||||
left_icon = scope:new_acclaimed_knight
|
||||
custom_tooltip = accolade.0004.new_acclaimed_knight_name.tt
|
||||
custom_tooltip = accolade.glory_loss.tt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Accolade succession with new secondary type
|
||||
# by Jason Cantalini
|
||||
accolade.0005 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_dlc_feature = accolades
|
||||
}
|
||||
|
||||
immediate = {
|
||||
send_interface_toast = {
|
||||
type = msg_accolade_succession_toast
|
||||
title = accolade.0005.new_acclaimed_knight_new_type.tt
|
||||
left_icon = scope:new_acclaimed_knight
|
||||
custom_tooltip = accolade.0005.new_accolade_type.tt
|
||||
custom_tooltip = accolade.0005.new_acclaimed_knight_succeeds.tt
|
||||
custom_tooltip = accolade.glory_loss.tt
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Find Accolade Successor knight creation event
|
||||
accolade.0006 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:accolade_in_need
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
is_healthy = yes
|
||||
save_temporary_scope_as = temp_knight
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:temp_knight
|
||||
}
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
is_healthy = yes
|
||||
save_temporary_scope_as = temp_knight
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:temp_knight
|
||||
}
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
#if = { # Balance testing variables
|
||||
# limit = {
|
||||
# NOT = {
|
||||
# exists = global_var:accolade_fail
|
||||
# }
|
||||
# }
|
||||
# set_global_variable = {
|
||||
# name = accolade_fail
|
||||
# value = 1
|
||||
# }
|
||||
#}
|
||||
#else = {
|
||||
# change_global_variable = {
|
||||
# name = accolade_fail
|
||||
# add = 1
|
||||
# }
|
||||
#}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
#else = { # Balance testing variables
|
||||
# if = {
|
||||
# limit = {
|
||||
# NOT = {
|
||||
# exists = global_var:accolade_success
|
||||
# }
|
||||
# }
|
||||
# set_global_variable = {
|
||||
# name = accolade_success
|
||||
# value = 1
|
||||
# }
|
||||
# }
|
||||
# else = {
|
||||
# change_global_variable = {
|
||||
# name = accolade_success
|
||||
# add = 1
|
||||
# }
|
||||
# }
|
||||
#}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:chosen_knight
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
# make sure the chosen knight is not already a courtier
|
||||
scope:chosen_knight ?= {
|
||||
NOT = { is_courtier_of = root }
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
|
||||
trigger_event = {
|
||||
id = accolade.0007
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#Find Accolade Successor join event
|
||||
accolade.0007 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:accolade_in_need
|
||||
exists = scope:chosen_knight
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
#SEND A TOAST NOTIFICATION
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_neutral
|
||||
title = accolade.0007.notification
|
||||
left_icon = scope:chosen_knight
|
||||
custom_tooltip = accolade_call_acclaimed_knight_tooltip
|
||||
hidden_effect = {
|
||||
scope:chosen_knight = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { is_knight_of = root }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
send_interface_message = {
|
||||
type = event_accolade_bad_text
|
||||
title = accolade.0007.notification_fail
|
||||
desc = accolade_find_successor_fail_notification_tooltip
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Acclaimed Knight first knight
|
||||
accolade.0008 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:empty_accolade_1
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
scope:empty_accolade_1 = {
|
||||
save_scope_as = accolade_in_need
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
|
||||
trigger_event = {
|
||||
id = accolade.0013
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Acclaimed Knight second knight
|
||||
accolade.0009 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:empty_accolade_2
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
scope:empty_accolade_2 = {
|
||||
save_scope_as = accolade_in_need
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_clergy = no
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_clergy = no
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
trigger_event = {
|
||||
id = accolade.0013
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Acclaimed Knight third knight
|
||||
accolade.0010 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:empty_accolade_3
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
scope:empty_accolade_3 = {
|
||||
save_scope_as = accolade_in_need
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
trigger_event = {
|
||||
id = accolade.0013
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Acclaimed Knight fourth knight
|
||||
accolade.0011 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:empty_accolade_4
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
scope:empty_accolade_4 = {
|
||||
save_scope_as = accolade_in_need
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
trigger_event = {
|
||||
id = accolade.0013
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Acclaimed Knight fifth knight
|
||||
accolade.0012 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
exists = scope:empty_accolade_5
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# try to find a pool character first
|
||||
scope:empty_accolade_5 = {
|
||||
save_scope_as = accolade_in_need
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
every_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep2_can_be_accolade_successor_base_trigger = yes
|
||||
can_be_knight_trigger = { ARMY_OWNER = root }
|
||||
is_valid_successor_for_accolade = scope:accolade_in_need
|
||||
faith = {
|
||||
faith_hostility_level = {
|
||||
target = root.faith
|
||||
value <= faith_astray_level
|
||||
}
|
||||
}
|
||||
is_clergy = no
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = this
|
||||
}
|
||||
is_healthy = yes
|
||||
}
|
||||
add_to_list = potential_knights
|
||||
}
|
||||
random_in_list = {
|
||||
list = potential_knights
|
||||
save_scope_as = chosen_knight
|
||||
}
|
||||
|
||||
# create a character if needed
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:chosen_knight }
|
||||
}
|
||||
accolade_character_creation_effect = yes
|
||||
}
|
||||
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = root
|
||||
RECRUITEE = scope:chosen_knight
|
||||
}
|
||||
}
|
||||
add_courtier = scope:chosen_knight
|
||||
}
|
||||
trigger_event = {
|
||||
id = accolade.0013
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Call Accolade Knight join event
|
||||
accolade.0013 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:accolade_in_need
|
||||
exists = scope:chosen_knight
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOR = {
|
||||
government_has_flag = government_is_theocracy
|
||||
has_character_flag = had_accolade_successor_notification
|
||||
}
|
||||
}
|
||||
|
||||
#SEND A TOAST NOTIFICATION
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_neutral
|
||||
title = accolade.0013.notification
|
||||
left_icon = scope:chosen_knight
|
||||
custom_tooltip = accolade_call_acclaimed_knight_tooltip
|
||||
hidden_effect = {
|
||||
scope:chosen_knight = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { is_knight_of = root }
|
||||
}
|
||||
set_knight_status = force
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
add_character_flag = {
|
||||
flag = had_accolade_successor_notification
|
||||
months = 6
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = scope:accolade_in_need
|
||||
exists = scope:chosen_knight
|
||||
exists = root.capital_province
|
||||
highest_held_title_tier >= tier_county
|
||||
NOT = { government_has_flag = government_is_theocracy }
|
||||
}
|
||||
|
||||
#SEND A FEED NOTIFICATION FOR NEXT KNIGHTS
|
||||
send_interface_message = {
|
||||
type = event_accolade_good_with_text
|
||||
title = accolade.0013.notification
|
||||
desc = accolade_call_acclaimed_knight_tooltip
|
||||
left_icon = scope:chosen_knight
|
||||
scope:chosen_knight = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { is_knight_of = root }
|
||||
}
|
||||
set_knight_status = force
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
send_interface_message = {
|
||||
type = event_accolade_bad_text
|
||||
title = accolade.0013.notification_fail
|
||||
desc = accolade_call_acclaimed_knight_fail_notification_tooltip
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4625
N3OW/events/birth_events.txt
Normal file
4625
N3OW/events/birth_events.txt
Normal file
File diff suppressed because it is too large
Load diff
292
N3OW/events/blackmail_events.txt
Normal file
292
N3OW/events/blackmail_events.txt
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
#Events for blackmail
|
||||
|
||||
namespace = blackmail
|
||||
|
||||
|
||||
########################
|
||||
# Blackmail Handling
|
||||
# 0001-0999
|
||||
########################
|
||||
|
||||
#Character refuses to be blackmailed
|
||||
blackmail.0001 = {
|
||||
type = character_event
|
||||
title = blackmail.0001.t
|
||||
desc = blackmail.0001.desc
|
||||
theme = intrigue
|
||||
left_portrait = {
|
||||
character = scope:recipient
|
||||
animation = dismissal
|
||||
}
|
||||
|
||||
trigger = {
|
||||
exists = scope:target
|
||||
scope:target = { can_be_exposed_by = root }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_murder
|
||||
}
|
||||
|
||||
after = { remove_variable = currently_blackmailing }
|
||||
|
||||
option = {
|
||||
name = blackmail.0001.a
|
||||
scope:target = {
|
||||
expose_secret = root
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = blackmail.0001.b
|
||||
scope:target = {
|
||||
disable_exposure_by = root
|
||||
}
|
||||
ai_chance = {
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
########################
|
||||
# Blackmail-related stuff
|
||||
# 1000-1999
|
||||
########################
|
||||
|
||||
#Blackmailing someone causes Dread
|
||||
blackmail.1001 = {
|
||||
type = character_event
|
||||
title = blackmail.1001.t
|
||||
desc = blackmail.1001.desc
|
||||
theme = intrigue
|
||||
left_portrait = {
|
||||
character = scope:blackmail_target
|
||||
animation = worry
|
||||
}
|
||||
|
||||
trigger = {
|
||||
is_landed = yes
|
||||
any_vassal = {
|
||||
being_blackmailed_by_root_trigger = yes
|
||||
}
|
||||
NOT = { has_character_flag = had_event_blackmail_1001 }
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_murder
|
||||
add_character_flag = {
|
||||
flag = had_event_blackmail_1001
|
||||
days = 3650
|
||||
}
|
||||
random_vassal = {
|
||||
limit = {
|
||||
root = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = prev
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = prev
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = blackmail_target
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = blackmail.1001.a
|
||||
add_dread = medium_dread_gain
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 1
|
||||
ai_vengefulness = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #Assure your vassals no one has anything to fear
|
||||
name = blackmail.1001.b
|
||||
add_dread = medium_dread_loss
|
||||
stress_impact = {
|
||||
base = minor_stress_impact_gain
|
||||
stubborn = minor_stress_impact_gain
|
||||
callous = medium_stress_impact_gain
|
||||
sadistic = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 2
|
||||
ai_honor = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#Being under Blackmail causes Stress
|
||||
blackmail.1002 = {
|
||||
type = character_event
|
||||
title = blackmail.1002.t
|
||||
desc = blackmail.1002.desc
|
||||
theme = intrigue
|
||||
left_portrait = {
|
||||
character = scope:blackmailer
|
||||
animation = scheme
|
||||
}
|
||||
|
||||
trigger = {
|
||||
NOT = { has_character_flag = had_event_blackmail_1002 }
|
||||
OR = {
|
||||
any_vassal = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
exists = liege
|
||||
is_in_civil_war = no
|
||||
liege = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
any_close_or_extended_family_member = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = 0.5
|
||||
has_trait = trusting
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_murder
|
||||
add_character_flag = {
|
||||
flag = had_event_blackmail_1002
|
||||
days = 3650
|
||||
}
|
||||
every_vassal = {
|
||||
limit = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
add_to_temporary_list = blackmailers
|
||||
}
|
||||
liege = {
|
||||
if = {
|
||||
limit = {
|
||||
is_in_civil_war = no
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
add_to_temporary_list = blackmailers
|
||||
}
|
||||
}
|
||||
every_close_or_extended_family_member = {
|
||||
limit = {
|
||||
OR = {
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = weak_blackmail_hook
|
||||
}
|
||||
has_hook_of_type = {
|
||||
target = root
|
||||
type = strong_blackmail_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
add_to_temporary_list = blackmailers
|
||||
}
|
||||
random_in_list = {
|
||||
list = blackmailers
|
||||
save_scope_as = blackmailer
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = blackmail.1002.a
|
||||
trigger = { NOT = { has_trait = trusting } }
|
||||
show_as_unavailable = { always = yes }
|
||||
stress_impact = {
|
||||
base = medium_stress_gain
|
||||
paranoid = minor_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 1000
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = blackmail.1002.b
|
||||
trigger = {
|
||||
has_trait = trusting
|
||||
}
|
||||
trait = trusting
|
||||
stress_impact = {
|
||||
base = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
3589
N3OW/events/board_game_events.txt
Normal file
3589
N3OW/events/board_game_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2316
N3OW/events/bookmark_events.txt
Normal file
2316
N3OW/events/bookmark_events.txt
Normal file
File diff suppressed because it is too large
Load diff
4362
N3OW/events/bp1_dan_events.txt
Normal file
4362
N3OW/events/bp1_dan_events.txt
Normal file
File diff suppressed because it is too large
Load diff
703
N3OW/events/court_maintenance_events.txt
Normal file
703
N3OW/events/court_maintenance_events.txt
Normal file
|
|
@ -0,0 +1,703 @@
|
|||
#Court Maintenance events of various persuasions
|
||||
|
||||
namespace = court_maintenance
|
||||
|
||||
#Children should acquire personality trait events
|
||||
court_maintenance.0003 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
OR = {
|
||||
is_adult = no
|
||||
any_courtier_or_guest = {
|
||||
is_adult = no
|
||||
}
|
||||
any_prisoner = {
|
||||
is_adult = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
OR = {
|
||||
age = 9
|
||||
age = 11
|
||||
age = 13
|
||||
age >= 14 #Backup in case something has gone wrong
|
||||
}
|
||||
number_of_personality_traits < childhood_personality_trait_gain_limit
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
age = 9
|
||||
has_variable = reincarnation_of
|
||||
can_become_reincarnation_trigger = yes
|
||||
}
|
||||
trigger_event = child_personality.9900
|
||||
}
|
||||
else = {
|
||||
trigger_event = {
|
||||
on_action = child_personality_gain
|
||||
days = { 1 360 }
|
||||
}
|
||||
}
|
||||
}
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
OR = {
|
||||
age = 9
|
||||
age = 11
|
||||
age = 13
|
||||
age >= 14 #Backup in case something has gone wrong
|
||||
}
|
||||
number_of_personality_traits < childhood_personality_trait_gain_limit
|
||||
}
|
||||
trigger_event = {
|
||||
on_action = child_personality_gain
|
||||
days = { 1 360 }
|
||||
}
|
||||
}
|
||||
#Small random chance to acquire a fourth personality trait
|
||||
every_courtier_or_guest = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
number_of_personality_traits = childhood_personality_trait_gain_limit
|
||||
number_of_personality_traits < personality_trait_limit
|
||||
}
|
||||
random = {
|
||||
chance = childhood_fourth_personality_trait_chance
|
||||
trigger_event = {
|
||||
on_action = child_personality_gain
|
||||
days = { 1 360 }
|
||||
}
|
||||
}
|
||||
}
|
||||
every_prisoner = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
OR = {
|
||||
age = 9
|
||||
age = 11
|
||||
age = 13
|
||||
age >= 14 #Backup in case something has gone wrong
|
||||
}
|
||||
number_of_personality_traits < childhood_personality_trait_gain_limit
|
||||
}
|
||||
trigger_event = {
|
||||
on_action = child_personality_gain
|
||||
days = { 1 360 }
|
||||
}
|
||||
}
|
||||
#Small random chance to acquire a fourth personality trait
|
||||
every_prisoner = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
number_of_personality_traits = childhood_personality_trait_gain_limit
|
||||
number_of_personality_traits < personality_trait_limit
|
||||
}
|
||||
random = {
|
||||
chance = childhood_fourth_personality_trait_chance
|
||||
trigger_event = {
|
||||
on_action = child_personality_gain
|
||||
days = { 1 360 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
court_maintenance.0005 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
scope:new_employer = {
|
||||
government_has_flag = government_is_holy_order
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
add_trait = order_member
|
||||
}
|
||||
}
|
||||
|
||||
#Absent from your court
|
||||
court_maintenance.0010 = {
|
||||
theme = crown
|
||||
override_background = { reference = council_chamber }
|
||||
type = character_event
|
||||
title = court_maintenance.0010.t
|
||||
left_portrait = {
|
||||
character = scope:messenger
|
||||
animation = worry
|
||||
}
|
||||
|
||||
cooldown = { years = 5 }
|
||||
|
||||
trigger = {
|
||||
always = no # Disabled for now
|
||||
has_royal_court = yes
|
||||
has_dlc_feature = royal_court
|
||||
is_ai = no
|
||||
is_available_adult = yes
|
||||
is_at_war = no
|
||||
}
|
||||
|
||||
desc = {
|
||||
desc = court_maintenance.0010.desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:great_cgv_court
|
||||
}
|
||||
desc = court_maintenance.0010.desc.seeking_gainful_employment
|
||||
}
|
||||
desc = court_maintenance.0010.desc.general_ending
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
ordered_independent_ruler = {
|
||||
order_by = court_grandeur_current
|
||||
limit = {
|
||||
faith.religion = root.faith.religion
|
||||
in_diplomatic_range = root
|
||||
this != root
|
||||
}
|
||||
alternative_limit = {
|
||||
this != root
|
||||
in_diplomatic_range = root
|
||||
}
|
||||
alternative_limit = {
|
||||
this != root
|
||||
}
|
||||
save_scope_as = great_cgv_court
|
||||
}
|
||||
random_courtier = {
|
||||
limit = {
|
||||
has_any_court_position = yes
|
||||
}
|
||||
alternative_limit = {
|
||||
is_available_adult = yes
|
||||
}
|
||||
save_scope_as = messenger
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = court_maintenance.0010.a
|
||||
#Open Royal Court
|
||||
custom_tooltip = court_maintenance.0010.a.tooltip
|
||||
open_view_data = {
|
||||
view = royal_court
|
||||
player = root
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = {
|
||||
text = court_maintenance.0010.b.paranoid
|
||||
trigger = { has_trait = paranoid }
|
||||
}
|
||||
name = {
|
||||
text = court_maintenance.0010.b.depressed
|
||||
trigger = { has_trait = depressed }
|
||||
}
|
||||
name = {
|
||||
text = court_maintenance.0010.b.brave
|
||||
trigger = { has_trait = brave }
|
||||
}
|
||||
name = {
|
||||
text = court_maintenance.0010.b
|
||||
trigger = { always = yes }
|
||||
}
|
||||
change_current_court_grandeur = miniscule_court_grandeur_loss
|
||||
if = {
|
||||
limit = { exists = scope:great_cgv_court }
|
||||
custom_tooltip = court_maintenance.0010.b.tooltip
|
||||
}
|
||||
hidden_effect = {
|
||||
if = {
|
||||
limit = { exists = scope:great_cgv_court }
|
||||
random_courtier = {
|
||||
limit = {
|
||||
has_any_court_position = no
|
||||
is_physically_able_ai_adult = yes
|
||||
is_councillor = no
|
||||
NOT = { is_vassal_of = root }
|
||||
NOT = { is_close_family_of = ROOT }
|
||||
}
|
||||
set_employer = scope:great_cgv_court
|
||||
return_to_court = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Gained a Royal Court
|
||||
court_maintenance.0011 = {
|
||||
theme = new_royal_court
|
||||
type = character_event
|
||||
title = {
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
|
||||
desc = court_maintenance.0011.t.regent
|
||||
}
|
||||
desc = court_maintenance.0011.t
|
||||
}
|
||||
}
|
||||
window = visit_settlement_window
|
||||
desc = {
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
|
||||
desc = court_maintenance.0011.desc.regent
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { coronation_trigger = yes }
|
||||
desc = court_maintenance.0011.desc.ach
|
||||
}
|
||||
desc = court_maintenance.0011.desc
|
||||
}
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = war_over_win
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:messenger
|
||||
animation = ecstasy
|
||||
}
|
||||
artifact = { # To display the dynasty banner in the event-window
|
||||
target = scope:dynasty_banner
|
||||
position = lower_center_portrait
|
||||
}
|
||||
artifact = { # To display the house banner in the event-window
|
||||
target = scope:house_banner
|
||||
position = lower_right_portrait
|
||||
}
|
||||
|
||||
trigger = {
|
||||
is_ai = no
|
||||
is_landed = yes
|
||||
has_dlc_feature = royal_court
|
||||
# To avoid farming and duplication
|
||||
OR = {
|
||||
# No owned house banner
|
||||
NOT = {
|
||||
any_character_artifact = {
|
||||
has_variable = banner_house
|
||||
var:banner_house = root.house
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
# Is Dynasty Head
|
||||
OR = {
|
||||
this = dynasty.dynast # Dynasty Head
|
||||
any_parent = { # Parent landless
|
||||
employer = prev
|
||||
dynasty = prev.dynasty
|
||||
this = dynasty.dynast
|
||||
}
|
||||
}
|
||||
# Dynasty banner does not exist
|
||||
NOT = {
|
||||
any_character_artifact = {
|
||||
has_variable = banner_dynasty
|
||||
var:banner_dynasty = root.dynasty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
tgp_save_realm_ceremonial_liege_effect = yes
|
||||
if = {
|
||||
limit = {
|
||||
coronation_trigger = yes
|
||||
NOT = { has_game_rule = coronation_laws_off }
|
||||
}
|
||||
coronation_reset_realm_law_effect = yes #we need to reset the crown laws immediately, not wait for the next tick
|
||||
set_variable = coronation_discount
|
||||
custom_tooltip = court_maintenance.0011.coronation_discount
|
||||
|
||||
# Coronations law
|
||||
show_as_tooltip = {
|
||||
add_realm_law = uncrowned
|
||||
}
|
||||
|
||||
# Artifact for Coronations setup
|
||||
create_proper_coronation_artifact_setup = yes
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
exists = cp:councillor_chancellor
|
||||
}
|
||||
cp:councillor_chancellor = { save_scope_as = messenger }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
any_councillor = {
|
||||
is_kurultai_trigger = yes
|
||||
}
|
||||
}
|
||||
random_councillor = {
|
||||
limit = {
|
||||
is_kurultai_trigger = yes
|
||||
}
|
||||
save_scope_as = messenger
|
||||
}
|
||||
}
|
||||
else = {
|
||||
random_vassal = { save_scope_as = messenger }
|
||||
}
|
||||
#House banner
|
||||
if = {
|
||||
limit = {
|
||||
tgp_is_ceremonial_regent_trigger = no
|
||||
NOT = {
|
||||
any_character_artifact = {
|
||||
has_variable = banner_house
|
||||
var:banner_house = root.house
|
||||
}
|
||||
}
|
||||
}
|
||||
set_variable = banner_from_house
|
||||
create_artifact_wall_banner_effect = {
|
||||
OWNER = root
|
||||
CREATOR = scope:messenger
|
||||
TARGET = root.house
|
||||
}
|
||||
if = { # For artifact portraits
|
||||
limit = { exists = scope:newly_created_artifact }
|
||||
scope:newly_created_artifact = { save_scope_as = house_banner }
|
||||
}
|
||||
}
|
||||
#Dynasty banner
|
||||
if = {
|
||||
limit = {
|
||||
tgp_is_ceremonial_regent_trigger = no
|
||||
OR = {
|
||||
this = dynasty.dynast # Dynasty Head
|
||||
any_parent = { # Parent landless
|
||||
employer = root
|
||||
dynasty = root.dynasty
|
||||
this = dynasty.dynast
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
any_character_artifact = {
|
||||
has_variable = banner_dynasty
|
||||
var:banner_dynasty = root.dynasty
|
||||
}
|
||||
}
|
||||
}
|
||||
set_variable = banner_from_dynasty
|
||||
create_artifact_wall_banner_effect = {
|
||||
OWNER = root
|
||||
CREATOR = scope:messenger
|
||||
TARGET = root.dynasty
|
||||
}
|
||||
if = { # For artifact portraits
|
||||
limit = { exists = scope:newly_created_artifact }
|
||||
scope:newly_created_artifact = { save_scope_as = dynasty_banner }
|
||||
}
|
||||
}
|
||||
#Both
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:house_banner
|
||||
exists = scope:dynasty_banner
|
||||
}
|
||||
custom_tooltip = court_maintenance.0011.banner_tooltip
|
||||
}
|
||||
#House
|
||||
else_if = {
|
||||
limit = { exists = scope:house_banner }
|
||||
custom_tooltip = court_maintenance.0011.banner_house_tooltip
|
||||
}
|
||||
#Dynasty
|
||||
else = { custom_tooltip = court_maintenance.0011.banner_dynasty_tooltip }
|
||||
|
||||
# Add extra legitimacy, for the first time they gain the Kingdom title
|
||||
add_legitimacy_effect = { LEGITIMACY = major_legitimacy_gain }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = court_maintenance.0011.coronation
|
||||
custom_tooltip = court_maintenance.0011.coronation.tooltip
|
||||
trigger = {
|
||||
coronation_trigger = yes
|
||||
NOR = {
|
||||
has_character_flag = had_coronation_prompt
|
||||
has_game_rule = coronation_laws_off
|
||||
tgp_is_ceremonial_regent_trigger = yes
|
||||
}
|
||||
}
|
||||
if = { #ai should always go straight for it if they can
|
||||
limit = { is_ai = yes can_host_activity = activity_coronation }
|
||||
ai_attempt_to_host_activity = activity_coronation
|
||||
}
|
||||
else_if = { #if you already have a crown, a window opened for you sire
|
||||
limit = { coronation_has_proper_artifact_trigger = yes is_ai = no }
|
||||
open_view_data = {
|
||||
view = activity_list_detail_host_window
|
||||
data = activity_type:activity_coronation
|
||||
player = root
|
||||
}
|
||||
}
|
||||
else = { #Else we start creating a crown
|
||||
create_proper_coronation_artifact_creation = yes
|
||||
}
|
||||
|
||||
custom_tooltip = court_maintenance.0011.b.tooltip
|
||||
|
||||
ai_chance = { #AI should always start hosting coronations
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = {
|
||||
text = court_maintenance.0011.a
|
||||
trigger = { tgp_is_ceremonial_regent_trigger = no } # Not 'actual' ruler
|
||||
}
|
||||
name = {
|
||||
text = court_maintenance.0011.a.regent
|
||||
trigger = { tgp_is_ceremonial_regent_trigger = yes } # Not 'actual' ruler
|
||||
}
|
||||
#Open Royal Court
|
||||
custom_tooltip = court_maintenance.0011.a.tooltip
|
||||
if = {
|
||||
limit = {
|
||||
coronation_trigger = yes
|
||||
tgp_is_ceremonial_regent_trigger = no # Not 'actual' ruler
|
||||
NOR = {
|
||||
has_character_flag = had_coronation_prompt
|
||||
has_game_rule = coronation_laws_off
|
||||
government_has_flag = government_is_mandala
|
||||
}
|
||||
}
|
||||
custom_tooltip = court_maintenance.0011.b.tooltip.ach
|
||||
}
|
||||
open_view_data = {
|
||||
view = royal_court
|
||||
player = root
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = court_maintenance.0011.b
|
||||
custom_tooltip = court_maintenance.0011.b.tooltip
|
||||
if = {
|
||||
limit = {
|
||||
coronation_trigger = yes
|
||||
tgp_is_ceremonial_regent_trigger = no # Not 'actual' ruler
|
||||
NOR = {
|
||||
has_character_flag = had_coronation_prompt
|
||||
has_game_rule = coronation_laws_off
|
||||
government_has_flag = government_is_mandala
|
||||
}
|
||||
}
|
||||
custom_tooltip = court_maintenance.0011.b.tooltip.ach
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
add_character_flag = had_coronation_prompt
|
||||
if = {
|
||||
limit = {
|
||||
has_tgp_dlc_trigger = yes
|
||||
government_allows = merit
|
||||
NOT = { has_government = celestial_government } #Created from cycle
|
||||
}
|
||||
create_artifact_dynastic_imperial_seal_effect = {
|
||||
OWNER = root
|
||||
SMITH = root
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Dynasty Banner improves
|
||||
scripted_trigger dynasty_banner_improve_rarity_trigger = {
|
||||
trigger_if = {
|
||||
limit = { root.dynasty.dynasty_prestige_level = max_dynasty_prestige_level }
|
||||
NOT = { rarity = illustrious }
|
||||
}
|
||||
trigger_else_if = {
|
||||
limit = { root.dynasty.dynasty_prestige_level >= high_dynasty_prestige_level }
|
||||
NOR = {
|
||||
rarity = famed
|
||||
rarity = illustrious
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
root.dynasty.dynasty_prestige_level >= medium_dynasty_prestige_level
|
||||
NOR = {
|
||||
rarity = masterwork
|
||||
rarity = famed
|
||||
rarity = illustrious
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect dynasty_banner_improve_rarity_effect = {
|
||||
if = {
|
||||
limit = { scope:target.dynasty_prestige_level = max_dynasty_prestige_level }
|
||||
set_artifact_rarity = illustrious
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:target.dynasty_prestige_level >= high_dynasty_prestige_level }
|
||||
set_artifact_rarity = famed
|
||||
}
|
||||
else = { set_artifact_rarity = masterwork }
|
||||
hidden_effect = {
|
||||
set_artifact_description = artifact_wall_banner_dynasty_description
|
||||
clear_artifact_modifiers = yes
|
||||
add_scaled_artifact_modifier_grandeur_small_effect = yes
|
||||
add_scaled_artifact_modifier_dynasty_prestige_effect = yes
|
||||
add_scaled_artifact_modifier_prestige_effect = yes
|
||||
add_scaled_artifact_modifier_rulership_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
court_maintenance.0012 = {
|
||||
theme = new_royal_court
|
||||
type = character_event
|
||||
title = court_maintenance.0012.t
|
||||
desc = {
|
||||
desc = court_maintenance.0012.desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { scope:target.dynasty_prestige_level = max_dynasty_prestige_level }
|
||||
desc = court_maintenance.0012.desc_illustrious
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:target.dynasty_prestige_level >= high_dynasty_prestige_level }
|
||||
desc = court_maintenance.0012.desc_masterwork
|
||||
}
|
||||
desc = court_maintenance.0012.desc_famed
|
||||
}
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_honorable
|
||||
}
|
||||
artifact = { # To display the artifact in the event-window
|
||||
target = scope:banner_scope
|
||||
position = lower_right_portrait
|
||||
}
|
||||
|
||||
trigger = {
|
||||
any_character_artifact = {
|
||||
trigger_if = { # To stop errors
|
||||
limit = { exists = var:banner_dynasty } # is a dynasty banner
|
||||
var:banner_dynasty = root.dynasty # of my dynasty
|
||||
dynasty_banner_improve_rarity_trigger = yes # and should be a higher level
|
||||
}
|
||||
trigger_else = { always = no }
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
dynasty = { save_scope_as = target } # for banner desc
|
||||
# save relevant banners (all just in case)
|
||||
every_character_artifact = {
|
||||
limit = {
|
||||
has_variable = banner_dynasty
|
||||
var:banner_dynasty = root.dynasty
|
||||
dynasty_banner_improve_rarity_trigger = yes
|
||||
}
|
||||
add_to_list = dynasty_banner_list
|
||||
}
|
||||
random_in_list = {
|
||||
list = dynasty_banner_list
|
||||
limit = { is_equipped = yes }
|
||||
alternative_limit = { always = yes }
|
||||
save_scope_as = banner_scope
|
||||
save_scope_as = newly_created_artifact
|
||||
}
|
||||
every_in_list = {
|
||||
list = dynasty_banner_list
|
||||
dynasty_banner_improve_rarity_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = court_maintenance.0012.a
|
||||
}
|
||||
}
|
||||
|
||||
court_maintenance.0013 = {
|
||||
theme = new_royal_court
|
||||
type = character_event
|
||||
title = court_maintenance.0013.t
|
||||
desc = {
|
||||
desc = court_maintenance.0013.desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:banner_scope.var:banner_commissioner
|
||||
scope:banner_scope.var:banner_commissioner != root
|
||||
}
|
||||
desc = court_maintenance.0013.desc_creator
|
||||
}
|
||||
desc = court_maintenance.0013.desc_fallback
|
||||
}
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_honorable
|
||||
}
|
||||
artifact = { # To display the artifact in the event-window
|
||||
target = scope:banner_scope
|
||||
position = lower_right_portrait
|
||||
}
|
||||
|
||||
trigger = {
|
||||
any_character_artifact = { # Has more than one dynasty banner of own dynasty
|
||||
count > 1
|
||||
trigger_if = { # To stop errors
|
||||
limit = { exists = var:banner_dynasty }
|
||||
var:banner_dynasty = root.dynasty
|
||||
}
|
||||
trigger_else = { always = no }
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
every_character_artifact = { # Fetch all dynasty banners
|
||||
limit = {
|
||||
has_variable = banner_dynasty
|
||||
var:banner_dynasty = root.dynasty
|
||||
}
|
||||
add_to_list = dynasty_banner_list
|
||||
}
|
||||
ordered_in_list = { # Save oldest dynasty banner
|
||||
list = dynasty_banner_list
|
||||
order_by = artifact_age
|
||||
save_scope_as = banner_scope
|
||||
}
|
||||
every_in_list = { # Destroy all but oldest dynasty banner
|
||||
list = dynasty_banner_list
|
||||
limit = {
|
||||
this != scope:banner_scope
|
||||
}
|
||||
destroy_artifact = this
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = court_maintenance.0013.a
|
||||
custom_tooltip = court_maintenance.0013.tt
|
||||
|
||||
}
|
||||
}
|
||||
261
N3OW/events/court_position_management_events.txt
Normal file
261
N3OW/events/court_position_management_events.txt
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
# Court Position re-assignment events
|
||||
namespace = court_position_management_event
|
||||
|
||||
# Generic / landed character court position vacated event, offer the up to two best candidates by aptitude
|
||||
court_position_management_event.0001 = {
|
||||
type = character_event
|
||||
title = court_position_management_event.0001.t
|
||||
theme = court
|
||||
|
||||
desc = {
|
||||
desc = court_position_management_event.0001.desc
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:employee = {
|
||||
is_alive = no
|
||||
}
|
||||
}
|
||||
desc = court_position_management_event.0001.desc.dead
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
desc = court_position_management_event.0001.desc.one_candidate
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
exists = scope:candidate_2
|
||||
}
|
||||
desc = court_position_management_event.0001.desc.two_candidates
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
NOT = { exists = scope:candidate_1 }
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
desc = court_position_management_event.0001.desc.no_candidates
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:candidate_1 }
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
save_scope_as = left_portrait_character
|
||||
}
|
||||
else = {
|
||||
scope:candidate_1 = {
|
||||
save_scope_as = left_portrait_character
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = scope:left_portrait_character
|
||||
|
||||
# If we have no candidates, we're just stand there, thinking
|
||||
triggered_animation = {
|
||||
trigger = { scope:left_portrait_character = root }
|
||||
animation = thinking
|
||||
}
|
||||
}
|
||||
|
||||
right_portrait = scope:candidate_2
|
||||
lower_center_portrait = scope:employee
|
||||
|
||||
# Pick candidate #1
|
||||
option = {
|
||||
name = court_position_management_event.0001.a
|
||||
custom_tooltip = court_position_management_event.0001.a.aptitude
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
exists = scope:court_position_type
|
||||
}
|
||||
appoint_court_position = {
|
||||
recipient = scope:candidate_1
|
||||
court_position = scope:court_position_type
|
||||
}
|
||||
}
|
||||
|
||||
# Pick candidate #2
|
||||
option = {
|
||||
name = court_position_management_event.0001.b
|
||||
custom_tooltip = court_position_management_event.0001.b.aptitude
|
||||
trigger = {
|
||||
exists = scope:candidate_2
|
||||
}
|
||||
appoint_court_position = {
|
||||
recipient = scope:candidate_2
|
||||
court_position = scope:court_position_type
|
||||
}
|
||||
}
|
||||
|
||||
# Go to a recruitment decision
|
||||
option = {
|
||||
name = court_position_management_event.0001.c
|
||||
custom_tooltip = court_position_management_event.0001.c.tt
|
||||
|
||||
# Court positions that are valid in 'recruit_court_position_decision'
|
||||
trigger = {
|
||||
NOT = { exists = scope:candidate_1 }
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
OR = {
|
||||
scope:court_position_type = court_position_type:travel_leader_court_position
|
||||
scope:court_position_type = court_position_type:court_physician_court_position
|
||||
scope:court_position_type = court_position_type:wet_nurse_court_position
|
||||
scope:court_position_type = court_position_type:charioteer_court_position
|
||||
scope:court_position_type = court_position_type:chief_eunuch_court_position
|
||||
scope:court_position_type = court_position_type:court_gardener_court_position
|
||||
}
|
||||
}
|
||||
|
||||
open_view_data = {
|
||||
view = decision_detail
|
||||
data = decision:recruit_court_position_decision
|
||||
player = root
|
||||
}
|
||||
}
|
||||
|
||||
# I will figure this out myself
|
||||
option = {
|
||||
name = court_position_management_event.0001.d
|
||||
custom_tooltip = court_position_management_event.0001.d.tt
|
||||
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
}
|
||||
|
||||
open_view_data = {
|
||||
view = appoint_position
|
||||
data = scope:court_position_type
|
||||
player = root
|
||||
}
|
||||
}
|
||||
|
||||
# Leave it open
|
||||
option = {
|
||||
name = court_position_management_event.0001.e
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Landless adventurer court position vacated event, offer the up to two best candidates by aptitude
|
||||
court_position_management_event.0002 = {
|
||||
type = character_event
|
||||
title = court_position_management_event.0002.t
|
||||
theme = landless_adventurer
|
||||
|
||||
desc = {
|
||||
desc = court_position_management_event.0002.desc
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:employee = {
|
||||
is_alive = no
|
||||
}
|
||||
}
|
||||
desc = court_position_management_event.0002.desc.dead
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
desc = court_position_management_event.0002.desc.one_candidate
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
exists = scope:candidate_2
|
||||
}
|
||||
desc = court_position_management_event.0002.desc.two_candidates
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
NOT = { exists = scope:candidate_1 }
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
desc = court_position_management_event.0002.desc.no_candidates
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:candidate_1 }
|
||||
NOT = { exists = scope:candidate_2 }
|
||||
}
|
||||
save_scope_as = left_portrait_character
|
||||
}
|
||||
else = {
|
||||
scope:candidate_1 = {
|
||||
save_scope_as = left_portrait_character
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = scope:left_portrait_character
|
||||
|
||||
# If we have no candidates, we're just stand there, thinking
|
||||
triggered_animation = {
|
||||
trigger = { scope:left_portrait_character = root }
|
||||
animation = thinking
|
||||
}
|
||||
}
|
||||
|
||||
right_portrait = scope:candidate_2
|
||||
lower_center_portrait = scope:employee
|
||||
|
||||
# Pick candidate #1
|
||||
option = {
|
||||
name = court_position_management_event.0002.a
|
||||
custom_tooltip = court_position_management_event.0002.a.aptitude
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
exists = scope:court_position_type
|
||||
}
|
||||
appoint_court_position = {
|
||||
recipient = scope:candidate_1
|
||||
court_position = scope:court_position_type
|
||||
}
|
||||
}
|
||||
|
||||
# Pick candidate #2
|
||||
option = {
|
||||
name = court_position_management_event.0002.b
|
||||
custom_tooltip = court_position_management_event.0002.b.aptitude
|
||||
trigger = {
|
||||
exists = scope:candidate_2
|
||||
}
|
||||
appoint_court_position = {
|
||||
recipient = scope:candidate_2
|
||||
court_position = scope:court_position_type
|
||||
}
|
||||
}
|
||||
|
||||
# I will figure this out myself
|
||||
option = {
|
||||
name = court_position_management_event.0002.d
|
||||
custom_tooltip = court_position_management_event.0002.d.tt
|
||||
|
||||
trigger = {
|
||||
exists = scope:candidate_1
|
||||
}
|
||||
|
||||
open_view_data = {
|
||||
view = appoint_position
|
||||
data = scope:court_position_type
|
||||
player = root
|
||||
}
|
||||
}
|
||||
|
||||
# Leave it open
|
||||
option = {
|
||||
name = court_position_management_event.0002.e
|
||||
}
|
||||
}
|
||||
720
N3OW/events/dlc/ach/ach_maintenance_events.txt
Normal file
720
N3OW/events/dlc/ach/ach_maintenance_events.txt
Normal file
|
|
@ -0,0 +1,720 @@
|
|||
namespace = ach_maintenance_events
|
||||
|
||||
ach_maintenance_events.0001 = { # Clean up of Coronation realm law, will happen 1 tick after you gain the title (due to on_actions)
|
||||
type = character_event
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
coronation_trigger = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
has_game_rule = coronation_laws_off
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
has_variable = crowned_king_var
|
||||
NOT = { has_realm_law = crowned_king }
|
||||
}
|
||||
add_realm_law_skip_effects = crowned_king
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
has_variable = crowned_emperor_var
|
||||
NOT = { has_realm_law = crowned_emperor }
|
||||
}
|
||||
add_realm_law_skip_effects = crowned_emperor
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
NOR = {
|
||||
has_variable = crowned_king_var
|
||||
has_variable = crowned_emperor_var
|
||||
}
|
||||
NOT = { has_realm_law = uncrowned }
|
||||
}
|
||||
add_realm_law_skip_effects = uncrowned
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ach_maintenance_events.0002 = { # ACH Oath synergy culture rewards
|
||||
type = character_event
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_variable = mend_the_fracture_oath_target_culture
|
||||
culture ?= {
|
||||
has_cultural_tradition = oath_mend_the_fracture_tradition
|
||||
}
|
||||
top_liege = root
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
has_cultural_tradition = oath_mend_the_fracture_tradition
|
||||
NOT = { this = root.culture }
|
||||
any_culture_county = {
|
||||
count >= 3
|
||||
top_liege = root.top_liege
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# calculate the chances of a positive thing happening
|
||||
set_variable = {
|
||||
name = synergy_cultures_chance
|
||||
value = 0.1
|
||||
}
|
||||
set_variable = {
|
||||
name = synergy_cultures_amount
|
||||
value = 0
|
||||
}
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
if = {
|
||||
limit = {
|
||||
cultural_acceptance = {
|
||||
target = root.culture
|
||||
value >= 99
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.4
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
cultural_acceptance = {
|
||||
target = root.culture
|
||||
value >= 80
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
cultural_acceptance = {
|
||||
target = root.culture
|
||||
value >= 60
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.2
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
cultural_acceptance = {
|
||||
target = root.culture
|
||||
value >= 40
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.1
|
||||
}
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
culture_head ?= {
|
||||
opinion = {
|
||||
target = root
|
||||
value >= 80
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
culture_head ?= {
|
||||
opinion = {
|
||||
target = root
|
||||
value >= 40
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.2
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
culture_head ?= {
|
||||
opinion = {
|
||||
target = root
|
||||
value >= 20
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
opinion = {
|
||||
target = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
value >= 80
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
opinion = {
|
||||
target = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
value >= 40
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.2
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
opinion = {
|
||||
target = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
value >= 20
|
||||
}
|
||||
}
|
||||
root = {
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
prestige_level = 5
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.2
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
prestige_level = 4
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.15
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
prestige_level = 3
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.1
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
prestige_level = 2
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.05
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
prestige_level = 1
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_chance
|
||||
add = 0.02
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
var:synergy_cultures_chance >= 1
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_amount
|
||||
add = var:synergy_cultures_chance
|
||||
multiply = 2
|
||||
}
|
||||
set_variable = {
|
||||
name = synergy_cultures_chance
|
||||
value = 1
|
||||
}
|
||||
}
|
||||
|
||||
# calculate the amount of a positive things happening
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
every_culture_county = {
|
||||
limit = {
|
||||
top_liege = root.top_liege
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_amount
|
||||
add = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
change_variable = {
|
||||
name = synergy_cultures_amount
|
||||
multiply = 0.2
|
||||
multiply = var:synergy_cultures_chance
|
||||
min = 1
|
||||
}
|
||||
|
||||
while = {
|
||||
limit = {
|
||||
var:synergy_cultures_amount > 0
|
||||
}
|
||||
random_list = {
|
||||
1 = {
|
||||
culture ?= {
|
||||
random_culture_county = {
|
||||
limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
holder = root
|
||||
}
|
||||
alternative_limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
top_liege = root.top_liege
|
||||
}
|
||||
alternative_limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
}
|
||||
add_county_modifier = {
|
||||
modifier = oath_mend_the_fracture_county
|
||||
years = 2
|
||||
}
|
||||
add_to_list = synergy_culture_counties
|
||||
}
|
||||
}
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
random_culture_county = {
|
||||
limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
holder = root
|
||||
}
|
||||
alternative_limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
top_liege = root.top_liege
|
||||
}
|
||||
alternative_limit = {
|
||||
NOT = {
|
||||
has_county_modifier = oath_mend_the_fracture_county
|
||||
}
|
||||
}
|
||||
add_county_modifier = {
|
||||
modifier = oath_mend_the_fracture_county
|
||||
years = 3
|
||||
}
|
||||
add_to_list = synergy_culture_counties
|
||||
}
|
||||
}
|
||||
save_scope_as = county_reward
|
||||
}
|
||||
1 = {
|
||||
modifier = {
|
||||
NOT = {
|
||||
root.culture.culture_head ?= root
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
spawn_army = {
|
||||
name = ach_culture_synergy_troops
|
||||
men_at_arms = {
|
||||
type = accolade_maa_archers
|
||||
stacks = 1
|
||||
}
|
||||
men_at_arms = {
|
||||
type = accolade_maa_skirmishers
|
||||
stacks = 1
|
||||
}
|
||||
location = root.capital_province
|
||||
uses_supply = no
|
||||
inheritable = yes
|
||||
}
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
culture_head ?= root
|
||||
}
|
||||
}
|
||||
}
|
||||
culture_head ?= {
|
||||
spawn_army = {
|
||||
name = ach_culture_synergy_troops
|
||||
men_at_arms = {
|
||||
type = accolade_maa_skirmishers
|
||||
stacks = 1
|
||||
}
|
||||
location = root.capital_province
|
||||
uses_supply = no
|
||||
inheritable = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = army_reward
|
||||
}
|
||||
1 = {
|
||||
modifier = {
|
||||
NOT = {
|
||||
root.culture.culture_head ?= root
|
||||
var:mend_the_fracture_oath_target_culture.culture_head != root
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
modifier = {
|
||||
opinion = {
|
||||
target = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
value = 100
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
add_opinion = {
|
||||
target = var:mend_the_fracture_oath_target_culture.culture_head
|
||||
opinion = 20
|
||||
modifier = ach_synergy_culture_opinion
|
||||
}
|
||||
save_scope_as = opinion_reward
|
||||
}
|
||||
}
|
||||
|
||||
change_variable = {
|
||||
name = synergy_cultures_amount
|
||||
subtract = 1
|
||||
}
|
||||
}
|
||||
|
||||
# inform the player about what happened
|
||||
send_interface_message = {
|
||||
title = ach_maintenance_events.0002.title
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:army_reward
|
||||
}
|
||||
custom_tooltip = ach_maintenance_events.0002.army_reward
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:opinion_reward
|
||||
}
|
||||
custom_tooltip = ach_maintenance_events.0002.opinion_reward
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:county_reward
|
||||
}
|
||||
every_in_list = {
|
||||
list = synergy_culture_counties
|
||||
show_as_tooltip = {
|
||||
add_county_modifier = {
|
||||
modifier = oath_mend_the_fracture_county
|
||||
years = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
var:mend_the_fracture_oath_target_culture = {
|
||||
any_culture_county = {
|
||||
holder = {
|
||||
culture = var:mend_the_fracture_oath_target_culture
|
||||
is_ai = no
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
title = ach_maintenance_events.0002.title
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:army_reward
|
||||
}
|
||||
custom_tooltip = ach_maintenance_events.0002.army_reward
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:opinion_reward
|
||||
}
|
||||
custom_tooltip = ach_maintenance_events.0002.opinion_reward
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:county_reward
|
||||
}
|
||||
every_in_list = {
|
||||
list = synergy_culture_counties
|
||||
show_as_tooltip = {
|
||||
add_county_modifier = {
|
||||
modifier = oath_mend_the_fracture_county
|
||||
years = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
remove_variable = synergy_cultures_chance
|
||||
remove_variable = synergy_cultures_amount
|
||||
}
|
||||
}
|
||||
|
||||
ach_maintenance_events.0100 = { #Coronation host is ded, notify guests
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0100.t
|
||||
desc = ach_maintenance_events.0100.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shock
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:host
|
||||
animation = dead
|
||||
}
|
||||
|
||||
immediate = {
|
||||
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0100.a
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ach_maintenance_events.0101 = { #Coronation host has been imprisoned, notify guests
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0101.t
|
||||
desc = ach_maintenance_events.0101.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shock
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:host
|
||||
animation = prisonhouse
|
||||
}
|
||||
|
||||
lower_left_portrait = {
|
||||
character = scope:gaoler
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:host.imprisoner = {
|
||||
save_scope_as = gaoler
|
||||
}
|
||||
}
|
||||
|
||||
trigger = {
|
||||
NOT = { #you know what you did
|
||||
this = scope:host.imprisoner
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0101.a
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ach_maintenance_events.0102 = { #Coronation host has been imprisoned, notify host and cancellation
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0102.t
|
||||
desc = ach_maintenance_events.0102.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = prisonhouse
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:gaoler
|
||||
animation = manic
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:host.imprisoner = {
|
||||
save_scope_as = gaoler
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0102.a
|
||||
}
|
||||
}
|
||||
|
||||
ach_maintenance_events.0103 = { #No one shows up, notify host
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0103.t
|
||||
desc = ach_maintenance_events.0103.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = worry
|
||||
}
|
||||
|
||||
|
||||
immediate = {
|
||||
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0103.a
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ach_maintenance_events.0104 = { #Officiator ded, host cancelled the coronation, notify guests
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0104.t
|
||||
desc = ach_maintenance_events.0104.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = stunned
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:host
|
||||
animation = wailing
|
||||
}
|
||||
|
||||
lower_right_portrait = {
|
||||
character = scope:dead_officiator
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:activity.var:officiator ?= { save_scope_as = dead_officiator }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0104.a
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ach_maintenance_events.0105 = { #Host excommunicated, notify guests
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0105.t
|
||||
desc = ach_maintenance_events.0105.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = worry
|
||||
}
|
||||
|
||||
center_portrait = {
|
||||
character = scope:host
|
||||
animation = shame
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:hof
|
||||
animation = go_to_your_room
|
||||
}
|
||||
|
||||
immediate = {
|
||||
faith.religious_head = { save_scope_as = hof }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0105.a
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ach_maintenance_events.0106 = { #Host excommunicated, notify host
|
||||
type = character_event
|
||||
title = ach_maintenance_events.0106.t
|
||||
desc = ach_maintenance_events.0106.desc
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shame
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:hof
|
||||
animation = go_to_your_room
|
||||
}
|
||||
|
||||
immediate = {
|
||||
faith.religious_head = { save_scope_as = hof }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ach_maintenance_events.0106.a
|
||||
}
|
||||
|
||||
}
|
||||
2198
N3OW/events/dlc/ach/ach_yearly_events.txt
Normal file
2198
N3OW/events/dlc/ach/ach_yearly_events.txt
Normal file
File diff suppressed because it is too large
Load diff
210
N3OW/events/dlc/bp3/bp3_court_position_events.txt
Normal file
210
N3OW/events/dlc/bp3/bp3_court_position_events.txt
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
namespace = bp3_court_position
|
||||
|
||||
# Court Brewmaster upkeep event
|
||||
bp3_court_position.100 = {
|
||||
type = character_event
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
NOT = { has_variable = experimental_brew_cooldown }
|
||||
exists = court_position:court_brewmaster_court_position
|
||||
has_variable = active_experimental_brew
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Set a cooldown, so it can only happen once every 6 months
|
||||
set_variable = {
|
||||
name = experimental_brew_cooldown
|
||||
days = 179
|
||||
}
|
||||
|
||||
set_variable = {
|
||||
name = experimental_brew_creator
|
||||
value = court_position:court_brewmaster_court_position
|
||||
}
|
||||
|
||||
# Find what kind of drink it is (see 00_court_position_modifiers for a list of modifiers)
|
||||
random_list = {
|
||||
3 = { # Negative Drinks
|
||||
add_character_flag = experimental_brew_negative
|
||||
}
|
||||
1 = { # Childish Drinks
|
||||
trigger = {
|
||||
any_child = {
|
||||
count >= 1
|
||||
is_adult = no
|
||||
age >= 6
|
||||
}
|
||||
}
|
||||
add_character_flag = experimental_brew_childish
|
||||
random_child = {
|
||||
limit = {
|
||||
is_adult = no
|
||||
age >= 6
|
||||
}
|
||||
root = {
|
||||
set_variable = {
|
||||
name = experimental_brew_child
|
||||
value = prev
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
10 = { # Positive Drinks
|
||||
add_character_flag = experimental_brew_positive
|
||||
}
|
||||
3 = { # Very Positive Drinks
|
||||
add_character_flag = experimental_brew_very_positive
|
||||
}
|
||||
}
|
||||
|
||||
# Assign modifier and name
|
||||
switch = {
|
||||
trigger = has_character_flag
|
||||
experimental_brew_negative = {
|
||||
random_list = {
|
||||
1 = { # Health
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = small_health_negative
|
||||
}
|
||||
}
|
||||
1 = { # Courtier and Guest Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = court_guest_opinion_negative
|
||||
}
|
||||
}
|
||||
1 = { # Negative Prestige
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = prestige_negative
|
||||
}
|
||||
}
|
||||
1 = { # Negative Piety
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = piety_negative
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
experimental_brew_childish = {
|
||||
# Child Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = child_opinion
|
||||
}
|
||||
}
|
||||
experimental_brew_positive = {
|
||||
random_list = {
|
||||
1 = { # Diplomacy
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = diplomacy
|
||||
}
|
||||
}
|
||||
1 = { # Martial
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = martial
|
||||
}
|
||||
}
|
||||
1 = { # Stewardship
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = stewardship
|
||||
}
|
||||
}
|
||||
1 = { # Intrigue
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = intrigue
|
||||
}
|
||||
}
|
||||
1 = { # Learning
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = learning
|
||||
}
|
||||
}
|
||||
1 = { # Prowess
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = prowess
|
||||
}
|
||||
}
|
||||
1 = { # Courtier and Guest Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = court_guest_opinion_positive
|
||||
}
|
||||
}
|
||||
1 = { # Courtly Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = courtly_opinion
|
||||
}
|
||||
}
|
||||
1 = { # Prestige
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = prestige_positive
|
||||
}
|
||||
}
|
||||
1 = { # Piety
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = piety_positive
|
||||
}
|
||||
}
|
||||
1 = { # Attraction Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = attraction_opinion
|
||||
}
|
||||
}
|
||||
1 = { # Fertility
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = fertility
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
experimental_brew_very_positive = {
|
||||
random_list = {
|
||||
1 = { # General Opinion
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = general_opinion
|
||||
}
|
||||
}
|
||||
1 = { # Stress Loss
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = stress_loss
|
||||
}
|
||||
}
|
||||
1 = { # Renown
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = renown
|
||||
}
|
||||
}
|
||||
1 = { # Fascination
|
||||
trigger = {
|
||||
root.culture.culture_head = root
|
||||
}
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = fascination
|
||||
}
|
||||
}
|
||||
1 = { # Monthly Income
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = monthly_income
|
||||
}
|
||||
}
|
||||
1 = { # Health
|
||||
court_brewmaster_assign_modifier_positive_effect = {
|
||||
MODIFIER = small_health_positive
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Clean up
|
||||
remove_character_flag = experimental_brew_negative
|
||||
remove_character_flag = experimental_brew_childish
|
||||
remove_character_flag = experimental_brew_positive
|
||||
remove_character_flag = experimental_brew_very_positive
|
||||
remove_variable = experimental_brew_child
|
||||
remove_variable = experimental_brew_creator
|
||||
|
||||
trigger_event = {
|
||||
id = bp3_court_position.100
|
||||
months = 6
|
||||
}
|
||||
}
|
||||
}
|
||||
2793
N3OW/events/dlc/bp3/bp3_mapmaking.txt
Normal file
2793
N3OW/events/dlc/bp3/bp3_mapmaking.txt
Normal file
File diff suppressed because it is too large
Load diff
2828
N3OW/events/dlc/bp3/bp3_roaming_events.txt
Normal file
2828
N3OW/events/dlc/bp3/bp3_roaming_events.txt
Normal file
File diff suppressed because it is too large
Load diff
4489
N3OW/events/dlc/bp3/bp3_survey_events.txt
Normal file
4489
N3OW/events/dlc/bp3/bp3_survey_events.txt
Normal file
File diff suppressed because it is too large
Load diff
951
N3OW/events/dlc/ce1/epidemic_events_2.txt
Normal file
951
N3OW/events/dlc/ce1/epidemic_events_2.txt
Normal file
|
|
@ -0,0 +1,951 @@
|
|||
namespace = epidemic_events
|
||||
|
||||
epidemic_events.2001 = { #defender trying to status quo the vassal war cuz he's sick
|
||||
type = character_event
|
||||
title = epidemic_events.2001.t
|
||||
desc = epidemic_events.2001.desc
|
||||
theme = plague
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = thinking
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:pleading_vassal
|
||||
animation = beg
|
||||
}
|
||||
lower_right_portrait = {
|
||||
character = scope:attacking_vassal
|
||||
}
|
||||
override_background = {
|
||||
reference = army_camp
|
||||
}
|
||||
override_effect_2d = {
|
||||
reference = fog
|
||||
}
|
||||
cooldown = { years = 30 }
|
||||
|
||||
trigger = {
|
||||
is_available_adult = yes
|
||||
any_vassal = {
|
||||
is_ai = yes
|
||||
is_at_war = yes
|
||||
any_character_war = {
|
||||
primary_attacker = {
|
||||
is_vassal_of = root
|
||||
is_ai = yes
|
||||
}
|
||||
is_defender = prev
|
||||
attacker_war_score > 30
|
||||
}
|
||||
realm_has_any_epidemic = { SIZE = 3 INTENSITY = minor }
|
||||
current_gold_value > minor_gold_value
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_vassal = {
|
||||
limit = {
|
||||
is_ai = yes
|
||||
is_at_war = yes
|
||||
any_character_war = {
|
||||
primary_attacker = {
|
||||
is_vassal_of = root
|
||||
is_ai = yes
|
||||
}
|
||||
is_defender = prev
|
||||
attacker_war_score > 30
|
||||
}
|
||||
realm_has_any_epidemic = { SIZE = 2 INTENSITY = minor }
|
||||
current_gold_value > minor_gold_value
|
||||
}
|
||||
save_scope_as = pleading_vassal
|
||||
get_random_realm_epidemic = { INTENSITY = minor }
|
||||
random_character_war = {
|
||||
limit = {
|
||||
primary_attacker = {
|
||||
is_vassal_of = root
|
||||
is_ai = yes
|
||||
}
|
||||
is_defender = prev
|
||||
attacker_war_score > 30
|
||||
}
|
||||
save_scope_as = vassal_war
|
||||
}
|
||||
}
|
||||
scope:vassal_war = {
|
||||
primary_attacker = {
|
||||
save_scope_as = attacking_vassal
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = gold_transfer_value
|
||||
value = scope:pleading_vassal.current_gold_value
|
||||
}
|
||||
scope:pleading_vassal = {
|
||||
pay_short_term_gold = {
|
||||
target = root
|
||||
gold = current_gold_value
|
||||
}
|
||||
hidden_effect = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
|
||||
}
|
||||
random = {
|
||||
chance = 25
|
||||
infect_with_epidemic = scope:epidemic_scope
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #send a royal order for white peace
|
||||
name = epidemic_events.2001.c
|
||||
|
||||
duel = {
|
||||
skill = diplomacy
|
||||
target = scope:attacking_vassal
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 1
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2001.c.success
|
||||
left_icon = scope:pleading_vassal
|
||||
right_icon = scope:attacking_vassal
|
||||
scope:vassal_war = {
|
||||
end_war = white_peace
|
||||
}
|
||||
add_legitimacy_effect = { LEGITIMACY = minor_legitimacy_gain }
|
||||
scope:pleading_vassal = {
|
||||
add_opinion = {
|
||||
modifier = thankful_opinion
|
||||
opinion = 30
|
||||
target = root
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2001.c.failure
|
||||
left_icon = scope:pleading_vassal
|
||||
right_icon = scope:attacking_vassal
|
||||
scope:pleading_vassal = {
|
||||
add_opinion = {
|
||||
modifier = disappointed_opinion
|
||||
opinion = -25
|
||||
target = root
|
||||
}
|
||||
}
|
||||
custom_tooltip = epidemic_events.2001.danger
|
||||
}
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 10
|
||||
trigger_event = {
|
||||
months = 4
|
||||
id = epidemic_events.2002
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
greedy = medium_stress_gain
|
||||
compassionate = medium_stress_loss
|
||||
just = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_positive_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #imprison the other guy from traveling to you during a pandemic and wash whatever he touched
|
||||
name = epidemic_events.2001.b
|
||||
flavor = epidemic_events.2001.b.desc
|
||||
|
||||
imprison = {
|
||||
target = scope:pleading_vassal
|
||||
type = dungeon
|
||||
}
|
||||
|
||||
scope:pleading_vassal = {
|
||||
add_opinion = {
|
||||
modifier = angry_opinion
|
||||
opinion = -40
|
||||
target = root
|
||||
}
|
||||
}
|
||||
custom_tooltip = epidemic_events.2001.danger
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 10
|
||||
trigger_event = {
|
||||
months = 4
|
||||
id = epidemic_events.2002
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = low_chance_impact_positive_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_gain
|
||||
just = medium_stress_gain
|
||||
paranoid = major_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
option = { #pay money to end war
|
||||
name = epidemic_events.2001.a
|
||||
|
||||
scope:vassal_war = {
|
||||
end_war = white_peace
|
||||
}
|
||||
pay_treasury_or_gold = {
|
||||
target = scope:attacking_vassal
|
||||
value = {
|
||||
value = root.var:gold_transfer_value
|
||||
multiply = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
scope:pleading_vassal = {
|
||||
add_opinion = {
|
||||
modifier = thankful_opinion
|
||||
opinion = 30
|
||||
target = root
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = low_chance_impact_negative_ai_value
|
||||
ai_compassion = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
greedy = medium_stress_gain
|
||||
compassionate = medium_stress_loss
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
after = {
|
||||
hidden_effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:pleading_vassal = {
|
||||
has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
|
||||
is_imprisoned = no
|
||||
}
|
||||
}
|
||||
random_list = {
|
||||
60 = {
|
||||
random_courtier = {
|
||||
limit = {
|
||||
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
|
||||
}
|
||||
save_scope_as = infected_courtier
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2001.epidemic_spread.t
|
||||
left_icon = scope:pleading_vassal
|
||||
right_icon = scope:infected_courtier
|
||||
scope:infected_courtier = {
|
||||
infect_with_epidemic = scope:epidemic_scope
|
||||
}
|
||||
}
|
||||
}
|
||||
20 = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
|
||||
}
|
||||
}
|
||||
random_courtier = {
|
||||
limit = {
|
||||
NOT = { has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait }
|
||||
}
|
||||
save_scope_as = first_infected_courtier
|
||||
}
|
||||
random_courtier = {
|
||||
limit = {
|
||||
NOT = {
|
||||
has_trait = scope:epidemic_scope.epidemic_type.epidemic_trait
|
||||
scope:first_infected_courtier = this
|
||||
}
|
||||
}
|
||||
save_scope_as = second_infected_courtier
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2001.epidemic_spread.t
|
||||
left_icon = scope:second_infected_courtier
|
||||
right_icon = scope:first_infected_courtier
|
||||
scope:first_infected_courtier = {
|
||||
infect_with_epidemic = scope:epidemic_scope
|
||||
}
|
||||
scope:second_infected_courtier = {
|
||||
infect_with_epidemic = scope:epidemic_scope
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
epidemic_events.2002 = {
|
||||
type = character_event
|
||||
title = epidemic_events.2002.t
|
||||
desc = epidemic_events.2002.desc
|
||||
theme = plague
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = stress
|
||||
}
|
||||
lower_left_portrait = scope:attacking_vassal
|
||||
lower_right_portrait = scope:pleading_vassal
|
||||
|
||||
trigger = {
|
||||
exists = scope:epidemic_scope
|
||||
exists = scope:vassal_war
|
||||
is_ai = no
|
||||
}
|
||||
|
||||
override_background = {
|
||||
reference = battlefield
|
||||
}
|
||||
override_effect_2d = {
|
||||
reference = fog
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:epidemic_scope = {
|
||||
outbreak_intensity = minor
|
||||
}
|
||||
}
|
||||
scope:epidemic_scope = {
|
||||
set_epidemic_outbreak_intensity = major
|
||||
}
|
||||
}
|
||||
else = {
|
||||
scope:epidemic_scope = {
|
||||
set_epidemic_outbreak_intensity = apocalyptic
|
||||
}
|
||||
}
|
||||
add_legitimacy = miniscule_legitimacy_loss
|
||||
}
|
||||
|
||||
option = {
|
||||
name = epidemic_events.2002.a
|
||||
stress_impact = {
|
||||
base = minor_stress_gain
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
epidemic_events.2003 = { #maa are dying from war
|
||||
type = character_event
|
||||
title = epidemic_events.2003.t
|
||||
desc = epidemic_events.2003.desc
|
||||
theme = plague
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = stress
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:marshal
|
||||
animation = marshal_shield
|
||||
}
|
||||
|
||||
override_background = {
|
||||
reference = army_camp
|
||||
}
|
||||
|
||||
override_effect_2d = {
|
||||
reference = flies
|
||||
}
|
||||
|
||||
cooldown = { years = 8 }
|
||||
|
||||
trigger = {
|
||||
is_available_adult = yes
|
||||
any_held_county = {
|
||||
any_county_province = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
save_temporary_scope_as = first_county
|
||||
}
|
||||
any_held_county = {
|
||||
this != scope:first_county
|
||||
any_county_province = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exists = cp:councillor_marshal
|
||||
}
|
||||
immediate = {
|
||||
random_held_county = {
|
||||
limit = {
|
||||
any_county_province = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
}
|
||||
random_county_province = {
|
||||
limit = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
save_scope_as = first_epidemic_province
|
||||
random_province_epidemic = {
|
||||
save_scope_as = epidemic_scope
|
||||
}
|
||||
}
|
||||
save_scope_as = first_epidemic_county
|
||||
}
|
||||
random_held_county = {
|
||||
limit = {
|
||||
this != scope:first_epidemic_county
|
||||
any_county_province = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
}
|
||||
random_county_province = {
|
||||
limit = {
|
||||
has_stationed_regiment = yes
|
||||
any_province_epidemic = {
|
||||
intensity >= minor
|
||||
}
|
||||
}
|
||||
save_scope_as = second_epidemic_province
|
||||
}
|
||||
}
|
||||
cp:councillor_marshal = { save_scope_as = marshal }
|
||||
}
|
||||
|
||||
option = { #pay more to get more recruits
|
||||
name = epidemic_events.2003.a
|
||||
|
||||
every_maa_regiment = {
|
||||
change_maa_troops_count = {
|
||||
value = {
|
||||
value = this.maa_current_troops_count
|
||||
multiply = -0.25
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = low_chance_impact_negative_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
greedy = medium_stress_gain
|
||||
ambitious = medium_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
option = { #dont care, press peasants as maa
|
||||
name = epidemic_events.2003.b
|
||||
|
||||
scope:first_epidemic_province = {
|
||||
add_province_modifier = {
|
||||
modifier = epidemic_pressed_levies
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
|
||||
scope:second_epidemic_province = {
|
||||
add_province_modifier = {
|
||||
modifier = epidemic_pressed_levies
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = low_chance_impact_positive_ai_value
|
||||
ai_compassion = low_chance_impact_negative_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
just = medium_stress_gain
|
||||
}
|
||||
}
|
||||
|
||||
option = { #close the barracks!
|
||||
name = epidemic_events.2003.c
|
||||
|
||||
scope:first_epidemic_province = {
|
||||
add_province_modifier = {
|
||||
modifier = epidemic_closed_barracks
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
|
||||
scope:second_epidemic_province = {
|
||||
add_province_modifier = {
|
||||
modifier = epidemic_closed_barracks
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_positive_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
epidemic_events.2004 = { #Medicinal Jar creation event
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
is_available_adult = yes
|
||||
court_position:court_physician_court_position ?= {
|
||||
is_available_ai_adult = yes
|
||||
culture != root.culture
|
||||
NOT = {
|
||||
has_character_flag = physician_medicinal_jar
|
||||
}
|
||||
}
|
||||
realm_has_any_nearby_epidemic = { SIZE = 4 INTENSITY = minor }
|
||||
}
|
||||
|
||||
cooldown = { years = 160 }
|
||||
|
||||
immediate = {
|
||||
court_position:court_physician_court_position = {
|
||||
save_scope_as = physician
|
||||
}
|
||||
scope:physician = {
|
||||
create_artifact = {
|
||||
name = medicine_jar
|
||||
description = medicine_jar_desc
|
||||
type = miscellaneous
|
||||
visuals = glazed_jar
|
||||
modifier = artifact_epidemic_resistance_1_modifier
|
||||
modifier = artifact_learning_lifestyle_xp_2_modifier
|
||||
save_scope_as = medicine_jar
|
||||
quality = 50
|
||||
}
|
||||
add_character_flag = physician_medicinal_jar
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
scope:physician = {
|
||||
can_equip_artifact = scope:medicine_jar
|
||||
}
|
||||
}
|
||||
scope:medicine_jar = {
|
||||
equip_artifact_to_owner = yes
|
||||
}
|
||||
get_random_nearby_realm_epidemic = { INTENSITY = minor }
|
||||
trigger_event = {
|
||||
days = { 3 7 }
|
||||
id = epidemic_events.2005
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
epidemic_events.2005 = { #Glass jar artifact
|
||||
type = character_event
|
||||
title = epidemic_events.2005.t
|
||||
desc = epidemic_events.2005.desc
|
||||
theme = plague
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:physician
|
||||
animation = physician
|
||||
}
|
||||
|
||||
artifact = {
|
||||
target = scope:medicine_jar
|
||||
position = lower_center_portrait
|
||||
}
|
||||
|
||||
override_background = {
|
||||
reference = physicians_study
|
||||
}
|
||||
|
||||
trigger = {
|
||||
scope:physician = { is_alive = yes }
|
||||
}
|
||||
|
||||
option = { #politely ask the physisican to part with the jar
|
||||
name = epidemic_events.2005.a
|
||||
duel = {
|
||||
skill = diplomacy
|
||||
target = scope:physician
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 1
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2005.a.success
|
||||
left_icon = scope:physician
|
||||
scope:medicine_jar = {
|
||||
set_owner = root
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = epidemic_events.2005.a.failure
|
||||
left_icon = scope:physician
|
||||
scope:medicine_jar = {
|
||||
add_artifact_modifier = artifact_physician_aptitude_1_modifier
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
craven = minor_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = low_chance_impact_negative_ai_value
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
option = { #violently grab the jar from physician
|
||||
name = epidemic_events.2005.b
|
||||
|
||||
scope:physician = {
|
||||
add_opinion = {
|
||||
modifier = fp3_stole_from_me
|
||||
opinion = -25
|
||||
target = root
|
||||
}
|
||||
progress_towards_rival_effect = {
|
||||
REASON = rival_stole_artifact
|
||||
CHARACTER = root
|
||||
OPINION = 0
|
||||
}
|
||||
}
|
||||
|
||||
scope:medicine_jar = {
|
||||
set_owner = root
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
temperate = medium_stress_gain
|
||||
just = medium_stress_gain
|
||||
paranoid = medium_stress_loss
|
||||
wrathful = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = low_chance_impact_positive_ai_value
|
||||
ai_energy = low_chance_impact_positive_ai_value
|
||||
ai_rationality = low_chance_impact_negative_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #let phycisian keep his precious jar
|
||||
name = epidemic_events.2005.c
|
||||
scope:medicine_jar = {
|
||||
add_artifact_modifier = artifact_physician_aptitude_1_modifier
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
temperate = medium_stress_loss
|
||||
just = medium_stress_loss
|
||||
trusting = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_positive_ai_value
|
||||
ai_rationality = low_chance_impact_positive_ai_value
|
||||
ai_greed = low_chance_impact_negative_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
epidemic_events.2006 = { #Dancing plague
|
||||
type = character_event
|
||||
title = epidemic_events.2006.t
|
||||
desc = epidemic_events.2006.desc
|
||||
theme = plague
|
||||
override_background = courtyard
|
||||
override_effect_2d = { reference = flies }
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = stress
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:dance_victim
|
||||
animation = dancing_plague
|
||||
}
|
||||
|
||||
trigger = {
|
||||
is_available_adult = yes
|
||||
OR = {
|
||||
is_ai = no
|
||||
this = top_liege
|
||||
}
|
||||
capital_province = {
|
||||
any_province_epidemic = {
|
||||
#epidemic_type = epidemic_type:ergotism
|
||||
intensity < apocalyptic
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
has_character_flag = had_event_dancing_plague
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = { #Since a big outbreak occurred in Aachen 1374
|
||||
add = 9
|
||||
capital_province = {
|
||||
county = title:c_aachen
|
||||
}
|
||||
current_date >= 1370.1.1
|
||||
current_date <= 1380.1.1
|
||||
}
|
||||
modifier = { #Since an outbreak occurred in Erfurt 1247
|
||||
add = 9
|
||||
capital_province = {
|
||||
duchy = title:d_thuringia
|
||||
}
|
||||
current_date >= 1240.1.1
|
||||
current_date <= 1250.1.1
|
||||
}
|
||||
modifier = { #Since an outbreak occurred in Kolbigk 1021
|
||||
add = 9
|
||||
capital_province = {
|
||||
geographical_region = ghw_region_saxony
|
||||
}
|
||||
current_date >= 1020.1.1
|
||||
current_date <= 1030.1.1
|
||||
|
||||
}
|
||||
modifier = { #Since it historically occurred in Europe
|
||||
add = 1
|
||||
capital_province = {
|
||||
geographical_region = world_europe
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
immediate = {
|
||||
capital_province = {
|
||||
random_province_epidemic = {
|
||||
limit = {
|
||||
epidemic_type = epidemic_type:ergotism
|
||||
outbreak_intensity < apocalyptic
|
||||
}
|
||||
save_scope_as = dancing_plague
|
||||
}
|
||||
}
|
||||
create_character = {
|
||||
template = servant_character
|
||||
dynasty = none
|
||||
location = root.capital_province
|
||||
save_scope_as = dance_victim
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:dance_victim = {
|
||||
add_trait = ergotism
|
||||
}
|
||||
}
|
||||
|
||||
scope:dancing_plague = {
|
||||
set_epidemic_outbreak_intensity = apocalyptic
|
||||
}
|
||||
|
||||
add_character_flag = had_event_dancing_plague
|
||||
}
|
||||
|
||||
option = { #let's join the paaartey
|
||||
trigger = {
|
||||
has_trait = eccentric
|
||||
}
|
||||
name = epidemic_events.2006.a
|
||||
add_character_modifier = {
|
||||
modifier = ce1_gone_dancing
|
||||
years = 2
|
||||
}
|
||||
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 10
|
||||
trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
eccentric = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
option = { #slay the demon!
|
||||
trigger = {
|
||||
has_trait = zealous
|
||||
}
|
||||
name = epidemic_events.2006.d
|
||||
add_piety = minor_piety_gain
|
||||
|
||||
scope:dance_victim = {
|
||||
death = {
|
||||
death_reason = death_murder
|
||||
killer = root
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
zealous = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_negative_ai_value
|
||||
ai_zeal = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #eh, every dance stops eventually, right?
|
||||
name = epidemic_events.2006.b
|
||||
|
||||
capital_county = {
|
||||
add_county_modifier = {
|
||||
modifier = dance_plague_modifier
|
||||
years = 4
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = minor_stress_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_negative_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #tie them down! allieviate their pains somehow
|
||||
name = epidemic_events.2006.c
|
||||
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 10
|
||||
trigger_event = { id = health.1017 days = { 5 15 } } #You contract ergotism
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
lustful = medium_stress_loss
|
||||
compassionate = medium_stress_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
ai_value_modifier = {
|
||||
ai_compassion = low_chance_impact_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
134
N3OW/events/dlc/ce1/legend_ending_events.txt
Normal file
134
N3OW/events/dlc/ce1/legend_ending_events.txt
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
namespace = story_event_legends
|
||||
|
||||
###################################
|
||||
# Legend Ending Events
|
||||
# 0001 - 0100
|
||||
###################################
|
||||
|
||||
#Heroic Ending Story Event
|
||||
story_event_legends.0001 = {
|
||||
type = character_event
|
||||
window = fullscreen_event
|
||||
title = story_event_legends.0001.t
|
||||
desc = {
|
||||
desc = story_event_legends.0001.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = famous_deed }
|
||||
}
|
||||
desc = story_event_legends.0001.desc.famous_deed
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = battle }
|
||||
}
|
||||
desc = story_event_legends.0001.desc.battle
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = hunt }
|
||||
}
|
||||
desc = story_event_legends.0001.desc.hunt
|
||||
}
|
||||
desc = story_event_legends.0001.desc.fallback
|
||||
}
|
||||
desc = story_event_legends.0001.desc.outro
|
||||
}
|
||||
theme = legend
|
||||
override_background = { reference = ce1_fullscreen_heroic_legend }
|
||||
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_legend
|
||||
set_variable = {
|
||||
name = finished_legend_var
|
||||
value = scope:promoted_legend
|
||||
}
|
||||
scope:promoted_legend = { set_variable = my_legend_var }
|
||||
}
|
||||
option = {
|
||||
name = story_event_legends.0001.a
|
||||
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
|
||||
}
|
||||
}
|
||||
|
||||
#Legitimizing Ending Story Event
|
||||
story_event_legends.0002 = {
|
||||
type = character_event
|
||||
window = fullscreen_event
|
||||
title = story_event_legends.0002.t
|
||||
desc = {
|
||||
desc = story_event_legends.0002.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = famous_deed }
|
||||
}
|
||||
desc = story_event_legends.0002.desc.famous_deed
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = battle }
|
||||
}
|
||||
desc = story_event_legends.0002.desc.battle
|
||||
}
|
||||
desc = story_event_legends.0002.desc.fallback
|
||||
}
|
||||
desc = story_event_legends.0002.desc.outro
|
||||
}
|
||||
theme = legend
|
||||
override_background = { reference = ce1_fullscreen_legitimizing_legend }
|
||||
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_legend
|
||||
set_variable = {
|
||||
name = finished_legend_var
|
||||
value = scope:promoted_legend
|
||||
}
|
||||
scope:promoted_legend = { set_variable = my_legend_var }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = story_event_legends.0002.a
|
||||
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
|
||||
}
|
||||
}
|
||||
|
||||
#Holy Ending Story Event
|
||||
story_event_legends.0003 = {
|
||||
type = character_event
|
||||
window = fullscreen_event
|
||||
title = story_event_legends.0003.t
|
||||
desc = {
|
||||
desc = story_event_legends.0003.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:promoted_legend = { has_legend_chapter = famous_deed }
|
||||
}
|
||||
desc = story_event_legends.0001.desc.famous_deed
|
||||
}
|
||||
desc = story_event_legends.0001.desc.fallback
|
||||
}
|
||||
desc = story_event_legends.0003.desc.outro
|
||||
}
|
||||
theme = legend
|
||||
override_background = { reference = ce1_fullscreen_holy_legend }
|
||||
override_sound = { reference = "event:/DLC/FP4/SFX/UI/Unique/sfx_ui_spread_legend" }
|
||||
|
||||
immediate = {
|
||||
play_music_cue = mx_cue_legend
|
||||
set_variable = {
|
||||
name = finished_legend_var
|
||||
value = scope:promoted_legend
|
||||
}
|
||||
scope:promoted_legend = { set_variable = my_legend_var }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = story_event_legends.0003.a
|
||||
clicksound = "event:/DLC/FP2/SFX/UI/fp2_struggle_start_select"
|
||||
}
|
||||
}
|
||||
790
N3OW/events/dlc/ce1/legend_events.txt
Normal file
790
N3OW/events/dlc/ce1/legend_events.txt
Normal file
|
|
@ -0,0 +1,790 @@
|
|||
namespace = legend_events
|
||||
|
||||
############################
|
||||
## Legend Spawn Events
|
||||
## 0001-1000
|
||||
## by James Beaumont
|
||||
############################
|
||||
|
||||
# legend_events.0001 - Chronicler gives you a legend seed
|
||||
# legend_events.0010 - Chronicler convinces someone to promote your legend
|
||||
# legend_events.0020 - Hold Court presentation of a legend seed
|
||||
|
||||
# Chronicler gives you a legend seed :D
|
||||
legend_events.0001 = {
|
||||
type = character_event
|
||||
title = legend_events.0001.t
|
||||
desc = {
|
||||
desc = legend_events.0001.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:slew_dragon
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.slew_dragon
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:ancestral_saint
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.ancestral_saint
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:old_godly_descent
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.old_godly_descent
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:raised_by_animals
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.raised_by_animals
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:auspicious_stars
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.auspicious_stars
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:virgin_birth
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.virgin_birth
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:spoke_to_angels
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.spoke_to_angels
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:fought_the_devil
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.fought_the_devil
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:exotic_backstory
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.exotic_backstory
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
var:legend_seed_to_give = flag:ancient_people
|
||||
}
|
||||
desc = legend_events.0001.desc.mid.ancient_people
|
||||
}
|
||||
}
|
||||
desc = legend_events.0001.desc.outro
|
||||
}
|
||||
theme = legend
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_honorable
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:chronicler
|
||||
animation = chancellor
|
||||
}
|
||||
lower_center_portrait = {
|
||||
trigger = {
|
||||
exists = scope:legend_character
|
||||
}
|
||||
character = scope:legend_character
|
||||
}
|
||||
|
||||
# The Court Chronicler needs to be alive
|
||||
trigger = {
|
||||
scope:chronicler = {
|
||||
is_alive = yes
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_list = { # Determine the seed to hand out
|
||||
10 = { # Ancestor killed a dragon
|
||||
trigger = {
|
||||
any_ancestor = {
|
||||
even_if_dead = yes
|
||||
is_adult = yes
|
||||
is_alive = no
|
||||
}
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
random_ancestor = {
|
||||
even_if_dead = yes
|
||||
limit = {
|
||||
is_adult = yes
|
||||
is_alive = no
|
||||
}
|
||||
weight = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = prowess
|
||||
}
|
||||
modifier = {
|
||||
add = martial
|
||||
}
|
||||
}
|
||||
save_scope_as = legend_character
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:slew_dragon
|
||||
}
|
||||
}
|
||||
10 = { # Ancestor was/should be a saint
|
||||
trigger = {
|
||||
any_ancestor = {
|
||||
even_if_dead = yes
|
||||
is_adult = yes
|
||||
is_alive = no
|
||||
}
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
random_ancestor = {
|
||||
even_if_dead = yes
|
||||
limit = {
|
||||
is_adult = yes
|
||||
is_alive = no
|
||||
}
|
||||
weight = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = learning
|
||||
}
|
||||
modifier = {
|
||||
factor = 3
|
||||
OR = {
|
||||
num_virtuous_traits = {
|
||||
target = root.faith
|
||||
value >= 1
|
||||
}
|
||||
has_trait = saint
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 0.1
|
||||
OR = {
|
||||
num_sinful_traits = {
|
||||
target = root.faith
|
||||
value >= 1
|
||||
}
|
||||
has_trait = excommunicated
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = legend_character
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:ancestral_saint
|
||||
}
|
||||
}
|
||||
10 = { # I am descended from an old God
|
||||
trigger = {
|
||||
NOT = { religion = { is_in_family = rf_pagan } }
|
||||
any_ancestor = {
|
||||
even_if_dead = yes
|
||||
is_alive = no
|
||||
religion = { is_in_family = rf_pagan }
|
||||
}
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
random_ancestor = {
|
||||
even_if_dead = yes
|
||||
limit = {
|
||||
religion = { is_in_family = rf_pagan }
|
||||
is_alive = no
|
||||
}
|
||||
weight = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = learning
|
||||
}
|
||||
modifier = {
|
||||
factor = 3
|
||||
OR = {
|
||||
num_virtuous_traits = {
|
||||
target = root.faith
|
||||
value >= 1
|
||||
}
|
||||
has_trait = saint
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 0.1
|
||||
OR = {
|
||||
num_sinful_traits = {
|
||||
target = root.faith
|
||||
value >= 1
|
||||
}
|
||||
has_trait = excommunicated
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = legend_character
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:old_godly_descent
|
||||
}
|
||||
}
|
||||
10 = { # I was raised by dangerous animals
|
||||
trigger = {
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
select_local_animal_effect = { TYPE = dangerous }
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:raised_by_animals
|
||||
}
|
||||
}
|
||||
10 = { # Born under auspicious stars
|
||||
trigger = {
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:auspicious_stars
|
||||
}
|
||||
}
|
||||
10 = { # Virgin birth
|
||||
trigger = {
|
||||
has_any_bastard_trait_trigger = yes
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:virgin_birth
|
||||
}
|
||||
}
|
||||
10 = { # Spoke to an angel
|
||||
trigger = {
|
||||
religion_has_angels_trigger = yes
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:spoke_to_angels
|
||||
}
|
||||
}
|
||||
10 = { # Fought a demon
|
||||
trigger = {
|
||||
NOT = { has_game_rule = historical_legends_only }
|
||||
}
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:fought_the_devil
|
||||
}
|
||||
}
|
||||
10 = { # Exotic backstory
|
||||
get_appropriate_exotic_location = yes
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:exotic_backstory
|
||||
}
|
||||
}
|
||||
10 = { # Ancient people
|
||||
trigger = {
|
||||
# The ancient cultures we have for now aren't appropriate for these regions
|
||||
root.culture = {
|
||||
NOR = {
|
||||
culture_overlaps_geographical_region = world_burma
|
||||
culture_overlaps_geographical_region = custom_arakan_mountains
|
||||
culture_overlaps_geographical_region = world_tibet
|
||||
}
|
||||
}
|
||||
}
|
||||
get_appropriate_ancient_people = yes
|
||||
set_variable = {
|
||||
name = legend_seed_to_give
|
||||
value = flag:ancient_people
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Wowie zowie, really?
|
||||
name = legend_events.0001.a
|
||||
if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:slew_dragon
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = heroic
|
||||
quality = famed
|
||||
chronicle = beast_slayer
|
||||
properties = {
|
||||
beast = flag:dragon
|
||||
location = root.location
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:ancestral_saint
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = holy
|
||||
quality = famed
|
||||
chronicle = saintly_deed
|
||||
properties = {
|
||||
ancestor = scope:legend_character
|
||||
religion = root.religion
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:old_godly_descent
|
||||
}
|
||||
generate_religion_descent_effect = {
|
||||
RELIGION = scope:legend_character.religion
|
||||
GOD = high_god
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:raised_by_animals
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = heroic
|
||||
quality = famed
|
||||
chronicle = raised_by_animals
|
||||
properties = {
|
||||
beast = var:animal_type
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:auspicious_stars
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = holy
|
||||
quality = famed
|
||||
chronicle = sacred_birth
|
||||
properties = {
|
||||
reason = flag:auspicious
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:virgin_birth
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = holy
|
||||
quality = famed
|
||||
chronicle = sacred_birth
|
||||
properties = {
|
||||
reason = flag:virgin
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:spoke_to_angels
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = holy
|
||||
quality = famed
|
||||
chronicle = divine_intervention
|
||||
properties = {
|
||||
god = flag:the_angels
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:fought_the_devil
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = holy
|
||||
quality = famed
|
||||
chronicle = fought_devil
|
||||
properties = {
|
||||
faith = root.faith
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:exotic_backstory
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = heroic
|
||||
quality = famed
|
||||
chronicle = exotic_backstory
|
||||
properties = {
|
||||
location = scope:exotic_location
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
exists = var:legend_seed_to_give
|
||||
var:legend_seed_to_give = flag:ancient_people
|
||||
}
|
||||
create_legend_seed = {
|
||||
type = legitimizing
|
||||
quality = famed
|
||||
chronicle = ancient_people
|
||||
properties = {
|
||||
culture = scope:ancient_culture
|
||||
title = root.primary_title
|
||||
original_region = var:original_region
|
||||
}
|
||||
}
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # I don't want this legend
|
||||
name = legend_events.0001.b
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Chronicler convinces someone to promote your legend
|
||||
legend_events.0010 = {
|
||||
type = character_event
|
||||
title = legend_events.0010.t
|
||||
desc = legend_events.0010.desc
|
||||
theme = legend
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_honorable
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:chronicler
|
||||
animation = chancellor
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:potential_promoter
|
||||
animation = chancellor
|
||||
}
|
||||
|
||||
option = { # Diplo duel option
|
||||
name = legend_events.0010.a
|
||||
duel = {
|
||||
skill = diplomacy
|
||||
target = scope:potential_promoter
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = { # Reluctant to drop their existing legend
|
||||
scope:potential_promoter = { exists = promoted_legend }
|
||||
factor = 0.5
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = legend_events.0010.a.success
|
||||
scope:potential_promoter = {
|
||||
set_promoted_legend = root.promoted_legend
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = { # Reluctant to drop their existing legend
|
||||
scope:potential_promoter = { exists = promoted_legend }
|
||||
factor = 2
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = legend_events.0010.a.failure
|
||||
add_prestige = minor_prestige_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = { # I'd have better odds with option B
|
||||
intrigue > diplomacy
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Lie
|
||||
name = legend_events.0010.b
|
||||
duel = {
|
||||
skill = intrigue
|
||||
target = scope:potential_promoter
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = { # Reluctant to drop their existing legend
|
||||
scope:potential_promoter = { exists = promoted_legend }
|
||||
factor = 0.5
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = legend_events.0010.a.success
|
||||
scope:potential_promoter = {
|
||||
set_promoted_legend = root.promoted_legend
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = { # Reluctant to drop their existing legend
|
||||
scope:potential_promoter = { exists = promoted_legend }
|
||||
factor = 2
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = legend_events.0010.a.failure
|
||||
add_prestige = minor_prestige_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
honest = minor_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = { # I'd have better odds with option A
|
||||
intrigue < diplomacy
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Nah not interested, go away.
|
||||
name = legend_events.0010.c
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
legend_events.0020 = { #hold court presentation of a potential seed
|
||||
type = court_event
|
||||
title = legend_events.0020.t
|
||||
desc = legend_events.0020.desc
|
||||
|
||||
theme = legend
|
||||
court_scene = {
|
||||
button_position_character = scope:seed_presenter
|
||||
court_event_force_open = yes
|
||||
show_timeout_info = no
|
||||
should_pause_time = yes
|
||||
roles = {
|
||||
scope:seed_presenter = {
|
||||
group = petitioners_group
|
||||
animation = personality_rational
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
widget = {
|
||||
gui = "event_window_widget_event_chain_progress"
|
||||
container = "custom_widgets_container"
|
||||
controller = event_chain_progress
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = {
|
||||
factor = 2
|
||||
court_grandeur_current_level > court_grandeur_minimum_expected_level
|
||||
}
|
||||
# Court weightings.
|
||||
ep1_weight_up_for_court_type_modifier = { COURT_TYPE = court_diplomatic }
|
||||
}
|
||||
|
||||
trigger = {
|
||||
any_pool_guest = {
|
||||
count >= 1
|
||||
is_available_adult = yes
|
||||
has_court_event_flag = no
|
||||
culture != root.culture
|
||||
opinion = {
|
||||
target = root
|
||||
value >= high_positive_opinion
|
||||
}
|
||||
}
|
||||
NOR = {
|
||||
has_personal_legend_seed = heroic
|
||||
has_personal_legend_seed = holy
|
||||
has_personal_legend_seed = legitimizing
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_pool_guest = {
|
||||
limit = {
|
||||
is_available_adult = yes
|
||||
has_court_event_flag = no
|
||||
culture != root.culture
|
||||
opinion = {
|
||||
target = root
|
||||
value >= high_positive_opinion
|
||||
}
|
||||
}
|
||||
save_scope_as = seed_presenter
|
||||
court_event_character_flag_effect = yes
|
||||
}
|
||||
|
||||
hold_court_queue_next_event_effect = yes
|
||||
}
|
||||
|
||||
option = { #yes, it is my about my dynasty and I shall prove it!
|
||||
name = legend_events.0020.a
|
||||
legend_seed_great_deed_dynasty_effect = yes
|
||||
culture = {
|
||||
change_cultural_acceptance = {
|
||||
target = scope:seed_presenter.culture
|
||||
value = miniscule_positive_culture_acceptance
|
||||
desc = cultural_acceptance_gain_hold_court_event_outcome
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
ambitious = minor_stress_loss
|
||||
}
|
||||
ai_chance = { #we want AI to have seeds
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { #yes, it is about me ruling the title and I shall prove it!
|
||||
name = legend_events.0020.b
|
||||
legend_seed_great_deed_title_effect = {
|
||||
TITLE = root.primary_title
|
||||
}
|
||||
culture = {
|
||||
change_cultural_acceptance = {
|
||||
target = scope:seed_presenter.culture
|
||||
value = miniscule_positive_culture_acceptance
|
||||
desc = cultural_acceptance_gain_hold_court_event_outcome
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
ambitious = minor_stress_loss
|
||||
}
|
||||
ai_chance = { #we want AI to have seeds
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { #no, I don't need to humor your culture fairy tales
|
||||
name = legend_events.0020.c
|
||||
add_prestige = medium_prestige_gain
|
||||
dynasty = {
|
||||
add_dynasty_prestige = minor_dynasty_prestige_gain
|
||||
}
|
||||
culture = {
|
||||
change_cultural_acceptance = {
|
||||
target = scope:seed_presenter.culture
|
||||
value = low_negative_culture_acceptance
|
||||
desc = cultural_acceptance_gain_hold_court_event_outcome
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
ambitious = minor_stress_gain
|
||||
compassionate = minor_stress_gain
|
||||
callous = medium_stress_loss
|
||||
sadistic = medium_stress_loss
|
||||
}
|
||||
ai_chance = { #we want AI to have seeds
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
scope:seed_presenter = {
|
||||
clear_court_event_participation = yes
|
||||
}
|
||||
# Finish up the chain if relevant.
|
||||
hold_court_queue_post_event_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
legend_events.1000 = {
|
||||
type = letter_event
|
||||
opening = { desc = legend_events.1000.t }
|
||||
desc = legend_events.1000.desc
|
||||
sender = scope:legend_owner
|
||||
|
||||
immediate = {
|
||||
scope:legend = {
|
||||
legend_owner = { save_scope_as = legend_owner }
|
||||
}
|
||||
}
|
||||
|
||||
option = { #I did a silly
|
||||
name = legend_events.1000.a
|
||||
pay_short_term_gold = {
|
||||
target = scope:legend_owner
|
||||
gold = medium_gold_value
|
||||
}
|
||||
stress_impact = {
|
||||
deceitful = major_stress_impact_loss
|
||||
honest = medium_stress_impact_gain
|
||||
just = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { #If you have really high Intrigue you get away with paying just half
|
||||
name = legend_events.1000.b
|
||||
trigger = {
|
||||
intrigue >= very_high_skill_rating
|
||||
}
|
||||
#trait = deceitful
|
||||
pay_short_term_gold = {
|
||||
target = scope:legend_owner
|
||||
gold = {
|
||||
value = medium_gold_value
|
||||
multiply = 0.5
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
deceitful = massive_stress_impact_loss
|
||||
honest = major_stress_impact_gain
|
||||
just = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
remove_variable = accepted_promote_legend_var
|
||||
}
|
||||
}
|
||||
4507
N3OW/events/dlc/ce1/legend_spread_events_8.txt
Normal file
4507
N3OW/events/dlc/ce1/legend_spread_events_8.txt
Normal file
File diff suppressed because it is too large
Load diff
3067
N3OW/events/dlc/ce1/legend_spread_events_veronica.txt
Normal file
3067
N3OW/events/dlc/ce1/legend_spread_events_veronica.txt
Normal file
File diff suppressed because it is too large
Load diff
32
N3OW/events/dlc/ce1/legitimacy_events.txt
Normal file
32
N3OW/events/dlc/ce1/legitimacy_events.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace = legitimacy_events
|
||||
|
||||
############################
|
||||
## Legitimacy Maintenance Events
|
||||
## 0001-1000
|
||||
## by Joe Parkin
|
||||
############################
|
||||
|
||||
# legitimacy_events.0001 - Debug event for testing base legitimacy values with breakdowns of sources
|
||||
|
||||
legitimacy_events.0001 = {
|
||||
type = character_event
|
||||
title = LOREM_IPSUM_TITLE
|
||||
desc = LOREM_IPSUM_DESCRIPTION
|
||||
theme = realm
|
||||
orphan = yes
|
||||
left_portrait = root
|
||||
|
||||
trigger = {
|
||||
exists = dynasty
|
||||
# Exclude unplayable for now
|
||||
NOR = {
|
||||
government_has_flag = government_is_republic
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
add_legitimacy = base_legitimacy_value
|
||||
custom_tooltip = base_legitimacy_debug_tt
|
||||
}
|
||||
}
|
||||
1479
N3OW/events/dlc/ce1/physician_epidemic_events.txt
Normal file
1479
N3OW/events/dlc/ce1/physician_epidemic_events.txt
Normal file
File diff suppressed because it is too large
Load diff
719
N3OW/events/dlc/ep1/ep1_character_interaction_events.txt
Normal file
719
N3OW/events/dlc/ep1/ep1_character_interaction_events.txt
Normal file
|
|
@ -0,0 +1,719 @@
|
|||
namespace = ep1_character_interaction
|
||||
|
||||
##################################################
|
||||
#
|
||||
# Character Interaction Events
|
||||
#
|
||||
# 0001 - 0010 Indebt Guest
|
||||
##################################################
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# CHARACTER INTERACTION EVENTS
|
||||
|
||||
##################################################
|
||||
# A Sensible Recompense
|
||||
# by Ewan Cowhig Croft
|
||||
# 0001 - 0010
|
||||
##################################################
|
||||
|
||||
scripted_trigger ep1_character_interaction_0001_valid_hostile_relation_trigger = {
|
||||
# Must be at a court of some kind *other* than your own.
|
||||
exists = host
|
||||
scope:actor != host
|
||||
# And not in scope:actor's prison.
|
||||
NOR = {
|
||||
imprisoner ?= scope:actor
|
||||
}
|
||||
# Double check that this'd be an appropriate court to send a plant.
|
||||
save_temporary_scope_as = current_target
|
||||
scope:actor = {
|
||||
OR = {
|
||||
# Either you've got a scheme on the go...
|
||||
any_scheme = {
|
||||
hostile_scheme_trigger = yes
|
||||
scheme_target_character = scope:current_target
|
||||
}
|
||||
# ... or you could start one.
|
||||
can_start_hostile_scheme_against_trigger = { TARGET = scope:current_target}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_trigger ep1_character_interaction_0001_valid_rival_trigger = {
|
||||
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
|
||||
OR = {
|
||||
NOT = { exists = scope:actor_nemesis }
|
||||
this != scope:actor_nemesis
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect ep1_character_interaction_0001_move_character_and_family_effect = {
|
||||
scope:recipient = {
|
||||
# Whatever else happens, just move them.
|
||||
scope:actor = { remove_courtier_or_guest = scope:recipient }
|
||||
$DESTINATION$ = { add_courtier = scope:recipient }
|
||||
# If they have any family, quietly send them along too.
|
||||
hidden_effect = {
|
||||
if = {
|
||||
limit = {
|
||||
any_traveling_family_member = { }
|
||||
}
|
||||
every_traveling_family_member = {
|
||||
save_temporary_scope_as = family_to_shunt
|
||||
scope:actor = { remove_courtier_or_guest = scope:family_to_shunt }
|
||||
$DESTINATION$ = { add_courtier = scope:family_to_shunt }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Trick a guest into a debt & turn them into an agent.
|
||||
ep1_character_interaction.0001 = {
|
||||
type = character_event
|
||||
title = ep1_character_interaction.0001.t
|
||||
desc = {
|
||||
desc = ep1_character_interaction.0001.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:lustful }
|
||||
desc = ep1_character_interaction.0001.desc.lustful
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:chaste }
|
||||
desc = ep1_character_interaction.0001.desc.chaste
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:gluttonous }
|
||||
desc = ep1_character_interaction.0001.desc.gluttonous
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:temperate }
|
||||
desc = ep1_character_interaction.0001.desc.temperate
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:greedy }
|
||||
desc = ep1_character_interaction.0001.desc.greedy
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:generous }
|
||||
desc = ep1_character_interaction.0001.desc.generous
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:lazy }
|
||||
desc = ep1_character_interaction.0001.desc.lazy
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:diligent }
|
||||
desc = ep1_character_interaction.0001.desc.diligent
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:wrathful }
|
||||
desc = ep1_character_interaction.0001.desc.wrathful
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:calm }
|
||||
desc = ep1_character_interaction.0001.desc.calm
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:patient }
|
||||
desc = ep1_character_interaction.0001.desc.patient
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:impatient }
|
||||
desc = ep1_character_interaction.0001.desc.impatient
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:arrogant }
|
||||
desc = ep1_character_interaction.0001.desc.arrogant
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:humble }
|
||||
desc = ep1_character_interaction.0001.desc.humble
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:deceitful }
|
||||
desc = ep1_character_interaction.0001.desc.deceitful
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:honest }
|
||||
desc = ep1_character_interaction.0001.desc.honest
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:craven }
|
||||
desc = ep1_character_interaction.0001.desc.craven
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:brave }
|
||||
desc = ep1_character_interaction.0001.desc.brave
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:shy }
|
||||
desc = ep1_character_interaction.0001.desc.shy
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:gregarious }
|
||||
desc = ep1_character_interaction.0001.desc.gregarious
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:ambitious }
|
||||
desc = ep1_character_interaction.0001.desc.ambitious
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:content }
|
||||
desc = ep1_character_interaction.0001.desc.content
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:arbitrary }
|
||||
desc = ep1_character_interaction.0001.desc.arbitrary
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:just }
|
||||
desc = ep1_character_interaction.0001.desc.just
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:cynical }
|
||||
desc = ep1_character_interaction.0001.desc.cynical
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:zealous }
|
||||
desc = ep1_character_interaction.0001.desc.zealous
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:paranoid }
|
||||
desc = ep1_character_interaction.0001.desc.paranoid
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:trusting }
|
||||
desc = ep1_character_interaction.0001.desc.trusting
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:compassionate }
|
||||
desc = ep1_character_interaction.0001.desc.compassionate
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:callous }
|
||||
desc = ep1_character_interaction.0001.desc.callous
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:sadistic }
|
||||
desc = ep1_character_interaction.0001.desc.sadistic
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:stubborn }
|
||||
desc = ep1_character_interaction.0001.desc.stubborn
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fickle }
|
||||
desc = ep1_character_interaction.0001.desc.fickle
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:vengeful }
|
||||
desc = ep1_character_interaction.0001.desc.vengeful
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:forgiving }
|
||||
desc = ep1_character_interaction.0001.desc.forgiving
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fallback_1 }
|
||||
desc = ep1_character_interaction.0001.desc.fallback_1
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fallback_2 }
|
||||
desc = ep1_character_interaction.0001.desc.fallback_2
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fallback_3 }
|
||||
desc = ep1_character_interaction.0001.desc.fallback_3
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fallback_4 }
|
||||
desc = ep1_character_interaction.0001.desc.fallback_4
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:false_flag_type = flag:fallback_5 }
|
||||
desc = ep1_character_interaction.0001.desc.fallback_5
|
||||
}
|
||||
}
|
||||
desc = ep1_character_interaction.0001.desc.outro
|
||||
}
|
||||
theme = intrigue_skulduggery_focus
|
||||
left_portrait = {
|
||||
character = scope:actor
|
||||
animation = schadenfreude
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:recipient
|
||||
animation = fear
|
||||
}
|
||||
lower_center_portrait = scope:actor_nemesis
|
||||
lower_right_portrait = scope:actor_rival
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
immediate = {
|
||||
# Apply the interaction's effects.
|
||||
indebt_guest_interaction_accepted_effect = yes
|
||||
# Roll the offending crime.
|
||||
## Percentages even throughout: we're not fussed about which result you roll.
|
||||
scope:recipient = {
|
||||
random_list = {
|
||||
# lustful
|
||||
100 = {
|
||||
trigger = { has_trait = lustful }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:lustful
|
||||
}
|
||||
}
|
||||
# chaste
|
||||
100 = {
|
||||
trigger = { has_trait = chaste }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:chaste
|
||||
}
|
||||
}
|
||||
# gluttonous
|
||||
100 = {
|
||||
trigger = { has_trait = gluttonous }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:gluttonous
|
||||
}
|
||||
}
|
||||
# temperate
|
||||
100 = {
|
||||
trigger = { has_trait = temperate }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:temperate
|
||||
}
|
||||
}
|
||||
# greedy
|
||||
100 = {
|
||||
trigger = { has_trait = greedy }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:greedy
|
||||
}
|
||||
}
|
||||
# generous
|
||||
100 = {
|
||||
trigger = { has_trait = generous }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:generous
|
||||
}
|
||||
}
|
||||
# lazy
|
||||
100 = {
|
||||
trigger = { has_trait = lazy }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:lazy
|
||||
}
|
||||
}
|
||||
# diligent
|
||||
100 = {
|
||||
trigger = { has_trait = diligent }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:diligent
|
||||
}
|
||||
}
|
||||
# wrathful
|
||||
100 = {
|
||||
trigger = { has_trait = wrathful }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:wrathful
|
||||
}
|
||||
}
|
||||
# calm
|
||||
100 = {
|
||||
trigger = { has_trait = calm }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:calm
|
||||
}
|
||||
}
|
||||
# patient
|
||||
100 = {
|
||||
trigger = { has_trait = patient }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:patient
|
||||
}
|
||||
}
|
||||
# impatient
|
||||
100 = {
|
||||
trigger = { has_trait = impatient }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:impatient
|
||||
}
|
||||
}
|
||||
# arrogant
|
||||
100 = {
|
||||
trigger = { has_trait = arrogant }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:arrogant
|
||||
}
|
||||
}
|
||||
# humble
|
||||
100 = {
|
||||
trigger = { has_trait = humble }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:humble
|
||||
}
|
||||
}
|
||||
# deceitful
|
||||
100 = {
|
||||
trigger = { has_trait = deceitful }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:deceitful
|
||||
}
|
||||
}
|
||||
# honest
|
||||
100 = {
|
||||
trigger = { has_trait = honest }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:honest
|
||||
}
|
||||
}
|
||||
# craven
|
||||
100 = {
|
||||
trigger = { has_trait = craven }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:craven
|
||||
}
|
||||
}
|
||||
# brave
|
||||
100 = {
|
||||
trigger = { has_trait = brave }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:brave
|
||||
}
|
||||
}
|
||||
# shy
|
||||
100 = {
|
||||
trigger = { has_trait = shy }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:shy
|
||||
}
|
||||
}
|
||||
# gregarious
|
||||
100 = {
|
||||
trigger = { has_trait = gregarious }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:gregarious
|
||||
}
|
||||
}
|
||||
# ambitious
|
||||
100 = {
|
||||
trigger = { has_trait = ambitious }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:ambitious
|
||||
}
|
||||
}
|
||||
# content
|
||||
100 = {
|
||||
trigger = { has_trait = content }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:content
|
||||
}
|
||||
}
|
||||
# arbitrary
|
||||
100 = {
|
||||
trigger = { has_trait = arbitrary }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:arbitrary
|
||||
}
|
||||
}
|
||||
# just
|
||||
100 = {
|
||||
trigger = { has_trait = just }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:just
|
||||
}
|
||||
}
|
||||
# cynical
|
||||
100 = {
|
||||
trigger = { has_trait = cynical }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:cynical
|
||||
}
|
||||
}
|
||||
# zealous
|
||||
100 = {
|
||||
trigger = { has_trait = zealous }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:zealous
|
||||
}
|
||||
}
|
||||
# paranoid
|
||||
100 = {
|
||||
trigger = { has_trait = paranoid }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:paranoid
|
||||
}
|
||||
}
|
||||
# trusting
|
||||
100 = {
|
||||
trigger = { has_trait = trusting }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:trusting
|
||||
}
|
||||
}
|
||||
# compassionate
|
||||
100 = {
|
||||
trigger = { has_trait = compassionate }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:compassionate
|
||||
}
|
||||
}
|
||||
# callous
|
||||
100 = {
|
||||
trigger = { has_trait = callous }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:callous
|
||||
}
|
||||
}
|
||||
# sadistic
|
||||
100 = {
|
||||
trigger = { has_trait = sadistic }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:sadistic
|
||||
}
|
||||
}
|
||||
# stubborn
|
||||
100 = {
|
||||
trigger = { has_trait = stubborn }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:stubborn
|
||||
}
|
||||
}
|
||||
# fickle
|
||||
100 = {
|
||||
trigger = { has_trait = fickle }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fickle
|
||||
}
|
||||
}
|
||||
# vengeful
|
||||
100 = {
|
||||
trigger = { has_trait = vengeful }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:vengeful
|
||||
}
|
||||
}
|
||||
# forgiving
|
||||
100 = {
|
||||
trigger = { has_trait = forgiving }
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:forgiving
|
||||
}
|
||||
}
|
||||
# fallback_1
|
||||
100 = {
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fallback_1
|
||||
}
|
||||
}
|
||||
# fallback_2
|
||||
100 = {
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fallback_2
|
||||
}
|
||||
}
|
||||
# fallback_3
|
||||
100 = {
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fallback_3
|
||||
}
|
||||
}
|
||||
# fallback_4
|
||||
100 = {
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fallback_4
|
||||
}
|
||||
}
|
||||
# fallback_5
|
||||
100 = {
|
||||
save_scope_value_as = {
|
||||
name = false_flag_type
|
||||
value = flag:fallback_5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# Sort scopes for event options.
|
||||
scope:actor = {
|
||||
# If scope:actor has a nemesis, save them for loc.
|
||||
if = {
|
||||
limit = {
|
||||
any_relation = {
|
||||
type = nemesis
|
||||
count >= 1
|
||||
ep1_character_interaction_0001_valid_hostile_relation_trigger = yes
|
||||
}
|
||||
}
|
||||
random_relation = {
|
||||
type = nemesis
|
||||
limit = { ep1_character_interaction_0001_valid_hostile_relation_trigger = yes }
|
||||
save_scope_as = actor_nemesis
|
||||
}
|
||||
}
|
||||
# If scope:actor has any valid rivals, pick a random one for option B.
|
||||
if = {
|
||||
limit = {
|
||||
any_relation = {
|
||||
type = rival
|
||||
count >= 1
|
||||
ep1_character_interaction_0001_valid_rival_trigger = yes
|
||||
}
|
||||
}
|
||||
random_relation = {
|
||||
type = rival
|
||||
# Prefer rivals that are targets of hostile schemes.
|
||||
limit = {
|
||||
any_targeting_scheme = {
|
||||
scheme_owner = scope:actor
|
||||
is_hostile = yes
|
||||
}
|
||||
ep1_character_interaction_0001_valid_rival_trigger = yes
|
||||
}
|
||||
# Failing that, rivals who are targets of any schemes.
|
||||
alternative_limit = {
|
||||
any_targeting_scheme = {
|
||||
scheme_owner = scope:actor
|
||||
is_hostile = no
|
||||
}
|
||||
ep1_character_interaction_0001_valid_rival_trigger = yes
|
||||
}
|
||||
# Otherwise just any rando rival who could be schemed against.
|
||||
alternative_limit = { ep1_character_interaction_0001_valid_rival_trigger = yes }
|
||||
save_scope_as = actor_rival
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# *Cackling* Oh yes, [actor_nemesis.GetFirstName] will never see this coming!
|
||||
option = {
|
||||
name = ep1_character_interaction.0001.a
|
||||
trigger = { exists = scope:actor_nemesis }
|
||||
|
||||
# Quietly add scope:recipient as a courtier of scope:actor_nemesis.
|
||||
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_nemesis }
|
||||
|
||||
stress_impact = {
|
||||
patient = miniscule_stress_impact_loss
|
||||
vengeful = minor_stress_impact_loss
|
||||
impatient = medium_stress_impact_gain
|
||||
trusting = major_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
# If valid, this should always be the choice selected.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
# Excellent! Now, you will deliver yourself to [actor_rival.GetFirstNamePossessive] court...
|
||||
option = {
|
||||
name = ep1_character_interaction.0001.b
|
||||
trigger = { exists = scope:actor_rival }
|
||||
|
||||
# Quietly add scope:recipient as a courtier of scope:actor_rival.
|
||||
ep1_character_interaction_0001_move_character_and_family_effect = { DESTINATION = scope:actor_rival }
|
||||
|
||||
stress_impact = {
|
||||
patient = miniscule_stress_impact_loss
|
||||
vengeful = minor_stress_impact_loss
|
||||
impatient = medium_stress_impact_gain
|
||||
trusting = major_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
# Never pick this option...
|
||||
base = 0
|
||||
# ... unless there's no nemesis, in which case it should be the default.
|
||||
modifier = {
|
||||
add = 100
|
||||
NOT = { exists = scope:actor_rival }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Now, begone till I have need of you.
|
||||
option = {
|
||||
name = ep1_character_interaction.0001.c
|
||||
|
||||
# Boot 'em out.
|
||||
hidden_effect = {
|
||||
scope:recipient = { select_and_move_to_pool_effect = yes }
|
||||
}
|
||||
show_as_tooltip = {
|
||||
remove_courtier_or_guest = scope:recipient
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
shy = minor_stress_impact_loss
|
||||
gregarious = minor_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
# Naturally, you will stay where I can keep an eye on you.
|
||||
option = {
|
||||
name = ep1_character_interaction.0001.d
|
||||
|
||||
# Status quo: no extra changes here.
|
||||
|
||||
# No stress impact necessary for the fallback option.
|
||||
ai_chance = {
|
||||
# AI should never be taking this without a nemesis, but if they do, it doesn't matter where they send scope:recipient.
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
552
N3OW/events/dlc/ep1/ep1_court_position_events.txt
Normal file
552
N3OW/events/dlc/ep1/ep1_court_position_events.txt
Normal file
|
|
@ -0,0 +1,552 @@
|
|||
namespace = court_position
|
||||
|
||||
################################
|
||||
# FLAVOR EVENTS
|
||||
# 1001 - 8999
|
||||
################################
|
||||
|
||||
|
||||
|
||||
#############################
|
||||
# MURDER SAVE EVENTS
|
||||
# 9001 - 9199
|
||||
# by Linnéa Thimrén
|
||||
#############################
|
||||
|
||||
###############
|
||||
# SAVED BY FOOD TASTER
|
||||
|
||||
# FOR MURDERER: Saved from poisoned food by food taster
|
||||
# by Linnéa Thimrén
|
||||
court_position.9001 = {
|
||||
type = character_event
|
||||
window = scheme_failed_event
|
||||
title = court_position.9001.t
|
||||
desc = {
|
||||
desc = court_position.9001.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:food_taster_dies }
|
||||
desc = court_position.9001.food_taster_dies
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:owner
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:food_taster
|
||||
animation = poison
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
override_background = { reference = feast }
|
||||
widget = {
|
||||
gui = "event_window_widget_scheme"
|
||||
container = "custom_widgets_container"
|
||||
}
|
||||
|
||||
trigger = {
|
||||
scope:target = {
|
||||
employs_court_position = food_taster_court_position
|
||||
any_court_position_holder = {
|
||||
type = food_taster_court_position
|
||||
foodtaster_will_actually_do_job_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:target = {
|
||||
random_court_position_holder = {
|
||||
type = food_taster_court_position
|
||||
limit = { is_physically_able = yes }
|
||||
save_scope_as = food_taster
|
||||
}
|
||||
}
|
||||
murder_failure_effect = yes
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 75
|
||||
set_local_variable = {
|
||||
name = food_taster_dies
|
||||
value = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.a
|
||||
scope:scheme = { end_scheme = yes }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.b
|
||||
restart_murder_scheme_effect = yes
|
||||
}
|
||||
|
||||
after = {
|
||||
# Fire the rest of the outcome.
|
||||
scope:target = { trigger_event = court_position.9002 }
|
||||
if = {
|
||||
limit = { exists = local_var:food_taster_dies }
|
||||
show_as_tooltip = {
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:food_taster
|
||||
REASON = death_poison
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# FOR TARGET: Food taster dies to poison
|
||||
court_position.9002 = {
|
||||
type = character_event
|
||||
window = scheme_target_event
|
||||
title = court_position.9001.t
|
||||
desc = {
|
||||
desc = court_position.9002.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:food_taster_dies }
|
||||
desc = court_position.9002.food_taster_dies
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
desc = court_position.9002.owner_discovered
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:food_taster
|
||||
animation = poison
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:owner_to_reveal
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
|
||||
immediate = {
|
||||
set_variable = {
|
||||
name = block_death_event_from
|
||||
value = scope:food_taster
|
||||
days = 3
|
||||
}
|
||||
# Handle the death of the food taster, if necessary
|
||||
if = {
|
||||
limit = { exists = local_var:food_taster_dies }
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:food_taster
|
||||
REASON = death_poison
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Who could do such a thing?
|
||||
option = {
|
||||
name = murder_save.1001.a
|
||||
trigger = {
|
||||
NOT = { exists = scope:scheme_discovered }
|
||||
}
|
||||
custom_tooltip = murder_save.failure_unknown_owner_tt
|
||||
}
|
||||
|
||||
# Vengeance!
|
||||
option = {
|
||||
name = murder_save.1001.b
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
custom_tooltip = murder_save.failure_known_owner_tt
|
||||
}
|
||||
|
||||
after = {
|
||||
add_character_modifier = {
|
||||
modifier = watchful_modifier
|
||||
days = watchful_modifier_duration
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
###############
|
||||
# SAVED BY CUP-BEARER
|
||||
|
||||
# FOR MURDERER: Saved from poisoned drink by cup-bearer
|
||||
# by Linnéa Thimrén
|
||||
court_position.9011 = {
|
||||
type = character_event
|
||||
window = scheme_failed_event
|
||||
title = court_position.9011.t
|
||||
desc = {
|
||||
desc = court_position.9011.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:cupbearer_dies }
|
||||
desc = court_position.9011.cupbearer_dies
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:owner
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:food_taster
|
||||
animation = poison
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
widget = {
|
||||
gui = "event_window_widget_scheme"
|
||||
container = "custom_widgets_container"
|
||||
}
|
||||
|
||||
trigger = {
|
||||
scope:target = {
|
||||
employs_court_position = cupbearer_court_position
|
||||
any_court_position_holder = {
|
||||
type = cupbearer_court_position
|
||||
cupbearer_will_actually_do_job_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:target = {
|
||||
random_court_position_holder = {
|
||||
type = cupbearer_court_position
|
||||
limit = { is_physically_able = yes }
|
||||
save_scope_as = cupbearer
|
||||
}
|
||||
}
|
||||
murder_failure_effect = yes
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 75
|
||||
set_local_variable = {
|
||||
name = cupbearer_dies
|
||||
value = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.a
|
||||
scope:scheme = { end_scheme = yes }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.b
|
||||
restart_murder_scheme_effect = yes
|
||||
}
|
||||
|
||||
after = {
|
||||
# Fire the rest of the outcome.
|
||||
scope:target = { trigger_event = court_position.9012 }
|
||||
if = {
|
||||
limit = { exists = local_var:cupbearer_dies }
|
||||
show_as_tooltip = {
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:cupbearer
|
||||
REASON = death_poison
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# FOR TARGET: Cup-bearer dies to poison
|
||||
court_position.9012 = {
|
||||
type = character_event
|
||||
window = scheme_target_event
|
||||
title = court_position.9011.t
|
||||
desc = {
|
||||
desc = court_position.9012.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:cupbearer_dies }
|
||||
desc = court_position.9012.cupbearer_dies
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
desc = court_position.9002.owner_discovered
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:food_taster
|
||||
animation = poison
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:owner_to_reveal
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
|
||||
immediate = {
|
||||
set_variable = {
|
||||
name = block_death_event_from
|
||||
value = scope:cupbearer
|
||||
days = 3
|
||||
}
|
||||
# Handle the death of the cupbearer, if necessary
|
||||
if = {
|
||||
limit = { exists = local_var:cupbearer_dies }
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:cupbearer
|
||||
REASON = death_poison
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Who could do such a thing?
|
||||
option = {
|
||||
name = murder_save.1001.a
|
||||
trigger = {
|
||||
NOT = { exists = scope:scheme_discovered }
|
||||
}
|
||||
custom_tooltip = murder_save.failure_unknown_owner_tt
|
||||
}
|
||||
|
||||
# Vengeance!
|
||||
option = {
|
||||
name = murder_save.1001.b
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
custom_tooltip = murder_save.failure_known_owner_tt
|
||||
}
|
||||
|
||||
after = {
|
||||
add_character_modifier = {
|
||||
modifier = watchful_modifier
|
||||
days = watchful_modifier_duration
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
###############
|
||||
# SAVED BY BODYGUARD
|
||||
|
||||
# FOR MURDERER: Saved from assassin by bodyguard
|
||||
# by Linnéa Thimrén
|
||||
court_position.9021 = {
|
||||
type = character_event
|
||||
window = scheme_failed_event
|
||||
title = court_position.9021.t
|
||||
desc = {
|
||||
desc = court_position.9021.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:bodyguard_dies }
|
||||
desc = court_position.9021.bodyguard_dies
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:owner
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:bodyguard
|
||||
triggered_animation = {
|
||||
trigger = { is_alive = no }
|
||||
animation = map_fear
|
||||
}
|
||||
animation = random_weapon_aggressive
|
||||
camera = camera_event_center_pointing_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
widget = {
|
||||
gui = "event_window_widget_scheme"
|
||||
container = "custom_widgets_container"
|
||||
}
|
||||
|
||||
trigger = {
|
||||
scope:target = {
|
||||
employs_court_position = bodyguard_court_position
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
bodyguard_will_actually_do_job_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:target = {
|
||||
random_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
limit = { is_physically_able = yes }
|
||||
save_scope_as = bodyguard
|
||||
}
|
||||
}
|
||||
murder_failure_effect = yes
|
||||
hidden_effect = {
|
||||
random = {
|
||||
chance = 75
|
||||
set_local_variable = {
|
||||
name = bodyguard_dies
|
||||
value = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.a
|
||||
scope:scheme = { end_scheme = yes }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = murder_save.0001.b
|
||||
restart_murder_scheme_effect = yes
|
||||
}
|
||||
|
||||
after = {
|
||||
# Fire the rest of the outcome.
|
||||
scope:target = { trigger_event = court_position.9022 }
|
||||
if = {
|
||||
limit = { exists = local_var:bodyguard_dies }
|
||||
show_as_tooltip = {
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:bodyguard
|
||||
REASON = death_murder
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# FOR TARGET: Bodyguard dies to assassin
|
||||
court_position.9022 = {
|
||||
type = character_event
|
||||
window = scheme_target_event
|
||||
title = court_position.9021.t
|
||||
desc = {
|
||||
desc = court_position.9022.desc
|
||||
triggered_desc = {
|
||||
trigger = { exists = local_var:bodyguard_dies }
|
||||
desc = court_position.9022.bodyguard_dies
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
desc = court_position.9002.owner_discovered
|
||||
}
|
||||
}
|
||||
theme = murder_scheme
|
||||
left_portrait = {
|
||||
character = scope:target
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = rage
|
||||
}
|
||||
animation = paranoia
|
||||
}
|
||||
center_portrait = {
|
||||
character = scope:bodyguard
|
||||
triggered_animation = {
|
||||
trigger = { is_alive = no }
|
||||
animation = map_fear
|
||||
}
|
||||
animation = random_weapon_aggressive
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:owner_to_reveal
|
||||
triggered_animation = {
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
animation = fear
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
|
||||
immediate = {
|
||||
set_variable = {
|
||||
name = block_death_event_from
|
||||
value = scope:bodyguard
|
||||
days = 3
|
||||
}
|
||||
# Handle the death of the bodyguard, if necessary
|
||||
if = {
|
||||
limit = { exists = local_var:bodyguard_dies }
|
||||
murder_interception_handle_extra_deaths_effect = {
|
||||
VICTIM = scope:bodyguard
|
||||
REASON = death_murder
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Who could do such a thing?
|
||||
option = {
|
||||
name = murder_save.1001.a
|
||||
trigger = {
|
||||
NOT = { exists = scope:scheme_discovered }
|
||||
}
|
||||
custom_tooltip = murder_save.failure_unknown_owner_tt
|
||||
}
|
||||
|
||||
# Vengeance!
|
||||
option = {
|
||||
name = murder_save.1001.b
|
||||
trigger = { exists = scope:scheme_discovered }
|
||||
custom_tooltip = murder_save.failure_known_owner_tt
|
||||
}
|
||||
|
||||
after = {
|
||||
add_character_modifier = {
|
||||
modifier = watchful_modifier
|
||||
days = watchful_modifier_duration
|
||||
}
|
||||
}
|
||||
}
|
||||
575
N3OW/events/dlc/ep1/ep1_decision_events.txt
Normal file
575
N3OW/events/dlc/ep1/ep1_decision_events.txt
Normal file
|
|
@ -0,0 +1,575 @@
|
|||
namespace = ep1_decision
|
||||
|
||||
##################################################
|
||||
#
|
||||
# Royal Court Court Grandeur Level & Amenity Decisions Events
|
||||
#
|
||||
# COURT GRANDEUR LEVELS
|
||||
# 0001 - 0010 Host Fundraiser
|
||||
# 0011 - 0020 Host Summit
|
||||
#
|
||||
# AMENITIES
|
||||
# 0101 - 0110 Order Mass Eviction
|
||||
# 0111 - 0120 Commission Exotic Bedchamber
|
||||
##################################################
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# COURT GRANDEUR LEVELS
|
||||
ep1_decision.0201 = {
|
||||
type = character_event
|
||||
title = ep1_decision.0201.t
|
||||
desc = ep1_decision.0201.desc
|
||||
theme = education
|
||||
left_portrait = scope:good_linguist
|
||||
lower_left_portrait = scope:cheap_linguist
|
||||
right_portrait = scope:medium_linguist
|
||||
lower_right_portrait = scope:scholarly_linguist
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
immediate = {
|
||||
### Save cultures and languages
|
||||
# Find 1st culture that speaks target language natively
|
||||
random_culture_global = {
|
||||
limit = {
|
||||
exists = culture_head
|
||||
scope:target_court_language = { has_court_language_of_culture = prev }
|
||||
}
|
||||
save_scope_as = ling_cul_1
|
||||
}
|
||||
# Save liege as example to fetch faiths if relevant
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:language_scheme_type
|
||||
liege = { has_court_language_of_culture = root.liege.culture }
|
||||
}
|
||||
liege = { save_scope_as = ling_cul_1_ruler }
|
||||
}
|
||||
# Otherwise find random cul_1 ruler
|
||||
else = {
|
||||
linguist_random_realm_effect = { CULTURE = ling_cul_1 }
|
||||
}
|
||||
# Find 2nd culture that speaks target language natively
|
||||
if = {
|
||||
limit = {
|
||||
any_culture_global = {
|
||||
exists = culture_head
|
||||
scope:target_court_language = { has_court_language_of_culture = prev }
|
||||
THIS != scope:ling_cul_1
|
||||
}
|
||||
}
|
||||
random_culture_global = {
|
||||
limit = {
|
||||
exists = culture_head
|
||||
scope:target_court_language = { has_court_language_of_culture = prev }
|
||||
THIS != scope:ling_cul_1
|
||||
}
|
||||
save_scope_as = ling_cul_2
|
||||
}
|
||||
}
|
||||
# If none, duplicate 1st
|
||||
else = {
|
||||
scope:ling_cul_1 = { save_scope_as = ling_cul_2 }
|
||||
}
|
||||
# Save random ruler of cul 2 to find faith
|
||||
linguist_random_realm_effect = { CULTURE = ling_cul_2 }
|
||||
# Save own culture
|
||||
culture = { save_scope_as = ling_cul_3 }
|
||||
# Bonus languages good linguists may know in addition to root and target
|
||||
linguist_bonus_culture_effect = { CULTURE = ling_cul_1 }
|
||||
linguist_bonus_culture_effect = { CULTURE = ling_cul_2 }
|
||||
linguist_bonus_culture_effect = { CULTURE = ling_cul_3 }
|
||||
#### Create Linguists
|
||||
hidden_effect = {
|
||||
# Poor Linguist
|
||||
if = {
|
||||
limit = { has_trait = greedy }
|
||||
create_character = {
|
||||
dynasty = none
|
||||
template = court_linguist_cheap_template
|
||||
location = root.capital_province
|
||||
save_scope_as = cheap_linguist
|
||||
}
|
||||
}
|
||||
# Average Linguist
|
||||
create_character = {
|
||||
dynasty = none
|
||||
template = court_linguist_medium_template
|
||||
location = root.capital_province
|
||||
save_scope_as = medium_linguist
|
||||
}
|
||||
# Good Linguist
|
||||
create_character = {
|
||||
dynasty = none
|
||||
template = court_linguist_good_template
|
||||
culture = scope:ling_cul_2
|
||||
faith = scope:ling_cul_2_ruler.faith
|
||||
location = root.capital_province
|
||||
save_scope_as = good_linguist
|
||||
}
|
||||
# Scholarly Linguist
|
||||
if = {
|
||||
limit = { has_trait = scholar }
|
||||
create_character = {
|
||||
dynasty = none
|
||||
template = court_linguist_good_template
|
||||
culture = scope:ling_cul_1
|
||||
faith = scope:ling_cul_1_ruler.faith
|
||||
location = root.capital_province
|
||||
trait = scholar
|
||||
save_scope_as = scholarly_linguist
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:ling_cul_2_bonus
|
||||
NOT = {
|
||||
scope:scholarly_linguist = { knows_language_of_culture = scope:ling_cul_2_bonus }
|
||||
}
|
||||
}
|
||||
scope:scholarly_linguist = { learn_language_of_culture = scope:ling_cul_2_bonus }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Expensive linguist, great teacher
|
||||
option = {
|
||||
name = ep1_decision.0201.a
|
||||
pay_short_term_gold = {
|
||||
target = scope:good_linguist
|
||||
gold = medium_gold_value
|
||||
}
|
||||
learn_language_linguist_effect = { LINGUIST = scope:good_linguist }
|
||||
stress_impact = {
|
||||
greedy = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
short_term_gold < medium_gold_value
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Cheaper linguist; less learning, not a good teacher
|
||||
option = {
|
||||
name = ep1_decision.0201.b
|
||||
pay_short_term_gold = {
|
||||
target = scope:medium_linguist
|
||||
gold = minor_gold_value
|
||||
}
|
||||
learn_language_linguist_effect = { LINGUIST = scope:medium_linguist }
|
||||
stress_impact = {
|
||||
greedy = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
short_term_gold < minor_gold_value_check
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# I know a good tutor through scholarly circles!
|
||||
option = {
|
||||
name = ep1_decision.0201.c
|
||||
trait = scholar
|
||||
trigger = { has_trait = scholar }
|
||||
learn_language_linguist_effect = { LINGUIST = scope:scholarly_linguist }
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
# I'm cheap, get me anyone who can vaguely speak my language
|
||||
option = {
|
||||
name = ep1_decision.0201.d
|
||||
trait = greedy
|
||||
trigger = { has_trait = greedy }
|
||||
learn_language_linguist_effect = { LINGUIST = scope:cheap_linguist }
|
||||
ai_chance = {
|
||||
base = 1000
|
||||
modifier = { # Don't do it if you can hire the cool guy
|
||||
has_trait = scholar
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# On seconds thoughts, I won't hire a linguist at all...
|
||||
option = {
|
||||
name = ep1_decision.0201.e
|
||||
ai_chance = {
|
||||
base = 0
|
||||
modifier = {
|
||||
short_term_gold < minor_gold_value_check
|
||||
NOR = {
|
||||
has_trait = scholar
|
||||
has_trait = greedy
|
||||
}
|
||||
add = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
every_in_list = {
|
||||
list = court_linguist_list
|
||||
limit = {
|
||||
NOT = { is_courtier_of = root }
|
||||
}
|
||||
silent_disappearance_effect = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# AMENITIES
|
||||
|
||||
##################################################
|
||||
# Out with the Old
|
||||
# by Ewan Cowhig Croft
|
||||
# 0101 - 0110
|
||||
##################################################
|
||||
|
||||
# Pay a little prestige to boot out all the guests from your palace.
|
||||
ep1_decision.0101 = {
|
||||
type = character_event
|
||||
title = ep1_decision.0101.t
|
||||
desc = ep1_decision.0101.desc
|
||||
theme = court
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
}
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
immediate = {
|
||||
# Grab the capital for easy loc.
|
||||
capital_barony = { save_scope_as = capital }
|
||||
}
|
||||
|
||||
# Scope:capital is not an inn. Away, leeches!
|
||||
option = {
|
||||
name = ep1_decision.0101.a
|
||||
|
||||
# Evict your guests.
|
||||
order_mass_eviction_decision_guests_only_effect = yes
|
||||
|
||||
stress_impact = {
|
||||
shy = minor_stress_impact_loss
|
||||
gregarious = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
# AI cannot access this event.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
# Everyone who doesn't have a job or a close blood tie, *out*!
|
||||
option = {
|
||||
name = ep1_decision.0101.b
|
||||
trigger = {
|
||||
# If you have no spare rooms at all, you can dismiss useless courtiers for a bit extra.
|
||||
amenity_level = {
|
||||
target = court_lodging_standards
|
||||
value <= low_amenity_level
|
||||
}
|
||||
}
|
||||
|
||||
# Charge an extra premium.
|
||||
add_prestige = {
|
||||
value = order_mass_eviction_decision_cost_value
|
||||
multiply = -1
|
||||
}
|
||||
# Evict your guests *&* courtiers.
|
||||
order_mass_eviction_decision_courtiers_&_guests_effect = yes
|
||||
|
||||
stress_impact = {
|
||||
shy = medium_stress_impact_loss
|
||||
gregarious = major_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
# AI cannot access this event.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
# On seconds thoughts, this is unbecoming...
|
||||
option = {
|
||||
name = ep1_decision.0101.c
|
||||
|
||||
# Return invested prestige.
|
||||
hidden_effect = { add_prestige_no_experience = order_mass_eviction_decision_cost_value }
|
||||
# & reset the cooldown.
|
||||
remove_decision_cooldown = order_mass_eviction_decision
|
||||
|
||||
# No stress impact for cancelling out of the decision.
|
||||
ai_chance = {
|
||||
# AI cannot access this event.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
##################################################
|
||||
# Grandiose Decor
|
||||
# by Ewan Cowhig Croft
|
||||
# 0111 - 0120
|
||||
##################################################
|
||||
|
||||
# For technical reasons, this trigger can't be the same as exoticise_a_grand_hall_decision_list_builder_guts_trigger, but maintains (almost) technical parity with it.
|
||||
scripted_trigger ep1_decision_0111_list_builder_guts_trigger = {
|
||||
# Is the title presently active?
|
||||
is_title_created = yes
|
||||
# Filter out anyone already in the list.
|
||||
NOT = { is_in_list = royal_courts_list }
|
||||
# Check assorted holder things.
|
||||
holder = {
|
||||
# Filter out anyone who has the right rank but lacks a mechanical royal court.
|
||||
has_royal_court = yes
|
||||
this != root
|
||||
# Can the two communicate?
|
||||
in_diplomatic_range = root
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect ep1_decision_0111_apply_hall_effect = {
|
||||
# Add mutual opinion for each non-AI involved with the interaction.
|
||||
$CHOICE$ = {
|
||||
if = {
|
||||
limit = { is_ai = yes }
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = flattered_opinion
|
||||
opinion = 30
|
||||
}
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = { is_ai = yes }
|
||||
add_opinion = {
|
||||
target = $CHOICE$
|
||||
modifier = impressed_opinion
|
||||
opinion = 30
|
||||
}
|
||||
}
|
||||
# Gain a fraction of the CGV difference.
|
||||
change_current_court_grandeur = $CHOICE$.ep1_decision_0111_proportional_cgv_gain_value
|
||||
# Pay prestige proportional to how much CGV is gained.
|
||||
add_prestige = $CHOICE$.ep1_decision_0111_proportional_prestige_cost_value
|
||||
# Hand over a lil participation prestige for $CHOICE$ so that they know someone thinks their court is rad.
|
||||
$CHOICE$ = {
|
||||
send_interface_toast = {
|
||||
title = ep1_decision.0111.toast.t
|
||||
left_icon = root
|
||||
# Give a little more for emperors doing this.
|
||||
if = {
|
||||
limit = { $CHOICE$.primary_title.tier >= tier_empire }
|
||||
add_prestige = medium_prestige_gain
|
||||
}
|
||||
# Otherwise, just a few crumbs of prestige.
|
||||
else = { add_prestige = minor_prestige_gain }
|
||||
}
|
||||
}
|
||||
|
||||
# Stress impact handled in the scripted effect, since it'll always be the same for each char.
|
||||
stress_impact = {
|
||||
architect = minor_stress_impact_loss
|
||||
humble = medium_stress_impact_loss
|
||||
arrogant = major_stress_impact_gain
|
||||
}
|
||||
}
|
||||
|
||||
# Arrange for a major room to be remodelled with decor inspired by a more grandiose culture.
|
||||
ep1_decision.0111 = {
|
||||
type = character_event
|
||||
title = ep1_decision.0111.t
|
||||
desc = ep1_decision.0111.desc
|
||||
theme = court
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = throne_room_conversation_4
|
||||
}
|
||||
lower_left_portrait = scope:option_1
|
||||
lower_center_portrait = scope:option_2
|
||||
lower_right_portrait = scope:option_3
|
||||
|
||||
immediate = {
|
||||
# Build a list of suitable courts.
|
||||
## We add the title rather than the characters to the list for a cleaner debug tooltip in-game.
|
||||
every_empire = {
|
||||
limit = { ep1_decision_0111_list_builder_guts_trigger = yes }
|
||||
# Rack 'em up.
|
||||
add_to_list = royal_courts_list
|
||||
}
|
||||
every_kingdom = {
|
||||
limit = { ep1_decision_0111_list_builder_guts_trigger = yes }
|
||||
# Rack 'em up.
|
||||
add_to_list = royal_courts_list
|
||||
}
|
||||
# Then, filter through the list and grab appropriate options.
|
||||
ordered_in_list = {
|
||||
list = royal_courts_list
|
||||
max = 4
|
||||
check_range_bounds = no
|
||||
order_by = {
|
||||
# Use CGV as a base.
|
||||
add = holder.court_grandeur_current
|
||||
# Weight up for neighbouring realms.
|
||||
if = {
|
||||
limit = {
|
||||
holder = {
|
||||
OR = {
|
||||
any_neighboring_and_across_water_realm_same_rank_owner = { this = root }
|
||||
any_neighboring_and_across_water_top_liege_realm_owner = { this = root }
|
||||
}
|
||||
}
|
||||
}
|
||||
multiply = 5
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:option_1 }
|
||||
}
|
||||
holder = { save_scope_as = option_1 }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
holder = { this = scope:option_1 }
|
||||
exists = scope:option_2
|
||||
}
|
||||
}
|
||||
holder = { save_scope_as = option_2 }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
holder = { this = scope:option_1 }
|
||||
holder = { this = scope:option_2 }
|
||||
exists = scope:option_3
|
||||
}
|
||||
}
|
||||
holder = { save_scope_as = option_3 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scope:option_1 is a grand, grand place.
|
||||
option = {
|
||||
name = {
|
||||
trigger = { scope:option_1.court_grandeur_current > root.court_grandeur_current }
|
||||
text = ep1_decision.0111.a.greater_cgv
|
||||
}
|
||||
name = {
|
||||
trigger = { always = yes }
|
||||
text = ep1_decision.0111.a.lesser_cgv
|
||||
}
|
||||
trigger = { exists = scope:option_1 }
|
||||
|
||||
# Build a hall in the relevant scope's style.
|
||||
ep1_decision_0111_apply_hall_effect = { CHOICE = scope:option_1 }
|
||||
|
||||
# Stress_impact block handled in the scripted effect.
|
||||
ai_chance = {
|
||||
# Generally equal likelihood for each option.
|
||||
base = 100
|
||||
# Otherwise, people want to model themselves after characters they like.
|
||||
#opinion_modifier = { opinion_target = scope:option_1 }
|
||||
}
|
||||
}
|
||||
|
||||
# I find the architecture of scope:option_2 enthralling!
|
||||
option = {
|
||||
name = {
|
||||
trigger = { scope:option_2.court_grandeur_current > root.court_grandeur_current }
|
||||
text = ep1_decision.0111.b.greater_cgv
|
||||
}
|
||||
name = {
|
||||
trigger = { always = yes }
|
||||
text = ep1_decision.0111.b.lesser_cgv
|
||||
}
|
||||
trigger = { exists = scope:option_2 }
|
||||
|
||||
# Build a hall in the relevant scope's style.
|
||||
ep1_decision_0111_apply_hall_effect = { CHOICE = scope:option_2 }
|
||||
|
||||
# Stress_impact block handled in the scripted effect.
|
||||
ai_chance = {
|
||||
# Generally equal likelihood for each option.
|
||||
base = 100
|
||||
# Otherwise, people want to model themselves after characters they like.
|
||||
#opinion_modifier = { opinion_target = scope:option_2 }
|
||||
}
|
||||
}
|
||||
|
||||
# Perhaps a scope:option_3ikkan lounge?
|
||||
option = {
|
||||
name = {
|
||||
trigger = { scope:option_3.court_grandeur_current > root.court_grandeur_current }
|
||||
text = ep1_decision.0111.c.greater_cgv
|
||||
}
|
||||
name = {
|
||||
trigger = { always = yes }
|
||||
text = ep1_decision.0111.c.lesser_cgv
|
||||
}
|
||||
trigger = { exists = scope:option_3 }
|
||||
|
||||
# Build a hall in the relevant scope's style.
|
||||
ep1_decision_0111_apply_hall_effect = { CHOICE = scope:option_3 }
|
||||
|
||||
# Stress_impact block handled in the scripted effect.
|
||||
ai_chance = {
|
||||
# Generally equal likelihood for each option.
|
||||
base = 100
|
||||
# Otherwise, people want to model themselves after characters they like.
|
||||
#opinion_modifier = { opinion_target = scope:option_3 }
|
||||
}
|
||||
}
|
||||
|
||||
# These all seem quite foreign...
|
||||
option = {
|
||||
name = ep1_decision.0111.d
|
||||
|
||||
# Refund the gold paid; we mention this in a tooltip so that it's a bit less noticeable.
|
||||
hidden_effect = { add_gold = var:exoticise_a_grand_hall_decision_refund_value }
|
||||
custom_tooltip = ep1_decision.0111.d.tt
|
||||
# Take the decision off cooldown.
|
||||
remove_decision_cooldown = exoticise_a_grand_hall_decision
|
||||
|
||||
# No stress impact for cancelling out.
|
||||
ai_chance = {
|
||||
# If the AI has gotten this far, they should pick an option.
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
# Whatever else happens, clear the refund value.
|
||||
remove_variable = exoticise_a_grand_hall_decision_refund_value
|
||||
}
|
||||
}
|
||||
|
||||
6004
N3OW/events/dlc/ep1/ep1_flavor_events.txt
Normal file
6004
N3OW/events/dlc/ep1/ep1_flavor_events.txt
Normal file
File diff suppressed because it is too large
Load diff
483
N3OW/events/dlc/ep1/ep1_fund_inspiration_events_oltner.txt
Normal file
483
N3OW/events/dlc/ep1/ep1_fund_inspiration_events_oltner.txt
Normal file
|
|
@ -0,0 +1,483 @@
|
|||
namespace = fund_inspiration
|
||||
|
||||
# Adventurer fights a bandit
|
||||
# Adventurer travels through beast-infested terrain
|
||||
|
||||
# Adventurer fights a bandit
|
||||
fund_inspiration.9000 = {
|
||||
type = character_event
|
||||
title = fund_inspiration.9000.t
|
||||
desc = fund_inspiration.9000.desc
|
||||
theme = war
|
||||
|
||||
left_portrait = {
|
||||
character = scope:adventurer
|
||||
animation = worry
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:bandit
|
||||
animation = throne_room_one_handed_passive_1
|
||||
}
|
||||
|
||||
override_background = {
|
||||
reference = wilderness_scope
|
||||
}
|
||||
|
||||
cooldown = { years = 5 }
|
||||
|
||||
trigger = {
|
||||
exists = scope:inspiration
|
||||
scope:inspiration_owner = {
|
||||
exists = var:adventure_destination
|
||||
exists = var:adventure_type
|
||||
NOR = {
|
||||
has_character_flag = fund_adventure_inspiration_event_cooldown
|
||||
}
|
||||
exists = location
|
||||
any_pool_character = {
|
||||
province = scope:inspiration_owner.location
|
||||
is_available_ai_adult = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:inspiration_owner = {
|
||||
save_scope_as = adventurer
|
||||
location.barony.title_province = { save_scope_as = background_wilderness_scope }
|
||||
random_pool_character = {
|
||||
province = location.barony.title_province
|
||||
limit = {
|
||||
is_available_ai_adult = yes
|
||||
}
|
||||
weight = {
|
||||
base = 10
|
||||
modifier = {
|
||||
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = THIS }
|
||||
add = 100
|
||||
}
|
||||
}
|
||||
save_scope_as = bandit
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9000.a
|
||||
|
||||
scope:adventurer = {
|
||||
duel = {
|
||||
skill = intrigue
|
||||
target = scope:bandit
|
||||
2 = {
|
||||
desc = fund_inspiration.9000.a.critical_success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.a.critical_success
|
||||
left_icon = scope:adventurer
|
||||
scope:inspiration = { change_inspiration_progress = 2 }
|
||||
scope:bandit = {
|
||||
pay_short_term_gold = {
|
||||
target = root
|
||||
gold = medium_gold_value
|
||||
}
|
||||
}
|
||||
hidden_effect = { # The adventurer also gains some gold!
|
||||
scope:bandit = {
|
||||
pay_short_term_gold = {
|
||||
target = scope:adventurer
|
||||
gold = medium_gold_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
8 = {
|
||||
desc = fund_inspiration.9000.a.success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.a.success
|
||||
left_icon = scope:adventurer
|
||||
scope:inspiration = { change_inspiration_progress = 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
8 = {
|
||||
desc = fund_inspiration.9000.a.failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.a.failure
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
increase_wounds_effect = { REASON = fight }
|
||||
}
|
||||
scope:inspiration = { change_inspiration_progress = -2 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 4
|
||||
modifier = {
|
||||
add = scope:adventurer.intrigue
|
||||
}
|
||||
modifier = {
|
||||
add = {
|
||||
value = scope:bandit.intrigue
|
||||
multiply = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9000.b
|
||||
|
||||
scope:adventurer = {
|
||||
duel = {
|
||||
skill = prowess
|
||||
target = scope:bandit
|
||||
1 = {
|
||||
desc = fund_inspiration.9000.b.critical_success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.b.critical_success
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
if = {
|
||||
limit = {
|
||||
NOR = {
|
||||
has_trait = compassionate
|
||||
ai_compassion >= high_positive_ai_value
|
||||
}
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:bandit = {
|
||||
death = {
|
||||
death_reason = death_duel
|
||||
killer = scope:adventurer
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = fund_inspiration.9000.b.boil_skull
|
||||
scope:inspiration_owner = {
|
||||
change_artifact_quality_effect = { AMOUNT = 4 }
|
||||
}
|
||||
root = {
|
||||
hidden_effect_new_object = {
|
||||
create_artifact_pedestal_human_skull_effect = {
|
||||
OWNER = root
|
||||
CREATOR = scope:adventurer
|
||||
DESKULLED = scope:bandit
|
||||
}
|
||||
scope:newly_created_artifact = {
|
||||
set_artifact_description = artifact_bandit_skull
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
scope:bandit = {
|
||||
death = {
|
||||
death_reason = death_duel
|
||||
killer = scope:adventurer
|
||||
}
|
||||
scope:inspiration_owner = {
|
||||
change_artifact_quality_effect = { AMOUNT = 4 }
|
||||
}
|
||||
scope:inspiration = { change_inspiration_progress = 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11 = {
|
||||
desc = fund_inspiration.9000.b.success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.b.success
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
scope:bandit = {
|
||||
increase_wounds_effect = { REASON = fight }
|
||||
}
|
||||
scope:inspiration_owner = {
|
||||
change_artifact_quality_effect = { AMOUNT = 2 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
8 = {
|
||||
desc = fund_inspiration.9000.b.failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.b.failure
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
increase_wounds_effect = { REASON = fight }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1 = {
|
||||
desc = fund_inspiration.9000.b.critical_failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9000.b.critical_failure
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
death = {
|
||||
death_reason = death_duel
|
||||
killer = scope:bandit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 4
|
||||
modifier = {
|
||||
add = scope:adventurer.prowess
|
||||
}
|
||||
modifier = {
|
||||
add = {
|
||||
value = scope:bandit.prowess
|
||||
multiply = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9000.c
|
||||
pay_short_term_gold = {
|
||||
target = scope:bandit
|
||||
gold = minor_gold_value
|
||||
}
|
||||
ai_chance = {
|
||||
base = 8
|
||||
|
||||
modifier = {
|
||||
factor = 2
|
||||
ai_compassion >= medium_positive_ai_value
|
||||
}
|
||||
|
||||
modifier = {
|
||||
factor = 0.1
|
||||
OR = {
|
||||
has_trait = stubborn
|
||||
has_trait = wrathful
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
gold < 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Adventurer travels through beast-infested terrain
|
||||
fund_inspiration.9100 = {
|
||||
type = character_event
|
||||
title = fund_inspiration.9100.t
|
||||
desc = fund_inspiration.9100.desc
|
||||
theme = war
|
||||
|
||||
left_portrait = {
|
||||
character = scope:adventurer
|
||||
scripted_animation = duel_wield_weapon
|
||||
}
|
||||
|
||||
override_background = {
|
||||
reference = wilderness_scope
|
||||
}
|
||||
|
||||
cooldown = { years = 5 }
|
||||
|
||||
trigger = {
|
||||
exists = scope:inspiration
|
||||
scope:inspiration_owner = {
|
||||
exists = var:adventure_destination
|
||||
exists = var:adventure_type
|
||||
NOR = {
|
||||
has_character_flag = fund_adventure_inspiration_event_cooldown
|
||||
has_trait = humble
|
||||
has_trait = content
|
||||
}
|
||||
exists = location
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:inspiration_owner = {
|
||||
save_scope_as = adventurer
|
||||
location.barony.title_province = { save_scope_as = background_wilderness_scope }
|
||||
scope:adventurer = {
|
||||
select_local_animal_effect = { TYPE = dangerous } # Save scope to limit possible animals: any/big/small/dangerous/harmless/prowling
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9100.a
|
||||
|
||||
scope:adventurer = {
|
||||
duel = {
|
||||
skill = learning
|
||||
value = 8
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
|
||||
|
||||
desc = fund_inspiration.9100.a.success
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9100.a.success
|
||||
left_icon = scope:adventurer
|
||||
scope:inspiration = { change_inspiration_progress = 2 }
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
|
||||
desc = fund_inspiration.9100.a.failure
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9100.a.failure
|
||||
left_icon = scope:adventurer
|
||||
root = {
|
||||
scope:adventurer = {
|
||||
increase_wounds_effect = { REASON = fight }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 4
|
||||
modifier = {
|
||||
add = scope:adventurer.learning
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9100.b
|
||||
|
||||
scope:adventurer = {
|
||||
duel = {
|
||||
skill = prowess
|
||||
value = 8
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
|
||||
|
||||
desc = fund_inspiration.9100.b.success
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9100.b.success
|
||||
left_icon = scope:adventurer
|
||||
scope:inspiration_owner = {
|
||||
change_artifact_quality_effect = { AMOUNT = 3 }
|
||||
}
|
||||
scope:inspiration = { change_inspiration_progress = 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
|
||||
desc = fund_inspiration.9100.b.failure
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
title = fund_inspiration.9100.b.failure
|
||||
left_icon = scope:adventurer
|
||||
scope:adventurer = {
|
||||
increase_wounds_effect = { REASON = fight }
|
||||
random = {
|
||||
chance = 25
|
||||
custom_tooltip = fund_inspiration.9100.b.maimed
|
||||
hidden_effect = {
|
||||
maimed_in_battle_effect = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 4
|
||||
modifier = {
|
||||
add = scope:adventurer.prowess
|
||||
}
|
||||
}
|
||||
}
|
||||
option = {
|
||||
name = fund_inspiration.9100.c
|
||||
|
||||
scope:inspiration = { change_inspiration_progress = -1 }
|
||||
|
||||
ai_chance = {
|
||||
base = 4
|
||||
|
||||
modifier = {
|
||||
factor = 2
|
||||
ai_compassion >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
146
N3OW/events/dlc/ep1/ep1_inspiration_system_events.txt
Normal file
146
N3OW/events/dlc/ep1/ep1_inspiration_system_events.txt
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
namespace = inspiration_system
|
||||
|
||||
##################################################
|
||||
# Inspiration Generation
|
||||
# Checks how many inspirations currently exist and, if there are not enough, generates new ones for pool characters.
|
||||
# by Sean Hughes
|
||||
# 0005
|
||||
##################################################
|
||||
|
||||
inspiration_system.0005 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_ep1_dlc_trigger = yes
|
||||
|
||||
num_world_inspired_characters_value < ideal_total_world_inspirations
|
||||
}
|
||||
|
||||
immediate = {
|
||||
set_local_variable = {
|
||||
name = try_create_inspiration_attempts
|
||||
value = max_new_inspirations_per_year_value
|
||||
}
|
||||
|
||||
while = {
|
||||
limit = {
|
||||
AND = {
|
||||
local_var:try_create_inspiration_attempts > 0
|
||||
num_world_inspired_characters_value < ideal_total_world_inspirations
|
||||
}
|
||||
}
|
||||
grant_new_inspiration_in_world_effect = yes
|
||||
change_local_variable = {
|
||||
name = try_create_inspiration_attempts
|
||||
subtract = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
##################################################
|
||||
# Inspired Character Maintenance
|
||||
# Every Royal Court owner occasionally checks guests who have an Inspiration and, if unsponsored, moves them to a different Royal Court
|
||||
# by Sean Hughes
|
||||
# 1001-1101
|
||||
##################################################
|
||||
|
||||
inspiration_system.1001 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
has_ep1_dlc_trigger = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
every_pool_guest = {
|
||||
limit = {
|
||||
exists = inspiration
|
||||
NOR = {
|
||||
# Inspiration is not currently being sponsored
|
||||
inspiration = { exists = inspiration_sponsor }
|
||||
# Has not arrived at our court in the last X months (defined in 00_ep1_script_values.txt )
|
||||
has_character_flag = inspired_character_recent_arrival
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
inspiration = {
|
||||
days_since_creation > 3650
|
||||
}
|
||||
}
|
||||
# Destroy our inspiration, since nobody seems interested in sponsoring it.
|
||||
trigger_event = inspiration_system.1101
|
||||
}
|
||||
else = {
|
||||
# Look for a new royal court to visit.
|
||||
inspired_character_seek_out_new_royal_court_effect = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# After going an extended period of time without being recruited or having their Inspiration sponsored, characters lose it in order to make room for new Inspired characters in the pool.
|
||||
inspiration_system.1101 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
destroy_inspiration = inspiration
|
||||
move_to_pool = yes
|
||||
|
||||
# Unrealized potential is tough on people.
|
||||
random_list = {
|
||||
25 = {
|
||||
add_trait = depressed_1
|
||||
add_stress = minor_stress_gain
|
||||
}
|
||||
25 = {
|
||||
trigger = { can_be_drunkard = yes }
|
||||
add_trait = drunkard
|
||||
add_stress = minor_stress_gain
|
||||
}
|
||||
25 = {
|
||||
trigger = { can_be_hashishiyah = yes }
|
||||
add_trait = hashishiyah
|
||||
add_stress = minor_stress_gain
|
||||
}
|
||||
50 = {
|
||||
add_stress = major_stress_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inspiration_system.1200 = { # Courtier becomes Adventurer
|
||||
type = character_event
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
scope:antiquarian_from_task ?= {
|
||||
has_court_position = antiquarian_court_position
|
||||
}
|
||||
scope:adventure_target ?= {
|
||||
is_physically_able_adult = yes
|
||||
NOR = {
|
||||
exists = inspiration
|
||||
has_court_position = antiquarian_court_position
|
||||
}
|
||||
adventure_inspiration_average_skill_value >= medium_inspiration_skill
|
||||
host ?= root
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
send_interface_toast = {
|
||||
type = msg_court_inspiration
|
||||
left_icon = scope:adventure_target
|
||||
right_icon = scope:antiquarian_from_task
|
||||
title = antiquarian_inspired_adventurer_message
|
||||
desc = antiquarian_inspired_adventurer_effect
|
||||
scope:adventure_target = {
|
||||
create_inspiration = adventure_inspiration
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1200
N3OW/events/dlc/ep2/ep2_accolade_events.txt
Normal file
1200
N3OW/events/dlc/ep2/ep2_accolade_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1845
N3OW/events/dlc/ep2/wedding_events/ep2_bloody_wedding_events.txt
Normal file
1845
N3OW/events/dlc/ep2/wedding_events/ep2_bloody_wedding_events.txt
Normal file
File diff suppressed because it is too large
Load diff
23494
N3OW/events/dlc/ep2/wedding_events/ep2_wedding_events.txt
Normal file
23494
N3OW/events/dlc/ep2/wedding_events/ep2_wedding_events.txt
Normal file
File diff suppressed because it is too large
Load diff
6109
N3OW/events/dlc/ep2/wedding_events/ep2_wedding_events_ewan.txt
Normal file
6109
N3OW/events/dlc/ep2/wedding_events/ep2_wedding_events_ewan.txt
Normal file
File diff suppressed because it is too large
Load diff
696
N3OW/events/dlc/ep3/ep3_admin_events.txt
Normal file
696
N3OW/events/dlc/ep3/ep3_admin_events.txt
Normal file
|
|
@ -0,0 +1,696 @@
|
|||
namespace = ep3_admin_events
|
||||
|
||||
# Event to notify you that your liege has changed government and is no longer admin
|
||||
ep3_admin_events.0001 = {
|
||||
type = character_event
|
||||
title = ep3_admin_events.0001.t
|
||||
desc = {
|
||||
desc = ep3_admin_events.0001.intro # Fallback
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:tribal_gov }
|
||||
desc = ep3_admin_events.0001.tribal
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:feudal_gov }
|
||||
desc = ep3_admin_events.0001.feudal
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:clan_gov }
|
||||
desc = ep3_admin_events.0001.clan
|
||||
}
|
||||
desc = ep3_admin_events.0001.fallback
|
||||
}
|
||||
}
|
||||
theme = administrative
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = stubborn
|
||||
has_trait = paranoid
|
||||
}
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
animation = thinking
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:scribe
|
||||
animation = chancellor
|
||||
}
|
||||
lower_right_portrait = scope:liege
|
||||
|
||||
trigger = {
|
||||
is_landed = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
liege = {
|
||||
save_scope_as = liege
|
||||
switch = {
|
||||
trigger = government_has_flag
|
||||
government_is_tribal = {
|
||||
save_scope_as = tribal_gov
|
||||
}
|
||||
government_is_feudal = {
|
||||
save_scope_as = feudal_gov
|
||||
}
|
||||
government_is_clan = {
|
||||
save_scope_as = clan_gov
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
NOR = {
|
||||
exists = scope:tribal_gov
|
||||
exists = scope:feudal_gov
|
||||
exists = scope:clan_gov
|
||||
}
|
||||
}
|
||||
save_scope_as = feudal_gov
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = cp:councillor_chancellor
|
||||
cp:councillor_chancellor = { is_available_healthy_ai_adult = yes }
|
||||
}
|
||||
cp:councillor_chancellor = { save_scope_as = scribe }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
any_courtier = { is_available_healthy_ai_adult = yes }
|
||||
}
|
||||
ordered_courtier = {
|
||||
limit = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
order_by = diplomacy
|
||||
save_scope_as = scribe
|
||||
}
|
||||
}
|
||||
else = {
|
||||
create_character = {
|
||||
location = root.capital_province
|
||||
template = diplomacy_foreign_affairs_focus_friend_template
|
||||
faith = scope:liege.capital_county.faith
|
||||
culture = scope:liege.capital_county.culture
|
||||
save_scope_as = scribe
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:scribe = {
|
||||
assign_quirk_effect = yes
|
||||
}
|
||||
|
||||
admin_change_government_effect = yes
|
||||
}
|
||||
|
||||
option = { # I love change
|
||||
name = ep3_admin_events.0001.a
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = ep3_admin_change_love
|
||||
years = 15
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
lazy = medium_stress_impact_loss
|
||||
craven = medium_stress_impact_gain
|
||||
stubborn = medium_stress_impact_gain
|
||||
paranoid = medium_stress_impact_gain
|
||||
diligent = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = craven
|
||||
has_trait = stubborn
|
||||
has_trait = paranoid
|
||||
has_trait = diligent
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 2
|
||||
has_trait = lazy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # I hate this
|
||||
name = ep3_admin_events.0001.b
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = ep3_admin_change_hate
|
||||
years = 15
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
diligent = medium_stress_impact_loss
|
||||
brave = medium_stress_impact_gain
|
||||
lazy = medium_stress_impact_gain
|
||||
trusting = medium_stress_impact_gain
|
||||
fickle = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = brave
|
||||
has_trait = lazy
|
||||
has_trait = trusting
|
||||
has_trait = fickle
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 2
|
||||
has_trait = diligent
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # I don't care
|
||||
name = ep3_admin_events.0001.c
|
||||
|
||||
ai_chance = {
|
||||
base = 200
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ep3_admin_events.0002 = {
|
||||
type = character_event
|
||||
title = ep3_admin_events.0002.t
|
||||
desc = {
|
||||
first_valid = {
|
||||
triggered_desc = { # Liege
|
||||
trigger = { scope:previous_governor ?= root.liege }
|
||||
desc = ep3_admin_events.0002.liege
|
||||
}
|
||||
triggered_desc = { # Same house died
|
||||
trigger = {
|
||||
scope:previous_governor ?= {
|
||||
is_alive = no
|
||||
house = root.house
|
||||
}
|
||||
}
|
||||
desc = ep3_admin_events.0002.house_dead
|
||||
}
|
||||
triggered_desc = { # Same house fired
|
||||
trigger = {
|
||||
scope:previous_governor ?= {
|
||||
is_alive = yes
|
||||
house = root.house
|
||||
}
|
||||
}
|
||||
desc = ep3_admin_events.0002.house_alive
|
||||
}
|
||||
triggered_desc = { # Diff house died
|
||||
trigger = {
|
||||
scope:previous_governor ?= { is_alive = no }
|
||||
}
|
||||
desc = ep3_admin_events.0002.dead
|
||||
}
|
||||
triggered_desc = { # Diff house fired
|
||||
trigger = {
|
||||
scope:previous_governor ?= { is_alive = yes }
|
||||
}
|
||||
desc = ep3_admin_events.0002.alive
|
||||
}
|
||||
desc = ep3_admin_events.0002.new
|
||||
}
|
||||
first_valid = {
|
||||
triggered_desc = { # Same house
|
||||
trigger = { scope:previous_governor.house ?= root.house }
|
||||
desc = ep3_admin_events.0002.house
|
||||
}
|
||||
}
|
||||
#desc = double_line_break
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:appointment_succession }
|
||||
desc = ep3_admin_events.0002.appointment_succession
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:appointment }
|
||||
desc = ep3_admin_events.0002.appointment
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:conquest }
|
||||
desc = ep3_admin_events.0002.conquest
|
||||
}
|
||||
}
|
||||
desc = ep3_admin_events.0002.desc
|
||||
}
|
||||
theme = administrative
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = chancellor
|
||||
}
|
||||
lower_center_portrait = scope:previous_governor
|
||||
lower_right_portrait = {
|
||||
character = root.liege
|
||||
trigger = {
|
||||
root.liege != scope:previous_governor
|
||||
}
|
||||
}
|
||||
cooldown = { days = 1 }
|
||||
|
||||
trigger = {
|
||||
this != top_liege
|
||||
any_held_title = {
|
||||
tier = root.highest_held_title_tier
|
||||
is_landless_type_title = no
|
||||
is_noble_family_title = no
|
||||
}
|
||||
NOT = { has_character_flag = successful_governorship_elevation }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_sound_effect = "event:/DLC/EP3/SFX/Stingers/Byzantine_Flavor/ep3_mx_sting_byzantineflavor_become_governor"
|
||||
ordered_held_title = {
|
||||
limit = {
|
||||
tier = root.highest_held_title_tier
|
||||
is_landless_type_title = no
|
||||
is_noble_family_title = no
|
||||
}
|
||||
save_scope_as = governor_title
|
||||
previous_holder ?= { save_scope_as = previous_governor }
|
||||
if = {
|
||||
limit = {
|
||||
recent_history = { type = appointment_succession days = 1 }
|
||||
}
|
||||
save_scope_as = appointment_succession
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
recent_history = { type = appointment days = 1 }
|
||||
}
|
||||
save_scope_as = appointment
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
recent_history = { type = conquest days = 1 }
|
||||
}
|
||||
save_scope_as = conquest
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_admin_events.0002.prosperity
|
||||
trigger = {
|
||||
is_landed = yes
|
||||
government_has_flag = government_has_merit
|
||||
}
|
||||
flavor = building_buildings_give_merit_tt
|
||||
custom_tooltip = ep3_admin_events.0002.tt
|
||||
add_character_modifier = {
|
||||
modifier = tgp_diligent_governor_modifier
|
||||
years = 3
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
lazy = medium_stress_impact_gain
|
||||
diligent = miniscule_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_admin_events.0002.inspection
|
||||
trigger = {
|
||||
is_landed = yes
|
||||
government_has_flag = government_has_merit
|
||||
any_held_title = {
|
||||
tier = tier_county
|
||||
is_landless_type_title = no
|
||||
count >= 1
|
||||
}
|
||||
}
|
||||
flavor = inspections_give_merit_tt
|
||||
custom_tooltip = ep3_admin_events.0002.tt
|
||||
custom_tooltip = ep3_admin_events.0002.tt_inspection
|
||||
|
||||
add_character_flag = free_inspection
|
||||
|
||||
stress_impact = {
|
||||
lazy = medium_stress_impact_gain
|
||||
diligent = miniscule_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_admin_events.0002.a
|
||||
custom_tooltip = ep3_admin_events.0002.tt
|
||||
stress_impact = {
|
||||
base = miniscule_stress_impact_loss
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
if = {
|
||||
limit = {
|
||||
is_ai = yes
|
||||
}
|
||||
domicile ?= {
|
||||
move_domicile = root.capital_province
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Your admin liege changed government, and you have to do so as well
|
||||
ep3_admin_events.0003 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
government_allows = administrative
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Let's evaluate and see which event you should get
|
||||
if = { # If you are still landed and remain a vassal
|
||||
limit = {
|
||||
is_landed = yes
|
||||
liege != root
|
||||
}
|
||||
trigger_event = ep3_admin_events.0001
|
||||
}
|
||||
else_if = { # You are still landed and become independent
|
||||
limit = {
|
||||
is_landed = yes
|
||||
liege = root
|
||||
}
|
||||
trigger_event = ep3_admin_events.0005
|
||||
}
|
||||
else_if = { # You became unlanded - Let's go on an adventure!
|
||||
limit = { # Assuming you are a player
|
||||
is_landed = no
|
||||
}
|
||||
trigger_event = ep3_admin_events.0004
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Event to make admin into adventurers
|
||||
ep3_admin_events.0004 = {
|
||||
type = character_event
|
||||
title = ep3_admin_events.0004.t
|
||||
desc = {
|
||||
desc = ep3_admin_events.0004.desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:reacting_spouse
|
||||
scope:reacting_spouse = {
|
||||
OR = {
|
||||
has_trait = gluttonous
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = ep3_admin_events.0004.desc_spouse_very_upset
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:reacting_spouse }
|
||||
desc = ep3_admin_events.0004.desc_spouse_upset
|
||||
}
|
||||
}
|
||||
}
|
||||
theme = landless_adventurer
|
||||
override_background = { reference = estate }
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = eccentric
|
||||
has_trait = brave
|
||||
}
|
||||
}
|
||||
#animation = delirium
|
||||
animation = disappointed
|
||||
}
|
||||
animation = disbelief
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:reacting_spouse
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = gluttonous
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
animation = crying
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = { # Destroy your noble family title if you have one
|
||||
limit = {
|
||||
any_held_title = {
|
||||
is_noble_family_title = yes
|
||||
}
|
||||
}
|
||||
every_held_title = {
|
||||
limit = {
|
||||
is_noble_family_title = yes
|
||||
}
|
||||
save_temporary_scope_as = family_title
|
||||
prev = { destroy_title = scope:family_title }
|
||||
}
|
||||
}
|
||||
if = { # Become an adventurer
|
||||
limit = { is_ai = no }
|
||||
create_landless_adventurer_title_effect = {
|
||||
REASON = flag:runaway_allowed
|
||||
FLAVOR_CHAR = root
|
||||
}
|
||||
hidden_effect = {
|
||||
contract_passive_spawn_effect = {
|
||||
SPAWN_CONTRACTS = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
if = { # If you are married, let's save your spouse as a scope for some added flavor
|
||||
limit = {
|
||||
is_married = yes
|
||||
any_spouse = {
|
||||
employer = root
|
||||
}
|
||||
}
|
||||
random_spouse = {
|
||||
limit = { employer = root }
|
||||
save_scope_as = reacting_spouse
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = {
|
||||
trigger = {
|
||||
exists = scope:reacting_spouse
|
||||
scope:reacting_spouse = {
|
||||
OR = {
|
||||
has_trait = gluttonous
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
}
|
||||
text = ep3_admin_events.0004.a
|
||||
}
|
||||
name = {
|
||||
trigger = {
|
||||
exists = scope:reacting_spouse
|
||||
scope:reacting_spouse = {
|
||||
NOR = {
|
||||
has_trait = gluttonous
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
}
|
||||
text = ep3_admin_events.0004.b
|
||||
}
|
||||
name = {
|
||||
trigger = {
|
||||
NOT = { exists = scope:reacting_spouse }
|
||||
}
|
||||
text = ep3_admin_events.0004.c
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Notification event that you became independent
|
||||
ep3_admin_events.0005 = {
|
||||
type = character_event
|
||||
title = ep3_admin_events.0005.t
|
||||
desc = {
|
||||
desc = ep3_admin_events.0005.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { exists = scope:still_admin }
|
||||
desc = ep3_admin_events.0005.desc_still_admin
|
||||
}
|
||||
desc = ep3_admin_events.0005.desc_lost_admin
|
||||
}
|
||||
}
|
||||
theme = administrative
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = fickle
|
||||
has_trait = lazy
|
||||
has_trait = paranoid
|
||||
}
|
||||
}
|
||||
animation = stress
|
||||
}
|
||||
animation = interested
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:messenger
|
||||
animation = chancellor
|
||||
}
|
||||
lower_right_portrait = scope:gov_liege
|
||||
|
||||
immediate = {
|
||||
# Let's find a character to bring us these news
|
||||
if = {
|
||||
limit = {
|
||||
exists = cp:councillor_chancellor
|
||||
cp:councillor_chancellor = { is_available_healthy_ai_adult = yes }
|
||||
}
|
||||
cp:councillor_chancellor = { save_scope_as = messenger }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
any_courtier = { is_available_healthy_ai_adult = yes }
|
||||
}
|
||||
ordered_courtier = {
|
||||
limit = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
order_by = diplomacy
|
||||
save_scope_as = messenger
|
||||
}
|
||||
}
|
||||
else = {
|
||||
create_character = {
|
||||
location = root.capital_province
|
||||
template = diplomacy_foreign_affairs_focus_friend_template
|
||||
faith = root.capital_county.faith
|
||||
culture = root.capital_county.culture
|
||||
save_scope_as = messenger
|
||||
}
|
||||
}
|
||||
|
||||
# Show this to make it clear to the player that you became independent
|
||||
show_as_tooltip = {
|
||||
create_title_and_vassal_change = {
|
||||
type = independency
|
||||
save_scope_as = change
|
||||
add_claim_on_loss = no
|
||||
}
|
||||
becomes_independent = { change = scope:change }
|
||||
resolve_title_and_vassal_change = scope:change
|
||||
}
|
||||
if = { # You are allowed to keep admin as your government
|
||||
limit = {
|
||||
highest_held_title_tier >= tier_kingdom
|
||||
culture ?= { has_cultural_parameter = can_adopt_administrative_government_as_kingdom_tier }
|
||||
}
|
||||
save_scope_as = still_admin
|
||||
}
|
||||
else = { # You change your government
|
||||
admin_change_government_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_admin_events.0005.a
|
||||
# We handle everything in the immediate
|
||||
}
|
||||
}
|
||||
|
||||
# Reception Hall domicile upgrade provides legitimacy
|
||||
# We put it in a delayed event to make sure that we can notify the player of the effect, so they can see it
|
||||
ep3_admin_events.0010 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
save_scope_as = legitimacy_gainer
|
||||
|
||||
# We first send the notification of the legitimacy being granted
|
||||
house = {
|
||||
every_house_member = {
|
||||
limit = { is_ai = no }
|
||||
send_interface_message = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_dynasty_legacy_gain_legitimacy_effect_title
|
||||
left_icon = root
|
||||
right_icon = root.primary_title
|
||||
show_as_tooltip = {
|
||||
scope:legitimacy_gainer = { add_legitimacy = house.var:ep3_legacy_legitimacy_counter }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Then we add the actual legitimacy
|
||||
add_legitimacy = house.var:ep3_legacy_legitimacy_counter
|
||||
|
||||
# Finally, let's reset the counter according to building level
|
||||
house = {
|
||||
if = {
|
||||
limit = {
|
||||
house_head.domicile ?= { has_domicile_parameter = reception_hall_legitimacy_loss_04 }
|
||||
}
|
||||
change_variable = {
|
||||
name = ep3_legacy_legitimacy_counter
|
||||
multiply = 0.75
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
house_head.domicile ?= { has_domicile_parameter = reception_hall_legitimacy_loss_03 }
|
||||
}
|
||||
change_variable = {
|
||||
name = ep3_legacy_legitimacy_counter
|
||||
multiply = 0.5
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
house_head.domicile ?= { has_domicile_parameter = reception_hall_legitimacy_loss_02 }
|
||||
}
|
||||
change_variable = {
|
||||
name = ep3_legacy_legitimacy_counter
|
||||
multiply = 0.25
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
house_head.domicile ?= { has_domicile_parameter = reception_hall_legitimacy_loss_01 }
|
||||
}
|
||||
change_variable = {
|
||||
name = ep3_legacy_legitimacy_counter
|
||||
multiply = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
332
N3OW/events/dlc/ep3/ep3_akolouthos_events.txt
Normal file
332
N3OW/events/dlc/ep3/ep3_akolouthos_events.txt
Normal file
|
|
@ -0,0 +1,332 @@
|
|||
namespace = ep3_akolouthos_events
|
||||
|
||||
# Varangian-eligible courtier gains Varangian or Varangian gains Loyal
|
||||
ep3_akolouthos_events.1000 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
OR = {
|
||||
# A varangian who isn't loyal
|
||||
any_courtier = {
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
#An eligible Varangian who doesn't have the trait
|
||||
any_courtier = {
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = 1
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
add = 1
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
NOT = { has_trait = loyal }
|
||||
has_trait = varangian
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
add = 1
|
||||
any_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
save_scope_as = akolouthos
|
||||
}
|
||||
#Most important that Varangian Akolouthos becomes Varangian
|
||||
if = {
|
||||
limit = {
|
||||
any_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
random_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
limit = {
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_varangian = yes
|
||||
}
|
||||
#Second-most important: Varangian bodyguard becomes Varangian
|
||||
else_if = {
|
||||
limit = {
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
random_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
limit = {
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_varangian = yes
|
||||
}
|
||||
#Then either add loyal to a Varangian bodyguard or to Akolouthos
|
||||
else_if = {
|
||||
limit = {
|
||||
OR = {
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
any_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
}
|
||||
}
|
||||
random_list = {
|
||||
#Add loyal to a Varangian bodyguard
|
||||
10 = {
|
||||
trigger = {
|
||||
any_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
}
|
||||
random_court_position_holder = {
|
||||
type = bodyguard_court_position
|
||||
limit = {
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_loyal = yes
|
||||
}
|
||||
#Add loyal to a Varangian akolouthos
|
||||
10 = {
|
||||
trigger = {
|
||||
any_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
}
|
||||
random_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
limit = {
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_loyal = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
#Add Varangian to some non-Varangian Varangian
|
||||
else_if = {
|
||||
limit = {
|
||||
any_courtier = {
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
random_courtier = {
|
||||
limit = {
|
||||
NOT = { has_trait = varangian }
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_varangian = yes
|
||||
}
|
||||
#Add loyal to some non-bodyguard Varangian
|
||||
else = {
|
||||
random_courtier = {
|
||||
limit = {
|
||||
has_trait = varangian
|
||||
NOT = { has_trait = loyal }
|
||||
}
|
||||
save_scope_as = trait_getter
|
||||
}
|
||||
ep3_send_akolouthos_message_loyal = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Akolouthos recruits Varangian
|
||||
ep3_akolouthos_events.1001 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
#Don't really need this if root is swarming in Varangians already
|
||||
NOT = {
|
||||
any_courtier_or_guest = {
|
||||
count >= 8
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
#Weigh up chances if Varangians are needed to fill posts
|
||||
modifier = {
|
||||
add = 1
|
||||
NOT = {
|
||||
any_courtier_or_guest = {
|
||||
count >= 3
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_court_position_holder = {
|
||||
type = akolouthos_court_position
|
||||
save_scope_as = akolouthos
|
||||
}
|
||||
#Find a candidate in the local pool
|
||||
if = {
|
||||
limit = {
|
||||
is_landed = yes
|
||||
any_pool_character = {
|
||||
province = root.capital_province
|
||||
ep3_varangian_trigger = yes
|
||||
prowess > low_skill_rating
|
||||
}
|
||||
}
|
||||
random_pool_character = {
|
||||
province = root.capital_province
|
||||
limit = {
|
||||
ep3_varangian_trigger = yes
|
||||
prowess > low_skill_rating
|
||||
}
|
||||
save_scope_as = new_varangian
|
||||
}
|
||||
scope:new_varangian = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { has_trait = varangian }
|
||||
}
|
||||
hidden_effect = {
|
||||
add_trait = varangian
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#Find a candidate in pools of akolouthos's culture
|
||||
else_if = {
|
||||
limit = {
|
||||
scope:akolouthos = {
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
exists = scope:akolouthos.culture.culture_head
|
||||
scope:akolouthos.culture.culture_head = {
|
||||
is_landed = yes
|
||||
}
|
||||
any_pool_character = {
|
||||
province = scope:akolouthos.culture.culture_head.capital_province
|
||||
ep3_varangian_trigger = yes
|
||||
prowess >= low_skill_rating
|
||||
}
|
||||
}
|
||||
scope:akolouthos.culture.culture_head = {
|
||||
save_scope_as = akolouthos_culture_head
|
||||
}
|
||||
random_pool_character = {
|
||||
province = scope:akolouthos_culture_head.capital_province
|
||||
limit = {
|
||||
ep3_varangian_trigger = yes
|
||||
prowess > low_skill_rating
|
||||
}
|
||||
save_scope_as = new_varangian
|
||||
}
|
||||
scope:new_varangian = {
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { has_trait = varangian }
|
||||
}
|
||||
hidden_effect = {
|
||||
add_trait = varangian
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#Create a candidate
|
||||
else_if = {
|
||||
limit = {
|
||||
scope:akolouthos = {
|
||||
ep3_varangian_trigger = yes
|
||||
}
|
||||
}
|
||||
create_character = {
|
||||
template = varangian_template
|
||||
location = root.location
|
||||
culture = scope:akolouthos.culture
|
||||
faith = scope:akolouthos.faith
|
||||
dynasty = none
|
||||
save_scope_as = new_varangian
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
current_date < 990
|
||||
}
|
||||
#Norse
|
||||
create_character = {
|
||||
template = varangian_template
|
||||
location = root.location
|
||||
culture = culture:norse
|
||||
faith = root.faith
|
||||
dynasty = none
|
||||
save_scope_as = new_varangian
|
||||
}
|
||||
}
|
||||
else = {
|
||||
#Anglo-Saxon
|
||||
create_character = {
|
||||
template = varangian_template
|
||||
location = root.location
|
||||
culture = culture:anglo_saxon
|
||||
faith = root.faith
|
||||
dynasty = none
|
||||
save_scope_as = new_varangian
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
type = event_martial_good_with_text
|
||||
title = ep3_akolouthos_events.1001
|
||||
desc = ep3_akolouthos_events.1001_notification_tooltip
|
||||
tooltip = akolouthos_effect_tooltip
|
||||
left_icon = scope:new_varangian
|
||||
right_icon = scope:akolouthos
|
||||
add_courtier = scope:new_varangian
|
||||
}
|
||||
}
|
||||
}
|
||||
3727
N3OW/events/dlc/ep3/ep3_camp_party_events.txt
Normal file
3727
N3OW/events/dlc/ep3/ep3_camp_party_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1528
N3OW/events/dlc/ep3/ep3_camp_temperament_events.txt
Normal file
1528
N3OW/events/dlc/ep3/ep3_camp_temperament_events.txt
Normal file
File diff suppressed because it is too large
Load diff
10151
N3OW/events/dlc/ep3/ep3_contract_events.txt
Normal file
10151
N3OW/events/dlc/ep3/ep3_contract_events.txt
Normal file
File diff suppressed because it is too large
Load diff
173
N3OW/events/dlc/ep3/ep3_councillor_events.txt
Normal file
173
N3OW/events/dlc/ep3/ep3_councillor_events.txt
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
########################
|
||||
# EP3 Councillors Events
|
||||
########################
|
||||
namespace = ep3_councillor_event
|
||||
|
||||
# Spouse increases your Influence
|
||||
ep3_councillor_event.0001 = {
|
||||
hidden = yes
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
valid_spouse_councillor_trigger = yes
|
||||
government_allows = administrative
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
councillor_spouse_limited_skill_rating_modifier = {
|
||||
SKILL = intrigue
|
||||
SCALE = 1
|
||||
SKILL_RATING = spouse_skill_rating_1
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
cp:councillor_spouse = {
|
||||
save_scope_as = councillor
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_spouse_task_good
|
||||
title = ep3_councillor_event.0001.t
|
||||
desc = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:councillor = { diplomacy < average_skill_level }
|
||||
}
|
||||
desc = spouse_task_diplomacy_good_unskilled_notification_tooltip
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:councillor = { diplomacy >= average_skill_level }
|
||||
}
|
||||
desc = spouse_task_diplomacy_good_skilled_notification_tooltip
|
||||
}
|
||||
}
|
||||
|
||||
right_icon = scope:councillor
|
||||
|
||||
change_influence = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:councillor = {
|
||||
culture = { has_cultural_tradition = tradition_ep3_palace_politics }
|
||||
}
|
||||
}
|
||||
add = medium_influence_gain
|
||||
}
|
||||
else = {
|
||||
add = minor_influence_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Spouse increases your candidate score for a title if you are in to inherit
|
||||
ep3_councillor_event.0002 = {
|
||||
hidden = yes
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
valid_spouse_councillor_trigger = yes
|
||||
government_allows = administrative
|
||||
top_liege = {
|
||||
any_sub_realm_title = {
|
||||
tier >= tier_duchy
|
||||
is_noble_family_title = no
|
||||
holder = { government_allows = administrative }
|
||||
any_title_heir = {
|
||||
prev = { # For getting the correct title
|
||||
place_in_line_of_succession = {
|
||||
target = prev # And again for going back and getting the correct character
|
||||
value <= 3
|
||||
}
|
||||
}
|
||||
this = root
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
councillor_spouse_limited_skill_rating_modifier = {
|
||||
SKILL = diplomacy
|
||||
SCALE = 1
|
||||
SKILL_RATING = spouse_skill_rating_1
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
cp:councillor_spouse = {
|
||||
save_scope_as = councillor
|
||||
}
|
||||
top_liege = {
|
||||
random_sub_realm_title = {
|
||||
limit = {
|
||||
tier >= tier_duchy
|
||||
is_noble_family_title = no
|
||||
holder = { government_allows = administrative }
|
||||
any_title_heir = {
|
||||
prev = {
|
||||
place_in_line_of_succession = {
|
||||
target = prev
|
||||
value <= 3
|
||||
}
|
||||
}
|
||||
this = root
|
||||
}
|
||||
}
|
||||
save_scope_as = target_title
|
||||
}
|
||||
}
|
||||
save_scope_value_as = {
|
||||
name = improved_candidate_score
|
||||
value = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:councillor = {
|
||||
culture = { has_cultural_tradition = tradition_ep3_palace_politics }
|
||||
}
|
||||
}
|
||||
add = 15
|
||||
}
|
||||
else = {
|
||||
add = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
send_interface_message = {
|
||||
type = msg_spouse_task_good
|
||||
title = ep3_councillor_event.0002.t
|
||||
desc = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:councillor = { diplomacy < average_skill_level }
|
||||
}
|
||||
desc = spouse_task_diplomacy_good_unskilled_notification_tooltip
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:councillor = { diplomacy >= average_skill_level }
|
||||
}
|
||||
desc = spouse_task_diplomacy_good_skilled_notification_tooltip
|
||||
}
|
||||
}
|
||||
|
||||
right_icon = scope:councillor
|
||||
left_icon = scope:target_title
|
||||
|
||||
custom_tooltip = ep3_councillor_event.0002.desc
|
||||
|
||||
scope:target_title = {
|
||||
change_appointment_investment = {
|
||||
target = root
|
||||
value = scope:improved_candidate_score
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2206
N3OW/events/dlc/ep3/ep3_emperor_yearly_8.txt
Normal file
2206
N3OW/events/dlc/ep3/ep3_emperor_yearly_8.txt
Normal file
File diff suppressed because it is too large
Load diff
22296
N3OW/events/dlc/ep3/ep3_laamp_decision_events.txt
Normal file
22296
N3OW/events/dlc/ep3/ep3_laamp_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
9054
N3OW/events/dlc/ep3/ep3_laamp_events.txt
Normal file
9054
N3OW/events/dlc/ep3/ep3_laamp_events.txt
Normal file
File diff suppressed because it is too large
Load diff
3979
N3OW/events/dlc/ep3/ep3_laamp_events_8.txt
Normal file
3979
N3OW/events/dlc/ep3/ep3_laamp_events_8.txt
Normal file
File diff suppressed because it is too large
Load diff
1118
N3OW/events/dlc/ep3/ep3_laamp_flavor.txt
Normal file
1118
N3OW/events/dlc/ep3/ep3_laamp_flavor.txt
Normal file
File diff suppressed because it is too large
Load diff
328
N3OW/events/dlc/ep3/ep3_laamp_flavor_oltner.txt
Normal file
328
N3OW/events/dlc/ep3/ep3_laamp_flavor_oltner.txt
Normal file
|
|
@ -0,0 +1,328 @@
|
|||
namespace = ep3_laamp_flavor_oltner
|
||||
|
||||
scripted_trigger suitable_pool_marriage_trigger = {
|
||||
save_temporary_scope_as = pool_marriage_target
|
||||
is_physically_able_adult = yes
|
||||
allowed_to_marry_character_gender_trigger = { CHARACTER = $FOLLOWER_TARGET$ }
|
||||
$FOLLOWER_TARGET$ ?= { allowed_to_marry_character_gender_trigger = { CHARACTER = prev } }
|
||||
are_characters_sensible_lovers_trigger = { INSTIGATING_LOVER = $FOLLOWER_TARGET$ TARGET_OF_LOVE = scope:pool_marriage_target }
|
||||
is_married = no
|
||||
can_marry_trigger = yes
|
||||
is_concubine = no
|
||||
NOT = {
|
||||
exists = betrothed
|
||||
}
|
||||
has_no_particular_noble_roots_trigger = yes
|
||||
}
|
||||
|
||||
scripted_trigger suitable_follower_marriage_character_trigger = {
|
||||
is_physically_able_adult = yes
|
||||
this != root
|
||||
is_married = no
|
||||
can_marry_trigger = yes
|
||||
is_concubine = no
|
||||
age <= 50
|
||||
health >= fine_health
|
||||
NOR = {
|
||||
house = root.house
|
||||
is_close_family_of = root
|
||||
exists = betrothed
|
||||
has_relation_rival = root
|
||||
}
|
||||
save_temporary_scope_as = entourage_member
|
||||
any_pool_character = {
|
||||
province = root.location
|
||||
age <= 40
|
||||
health >= fine_health
|
||||
suitable_pool_marriage_trigger = { FOLLOWER_TARGET = scope:entourage_member }
|
||||
}
|
||||
}
|
||||
|
||||
# A Follower's Heart
|
||||
ep3_laamp_flavor_oltner.0001 = {
|
||||
type = character_event
|
||||
title = ep3_laamp_flavor_oltner.3001.t
|
||||
desc = ep3_laamp_flavor_oltner.3001.desc
|
||||
theme = marriage
|
||||
override_background = { reference = market_scope }
|
||||
left_portrait = {
|
||||
character = scope:entourage_to_marry_2
|
||||
animation = beg
|
||||
camera = camera_event_very_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:marriage_material
|
||||
animation = dismissal
|
||||
camera = camera_event_right_pointing_left
|
||||
}
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_government = landless_adventurer_government
|
||||
location = {
|
||||
has_holding = yes
|
||||
}
|
||||
any_courtier = {
|
||||
suitable_follower_marriage_character_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
save_scope_as = root_char
|
||||
random_courtier = {
|
||||
limit = {
|
||||
suitable_follower_marriage_character_trigger = yes
|
||||
}
|
||||
save_scope_as = entourage_to_marry_2
|
||||
}
|
||||
random_pool_character = {
|
||||
province = root.location
|
||||
limit = {
|
||||
suitable_pool_marriage_trigger = { FOLLOWER_TARGET = scope:entourage_to_marry_2 }
|
||||
}
|
||||
save_scope_as = marriage_material
|
||||
}
|
||||
location.county.title_province = { save_scope_as = background_market_scope }
|
||||
}
|
||||
|
||||
option = { # Tell them to pay it themselves
|
||||
name = ep3_laamp_flavor_oltner.0001.a
|
||||
|
||||
trigger = {
|
||||
scope:entourage_to_marry_2.gold >= {
|
||||
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
|
||||
}
|
||||
}
|
||||
|
||||
scope:entourage_to_marry_2 = {
|
||||
remove_short_term_gold = {
|
||||
add = scope:marriage_material.sum_of_all_skills_value
|
||||
add = scope:marriage_material.prowess
|
||||
}
|
||||
}
|
||||
|
||||
add_courtier = scope:marriage_material
|
||||
scope:entourage_to_marry_2 = {
|
||||
if = {
|
||||
limit = {
|
||||
is_female = yes
|
||||
is_lowborn = no
|
||||
scope:marriage_material = {
|
||||
is_lowborn = yes
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
is_male = yes
|
||||
is_lowborn = yes
|
||||
scope:marriage_material = {
|
||||
is_lowborn = no
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else = {
|
||||
marry = scope:marriage_material
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Pay the dowry
|
||||
name = ep3_laamp_flavor_oltner.0001.b
|
||||
stress_impact = {
|
||||
generous = massive_stress_impact_loss
|
||||
greedy = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
remove_short_term_gold = {
|
||||
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
|
||||
}
|
||||
|
||||
add_courtier = scope:marriage_material
|
||||
scope:entourage_to_marry_2 = {
|
||||
if = {
|
||||
limit = {
|
||||
is_female = yes
|
||||
is_lowborn = no
|
||||
scope:marriage_material = {
|
||||
is_lowborn = yes
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
is_male = yes
|
||||
is_lowborn = yes
|
||||
scope:marriage_material = {
|
||||
is_lowborn = no
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else = {
|
||||
marry = scope:marriage_material
|
||||
}
|
||||
progress_towards_friend_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = 0
|
||||
REASON = friend_helped_me_marry
|
||||
}
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = grateful_opinion
|
||||
opinion = 50
|
||||
}
|
||||
}
|
||||
|
||||
scope:marriage_material = { save_scope_as = relationship_reason_involved_character }
|
||||
|
||||
clear_saved_scope = relationship_reason_involved_character
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = greedy
|
||||
gold <= {
|
||||
add = scope:marriage_material.sum_of_all_skills_and_prowess_value
|
||||
multiply = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Convince them to run away with you
|
||||
name = ep3_laamp_flavor_oltner.0001.c
|
||||
skill = intrigue
|
||||
stress_impact = {
|
||||
generous = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
duel = {
|
||||
skill = intrigue
|
||||
value = high_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_laamp_flavor_oltner.0001.c.success
|
||||
send_interface_toast = {
|
||||
title = ep3_laamp_flavor_oltner.0001.c.success
|
||||
left_icon = scope:entourage_to_marry_2
|
||||
right_icon = scope:marriage_material
|
||||
add_courtier = scope:marriage_material
|
||||
scope:entourage_to_marry_2 = {
|
||||
if = {
|
||||
limit = {
|
||||
is_female = yes
|
||||
is_lowborn = no
|
||||
scope:marriage_material = {
|
||||
is_lowborn = yes
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
is_male = yes
|
||||
is_lowborn = yes
|
||||
scope:marriage_material = {
|
||||
is_lowborn = no
|
||||
}
|
||||
}
|
||||
marry_matrilineal = scope:marriage_material
|
||||
}
|
||||
else = {
|
||||
marry = scope:marriage_material
|
||||
}
|
||||
progress_towards_friend_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = 0
|
||||
REASON = friend_helped_me_marry
|
||||
}
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = grateful_opinion
|
||||
opinion = 50
|
||||
}
|
||||
}
|
||||
|
||||
scope:marriage_material = { save_scope_as = relationship_reason_involved_character }
|
||||
clear_saved_scope = relationship_reason_involved_character
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_laamp_flavor_oltner.0001.c.failure
|
||||
send_interface_toast = {
|
||||
title = ep3_laamp_flavor_oltner.0001.c.failure
|
||||
left_icon = scope:entourage_to_marry_2
|
||||
right_icon = scope:marriage_material
|
||||
scope:entourage_to_marry_2 = {
|
||||
add_stress = medium_stress_gain
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = disappointed_opinion
|
||||
opinion = -30
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 10
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_trait = generous
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Ignore your follower
|
||||
name = ep3_laamp_flavor_oltner.0001.d
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_gain
|
||||
generous = medium_stress_impact_gain
|
||||
callous = minor_stress_impact_loss
|
||||
sadistic = minor_stress_impact_loss
|
||||
chaste = minor_stress_impact_loss
|
||||
shy = minor_stress_impact_loss
|
||||
}
|
||||
scope:entourage_to_marry_2 = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = heartbroken_opinion
|
||||
opinion = -30
|
||||
}
|
||||
}
|
||||
ai_chance = {
|
||||
base = 10
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = compassionate
|
||||
has_trait = generous
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23648
N3OW/events/dlc/ep3/ep3_laamp_flavour_ewan_events.txt
Normal file
23648
N3OW/events/dlc/ep3/ep3_laamp_flavour_ewan_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1157
N3OW/events/dlc/ep3/ep3_laamps_provisions.txt
Normal file
1157
N3OW/events/dlc/ep3/ep3_laamps_provisions.txt
Normal file
File diff suppressed because it is too large
Load diff
2280
N3OW/events/dlc/ep3/ep3_landless_admin_events.txt
Normal file
2280
N3OW/events/dlc/ep3/ep3_landless_admin_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2038
N3OW/events/dlc/ep3/ep3_powerful_families_8.txt
Normal file
2038
N3OW/events/dlc/ep3/ep3_powerful_families_8.txt
Normal file
File diff suppressed because it is too large
Load diff
521
N3OW/events/dlc/ep3/ep3_roman_restoration_events.txt
Normal file
521
N3OW/events/dlc/ep3/ep3_roman_restoration_events.txt
Normal file
|
|
@ -0,0 +1,521 @@
|
|||
namespace = ep3_roman_restoration
|
||||
|
||||
#######################################
|
||||
###
|
||||
### EP3 RESTORE ROME STORY CYCLE EVENTS
|
||||
### by Chad Uhl
|
||||
###
|
||||
### 0100 Justinian's Dream
|
||||
### 0101-0109 Rome Reformed Notifications
|
||||
### 0300-0590 Post-Restoration Difficulties
|
||||
###
|
||||
#######################################
|
||||
|
||||
# Justinian's Dream
|
||||
# Event fired on story cycle setup informing the player that they can form the roman empire
|
||||
ep3_roman_restoration.0001 = {
|
||||
type = character_event
|
||||
title = ep3_roman_restoration.0001.t
|
||||
desc = ep3_roman_restoration.0001.desc
|
||||
theme = emperor
|
||||
|
||||
override_background = {
|
||||
trigger = { capital_county = title:c_byzantion }
|
||||
reference = ep3_constantinople
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = emotion_thinking_scepter
|
||||
}
|
||||
|
||||
trigger = {
|
||||
NOT = { has_global_variable = flag_restored_roman_empire }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_roman_restoration.0001.a
|
||||
custom_tooltip = ep3_roman_restoration.0001.a.tt
|
||||
decision:restore_roman_empire_decision = {
|
||||
open_view_data = {
|
||||
view = decision_detail
|
||||
player = root
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Should I LARP or nah?
|
||||
ep3_roman_restoration.0100 = {
|
||||
type = character_event
|
||||
window = fullscreen_event
|
||||
title = ep3_roman_restoration.0100.t
|
||||
desc = ep3_roman_restoration.0100.desc
|
||||
theme = emperor
|
||||
override_background = { reference = ep3_fullscreen_restore_rome }
|
||||
|
||||
immediate = {
|
||||
save_scope_as = scoped_emperor
|
||||
}
|
||||
|
||||
option = { # LARP (Hard Mode)
|
||||
name = ep3_roman_restoration.0100.a
|
||||
custom_tooltip = ep3_roman_restoration.hard_mode
|
||||
custom_tooltip = ep3_roman_restoration.end_hard_mode
|
||||
custom_tooltip = ep3_roman_restoration.invasion_cb
|
||||
every_held_title = {
|
||||
limit = {
|
||||
is_head_of_faith = yes
|
||||
}
|
||||
root = {
|
||||
destroy_title = prev
|
||||
}
|
||||
}
|
||||
set_character_faith = faith:hellenic_pagan
|
||||
primary_title = { set_state_faith = faith:hellenic_pagan }
|
||||
every_held_title = {
|
||||
custom = custom.every_held_county
|
||||
title_tier = county
|
||||
set_county_faith = faith:hellenic_pagan
|
||||
}
|
||||
every_vassal = {
|
||||
custom = custom.every_vassal
|
||||
limit = {
|
||||
NOT = {
|
||||
any_held_title = {
|
||||
is_head_of_faith = yes # you cannot convert the Ecumenical Patriarch, sorry
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = may_choose_to_convert_hellenic_desc
|
||||
run_interaction = { # We use the same interaction as when creating a new faith to keep a consistent behaviour, since that is essentially what you're doing here
|
||||
interaction = ask_for_conversion_interaction
|
||||
actor = root
|
||||
recipient = this
|
||||
execute_threshold = accept
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = ep3_roman_restoration.household_gods_tenet
|
||||
set_global_variable = household_gods_tenet_unlocked
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = uses_custom_caesar_flavourization_tt
|
||||
set_variable = uses_custom_caesar_flavourization
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
any_owned_story = { type = ep3_story_cycle_restoring_rome }
|
||||
}
|
||||
random_owned_story = {
|
||||
type = ep3_story_cycle_restoring_rome
|
||||
set_variable = roman_empire_hard_mode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Roleplay option (become Hellenic without Hard Mode)
|
||||
name = ep3_roman_restoration.0100.c
|
||||
custom_tooltip = ep3_roman_restoration.easy_mode
|
||||
every_held_title = {
|
||||
limit = {
|
||||
is_head_of_faith = yes
|
||||
}
|
||||
root = {
|
||||
destroy_title = prev
|
||||
}
|
||||
}
|
||||
set_character_faith = faith:hellenic_pagan
|
||||
primary_title = { set_state_faith = faith:hellenic_pagan }
|
||||
every_held_title = {
|
||||
custom = custom.every_held_county
|
||||
title_tier = county
|
||||
set_county_faith = faith:hellenic_pagan
|
||||
}
|
||||
every_vassal = {
|
||||
custom = custom.every_vassal
|
||||
limit = {
|
||||
NOT = {
|
||||
any_held_title = {
|
||||
is_head_of_faith = yes # you cannot convert the Ecumenical Patriarch, sorry
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = may_choose_to_convert_hellenic_desc
|
||||
run_interaction = { # We use the same interaction as when creating a new faith to keep a consistent behaviour, since that is essentially what you're doing here
|
||||
interaction = ask_for_conversion_interaction
|
||||
actor = root
|
||||
recipient = this
|
||||
execute_threshold = accept
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = ep3_roman_restoration.household_gods_tenet
|
||||
set_global_variable = household_gods_tenet_unlocked
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = uses_custom_caesar_flavourization_tt
|
||||
set_variable = uses_custom_caesar_flavourization
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Easy Mode
|
||||
name = ep3_roman_restoration.0100.b
|
||||
custom_tooltip = ep3_roman_restoration.easy_mode
|
||||
}
|
||||
|
||||
after = {
|
||||
create_roman_empire_scripted_effect = yes
|
||||
set_nickname_effect = { NICKNAME = nick_the_glorious }
|
||||
# Send narrative fluff to other players (if any).
|
||||
every_player = {
|
||||
limit = { this != root }
|
||||
trigger_event = ep3_roman_restoration.0101
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Some chucklefuck restored Rome
|
||||
ep3_roman_restoration.0101 = {
|
||||
type = character_event
|
||||
window = fullscreen_event
|
||||
title = roman_restoration.0002.t
|
||||
desc = {
|
||||
desc = ep3_roman_restoration.0101.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { scope:scoped_emperor.primary_title.state_faith ?= faith:hellenic_pagan }
|
||||
desc = ep3_roman_restoration.0101.hellenic
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:scoped_emperor.primary_title.state_faith ?= faith:orthodox }
|
||||
desc = ep3_roman_restoration.0101.orthodox
|
||||
}
|
||||
desc = ep3_roman_restoration.0101.fallback
|
||||
}
|
||||
desc = ep3_roman_restoration.0101.outro
|
||||
}
|
||||
theme = emperor
|
||||
override_background = { reference = ep3_fullscreen_restore_rome }
|
||||
|
||||
immediate = {
|
||||
#Same-faith non-empire tier rulers are over-awed.
|
||||
if = {
|
||||
limit = { faith = scope:scoped_emperor.primary_title.state_faith }
|
||||
play_music_cue = "mx_cue_epic_sacral_moment"
|
||||
}
|
||||
#Otherwise, this is a tacit statement of imperial threat.
|
||||
else = { play_music_cue = "mx_cue_combat_2" }
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_roman_restoration.0101.a
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#######################################
|
||||
### POST-ROME DIFFICULTIES
|
||||
|
||||
# Your inefficient governor messed up, causing mass loss in popular opinion. Can you fix it?
|
||||
ep3_roman_restoration.0300 = {
|
||||
type = character_event
|
||||
title = ep3_roman_restoration.0300.t
|
||||
desc = ep3_roman_restoration.0300.desc
|
||||
theme = emperor
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = anger
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:inefficient_governor
|
||||
animation = shock
|
||||
}
|
||||
|
||||
cooldown = { years = 20 }
|
||||
|
||||
immediate = {
|
||||
ordered_vassal = {
|
||||
limit = {
|
||||
is_governor = yes
|
||||
is_ai = yes
|
||||
}
|
||||
order_by = { # Mostly sort by governor efficiency
|
||||
value = governor_efficiency
|
||||
multiply = -10
|
||||
# Prefer governors with a larger realm size for more difficulty
|
||||
add = sub_realm_size
|
||||
}
|
||||
save_scope_as = inefficient_governor
|
||||
}
|
||||
custom_tooltip = ep3_roman_restoration.0300.efficiency
|
||||
}
|
||||
|
||||
option = { # Stewardship Challenge
|
||||
name = ep3_roman_restoration.0300.a
|
||||
duel = {
|
||||
skill = stewardship
|
||||
value = excellent_skill_level
|
||||
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_roman_restoration.0300.a.success
|
||||
left_icon = scope:inefficient_governor
|
||||
right_icon = scope:inefficient_governor.primary_title
|
||||
|
||||
scope:inefficient_governor = {
|
||||
every_sub_realm_county = {
|
||||
custom = ep3_roman_restoration.0300.every_sub_realm_county
|
||||
add_county_modifier = {
|
||||
modifier = restore_rome_recuperated_county_opinion_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = ep3_roman_restoration.0300.a.failure
|
||||
left_icon = scope:inefficient_governor
|
||||
right_icon = scope:inefficient_governor.primary_title
|
||||
|
||||
scope:inefficient_governor = {
|
||||
every_sub_realm_county = {
|
||||
custom = ep3_roman_restoration.0300.every_sub_realm_county
|
||||
add_county_modifier = {
|
||||
modifier = restore_rome_devastated_county_opinion_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Fire the Governor
|
||||
name = ep3_roman_restoration.0300.b
|
||||
change_influence = massive_influence_loss
|
||||
save_scope_as = actor
|
||||
scope:inefficient_governor = {
|
||||
save_scope_as = recipient
|
||||
primary_title = { save_scope_as = landed_title }
|
||||
}
|
||||
save_scope_value_as = {
|
||||
name = hook
|
||||
value = no
|
||||
}
|
||||
scope:inefficient_governor = {
|
||||
every_sub_realm_county = {
|
||||
custom = ep3_roman_restoration.0300.every_sub_realm_county
|
||||
add_county_modifier = {
|
||||
modifier = restore_rome_recuperated_county_opinion_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
force_step_down_landed_titles = yes
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Opt-Out
|
||||
name = ep3_roman_restoration.0300.c
|
||||
|
||||
scope:inefficient_governor = {
|
||||
every_sub_realm_county = {
|
||||
custom = ep3_roman_restoration.0300.every_sub_realm_county
|
||||
add_county_modifier = {
|
||||
modifier = restore_rome_lowered_county_opinion_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
base = medium_stress_impact_loss
|
||||
lazy = minor_stress_impact_loss
|
||||
diligent = medium_stress_impact_gain
|
||||
ambitious = minor_stress_impact_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Every 10-30 years, a random kingdom will raid you
|
||||
ep3_roman_restoration.0500 = {
|
||||
type = character_event
|
||||
title = ep3_roman_restoration.0500.t
|
||||
desc = ep3_roman_restoration.0500.desc
|
||||
theme = emperor
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = emotion_thinking_scepter
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:marshal
|
||||
animation = inspect_weapon
|
||||
}
|
||||
|
||||
lower_center_portrait = scope:target_kingdom
|
||||
|
||||
cooldown = { years = { 10 30 } }
|
||||
|
||||
trigger = {
|
||||
exists = cp:councillor_marshal
|
||||
any_neighboring_top_liege_realm_owner = {
|
||||
is_ai = yes
|
||||
is_at_war = no
|
||||
primary_title = { tier >= tier_kingdom }
|
||||
NOR = {
|
||||
is_allied_to = root
|
||||
any_truce_target = { this = root }
|
||||
has_relation_friend = root
|
||||
has_relation_lover = root
|
||||
}
|
||||
any_top_realm_border_county = {
|
||||
any_neighboring_county = {
|
||||
holder.top_liege = root
|
||||
NOT = {
|
||||
title_province = { has_province_modifier = recently_looted_modifier }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
cp:councillor_marshal = { save_scope_as = marshal }
|
||||
ordered_neighboring_top_liege_realm_owner = {
|
||||
limit = {
|
||||
is_ai = yes
|
||||
is_at_war = no
|
||||
primary_title = { tier >= tier_kingdom }
|
||||
any_top_realm_border_county = {
|
||||
any_neighboring_county = {
|
||||
holder.top_liege = root
|
||||
NOT = {
|
||||
title_province = { has_province_modifier = recently_looted_modifier }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
order_by = {
|
||||
value = 1
|
||||
add = { # inverted opinion since we're looking for ppl who hate you
|
||||
value = "opinion(root)"
|
||||
multiply = -1
|
||||
}
|
||||
if = {
|
||||
limit = { can_raid_trigger = yes }
|
||||
add = 50
|
||||
}
|
||||
}
|
||||
save_scope_as = target_kingdom
|
||||
}
|
||||
scope:target_kingdom = {
|
||||
random_top_realm_border_county = {
|
||||
limit = {
|
||||
any_neighboring_county = {
|
||||
holder.top_liege = root
|
||||
NOT = {
|
||||
title_province = { has_province_modifier = recently_looted_modifier }
|
||||
}
|
||||
}
|
||||
}
|
||||
random_neighboring_county = {
|
||||
limit = {
|
||||
holder.top_liege = root
|
||||
NOT = {
|
||||
title_province = { has_province_modifier = recently_looted_modifier }
|
||||
}
|
||||
}
|
||||
save_scope_as = target_county
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = ep3_roman_restoration.0500.a
|
||||
}
|
||||
|
||||
after = {
|
||||
scope:target_kingdom = {
|
||||
start_war = {
|
||||
cb = ep3_roman_empire_border_war
|
||||
target = root
|
||||
target_title = scope:target_county
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Special Bubonic Plague Spawns - Commented out and disabled because this is not very fun
|
||||
#ep3_roman_restoration.0510 = {
|
||||
# hidden = yes
|
||||
#
|
||||
# immediate = {
|
||||
# random_realm_county = {
|
||||
# limit = { exists = holder }
|
||||
# holder = { save_scope_as = target_holder }
|
||||
# save_scope_as = infected_county
|
||||
# title_province = {
|
||||
# save_scope_as = target_province
|
||||
# create_epidemic_outbreak = {
|
||||
# type = bubonic_plague
|
||||
# intensity = major
|
||||
# save_scope_as = epidemic
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# trigger_event = epidemic_events.1100
|
||||
# }
|
||||
#}
|
||||
|
||||
# Mongol Invasion Spawns
|
||||
ep3_roman_restoration.0520 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
NOR = {
|
||||
has_global_variable = mongols_have_appeared
|
||||
any_player = {
|
||||
THIS = culture:mongol.culture_head
|
||||
realm_size >= 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
set_global_variable = {
|
||||
name = mongols_have_appeared
|
||||
value = yes
|
||||
}
|
||||
debug_log = "Mongols appeared!"
|
||||
debug_log_date = yes
|
||||
spawn_temujin_character_effect = yes
|
||||
scope:temujin = {
|
||||
save_scope_as = story_owner
|
||||
create_story = story_mongol_invasion
|
||||
}
|
||||
}
|
||||
}
|
||||
4688
N3OW/events/dlc/ep3/ep3_story_cycle_harrying_of_the_north_events.txt
Normal file
4688
N3OW/events/dlc/ep3/ep3_story_cycle_harrying_of_the_north_events.txt
Normal file
File diff suppressed because it is too large
Load diff
528
N3OW/events/dlc/ep3/ep3_travel_events_8.txt
Normal file
528
N3OW/events/dlc/ep3/ep3_travel_events_8.txt
Normal file
|
|
@ -0,0 +1,528 @@
|
|||
namespace = ep3_travel_events
|
||||
|
||||
##################################################
|
||||
# EP3 Travel Events
|
||||
# by James Beaumont
|
||||
#
|
||||
# 8000-8009 To Belong Somewhere
|
||||
|
||||
scripted_trigger ep3_travel_8000_valid_prince = {
|
||||
is_courtier_of = $PARENT$
|
||||
is_adult = yes
|
||||
age <= 25
|
||||
is_married = no
|
||||
could_marry_character_trigger = { CHARACTER = $CHILD$ }
|
||||
save_temporary_scope_as = temp_prospective_prince
|
||||
matching_gender_and_sexuality_trigger = {
|
||||
CHARACTER_1 = scope:temp_prospective_prince
|
||||
CHARACTER_2 = $CHILD$
|
||||
}
|
||||
trait_compatibility = {
|
||||
target = $CHILD$
|
||||
value >= medium_positive_trait_compatibility
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect ep3_travel_8000_a = {
|
||||
scope:prince_parent = { add_courtier = scope:romantic_child }
|
||||
marry_on_realm_law = {
|
||||
SPOUSE_1 = scope:prospective_prince
|
||||
SPOUSE_2 = scope:romantic_child
|
||||
}
|
||||
}
|
||||
|
||||
# To Belong Somewhere
|
||||
# Young adult child falls in love and wants to stop travelling with you
|
||||
ep3_travel_events.8000 = {
|
||||
type = character_event
|
||||
title = ep3_travel_events.8000.t
|
||||
desc = {
|
||||
desc = ep3_travel_events.8000.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:romantic_child = {
|
||||
ai_boldness >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
desc = ep3_travel_events.8000.desc.mid2.bold_child
|
||||
}
|
||||
desc = ep3_travel_events.8000.desc.mid2.timid_child
|
||||
}
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_relation_rival = scope:romantic_child
|
||||
opinion = {
|
||||
target = scope:romantic_child
|
||||
value = low_negative_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = ep3_travel_events.8000.outro.dislikes_child
|
||||
}
|
||||
desc = ep3_travel_events.8000.outro
|
||||
}
|
||||
}
|
||||
theme = travel
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
has_trait = family_first
|
||||
has_trait = diligent
|
||||
has_trait = stubborn
|
||||
}
|
||||
}
|
||||
animation = anger
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = compassionate
|
||||
has_trait = gallant
|
||||
}
|
||||
}
|
||||
animation = wedding_happy_cry
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:romantic_child
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
ai_boldness >= medium_positive_ai_value
|
||||
}
|
||||
animation = beg
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
ai_boldness < medium_positive_ai_value
|
||||
}
|
||||
animation = sadness
|
||||
}
|
||||
}
|
||||
lower_right_portrait = {
|
||||
character = scope:prospective_prince
|
||||
}
|
||||
cooldown = { years = 75 }
|
||||
trigger = {
|
||||
has_government = landless_adventurer_government
|
||||
is_available_travelling = yes
|
||||
is_location_valid_for_travel_event_on_land = yes
|
||||
root.location.county.holder = { save_temporary_scope_as = temp_prince_parent }
|
||||
any_child = {
|
||||
is_courtier_of = root
|
||||
is_adult = yes
|
||||
age <= 25 # An adult but still young
|
||||
save_temporary_scope_as = temp_child
|
||||
scope:temp_prince_parent = {
|
||||
any_child = {
|
||||
ep3_travel_8000_valid_prince = {
|
||||
PARENT = scope:temp_prince_parent
|
||||
CHILD = scope:temp_child
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
immediate = {
|
||||
save_scope_as = laamp
|
||||
location = {
|
||||
save_scope_as = location
|
||||
county.holder = { save_scope_as = prince_parent }
|
||||
}
|
||||
random_child = {
|
||||
limit = {
|
||||
is_courtier_of = root
|
||||
is_adult = yes
|
||||
age <= 25
|
||||
save_temporary_scope_as = temp_child
|
||||
scope:prince_parent = {
|
||||
any_child = {
|
||||
ep3_travel_8000_valid_prince = {
|
||||
PARENT = scope:prince_parent
|
||||
CHILD = scope:temp_child
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = romantic_child
|
||||
scope:prince_parent = {
|
||||
random_child = {
|
||||
limit = {
|
||||
ep3_travel_8000_valid_prince = {
|
||||
PARENT = scope:prince_parent
|
||||
CHILD = scope:romantic_child
|
||||
}
|
||||
}
|
||||
save_scope_as = prospective_prince
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:romantic_child = {
|
||||
set_relation_soulmate = {
|
||||
target = scope:prospective_prince
|
||||
reason = soulmate_laamp_adventure
|
||||
}
|
||||
}
|
||||
}
|
||||
# Goodbye Susan
|
||||
option = {
|
||||
name = ep3_travel_events.8000.a
|
||||
show_as_tooltip = {
|
||||
ep3_travel_8000_a = yes
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:prince_parent = {
|
||||
trigger_event = {
|
||||
id = ep3_travel_events.8001
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:romantic_child = {
|
||||
progress_towards_friend_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = 50
|
||||
REASON = friend_let_me_go
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
callous = minor_stress_impact_gain
|
||||
sadistic = minor_stress_impact_gain
|
||||
family_first = minor_stress_impact_gain
|
||||
diligent = minor_stress_impact_gain
|
||||
stubborn = minor_stress_impact_gain
|
||||
content = minor_stress_impact_loss
|
||||
compassionate = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = -1.5
|
||||
ai_compassion = 1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
# Convince the young prince/princess to come with you!
|
||||
option = {
|
||||
name = ep3_travel_events.8000.b
|
||||
trigger = {
|
||||
scope:prince_parent = { is_ai = yes }
|
||||
has_trait = eccentric
|
||||
}
|
||||
add_courtier = scope:prospective_prince
|
||||
marry_spouse_1_dominant = {
|
||||
SPOUSE_1 = scope:romantic_child
|
||||
SPOUSE_2 = scope:prospective_prince
|
||||
}
|
||||
scope:prince_parent = {
|
||||
progress_towards_rival_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = -50
|
||||
REASON = rival_laamp_stole_my_child
|
||||
}
|
||||
}
|
||||
scope:romantic_child = {
|
||||
progress_towards_friend_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = 50
|
||||
REASON = friend_let_me_go
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
content = minor_stress_impact_gain
|
||||
honest = minor_stress_impact_gain
|
||||
gallant = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
deceitful = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = -1.5
|
||||
ai_vengefulness = 1.5
|
||||
ai_compassion = 1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
# Come along now child
|
||||
option = {
|
||||
name = ep3_travel_events.8000.c
|
||||
if = {
|
||||
limit = {
|
||||
scope:romantic_child = {
|
||||
ai_boldness >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
reverse_add_opinion = {
|
||||
target = scope:romantic_child
|
||||
modifier = hate_opinion
|
||||
opinion = -25
|
||||
}
|
||||
}
|
||||
else = {
|
||||
reverse_add_opinion = {
|
||||
target = scope:romantic_child
|
||||
modifier = disappointed_opinion
|
||||
opinion = -10
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
content = minor_stress_impact_gain
|
||||
honest = minor_stress_impact_gain
|
||||
gallant = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
deceitful = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 1.5
|
||||
ai_vengefulness = 1.5
|
||||
ai_compassion = -1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Roots of My Own
|
||||
# Holder response
|
||||
ep3_travel_events.8001 = {
|
||||
type = character_event
|
||||
title = ep3_travel_events.8001.t
|
||||
desc = ep3_travel_events.8001.desc
|
||||
theme = family
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
has_trait = family_first
|
||||
has_trait = diligent
|
||||
has_trait = stubborn
|
||||
}
|
||||
}
|
||||
animation = anger
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = compassionate
|
||||
has_trait = gallant
|
||||
}
|
||||
}
|
||||
animation = wedding_happy_cry
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:prospective_prince
|
||||
animation = beg
|
||||
}
|
||||
lower_right_portrait = {
|
||||
character = scope:romantic_child
|
||||
}
|
||||
immediate = {
|
||||
show_as_tooltip = {
|
||||
scope:romantic_child = {
|
||||
set_relation_soulmate = {
|
||||
target = scope:prospective_prince
|
||||
reason = soulmate_laamp_adventure
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# A fine match!
|
||||
option = {
|
||||
name = ep3_travel_events.8001.a
|
||||
ep3_travel_8000_a = yes
|
||||
stress_impact = {
|
||||
callous = minor_stress_impact_gain
|
||||
sadistic = minor_stress_impact_gain
|
||||
family_first = minor_stress_impact_gain
|
||||
diligent = minor_stress_impact_gain
|
||||
stubborn = minor_stress_impact_gain
|
||||
content = minor_stress_impact_loss
|
||||
compassionate = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = -1.5
|
||||
ai_compassion = 1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
# I forbid this wedding!
|
||||
option = {
|
||||
name = ep3_travel_events.8001.b
|
||||
if = {
|
||||
limit = {
|
||||
scope:prospective_prince = {
|
||||
ai_boldness >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
reverse_add_opinion = {
|
||||
target = scope:prospective_prince
|
||||
modifier = hate_opinion
|
||||
opinion = -25
|
||||
}
|
||||
}
|
||||
else = {
|
||||
reverse_add_opinion = {
|
||||
target = scope:prospective_prince
|
||||
modifier = disappointed_opinion
|
||||
opinion = -10
|
||||
}
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:laamp = {
|
||||
trigger_event = {
|
||||
id = ep3_travel_events.8002
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
content = minor_stress_impact_gain
|
||||
honest = minor_stress_impact_gain
|
||||
gallant = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
deceitful = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 1.5
|
||||
ai_vengefulness = 1.5
|
||||
ai_compassion = -1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# In Another Time
|
||||
# Laamp notification
|
||||
ep3_travel_events.8002 = {
|
||||
type = character_event
|
||||
title = ep3_travel_events.8002.t
|
||||
desc = ep3_travel_events.8002.desc
|
||||
theme = family
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = disappointed
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:romantic_child
|
||||
animation = grief
|
||||
}
|
||||
# I'm sorry my dear
|
||||
option = {
|
||||
name = ep3_travel_events.8002.a
|
||||
reverse_add_opinion = {
|
||||
target = scope:romantic_child
|
||||
modifier = love_opinion
|
||||
opinion = 25
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Won't Be Missed
|
||||
# Do some graverobbing?
|
||||
ep3_travel_events.8010 = {
|
||||
type = character_event
|
||||
title = ep3_travel_events.8010.t
|
||||
desc = ep3_travel_events.8010.desc
|
||||
theme = travel
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = survey
|
||||
}
|
||||
override_background = { reference = ce1_catacombs }
|
||||
cooldown = { years = 15 }
|
||||
trigger = {
|
||||
is_landless_ruler = yes
|
||||
is_available_travelling = yes
|
||||
location = { has_holding = no }
|
||||
is_location_valid_for_travel_event_on_land = yes
|
||||
}
|
||||
immediate = {
|
||||
location = { save_scope_as = location }
|
||||
}
|
||||
# Oh boy, goodies!
|
||||
option = {
|
||||
name = ep3_travel_events.8010.a
|
||||
duel = {
|
||||
skill = intrigue
|
||||
value = medium_skill_rating
|
||||
25 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
min = 5
|
||||
send_interface_toast = {
|
||||
title = ep3_travel_events.8010.a.win
|
||||
left_icon = root
|
||||
add_gold = medium_gold_value
|
||||
}
|
||||
}
|
||||
25 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
min = 5
|
||||
send_interface_toast = {
|
||||
title = ep3_travel_events.8010.a.lose
|
||||
left_icon = root
|
||||
reverse_add_opinion = {
|
||||
target = location.county.holder
|
||||
modifier = graverobber_opinion
|
||||
years = 20
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
eccentric = medium_stress_impact_gain
|
||||
lazy = minor_stress_impact_gain
|
||||
ambitious = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 1.5
|
||||
ai_rationality = 1.5
|
||||
ai_greed = 1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
# I'm not risking that!
|
||||
option = {
|
||||
name = ep3_travel_events.8010.b
|
||||
stress_impact = {
|
||||
content = minor_stress_impact_loss
|
||||
ambitious = minor_stress_impact_gain
|
||||
}
|
||||
add_piety = miniscule_piety_gain
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = -1.5
|
||||
ai_rationality = -1.5
|
||||
ai_greed = -1.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4301
N3OW/events/dlc/ep3/ep3_travel_option_events.txt
Normal file
4301
N3OW/events/dlc/ep3/ep3_travel_option_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2616
N3OW/events/dlc/ep3/ep3_wedding_events.txt
Normal file
2616
N3OW/events/dlc/ep3/ep3_wedding_events.txt
Normal file
File diff suppressed because it is too large
Load diff
267
N3OW/events/dlc/ep3/ep3_yearly_1.txt
Normal file
267
N3OW/events/dlc/ep3/ep3_yearly_1.txt
Normal file
|
|
@ -0,0 +1,267 @@
|
|||
namespace = ep3_yearly
|
||||
|
||||
scripted_effect transfer_warhorse_story_effect = {
|
||||
$OWNER$ = {
|
||||
random_owned_story = {
|
||||
type = story_cycle_martial_lifestyle_warhorse
|
||||
make_story_owner = $TARGET$
|
||||
}
|
||||
}
|
||||
$TARGET$ = {
|
||||
add_character_modifier = { modifier = horse_story_modifier }
|
||||
add_character_flag = had_warhorse_story
|
||||
set_variable = {
|
||||
name = warhorse_modifier_level
|
||||
value = $OWNER$.var:warhorse_modifier_level
|
||||
}
|
||||
}
|
||||
$OWNER$ = {
|
||||
hidden_effect = {
|
||||
remove_character_modifier = horse_story_modifier
|
||||
remove_variable = warhorse_modifier_level
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Jealous of another governor with the Warhorse event chain
|
||||
ep3_yearly.1010 = {
|
||||
type = character_event
|
||||
title = ep3_yearly.1010.t
|
||||
desc = {
|
||||
desc = ep3_yearly.1010.intro
|
||||
triggered_desc = {
|
||||
trigger = { culture = culture:greek }
|
||||
desc = ep3_yearly.1010.greek_flavor
|
||||
}
|
||||
desc = ep3_yearly.1010.outro
|
||||
}
|
||||
theme = administrative
|
||||
override_background = { reference = courtyard }
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = thinking
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:horse_owner
|
||||
animation = jockey_walk
|
||||
camera = camera_event_horse_right
|
||||
}
|
||||
lower_left_portrait = cp:councillor_spymaster
|
||||
|
||||
trigger = {
|
||||
is_ai = no
|
||||
is_governor = yes
|
||||
NOT = { owns_story_of_type = story_cycle_martial_lifestyle_warhorse }
|
||||
liege = {
|
||||
any_vassal = {
|
||||
this != root
|
||||
is_available_ai_adult = yes
|
||||
is_governor = yes
|
||||
any_owned_story = {
|
||||
type = story_cycle_martial_lifestyle_warhorse
|
||||
exists = var:horse_gender
|
||||
exists = var:story_cycle_horse_name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
liege = {
|
||||
random_vassal = {
|
||||
limit = {
|
||||
this != root
|
||||
is_available_ai_adult = yes
|
||||
owns_story_of_type = story_cycle_martial_lifestyle_warhorse
|
||||
}
|
||||
save_scope_as = horse_owner
|
||||
}
|
||||
}
|
||||
cp:councillor_spymaster ?= { save_scope_as = spymaster }
|
||||
}
|
||||
|
||||
option = { # Offer to buy the horse
|
||||
name = ep3_yearly.1010.a
|
||||
show_as_unavailable = {
|
||||
gold >= 75
|
||||
}
|
||||
random_list = {
|
||||
50 = {
|
||||
show_chance = no
|
||||
desc = ep3_yearly.1010.a.tt.success
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_yearly.1010.a.tt.success
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
remove_short_term_gold = major_gold_value
|
||||
custom_tooltip = ep3_yearly.1010.tt
|
||||
transfer_warhorse_story_effect = {
|
||||
OWNER = scope:horse_owner
|
||||
TARGET = root
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
show_chance = no
|
||||
desc = ep3_yearly.1010.a.tt.failure
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = ep3_yearly.1010.a.tt.failure
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
change_influence = medium_influence_loss
|
||||
add_prestige = medium_prestige_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Convince the governor that you deserve the horse because of your influence
|
||||
name = ep3_yearly.1010.b
|
||||
change_influence = massive_influence_loss
|
||||
if = {
|
||||
limit = { influence_level >= 3 }
|
||||
transfer_warhorse_story_effect = {
|
||||
OWNER = scope:horse_owner
|
||||
TARGET = root
|
||||
}
|
||||
}
|
||||
else = {
|
||||
duel = {
|
||||
skill = diplomacy
|
||||
value = high_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_yearly.1010.b.tt.success
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_yearly.1010.b.tt.success
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
custom_tooltip = ep3_yearly.1010.tt
|
||||
transfer_warhorse_story_effect = {
|
||||
OWNER = scope:horse_owner
|
||||
TARGET = root
|
||||
}
|
||||
add_diplomacy_lifestyle_xp = medium_lifestyle_xp
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_yearly.1010.b.tt.failure
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = ep3_yearly.1010.b.tt.failure
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Ask your spymaster to steal the horse for you
|
||||
trigger = { exists = cp:councillor_spymaster }
|
||||
name = ep3_yearly.1010.c
|
||||
flavor = ep3_yearly.1010.c.flavor
|
||||
cp:councillor_spymaster = {
|
||||
duel = {
|
||||
skill = intrigue
|
||||
value = scope:horse_owner.intrigue
|
||||
40 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_yearly.1010.c.tt.success
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_yearly.1010.c.tt.success
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
custom_tooltip = ep3_yearly.1010.tt
|
||||
transfer_warhorse_story_effect = {
|
||||
OWNER = scope:horse_owner
|
||||
TARGET = root
|
||||
}
|
||||
add_intrigue_lifestyle_xp = medium_lifestyle_xp
|
||||
}
|
||||
}
|
||||
}
|
||||
60 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
desc = ep3_yearly.1010.c.tt.failure
|
||||
root = {
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = ep3_yearly.1010.c.tt.failure
|
||||
left_icon = root
|
||||
right_icon = scope:horse_owner
|
||||
progress_towards_rival_effect = {
|
||||
REASON = rival_lands_stolen
|
||||
CHARACTER = scope:horse_owner
|
||||
OPINION = default_rival_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # If I can't have it, neither can you
|
||||
name = ep3_yearly.1010.d
|
||||
flavor = ep3_yearly.1010.d.tt
|
||||
random_list = {
|
||||
50 = {
|
||||
desc = ep3_yearly.1010.d.success
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = ep3_yearly.1010.d.success
|
||||
custom_tooltip = ep3_yearly.1010.d.dead_horse
|
||||
scope:horse_owner = {
|
||||
random_owned_story = {
|
||||
type = story_cycle_martial_lifestyle_warhorse
|
||||
end_story = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
desc = ep3_yearly.1010.d.failure
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = ep3_yearly.1010.d.failure
|
||||
custom_tooltip = ep3_yearly.1010.d.dead_horse
|
||||
scope:horse_owner = {
|
||||
random_owned_story = {
|
||||
type = story_cycle_martial_lifestyle_warhorse
|
||||
end_story = yes
|
||||
}
|
||||
}
|
||||
progress_towards_rival_effect = {
|
||||
REASON = rival_lands_stolen
|
||||
CHARACTER = scope:horse_owner
|
||||
OPINION = default_rival_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
N3OW/events/dlc/ep3/ep3_yearly_3.txt
Normal file
9
N3OW/events/dlc/ep3/ep3_yearly_3.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
namespace = ep3_yearly
|
||||
|
||||
ep3_yearly.3000 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
ep3_ai_castration_effect = yes
|
||||
}
|
||||
}
|
||||
2222
N3OW/events/dlc/fp1/fp1_jomsvikings_events.txt
Normal file
2222
N3OW/events/dlc/fp1/fp1_jomsvikings_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1423
N3OW/events/dlc/fp1/fp1_major_decision_events.txt
Normal file
1423
N3OW/events/dlc/fp1/fp1_major_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2726
N3OW/events/dlc/fp1/fp1_other_decision_events.txt
Normal file
2726
N3OW/events/dlc/fp1/fp1_other_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1113
N3OW/events/dlc/fp1/fp1_scandinavian_adventurer_events.txt
Normal file
1113
N3OW/events/dlc/fp1/fp1_scandinavian_adventurer_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1426
N3OW/events/dlc/fp1/fp1_shieldmaiden_events.txt
Normal file
1426
N3OW/events/dlc/fp1/fp1_shieldmaiden_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2494
N3OW/events/dlc/fp1/fp1_trade_events.txt
Normal file
2494
N3OW/events/dlc/fp1/fp1_trade_events.txt
Normal file
File diff suppressed because it is too large
Load diff
971
N3OW/events/dlc/fp1/fp1_trial_by_combat_events.txt
Normal file
971
N3OW/events/dlc/fp1/fp1_trial_by_combat_events.txt
Normal file
|
|
@ -0,0 +1,971 @@
|
|||
namespace = fp1_tbc
|
||||
|
||||
##################################################
|
||||
# #Scope:actor-side Events
|
||||
# 0001 - 0040 Bout Maintenance & Setup
|
||||
# 0041 - 0060 Scope:actor Results
|
||||
#
|
||||
# #Scope:recipient-side Events
|
||||
# 0101 - 0110 Champion Selection
|
||||
# 0111 - 0130 Scope:recipient Results
|
||||
##################################################
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# SCOPE:ACTOR-SIDE EVENTS
|
||||
|
||||
##################################################
|
||||
# Bout Maintenance & Setup
|
||||
# by Ewan Cowhig Croft
|
||||
# 0001 - 0040
|
||||
##################################################
|
||||
|
||||
# Everything is set for the bout to begin!
|
||||
fp1_tbc.0001 = {
|
||||
type = character_event
|
||||
window = duel_event
|
||||
title = fp1_tbc.0001.t
|
||||
desc = {
|
||||
desc = fp1_tbc.0001.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { scope:champion = scope:recipient }
|
||||
desc = fp1_tbc.0001.desc.recipient_fighting
|
||||
}
|
||||
desc = fp1_tbc.0001.desc.recipient_has_champion
|
||||
}
|
||||
desc = fp1_tbc.0001.desc.outro
|
||||
}
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:actor
|
||||
scripted_animation = duel_wield_weapon
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:champion
|
||||
scripted_animation = duel_wield_weapon
|
||||
}
|
||||
override_background = { reference = terrain_scope }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
# If, for any reason, scope:recipient has died or been imprisoned, then the bout is cancelled.
|
||||
scope:recipient = {
|
||||
is_alive = yes
|
||||
is_imprisoned = no
|
||||
}
|
||||
# Check that scope:actor is still in a valid state to fight.
|
||||
trial_by_combat_shown_and_not_invalid_trigger = yes
|
||||
# And scope:champion likewise.
|
||||
scope:champion = {
|
||||
OR = {
|
||||
this = scope:recipient
|
||||
eligible_knight_to_champion_trial_by_combat_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_trigger_fail = {
|
||||
# Inform both parties that the duel has invalidated.
|
||||
scope:actor = {
|
||||
send_interface_toast = {
|
||||
title = fp1_tbc.0001.trigger_failure.actor
|
||||
left_icon = scope:recipient
|
||||
}
|
||||
}
|
||||
scope:recipient = {
|
||||
send_interface_toast = {
|
||||
title = fp1_tbc.0001.trigger_failure.recipient
|
||||
left_icon = scope:actor
|
||||
}
|
||||
}
|
||||
# Reset scope:actor's cooldowns against scope:recipient.
|
||||
scope:actor = {
|
||||
remove_interaction_cooldown = challenge_to_trial_by_combat_interaction
|
||||
remove_interaction_cooldown_against = {
|
||||
interaction = challenge_to_trial_by_combat_interaction
|
||||
target = scope:recipient
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = "mx_cue_combat_stinger"
|
||||
# Nab scope:champion's location for terrain.
|
||||
scope:champion.location = {
|
||||
save_scope_as = background_terrain_scope
|
||||
# And scope:champion's location name for loc.
|
||||
barony = { save_scope_as = duel_location }
|
||||
}
|
||||
}
|
||||
|
||||
# Almost there.
|
||||
option = {
|
||||
name = fp1_tbc.0001.a
|
||||
|
||||
# Inform scope:actor that the bout will begin immediately.
|
||||
custom_tooltip = fp1_tbc.0001.a.tt
|
||||
# Configure the bout.
|
||||
## Tribals strip to the waist.
|
||||
single_combat_apply_default_shirtlessness_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:champion
|
||||
}
|
||||
## Deadly fights.
|
||||
if = {
|
||||
limit = { scope:tbc_death = yes }
|
||||
configure_start_single_combat_effect = {
|
||||
SC_INITIATOR = scope:actor
|
||||
SC_ATTACKER = scope:actor
|
||||
SC_DEFENDER = scope:champion
|
||||
FATALITY = always
|
||||
FIXED = no
|
||||
LOCALE = terrain_scope
|
||||
OUTPUT_EVENT = fp1_tbc.0011
|
||||
INVALIDATION_EVENT = fp1_tbc.0021
|
||||
}
|
||||
}
|
||||
## Non-deadly fights.
|
||||
else = {
|
||||
configure_start_single_combat_effect = {
|
||||
SC_INITIATOR = scope:actor
|
||||
SC_ATTACKER = scope:actor
|
||||
SC_DEFENDER = scope:champion
|
||||
FATALITY = no
|
||||
FIXED = no
|
||||
LOCALE = terrain_scope
|
||||
OUTPUT_EVENT = fp1_tbc.0011
|
||||
INVALIDATION_EVENT = fp1_tbc.0021
|
||||
}
|
||||
}
|
||||
# No stress for single-option events.
|
||||
ai_chance = {
|
||||
# AI will always choose single option.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect fp1_tbc_non_lethal_results_effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:recipient = { is_alive = yes }
|
||||
}
|
||||
# TbC ends in cash settlement.
|
||||
if = {
|
||||
limit = { scope:tbc_gold = yes }
|
||||
fp1_tbc_gold_effect = {
|
||||
TBC_VICTOR = scope:actor
|
||||
TBC_LOSER = scope:recipient
|
||||
}
|
||||
}
|
||||
# TbC ends in favour settlement.
|
||||
if = {
|
||||
limit = { scope:tbc_weak_hook = yes }
|
||||
fp1_tbc_hook_effect = {
|
||||
TBC_VICTOR = scope:actor
|
||||
TBC_LOSER = scope:recipient
|
||||
}
|
||||
}
|
||||
# TbC ends in mandated humiliation.
|
||||
if = {
|
||||
limit = { scope:tbc_humiliation = yes }
|
||||
fp1_tbc_humiliation_effect = {
|
||||
TBC_LOSER = scope:recipient
|
||||
TBC_VICTOR = scope:actor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_effect fp1_tbc_consume_imprisonment_reasons_effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = { is_alive = yes }
|
||||
scope:recipient = { is_alive = yes }
|
||||
}
|
||||
scope:actor = { consume_imprisonment_reasons = scope:recipient }
|
||||
}
|
||||
}
|
||||
|
||||
# Bout has ended, inform affected parties.
|
||||
fp1_tbc.0011 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
# If any clothes were stripped, put 'em back on.
|
||||
single_combat_clean_shirtlessness_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:champion
|
||||
}
|
||||
# Did scope:actor win?
|
||||
if = {
|
||||
limit = { scope:sc_victor = scope:actor }
|
||||
# Apply effects; we do this separately so that there's not a weird day's delay.
|
||||
fp1_tbc_non_lethal_results_effect = yes
|
||||
# And send out the ending events.
|
||||
scope:actor = {
|
||||
trigger_event = {
|
||||
id = fp1_tbc.0041
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
scope:recipient = {
|
||||
trigger_event = {
|
||||
id = fp1_tbc.0121
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
# Or was it scope:champion?
|
||||
else_if = {
|
||||
limit = { scope:sc_victor = scope:champion }
|
||||
# If scope:actor is still alive, they gain stress.
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = { is_alive = yes }
|
||||
}
|
||||
fp1_tbc_actor_defeated_effect = {
|
||||
TBC_LOSER = scope:actor
|
||||
TBC_VICTOR = scope:recipient
|
||||
}
|
||||
}
|
||||
# And send out the ending events.
|
||||
scope:actor = {
|
||||
trigger_event = {
|
||||
id = fp1_tbc.0051
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
scope:recipient = {
|
||||
trigger_event = {
|
||||
id = fp1_tbc.0111
|
||||
days = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
# If both parties are alive, and aren't good losers/don't have good reasons to forgive each other, then we mark them as potential rivals.
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = {
|
||||
is_alive = yes
|
||||
NOR = {
|
||||
has_trait = humble
|
||||
has_trait = content
|
||||
has_trait = just
|
||||
has_trait = forgiving
|
||||
}
|
||||
}
|
||||
scope:recipient = {
|
||||
is_alive = yes
|
||||
NOR = {
|
||||
has_trait = humble
|
||||
has_trait = content
|
||||
has_trait = just
|
||||
has_trait = forgiving
|
||||
}
|
||||
can_set_relation_potential_rival_trigger = { CHARACTER = scope:actor }
|
||||
}
|
||||
}
|
||||
scope:actor = { set_relation_potential_rival = scope:recipient }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Bout has invalidated, inform affected parties.
|
||||
fp1_tbc.0021 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
# Put your shirts back on.
|
||||
single_combat_clean_shirtlessness_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:recipient
|
||||
}
|
||||
# Inform both parties that the duel has invalidated.
|
||||
scope:actor = {
|
||||
send_interface_toast = {
|
||||
title = fp1_tbc.0021.trigger_failure.actor
|
||||
left_icon = scope:recipient
|
||||
}
|
||||
}
|
||||
scope:recipient = {
|
||||
send_interface_toast = {
|
||||
title = fp1_tbc.0021.trigger_failure.recipient
|
||||
left_icon = scope:actor
|
||||
}
|
||||
}
|
||||
# Reset scope:actor's cooldowns against scope:recipient.
|
||||
scope:actor = {
|
||||
remove_interaction_cooldown = challenge_to_trial_by_combat_interaction
|
||||
remove_interaction_cooldown_against = {
|
||||
interaction = challenge_to_trial_by_combat_interaction
|
||||
target = scope:recipient
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scope:recipient has declined.
|
||||
fp1_tbc.0031 = {
|
||||
type = letter_event
|
||||
opening = fp1_tbc.0031.opening
|
||||
desc = fp1_tbc.0031.desc
|
||||
sender = scope:recipient
|
||||
|
||||
option = { name = fp1_tbc.0031.a }
|
||||
}
|
||||
|
||||
##################################################
|
||||
# Scope:actor Results
|
||||
# by Ewan Cowhig Croft
|
||||
# 0041 - 0060
|
||||
##################################################
|
||||
|
||||
# Scope:actor has won the bout.
|
||||
fp1_tbc.0041 = {
|
||||
type = character_event
|
||||
title = fp1_tbc.0041.t
|
||||
desc = {
|
||||
desc = fp1_tbc.0041.desc.intro
|
||||
# Scope:champion died in the fighting; no need to loc for a separate scope:champion, as they can't fight to the death.
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:champion = { is_alive = no }
|
||||
}
|
||||
desc = fp1_tbc.0041.desc.opponent_died
|
||||
}
|
||||
# Scope:champion is still alive.
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:champion = { is_alive = yes}
|
||||
}
|
||||
desc = {
|
||||
first_valid = {
|
||||
# Scope:recipient fought for themselves.
|
||||
triggered_desc = {
|
||||
trigger = { scope:champion = scope:recipient }
|
||||
desc = fp1_tbc.0041.desc.opponent_lives.recipient_fighting
|
||||
}
|
||||
# Scope:recipient had a designated champion instead.
|
||||
desc = fp1_tbc.0041.desc.opponent_lives.recipient_has_champion
|
||||
}
|
||||
}
|
||||
}
|
||||
# Reward, if anything.
|
||||
first_valid = {
|
||||
# Gold.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_gold = yes }
|
||||
desc = fp1_tbc.0041.desc.reward.gold
|
||||
}
|
||||
# Weak hook.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_weak_hook = yes }
|
||||
desc = fp1_tbc.0041.desc.reward.weak_hook
|
||||
}
|
||||
# Humiliation.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_humiliation = yes }
|
||||
desc = fp1_tbc.0041.desc.reward.humiliation
|
||||
}
|
||||
# No outcome for death, since that's handled more succinctly above.
|
||||
}
|
||||
desc = fp1_tbc.0041.desc.outro
|
||||
}
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:actor
|
||||
animation = personality_bold
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:recipient
|
||||
animation = shock
|
||||
}
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
# Juuuust need to double-check that they're actually alive.
|
||||
is_alive = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Show duel results from the player's POV.
|
||||
show_as_tooltip = { fp1_tbc_non_lethal_results_effect = yes }
|
||||
# Sadly, we have to apply some effects here instead of in the initial output event in order to not break tooltips.
|
||||
single_combat_have_slain_kin_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:champion
|
||||
}
|
||||
fp1_tbc_consume_imprisonment_reasons_effect = yes
|
||||
}
|
||||
|
||||
# The bout closes.
|
||||
option = {
|
||||
name = fp1_tbc.0041.a
|
||||
|
||||
# No stress for single-option events.
|
||||
ai_chance = {
|
||||
# AI will always choose single option.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scope:actor has lost the bout.
|
||||
fp1_tbc.0051 = {
|
||||
type = character_event
|
||||
title = fp1_tbc.0051.t
|
||||
desc = {
|
||||
desc = fp1_tbc.0051.desc.intro
|
||||
# Scope:actor is still alive (alternatives not included because, well...).
|
||||
first_valid = {
|
||||
# Scope:recipient fought for themselves.
|
||||
triggered_desc = {
|
||||
trigger = { scope:champion = scope:recipient }
|
||||
desc = fp1_tbc.0051.desc.opponent_lives.recipient_fighting
|
||||
}
|
||||
# Scope:recipient had a designated champion instead.
|
||||
desc = fp1_tbc.0051.desc.opponent_lives.recipient_has_champion
|
||||
}
|
||||
desc = fp1_tbc.0051.desc.outro
|
||||
}
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:actor
|
||||
animation = shock
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:recipient
|
||||
animation = personality_bold
|
||||
}
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
# Juuuust need to double-check that they're actually alive.
|
||||
is_alive = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Show duel results from the player's POV.
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = { is_alive = yes }
|
||||
}
|
||||
fp1_tbc_actor_defeated_effect = {
|
||||
TBC_LOSER = scope:actor
|
||||
TBC_VICTOR = scope:recipient
|
||||
}
|
||||
}
|
||||
show_as_tooltip = {
|
||||
fp1_tbc_consume_imprisonment_reasons_effect = yes
|
||||
single_combat_have_slain_kin_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:champion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# The bout closes.
|
||||
option = {
|
||||
name = fp1_tbc.0051.a
|
||||
|
||||
# No stress for single-option events.
|
||||
ai_chance = {
|
||||
# AI will always choose single option.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
##################################################
|
||||
# SCOPE:RECIPIENT-SIDE EVENTS
|
||||
|
||||
##################################################
|
||||
# Champion Selection
|
||||
# by Ewan Cowhig Croft
|
||||
# 0101 - 0110
|
||||
##################################################
|
||||
|
||||
scripted_trigger fp1_tbc_knights_with_high_opinion_filter_trigger = {
|
||||
# Has a ludicrously high opinion of scope:recipient.
|
||||
opinion = {
|
||||
target = scope:recipient
|
||||
value >= 95
|
||||
}
|
||||
# And isn't one of the other knights presented.
|
||||
NOR = {
|
||||
AND = {
|
||||
exists = scope:knight_best
|
||||
this = scope:knight_best
|
||||
}
|
||||
AND = {
|
||||
exists = scope:knight_exotic
|
||||
this = scope:knight_exotic
|
||||
}
|
||||
AND = {
|
||||
exists = scope:knight_alternative
|
||||
this = scope:knight_alternative
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scope:recipient has accepted a challenge to a Trial-by-Combat & must designate a champion due to ineligibility.
|
||||
fp1_tbc.0101 = {
|
||||
type = character_event
|
||||
title = fp1_tbc.0101.t
|
||||
desc = fp1_tbc.0101.desc
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:recipient
|
||||
animation = disbelief
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:knight_best
|
||||
animation = personality_honorable
|
||||
}
|
||||
lower_left_portrait = scope:knight_alternative
|
||||
lower_center_portrait = scope:knight_exotic
|
||||
lower_right_portrait = scope:knight_opinion
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = "mx_cue_prison"
|
||||
|
||||
# First, grab all available knights that are suitable for the Trial-by-Combat.
|
||||
every_knight = {
|
||||
limit = {
|
||||
eligible_knight_to_champion_trial_by_combat_trigger = yes
|
||||
NOT = {
|
||||
has_court_position = champion_court_position #EP1: Pluck out the champion title holder
|
||||
}
|
||||
}
|
||||
add_to_list = fp1_tbc_valid_knights_list
|
||||
}
|
||||
# Then, sort through the list, selecting the knight with the highest prowess.
|
||||
ordered_in_list = {
|
||||
list = fp1_tbc_valid_knights_list
|
||||
order_by = prowess
|
||||
save_scope_as = knight_best
|
||||
}
|
||||
# After that, we grab the most interesting knight (looking at assorted prowess-ish pecial traits and factoring for those) who isn't scope:knight_best.
|
||||
ordered_in_list = {
|
||||
list = fp1_tbc_valid_knights_list
|
||||
limit = {
|
||||
NOT = {
|
||||
exists = scope:knight_best
|
||||
this = scope:knight_best
|
||||
}
|
||||
has_relevant_special_single_combat_trait_trigger = yes
|
||||
}
|
||||
order_by = sce_has_single_combat_special_traits_value
|
||||
save_scope_as = knight_exotic
|
||||
}
|
||||
#EP1: Fetch your champion if they exist
|
||||
if = {
|
||||
limit = {
|
||||
employs_court_position = champion_court_position
|
||||
any_court_position_holder = {
|
||||
type = champion_court_position
|
||||
is_physically_able_adult = yes # eligible_knight_to_champion_trial_by_combat_trigger checks for prowess, and its not mandatory that the champ has high value
|
||||
}
|
||||
}
|
||||
random_court_position_holder = {
|
||||
type = champion_court_position
|
||||
save_scope_as = knight_alternative #same scope name is used due to limited portrait logic
|
||||
}
|
||||
}
|
||||
# Then take the second highest-prowess knight who isn't scope:knight_best or scope:knight_exotic.
|
||||
# EP1: Only do this if the court position of champion isn't already filled
|
||||
ordered_in_list = {
|
||||
list = fp1_tbc_valid_knights_list
|
||||
limit = {
|
||||
NOR = {
|
||||
this = scope:knight_best
|
||||
AND = {
|
||||
exists = scope:knight_exotic
|
||||
this = scope:knight_exotic
|
||||
}
|
||||
}
|
||||
NOT = { employs_court_position = champion_court_position }
|
||||
}
|
||||
order_by = prowess
|
||||
save_scope_as = knight_alternative
|
||||
}
|
||||
# Next, if we've got any knight who isn't scope:knight_best, scope:knight_exotic, or scope:knight_alternative, and who would literally murder for you, we grab them.
|
||||
if = {
|
||||
limit = {
|
||||
any_in_list = {
|
||||
list = fp1_tbc_valid_knights_list
|
||||
fp1_tbc_knights_with_high_opinion_filter_trigger = yes
|
||||
}
|
||||
}
|
||||
# First, add them to a sub-list.
|
||||
every_in_list = {
|
||||
list = fp1_tbc_valid_knights_list
|
||||
limit = { fp1_tbc_knights_with_high_opinion_filter_trigger = yes }
|
||||
add_to_list = fp1_tbc_high_opinion_knights_list
|
||||
}
|
||||
# Next, try to pluck out knightly soulmates.
|
||||
if = {
|
||||
limit = {
|
||||
any_in_list = {
|
||||
list = fp1_tbc_high_opinion_knights_list
|
||||
any_relation = {
|
||||
type = soulmate
|
||||
this = scope:recipient
|
||||
}
|
||||
}
|
||||
}
|
||||
random_in_list = {
|
||||
list = fp1_tbc_high_opinion_knights_list
|
||||
limit = {
|
||||
any_relation = {
|
||||
type = soulmate
|
||||
this = scope:recipient
|
||||
}
|
||||
}
|
||||
save_scope_as = knight_opinion
|
||||
}
|
||||
}
|
||||
# Otherwise, order by prowess and select the best.
|
||||
else = {
|
||||
ordered_in_list = {
|
||||
list = fp1_tbc_high_opinion_knights_list
|
||||
order_by = prowess
|
||||
save_scope_as = knight_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
# Finally, if shenanigans have somehow deprived us of a scope:knight_best, then we want to generate someone to fill that minimum slot.
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { exists = scope:knight_best }
|
||||
}
|
||||
create_character = {
|
||||
gender_female_chance = root_soldier_female_chance
|
||||
location = scope:recipient.capital_province
|
||||
template = new_warrior_character
|
||||
faith = scope:recipient.capital_county.faith
|
||||
culture = scope:recipient.capital_county.culture
|
||||
save_scope_as = knight_best
|
||||
}
|
||||
add_courtier = scope:knight_best
|
||||
}
|
||||
}
|
||||
|
||||
# Take the most skilled knight.
|
||||
option = {
|
||||
name = fp1_tbc.0101.a
|
||||
|
||||
trigger = {
|
||||
exists = scope:knight_best
|
||||
}
|
||||
|
||||
# Select scope:knight_best to represent you in the bout.
|
||||
scope:knight_best = { save_scope_as = champion }
|
||||
custom_tooltip = fp1_tbc.0101.a.tt
|
||||
custom_tooltip = fp1_tbc.0101.bout_moves_forward
|
||||
highlight_portrait = scope:knight_best
|
||||
|
||||
# RP/functional choice: no stress charge.
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 0.75
|
||||
ai_boldness = -0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# EP1: Take your already designated champion
|
||||
option = {
|
||||
name = fp1_ep1_tbc.0101.e
|
||||
trigger = {
|
||||
exists = scope:knight_alternative
|
||||
scope:knight_alternative = { has_court_position = champion_court_position }
|
||||
}
|
||||
|
||||
# Select scope:knight_best to represent you in the bout.
|
||||
scope:knight_alternative = { save_scope_as = champion }
|
||||
custom_tooltip = fp1_ep1_tbc.0101.e.tt
|
||||
custom_tooltip = fp1_tbc.0101.bout_moves_forward
|
||||
highlight_portrait = scope:knight_alternative
|
||||
|
||||
# RP/functional choice: no stress charge.
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 0.75
|
||||
ai_boldness = -0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Take the next most skilled knight.
|
||||
option = {
|
||||
name = fp1_tbc.0101.b
|
||||
trigger = {
|
||||
exists = scope:knight_alternative
|
||||
scope:knight_alternative = { NOT = { has_court_position = champion_court_position } }
|
||||
}
|
||||
|
||||
# Select scope:knight_best to represent you in the bout.
|
||||
scope:knight_alternative = { save_scope_as = champion }
|
||||
custom_tooltip = fp1_tbc.0101.b.tt
|
||||
custom_tooltip = fp1_tbc.0101.bout_moves_forward
|
||||
highlight_portrait = scope:knight_alternative
|
||||
|
||||
# RP/functional choice: no stress charge.
|
||||
ai_chance = {
|
||||
# There's no reason for the AI to ever take this option, we offer it entirely for players who dislike/wish to preserve their best knight.
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
# Take the knight with the most special traits that *isn't* the most skilled knight.
|
||||
option = {
|
||||
name = fp1_tbc.0101.c
|
||||
trigger = { exists = scope:knight_opinion }
|
||||
|
||||
# Select scope:knight_best to represent you in the bout.
|
||||
scope:knight_exotic = { save_scope_as = champion }
|
||||
custom_tooltip = fp1_tbc.0101.c.tt
|
||||
custom_tooltip = fp1_tbc.0101.bout_moves_forward
|
||||
highlight_portrait = scope:knight_exotic
|
||||
|
||||
# RP/functional choice: no stress charge.
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 0.5
|
||||
ai_boldness = 0.25
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Take the knight who likes me the most.
|
||||
option = {
|
||||
name = fp1_tbc.0101.d
|
||||
trigger = { exists = scope:knight_opinion}
|
||||
|
||||
# Select scope:knight_best to represent you in the bout.
|
||||
scope:knight_opinion = { save_scope_as = champion }
|
||||
custom_tooltip = fp1_tbc.0101.d.tt
|
||||
custom_tooltip = fp1_tbc.0101.bout_moves_forward
|
||||
highlight_portrait = scope:knight_opinion
|
||||
|
||||
# RP/functional choice: no stress charge.
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_sociability = 0.5
|
||||
ai_rationality = -0.75
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Then, we skip over to scope:actor to inform them what's up.
|
||||
after = {
|
||||
# Clean up any errant scopes we no longer need to avoid debug bloat.
|
||||
clear_saved_scope = knight_best
|
||||
if = {
|
||||
limit = { exists = scope:knight_exotic }
|
||||
clear_saved_scope = knight_exotic
|
||||
}
|
||||
if = {
|
||||
limit = { exists = scope:knight_alternative }
|
||||
clear_saved_scope = knight_alternative
|
||||
}
|
||||
if = {
|
||||
limit = { exists = scope:knight_opinion }
|
||||
clear_saved_scope = knight_opinion
|
||||
}
|
||||
# And transition.
|
||||
scope:actor = { trigger_event = fp1_tbc.0001 }
|
||||
}
|
||||
}
|
||||
|
||||
fp1_tbc.0102 = {
|
||||
desc = debug_main
|
||||
theme = prison
|
||||
|
||||
option = {
|
||||
name = interaction_debug_main
|
||||
}
|
||||
}
|
||||
|
||||
##################################################
|
||||
# Scope:recipient Results
|
||||
# by Ewan Cowhig Croft
|
||||
# 0111 - 0130
|
||||
##################################################
|
||||
|
||||
# Scope:recipient has won the bout.
|
||||
fp1_tbc.0111 = {
|
||||
type = character_event
|
||||
title = fp1_tbc.0111.t
|
||||
desc = {
|
||||
desc = fp1_tbc.0111.desc.intro
|
||||
# Scope:actor died in the fighting; we don't account for
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:actor = { is_alive = no }
|
||||
}
|
||||
desc = fp1_tbc.0111.desc.opponent_died.recipient_fighting
|
||||
}
|
||||
# Scope:actor is still alive.
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:actor = { is_alive = yes}
|
||||
}
|
||||
desc = {
|
||||
first_valid = {
|
||||
# Scope:recipient fought for themselves.
|
||||
triggered_desc = {
|
||||
trigger = { scope:champion = scope:recipient }
|
||||
desc = fp1_tbc.0111.desc.opponent_lives.recipient_fighting
|
||||
}
|
||||
# Scope:recipient had a designated champion instead.
|
||||
desc = fp1_tbc.0111.desc.opponent_lives.recipient_has_champion
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = fp1_tbc.0111.desc.outro
|
||||
}
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:recipient
|
||||
animation = personality_bold
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:actor
|
||||
animation = shock
|
||||
}
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
# Juuuust need to double-check that they're actually alive.
|
||||
is_alive = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Show duel results from the player's POV.
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = { is_alive = yes }
|
||||
}
|
||||
fp1_tbc_actor_defeated_effect = {
|
||||
TBC_LOSER = scope:actor
|
||||
TBC_VICTOR = scope:recipient
|
||||
}
|
||||
}
|
||||
# Sadly, we have to apply some effects here instead of in the initial output event in order to not break tooltips.
|
||||
single_combat_have_slain_kin_effect = {
|
||||
ATTACKER = scope:actor
|
||||
DEFENDER = scope:champion
|
||||
}
|
||||
fp1_tbc_consume_imprisonment_reasons_effect = yes
|
||||
}
|
||||
|
||||
# The bout closes.
|
||||
option = {
|
||||
name = fp1_tbc.0111.a
|
||||
|
||||
# No stress for single-option events.
|
||||
ai_chance = {
|
||||
# AI will always choose single option.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scope:recipient has lost the bout.
|
||||
fp1_tbc.0121 = {
|
||||
type = character_event
|
||||
title = fp1_tbc.0121.t
|
||||
desc = {
|
||||
desc = fp1_tbc.0121.desc.intro
|
||||
# We don't need to account for scope:champion dying in the fighting; if it was scope:recipient, then they're dead, and a separate champion cannot be challenged to a fight to the death.
|
||||
# Scope:champion is still alive.
|
||||
first_valid = {
|
||||
# Scope:recipient fought for themselves.
|
||||
triggered_desc = {
|
||||
trigger = { scope:champion = scope:recipient }
|
||||
desc = fp1_tbc.0121.desc.champion_lives.recipient_fighting
|
||||
}
|
||||
# Scope:recipient had a designated champion instead.
|
||||
desc = fp1_tbc.0121.desc.champion_lives.recipient_has_champion
|
||||
}
|
||||
# Reward, if anything.
|
||||
first_valid = {
|
||||
# Gold.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_gold = yes }
|
||||
desc = fp1_tbc.0121.desc.reward.gold
|
||||
}
|
||||
# Weak hook.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_weak_hook = yes }
|
||||
desc = fp1_tbc.0121.desc.reward.weak_hook
|
||||
}
|
||||
# Humiliation.
|
||||
triggered_desc = {
|
||||
trigger = { scope:tbc_humiliation = yes }
|
||||
desc = fp1_tbc.0121.desc.reward.humiliation
|
||||
}
|
||||
# No outcome for death, since that's handled more succinctly above.
|
||||
}
|
||||
desc = fp1_tbc.0121.desc.outro
|
||||
}
|
||||
theme = prison
|
||||
left_portrait = {
|
||||
character = scope:recipient
|
||||
animation = shock
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:actor
|
||||
animation = personality_bold
|
||||
}
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
# DLC check.
|
||||
has_fp1_dlc_trigger = yes
|
||||
# Juuuust need to double-check that they're actually alive.
|
||||
is_alive = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
# Show duel results from the player's POV.
|
||||
show_as_tooltip = { fp1_tbc_non_lethal_results_effect = yes }
|
||||
# Sadly, we have to apply some effects here instead of in the initial output event in order to not break tooltips.
|
||||
fp1_tbc_consume_imprisonment_reasons_effect = yes
|
||||
}
|
||||
|
||||
# The bout closes.
|
||||
option = {
|
||||
name = fp1_tbc.0121.a
|
||||
|
||||
# No stress for single-option events.
|
||||
ai_chance = {
|
||||
# AI will always choose single option.
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
29
N3OW/events/dlc/fp1/fp1_varangian_adventure_events.txt
Normal file
29
N3OW/events/dlc/fp1/fp1_varangian_adventure_events.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
namespace = fp1_varangian_adventures
|
||||
|
||||
##################################################
|
||||
# #Maintenance Events
|
||||
# 0001 - 0010 Boost attacker control after the war.
|
||||
##################################################
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################
|
||||
# #Maintenance Events
|
||||
|
||||
##################################################
|
||||
# Boost Attacker Control
|
||||
# by Ewan Cowhig Croft
|
||||
# 0001 - 0010
|
||||
##################################################
|
||||
|
||||
# Boost control in newly conquered lands.
|
||||
fp1_varangian_adventures.0001 = {
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
every_realm_county = { change_county_control = 50 }
|
||||
}
|
||||
}
|
||||
2687
N3OW/events/dlc/fp1/fp1_yearly_events_oltner.txt
Normal file
2687
N3OW/events/dlc/fp1/fp1_yearly_events_oltner.txt
Normal file
File diff suppressed because it is too large
Load diff
552
N3OW/events/dlc/fp2/fp2_el_cid_events.txt
Normal file
552
N3OW/events/dlc/fp2/fp2_el_cid_events.txt
Normal file
|
|
@ -0,0 +1,552 @@
|
|||
namespace = fp2_struggle
|
||||
|
||||
######################################
|
||||
# EL CID'S BIZARRE ADVENTURE SYSTEM
|
||||
# By Hugo Cortell
|
||||
######################################
|
||||
fp2_struggle.2045 = {
|
||||
hidden = yes
|
||||
|
||||
trigger = {
|
||||
is_landless_adventurer = no
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = { # Startup changes (give the cid his full nickname when he starts adventuring)
|
||||
limit = { NOT = { has_character_flag = has_already_begun_travelling } }
|
||||
|
||||
remove_nickname = yes
|
||||
give_nickname = nick_the_cid_campeador
|
||||
add_character_flag = has_already_begun_travelling # Prevents yearly pulse from stacking up requests
|
||||
add_character_flag = blocked_from_leaving # Prevents el cid from vacationing in far away lands
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = { NOT = { has_character_flag = finished_el_cids_travels } } # In case several requests for the event are stacked up
|
||||
if = { # Being a guest is used as a boolean to check if the character is in an "evaluation" phase or already in a court. DO NOT USE THE GUEST SYSTEM FOR THIS.
|
||||
limit = {
|
||||
OR = {
|
||||
is_pool_guest = yes
|
||||
is_pool_character = yes
|
||||
is_foreign_court_guest = yes
|
||||
}
|
||||
}
|
||||
random_county_in_region = { # Naturally biased in favor of larger states
|
||||
limit = { exists = holder.liege }
|
||||
weight = {
|
||||
base = 1
|
||||
modifier = {
|
||||
add = 10
|
||||
holder.liege = { has_relation_friend = root }
|
||||
}
|
||||
modifier = {
|
||||
add = 30
|
||||
holder.liege = { has_relation_best_friend = root }
|
||||
}
|
||||
compare_modifier = {
|
||||
value = holder.prestige_level
|
||||
multiplier = 1.5
|
||||
}
|
||||
}
|
||||
region = world_europe_west_iberia # Locks el cid's forced travels to iberia
|
||||
holder.liege = { trigger_event = fp2_struggle.2051 }
|
||||
}
|
||||
}
|
||||
else = {
|
||||
if = {
|
||||
limit = { exists = liege }
|
||||
liege = { trigger_event = fp2_struggle.2050 } # This is you, you get the event, while el cid gets the "system event"
|
||||
}
|
||||
else = {
|
||||
employer = { trigger_event = fp2_struggle.2050 } # ditto
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#############################################################
|
||||
# Unease About El Sidi
|
||||
# By The Content Design Team (And scripted by Hugo Cortell)
|
||||
#############################################################
|
||||
|
||||
scripted_trigger el_cid_too_important_trigger = {
|
||||
OR = {
|
||||
any_extended_family_member = { this = scope:fp2_2050_el_cid }
|
||||
scope:fp2_2050_el_cid = { is_vassal_of = ROOT }
|
||||
has_relation_best_friend = scope:fp2_2050_el_cid
|
||||
is_spouse_of = scope:fp2_2050_el_cid
|
||||
}
|
||||
}
|
||||
|
||||
fp2_struggle.2050 = {
|
||||
type = character_event
|
||||
title = {
|
||||
random_valid = {
|
||||
triggered_desc = { # Muslim Titles
|
||||
trigger = { religion = religion:islam_religion }
|
||||
desc = {
|
||||
random_valid = {
|
||||
desc = fp2_struggle.2050.t_muslim_one
|
||||
desc = fp2_struggle.2050.t_muslim_two
|
||||
desc = fp2_struggle.2050.t_muslim_three
|
||||
desc = fp2_struggle.2050.t_muslim_four
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
triggered_desc = { # Generic (Christian, nickname-like) Titles
|
||||
trigger = { NOT = { religion = religion:islam_religion } }
|
||||
desc = {
|
||||
random_valid = {
|
||||
desc = fp2_struggle.2050.t_generic_one
|
||||
desc = fp2_struggle.2050.t_generic_two
|
||||
desc = fp2_struggle.2050.t_generic_three
|
||||
desc = fp2_struggle.2050.t_generic_four
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = { # See immediate for flags
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:generic_court }
|
||||
desc = fp2_struggle.2050.desc_court
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:jelly_knights }
|
||||
desc = fp2_struggle.2050.desc_knights
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:upset_nobles }
|
||||
desc = fp2_struggle.2050.desc_nobles
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:faith_discomfort }
|
||||
desc = fp2_struggle.2050.desc_faith
|
||||
}
|
||||
desc = board_games.0001.desc.i_am_winning.trait.rowdy # Theoretically impossible to trigger, but if something breaks, players will see this and report it for sure
|
||||
}
|
||||
}
|
||||
|
||||
theme = corruption
|
||||
override_background = { reference = throne_room }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:fp2_2050_el_cid
|
||||
animation = throne_room_two_handed_passive_1
|
||||
}
|
||||
|
||||
immediate = {
|
||||
character:107590 = { save_scope_as = fp2_2050_el_cid }
|
||||
|
||||
random_list = { # Spin the wheel to decide who and why wishes ill on el cid
|
||||
10 = { # Generic "the court thinks he is bad"
|
||||
save_scope_value_as = {
|
||||
name = fp2_2050_reason_for_kicking_out_el_cid
|
||||
value = flag:generic_court
|
||||
}
|
||||
}
|
||||
10 = { # Your knights are all sore losers
|
||||
modifier = {
|
||||
add = 30
|
||||
any_knight = {
|
||||
OR = {
|
||||
has_relation_rival = scope:fp2_2050_el_cid
|
||||
has_relation_nemesis = scope:fp2_2050_el_cid
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_value_as = {
|
||||
name = fp2_2050_reason_for_kicking_out_el_cid
|
||||
value = flag:jelly_knights
|
||||
}
|
||||
}
|
||||
10 = { # Nobles dislike upstart poor people
|
||||
modifier = {
|
||||
add = 30
|
||||
any_vassal = {
|
||||
OR = {
|
||||
has_relation_rival = scope:fp2_2050_el_cid
|
||||
has_relation_nemesis = scope:fp2_2050_el_cid
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_value_as = {
|
||||
name = fp2_2050_reason_for_kicking_out_el_cid
|
||||
value = flag:upset_nobles
|
||||
}
|
||||
}
|
||||
10 = { # Generic faith concerns from your bishop
|
||||
save_scope_value_as = {
|
||||
name = fp2_2050_reason_for_kicking_out_el_cid
|
||||
value = flag:faith_discomfort
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Family, Friend or Vassal
|
||||
name = fp2_struggle.2050.a
|
||||
|
||||
trigger = { el_cid_too_important_trigger = yes }
|
||||
|
||||
hidden_effect = {
|
||||
scope:fp2_2050_el_cid = { add_character_flag = finished_el_cids_travels } # At this point we can imagine that this character has settled, this stops the cycle to prevent spam
|
||||
}
|
||||
|
||||
custom_tooltip = fp2_struggle.2050.a.serve_tooltip
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = fp2_struggle.2050.a.notif.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:fp2_2050_el_cid
|
||||
modifier = stood_by_me_opinion
|
||||
opinion = 10
|
||||
years = 20
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
fickle = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = { base = 1000 }
|
||||
}
|
||||
|
||||
option = { # No, I stand by my knight and he can stay!
|
||||
name = fp2_struggle.2050.b
|
||||
|
||||
trigger = {
|
||||
is_ai = no
|
||||
NOT = { scope:fp2_2050_el_cid = { is_vassal_of = ROOT } }
|
||||
}
|
||||
|
||||
custom_tooltip = fp2_struggle.2050.a.serve_tooltip
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = fp2_struggle.2050.a.notif.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
if = {
|
||||
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:generic_court }
|
||||
add_character_modifier = {
|
||||
modifier = fp2_kept_accused_traitor_in_court_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:jelly_knights }
|
||||
add_character_modifier = {
|
||||
modifier = fp2_kept_op_knight_in_court_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:upset_nobles }
|
||||
add_character_modifier = {
|
||||
modifier = fp2_kept_upstart_knight_in_court_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:fp2_2050_reason_for_kicking_out_el_cid = flag:faith_discomfort }
|
||||
add_character_modifier = {
|
||||
modifier = fp2_kept_godless_mercenary_in_court_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:fp2_2050_el_cid
|
||||
modifier = stood_by_me_opinion
|
||||
opinion = 10
|
||||
years = 20
|
||||
}
|
||||
scope:fp2_2050_el_cid = {
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
years = { 4 12 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
fickle = minor_stress_impact_gain
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Okay, please do not give me malus
|
||||
name = fp2_struggle.2050.c
|
||||
|
||||
trigger = {
|
||||
NOT = { scope:fp2_2050_el_cid = { is_vassal_of = ROOT } }
|
||||
}
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = fp2_struggle.2051.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
scope:fp2_2050_el_cid = {
|
||||
move_to_pool = yes
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
days = { 1 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
generous = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = { base = 1 }
|
||||
}
|
||||
|
||||
option = { # Vanish el cid, even though he is your vassal (suggested by Max)
|
||||
name = fp2_struggle.2050.c
|
||||
|
||||
trigger = {
|
||||
is_ai = no
|
||||
scope:fp2_2050_el_cid = { is_vassal_of = ROOT }
|
||||
}
|
||||
|
||||
# The only reason to ever select this option is to gain those "repossessed" lands, but it is very mean.
|
||||
# It will give you tyranny, but it won't directly anger your vassals as they are *narratively* the reason why this is happening.
|
||||
# The primary reason this exists is to prevent ludonarrative dissonance with the event's description. It is less resource intensive than making new loc.
|
||||
|
||||
# We set the tyranny and opinion loss based on how much was lost (Placed outside the toast to prevent clutter)
|
||||
add_tyranny = {
|
||||
value = medium_tyranny_gain
|
||||
multiply = scope:fp2_2050_el_cid.primary_title.tier
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = { can_set_relation_rival_trigger = { CHARACTER = scope:fp2_2050_el_cid } }
|
||||
set_relation_rival = scope:fp2_2050_el_cid
|
||||
}
|
||||
if = { # This is not out of order, it is WAD. If can_set_relation_rival_trigger fails, you just lose a friend but not gain a rival.
|
||||
limit = { has_relation_friend = scope:fp2_2050_el_cid }
|
||||
remove_relation_friend = scope:fp2_2050_el_cid
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = { scope:fp2_2050_el_cid.primary_title.tier < tier_kingdom }
|
||||
scope:fp2_2050_el_cid = {
|
||||
add_opinion = {
|
||||
modifier = betrayed_me_opinion
|
||||
target = root
|
||||
opinion = -100
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
scope:fp2_2050_el_cid = {
|
||||
add_opinion = {
|
||||
modifier = betrayed_me_opinion
|
||||
target = root
|
||||
opinion = -200
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
create_title_and_vassal_change = { # This tells the engine to start paying closer attention to title changes (and not butt in)
|
||||
type = revoked
|
||||
save_scope_as = change
|
||||
}
|
||||
scope:fp2_2050_el_cid = {
|
||||
every_held_title = {
|
||||
change_title_holder = {
|
||||
holder = root
|
||||
change = scope:change
|
||||
}
|
||||
}
|
||||
}
|
||||
resolve_title_and_vassal_change = scope:change # Tells the engine that it is safe to go about its buisness with titles
|
||||
|
||||
show_as_tooltip = { scope:fp2_2050_el_cid = { move_to_pool = yes } } # Just jomini things~
|
||||
hidden_effect = { # Prevents rendering of toast on option highlight
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = fp2_struggle.2051.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
show_as_tooltip = { # Condensed version to fit into the toast
|
||||
if = {
|
||||
limit = { scope:fp2_2050_el_cid.primary_title.tier > tier_duchy }
|
||||
scope:fp2_2050_el_cid = {
|
||||
if = {
|
||||
limit = { has_relation_nemesis = ROOT }
|
||||
set_relation_nemesis = ROOT
|
||||
}
|
||||
add_opinion = {
|
||||
modifier = betrayed_me_opinion
|
||||
target = root
|
||||
opinion = -200
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
if = {
|
||||
limit = { has_relation_rival = ROOT }
|
||||
set_relation_rival = ROOT
|
||||
}
|
||||
add_opinion = {
|
||||
modifier = betrayed_me_opinion
|
||||
target = root
|
||||
opinion = -100
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Standard stuff
|
||||
scope:fp2_2050_el_cid = {
|
||||
move_to_pool = yes
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
days = { 1 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = { # This kind of action comes with quite a bit of stress
|
||||
generous = minor_stress_impact_gain
|
||||
brave = medium_stress_impact_gain
|
||||
forgiving = major_stress_impact_gain
|
||||
gregarious = medium_stress_impact_gain
|
||||
honest = minor_stress_impact_gain
|
||||
humble = medium_stress_impact_gain
|
||||
just = major_stress_impact_gain
|
||||
trusting = medium_stress_impact_gain
|
||||
compassionate = major_stress_impact_gain
|
||||
august = minor_stress_impact_gain
|
||||
gallant = medium_stress_impact_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
# El Cid Arrives At Your Court
|
||||
# By The Content Design Team (And scripted by Hugo Cortell)
|
||||
############################################################
|
||||
fp2_struggle.2051 = {
|
||||
type = character_event
|
||||
title = fp2_struggle.2051.t
|
||||
desc = fp2_struggle.2051.desc
|
||||
|
||||
theme = vassal
|
||||
override_background = { reference = throne_room }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:fp2_2050_el_cid
|
||||
animation = throne_room_one_handed_passive_1
|
||||
}
|
||||
|
||||
immediate = {
|
||||
character:107590 = { save_scope_as = fp2_2050_el_cid }
|
||||
add_visiting_courtier = scope:fp2_2050_el_cid
|
||||
}
|
||||
|
||||
option = { # You will enjoy a high position at my court!
|
||||
name = fp2_struggle.2051.a
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = fp2_struggle.2050.a.notif.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
pay_treasury_or_gold = {
|
||||
target = scope:fp2_2050_el_cid
|
||||
value = medium_treasury_or_gold_value
|
||||
}
|
||||
add_courtier = scope:fp2_2050_el_cid
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = { exists = cp:councillor_marshal }
|
||||
fire_councillor = cp:councillor_marshal
|
||||
}
|
||||
assign_councillor_type = {
|
||||
type = councillor_marshal
|
||||
target = scope:fp2_2050_el_cid
|
||||
}
|
||||
|
||||
scope:fp2_2050_el_cid = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = hired_me_opinion
|
||||
opinion = 20
|
||||
}
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = given_luxuries_opinion
|
||||
opinion = 10
|
||||
}
|
||||
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
years = { 4 12 }
|
||||
}
|
||||
}
|
||||
|
||||
trigger = { is_ai = no }
|
||||
}
|
||||
|
||||
option = { # Welcome or whatever
|
||||
name = fp2_struggle.2051.b
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = fp2_struggle.2050.a.notif.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
pay_treasury_or_gold = {
|
||||
target = scope:fp2_2050_el_cid
|
||||
value = minor_treasury_or_gold_value
|
||||
}
|
||||
add_courtier = scope:fp2_2050_el_cid
|
||||
}
|
||||
scope:fp2_2050_el_cid = {
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
years = { 4 10 }
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = { base = 65 }
|
||||
}
|
||||
|
||||
option = { # Away with you vile beggar!
|
||||
name = fp2_struggle.2051.c
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = fp2_struggle.2051.t
|
||||
right_icon = scope:fp2_2050_el_cid
|
||||
|
||||
custom_tooltip = fp2_struggle.2050.c.notif
|
||||
scope:fp2_2050_el_cid = {
|
||||
move_to_pool = yes
|
||||
trigger_event = {
|
||||
id = fp2_struggle.2045
|
||||
days = { 1 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = { base = 45 }
|
||||
}
|
||||
}
|
||||
4800
N3OW/events/dlc/fp2/fp2_lyonese_monk_events.txt
Normal file
4800
N3OW/events/dlc/fp2/fp2_lyonese_monk_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2572
N3OW/events/dlc/fp2/fp2_other_decision_events.txt
Normal file
2572
N3OW/events/dlc/fp2/fp2_other_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
365
N3OW/events/dlc/fp2/neutral_struggle_events.txt
Normal file
365
N3OW/events/dlc/fp2/neutral_struggle_events.txt
Normal file
|
|
@ -0,0 +1,365 @@
|
|||
namespace = neutral_struggle
|
||||
|
||||
##################################################
|
||||
# MAINTENANCE EVENTS
|
||||
|
||||
##################################################
|
||||
# Activate Passing of Time
|
||||
# by Ewan Cowhig Croft
|
||||
# 0001 - 0010
|
||||
##################################################
|
||||
|
||||
neutral_struggle.0001 = {
|
||||
hidden = yes
|
||||
scope = struggle
|
||||
|
||||
immediate = {
|
||||
# Passage of Time catalyst ticks towards default phases.
|
||||
if = {
|
||||
limit = { phase_has_catalyst = catalyst_passing_of_time }
|
||||
activate_struggle_catalyst = catalyst_passing_of_time
|
||||
}
|
||||
# Other time-based catalysts.
|
||||
## Missing the Arabian Empire or Sunni Caliphate.
|
||||
if = {
|
||||
limit = {
|
||||
OR = {
|
||||
NOT = { exists = title:e_arabia.holder }
|
||||
NOT = { exists = title:d_sunni.holder }
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = { phase_has_catalyst = catalyst_missing_caliphate_or_arabian_empire }
|
||||
activate_struggle_catalyst = catalyst_missing_caliphate_or_arabian_empire
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = concession_catalyst_missing_caliphate_or_arabian_empire }
|
||||
}
|
||||
}
|
||||
# House Unity catalysts.
|
||||
## Disharmonious houses.
|
||||
if = {
|
||||
limit = {
|
||||
OR = {
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_antagonistic_major
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_antagonistic_medium
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_antagonistic_minor
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_antagonistic_minimal
|
||||
}
|
||||
}
|
||||
# Calc how many relevant houses are in a bit of a state.
|
||||
save_scope_value_as = {
|
||||
name = antagonistic_influential_house_check
|
||||
value = {
|
||||
every_involved_ruler = {
|
||||
limit = {
|
||||
house ?= {
|
||||
house_head = prev
|
||||
has_house_unity_stage = antagonistic
|
||||
}
|
||||
}
|
||||
add = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
# Right, now we activate different sizes of catalyst depending on how many affected houses we have.
|
||||
## Major
|
||||
if = {
|
||||
limit = { scope:antagonistic_influential_house_check >= catalyst_yearly_influential_house_is_antagonistic_major_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_antagonistic_major
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_yearly_influential_house_is_antagonistic_major }
|
||||
}
|
||||
## Medium
|
||||
else_if = {
|
||||
limit = { scope:antagonistic_influential_house_check >= catalyst_yearly_influential_house_is_antagonistic_medium_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_antagonistic_medium
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_yearly_influential_house_is_antagonistic_medium }
|
||||
}
|
||||
## Minor
|
||||
else_if = {
|
||||
limit = { scope:antagonistic_influential_house_check >= catalyst_yearly_influential_house_is_antagonistic_minor_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_antagonistic_minor
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_yearly_influential_house_is_antagonistic_minor }
|
||||
}
|
||||
## Minimal
|
||||
else_if = {
|
||||
limit = { scope:antagonistic_influential_house_check >= catalyst_yearly_influential_house_is_antagonistic_minimal_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_antagonistic_minimal
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = unrest_catalyst_yearly_influential_house_is_antagonistic_minimal }
|
||||
}
|
||||
}
|
||||
## Harmonious houses.
|
||||
if = {
|
||||
limit = {
|
||||
OR = {
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_harmonious_major
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_harmonious_medium
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_harmonious_minor
|
||||
phase_has_catalyst = catalyst_yearly_influential_house_is_harmonious_minimal
|
||||
}
|
||||
}
|
||||
every_involved_ruler = {
|
||||
limit = {
|
||||
house ?= {
|
||||
house_head = prev
|
||||
has_house_unity_stage = harmonious
|
||||
}
|
||||
}
|
||||
house = { add_to_list = harmonious_houses }
|
||||
}
|
||||
# Calc how many relevant houses are in a bit of a state.
|
||||
save_scope_value_as = {
|
||||
name = harmonious_influential_house_check
|
||||
value = {
|
||||
value = 0
|
||||
every_in_list = {
|
||||
list = harmonious_houses
|
||||
add = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
# Right, now we activate different sizes of catalyst depending on how many affected houses we have.
|
||||
## Major
|
||||
if = {
|
||||
limit = { scope:harmonious_influential_house_check >= catalyst_yearly_influential_house_is_harmonious_major_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_harmonious_major
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_yearly_influential_house_is_harmonious_major }
|
||||
}
|
||||
## Medium
|
||||
else_if = {
|
||||
limit = { scope:harmonious_influential_house_check >= catalyst_yearly_influential_house_is_harmonious_medium_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_harmonious_medium
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_yearly_influential_house_is_harmonious_medium }
|
||||
}
|
||||
## Minor
|
||||
else_if = {
|
||||
limit = { scope:harmonious_influential_house_check >= catalyst_yearly_influential_house_is_harmonious_minor_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_harmonious_minor
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_yearly_influential_house_is_harmonious_minor }
|
||||
}
|
||||
## Minimal
|
||||
else_if = {
|
||||
limit = { scope:harmonious_influential_house_check >= catalyst_yearly_influential_house_is_harmonious_minimal_control_value }
|
||||
activate_struggle_catalyst = catalyst_yearly_influential_house_is_harmonious_minimal
|
||||
log_debug_variable_for_persian_struggle_effect = { VAR = stabil_catalyst_yearly_influential_house_is_harmonious_minimal }
|
||||
}
|
||||
}
|
||||
# Silk Road
|
||||
tgp_silk_road_iranian_intermezzo_yearly_effect = yes
|
||||
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_struggle.0001
|
||||
years = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
##################################################
|
||||
# MAINTENANCE FOR SITUATIONS
|
||||
#
|
||||
|
||||
namespace = neutral_situation
|
||||
|
||||
neutral_situation.0001 = { # CHINA
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_china = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0002 # Tibet
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0002 = { # TIBET
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_tibet = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0005 # Transcaspia
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0003 = { # INDIA
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_india = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0004 # Central Asia
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0004 = { # CENTRAL ASIA
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_central_asia = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0003 # Tibet
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0005 = { # TRANSCASPIA
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_transcaspia = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0006 # Occident
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0006 = { # OCCIDENT
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
situation:silk_road_situation.situation_sub_region:region_silk_road_proper_occident = { tgp_silk_road_downstream_effect = yes }
|
||||
# Finally, queue the event up again for a year hence.
|
||||
trigger_event = {
|
||||
id = neutral_situation.0001 # China
|
||||
months = 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
neutral_situation.0007 = { # INNOVATION SETUP
|
||||
hidden = yes
|
||||
scope = situation
|
||||
trigger = { exists = situation:silk_road_situation }
|
||||
immediate = {
|
||||
if = {
|
||||
limit = { has_game_rule = silk_road_starting_innovations_random }
|
||||
while = {
|
||||
count = 4
|
||||
random_culture_innovation = {
|
||||
limit = {
|
||||
has_innovation_parameter = silk_road_innovation_parameter
|
||||
is_known_by_culture = title:c_jingzhao.culture
|
||||
NOR = {
|
||||
scope:innovation_1 ?= this
|
||||
scope:innovation_2 ?= this
|
||||
scope:innovation_3 ?= this
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = { exists = scope:innovation_3 }
|
||||
save_scope_as = innovation_4
|
||||
}
|
||||
else_if = {
|
||||
limit = { exists = scope:innovation_2 }
|
||||
save_scope_as = innovation_3
|
||||
}
|
||||
else_if = {
|
||||
limit = { exists = scope:innovation_1 }
|
||||
save_scope_as = innovation_2
|
||||
}
|
||||
else = { save_scope_as = innovation_1 }
|
||||
}
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_china = {
|
||||
set_variable = { name = innovation value = scope:innovation_1 }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_tibet = {
|
||||
set_variable = { name = innovation value = scope:innovation_2 }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_central_asia = {
|
||||
set_variable = { name = innovation value = scope:innovation_2 }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_india = {
|
||||
set_variable = { name = innovation value = scope:innovation_3 }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_transcaspia = {
|
||||
set_variable = { name = innovation value = scope:innovation_3 }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_occident = {
|
||||
set_variable = { name = innovation value = scope:innovation_4 }
|
||||
}
|
||||
}
|
||||
else = {
|
||||
if = {
|
||||
limit = { game_start_date = 867.1.1 }
|
||||
situation_sub_region:region_silk_road_proper_china = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_dragon_kiln }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_tibet = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_block_printing }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_central_asia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_block_printing }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_india = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_waterworks }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_transcaspia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_waterworks }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_occident = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_cupellation }
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = { game_start_date = 1066.9.15 }
|
||||
situation_sub_region:region_silk_road_proper_china = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_compass }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_tibet = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_fire_medicine }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_central_asia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_fire_medicine }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_india = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_champa_rice }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_transcaspia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_champa_rice }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_occident = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_pharmacopoeia }
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = { game_start_date = 1178.10.1 }
|
||||
situation_sub_region:region_silk_road_proper_china = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_grenades }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_tibet = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_pharmacopoeia }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_central_asia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_pharmacopoeia }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_india = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_coking }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_transcaspia = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_coking }
|
||||
}
|
||||
situation_sub_region:region_silk_road_proper_occident = {
|
||||
set_variable = { name = innovation value = culture_innovation:innovation_bulkheads }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1493
N3OW/events/dlc/fp3/fp3_clan_events_2000.txt
Normal file
1493
N3OW/events/dlc/fp3/fp3_clan_events_2000.txt
Normal file
File diff suppressed because it is too large
Load diff
196
N3OW/events/dlc/fp3/fp3_clan_events_hugo.txt
Normal file
196
N3OW/events/dlc/fp3/fp3_clan_events_hugo.txt
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
namespace = fp3_clan
|
||||
|
||||
### EVENT LIST ####################################################################
|
||||
## 3000 - 3000 Ravaged Tulips by Hugo Cortell
|
||||
###################################################################################
|
||||
|
||||
###################################
|
||||
# Ravaged Tulips
|
||||
# By Hugo Cortell
|
||||
###################################
|
||||
scripted_trigger is_bad_tulip_stealing_child = {
|
||||
age > 4 # Baby no steal flower
|
||||
is_adult = no
|
||||
is_available = yes
|
||||
any_close_or_extended_family_member = {
|
||||
is_available_ai_adult = yes
|
||||
house = root.house
|
||||
this != root
|
||||
}
|
||||
}
|
||||
|
||||
fp3_clan.3000 = {
|
||||
type = character_event
|
||||
title = fp3_clan.3000.t
|
||||
desc = fp3_clan.3000.desc
|
||||
|
||||
theme = mental_break
|
||||
override_background = { reference = garden }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shock
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:fp3_clan_3000_bad_child
|
||||
animation = war_over_win
|
||||
}
|
||||
|
||||
cooldown = { years = 5 }
|
||||
|
||||
weight_multiplier = { # Greatly lower chances if you have no garden
|
||||
base = 0.4
|
||||
|
||||
modifier = {
|
||||
add = 0.6
|
||||
capital_province = { has_building_or_higher = royal_garden_01 }
|
||||
}
|
||||
}
|
||||
|
||||
trigger = {
|
||||
has_fp3_dlc_trigger = yes
|
||||
is_landed_or_landless_administrative = yes
|
||||
culture = { has_cultural_parameter = can_appoint_court_gardener }
|
||||
house = { any_house_member = { is_bad_tulip_stealing_child = yes } }
|
||||
}
|
||||
|
||||
immediate = {
|
||||
capital_province = { save_scope_as = fp3_clan_3000_loc_loc } # the loc-ation for loc-alization usage
|
||||
house = {
|
||||
random_house_member = {
|
||||
limit = { is_bad_tulip_stealing_child = yes }
|
||||
save_scope_as = fp3_clan_3000_bad_child
|
||||
|
||||
random_close_or_extended_family_member = {
|
||||
limit = { this != root }
|
||||
save_scope_as = fp3_clan_3000_random_family_member
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # You can keep them, and I'll pay to plant new ones
|
||||
name = fp3_clan.3000.a
|
||||
|
||||
stress_impact = {
|
||||
wrathful = minor_stress_impact_gain
|
||||
vengeful = minor_stress_impact_gain
|
||||
arrogant = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
scope:fp3_clan_3000_random_family_member = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = kindness_opinion
|
||||
opinion = 20
|
||||
}
|
||||
}
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:fp3_clan_3000_random_family_member
|
||||
VALUE = minor_unity_gain
|
||||
DESC = clan_unity_generic_increased_fallback.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 1
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # GIVE THEM BACK YOU BUGGER
|
||||
name = fp3_clan.3000.b
|
||||
|
||||
stress_impact = {
|
||||
compassionate = minor_stress_impact_gain
|
||||
patient = minor_stress_impact_gain
|
||||
content = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
scope:fp3_clan_3000_random_family_member = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = scolded_my_child_opinion # Not exact, but close
|
||||
}
|
||||
}
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:fp3_clan_3000_random_family_member
|
||||
VALUE = minor_unity_loss
|
||||
DESC = clan_unity_generic_decreased_fallback.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 1
|
||||
ai_greed = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Alright, time to work the fields, kid
|
||||
name = fp3_clan.3000.c
|
||||
flavor = fp3_clan.3000.c.flavor
|
||||
|
||||
trigger = { has_trait = lifestyle_gardener }
|
||||
stress_impact = { lazy = minor_stress_impact_loss }
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:fp3_clan_3000_random_family_member
|
||||
VALUE = minor_unity_gain
|
||||
DESC = clan_unity_generic_increased_fallback.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
scope:fp3_clan_3000_random_family_member = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = kindness_opinion
|
||||
opinion = 10
|
||||
}
|
||||
}
|
||||
|
||||
if = { # In the very rare case that the child already knows about plants and stuff
|
||||
limit = { scope:fp3_clan_3000_bad_child = { has_trait = lifestyle_gardener } }
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = fp3_taught_me_gardening_opinion
|
||||
}
|
||||
}
|
||||
else = {
|
||||
random = {
|
||||
chance = {
|
||||
value = 25
|
||||
add = {
|
||||
value = learning
|
||||
multiply = 2
|
||||
}
|
||||
}
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = vassal.2001.t
|
||||
left_icon = ROOT
|
||||
right_icon = scope:fp3_clan_3000_bad_child
|
||||
|
||||
scope:fp3_clan_3000_bad_child = { add_trait = lifestyle_gardener }
|
||||
}
|
||||
scope:fp3_clan_3000_bad_child = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = fp3_taught_me_gardening_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_chance = { base = 1000 }
|
||||
}
|
||||
}
|
||||
2515
N3OW/events/dlc/fp3/fp3_clan_events_ola.txt
Normal file
2515
N3OW/events/dlc/fp3/fp3_clan_events_ola.txt
Normal file
File diff suppressed because it is too large
Load diff
727
N3OW/events/dlc/fp3/fp3_clan_events_persia_specific_ola.txt
Normal file
727
N3OW/events/dlc/fp3/fp3_clan_events_persia_specific_ola.txt
Normal file
|
|
@ -0,0 +1,727 @@
|
|||
namespace = fp3_clan
|
||||
|
||||
########EVENT INDEX############
|
||||
#fp3_clan.8015 - Scandalous Scion
|
||||
#fp3_clan.8016 - Hammam Havoc
|
||||
#fp3_clan_8017 - A Questionable Position
|
||||
####################
|
||||
|
||||
###################################
|
||||
# Scandalous Scion
|
||||
# By Ola Jentzsch
|
||||
###################################
|
||||
scripted_trigger fp3_scandalous_scion_trigger = {
|
||||
NOT = { liege ?= root }
|
||||
is_available_ai_adult = yes
|
||||
is_landed = no
|
||||
age < 45
|
||||
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
|
||||
ai_sociability > low_negative_ai_value
|
||||
ai_compassion < low_positive_ai_value
|
||||
NOR = {
|
||||
is_child_of = root
|
||||
this = root
|
||||
}
|
||||
any_parent = {
|
||||
is_available_ai_adult = yes
|
||||
NOT = { is_close_family_of = root }
|
||||
}
|
||||
}
|
||||
|
||||
fp3_clan.8015 = {
|
||||
type = character_event
|
||||
title = fp3_clan.8015.t
|
||||
desc = fp3_clan.8015.desc
|
||||
|
||||
theme = martial
|
||||
|
||||
left_portrait = {
|
||||
character = scope:scandalous_scion
|
||||
animation = dismissal
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = craven
|
||||
has_trait = shy
|
||||
ai_boldness <= low_positive_ai_value
|
||||
}
|
||||
}
|
||||
animation = shame
|
||||
}
|
||||
outfit_tags = {
|
||||
military_outfit
|
||||
}
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:concerned_parent
|
||||
animation = stress
|
||||
}
|
||||
lower_left_portrait = root
|
||||
|
||||
override_background = { reference = throne_room }
|
||||
|
||||
trigger = {
|
||||
has_fp3_dlc_trigger = yes
|
||||
is_landed = yes
|
||||
government_has_flag = government_is_clan
|
||||
is_available_adult = yes
|
||||
is_house_head = yes
|
||||
|
||||
#culture = { has_cultural_tradition = tradition_futuwaa }
|
||||
|
||||
house = {
|
||||
any_house_member = {
|
||||
fp3_scandalous_scion_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
immediate = {
|
||||
house = {
|
||||
random_house_member = {
|
||||
limit = {
|
||||
fp3_scandalous_scion_trigger = yes
|
||||
}
|
||||
save_scope_as = scandalous_scion
|
||||
random_parent = {
|
||||
limit = {
|
||||
is_available_ai_adult = yes
|
||||
NOT = { is_close_family_of = root }
|
||||
}
|
||||
save_scope_as = concerned_parent
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8015.a
|
||||
|
||||
add_courtier = scope:scandalous_scion
|
||||
|
||||
scope:scandalous_scion = {
|
||||
add_character_modifier = {
|
||||
modifier = fp3_better_company_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
|
||||
scope:concerned_parent = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 25
|
||||
modifier = fp3_grateful_for_discretion_opinion
|
||||
}
|
||||
}
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:scandalous_scion
|
||||
VALUE = minor_unity_gain
|
||||
DESC = clan_unity_scandalous_scion_desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
paranoid = minor_stress_impact_gain
|
||||
shy = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 0.5
|
||||
ai_greed = -0.5
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8015.b
|
||||
|
||||
scope:concerned_parent = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -20
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:scandalous_scion
|
||||
VALUE = minor_unity_loss
|
||||
DESC = clan_unity_scandalous_scion_ignored_problem_desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
generous = minor_stress_impact_gain
|
||||
trusting = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_compassion = -0.5
|
||||
ai_greed = -0.5
|
||||
ai_sociability = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
###################################
|
||||
# Hammam Havoc
|
||||
# By Ola Jentzsch
|
||||
###################################
|
||||
scripted_trigger fp3_scandalous_traits_trigger = {
|
||||
OR = {
|
||||
has_trait = deviant
|
||||
has_trait = drunkard
|
||||
has_trait = rakish
|
||||
has_trait = hashishiyah
|
||||
}
|
||||
}
|
||||
|
||||
scripted_trigger fp3_suitable_for_islamic_bathhouse_events_trigger = {
|
||||
OR = { #checking for adherence to Islamic / Zoroastrian gender norms
|
||||
AND = {
|
||||
root = { is_male = yes }
|
||||
is_male = yes
|
||||
}
|
||||
AND = {
|
||||
root = { is_female = yes }
|
||||
is_female = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fp3_clan.8016 = {
|
||||
type = character_event
|
||||
title = fp3_clan.8016.t
|
||||
desc = {
|
||||
desc = fp3_clan.8016.opening_desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:scandalous_clan_member = {
|
||||
has_trait = deviant
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8016.deviant_desc
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:scandalous_clan_member = {
|
||||
has_trait = drunkard
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8016.drunkard_desc
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:scandalous_clan_member = {
|
||||
has_trait = rakish
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8016.rakish_desc
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:scandalous_clan_member = {
|
||||
has_trait = hashishiyah
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8016.hashishiyah_desc
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8016.ending_desc
|
||||
}
|
||||
|
||||
theme = faith
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = disbelief
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = craven
|
||||
has_trait = shy
|
||||
has_trait = paranoid
|
||||
stress > medium_stress
|
||||
}
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:chaplain
|
||||
animation = eyeroll
|
||||
}
|
||||
lower_left_portrait = scope:scandalous_clan_member
|
||||
|
||||
override_background = { reference = bath_house }
|
||||
override_effect_2d = {
|
||||
reference = smoke
|
||||
}
|
||||
|
||||
trigger = {
|
||||
has_fp3_dlc_trigger = yes
|
||||
is_available_adult = yes
|
||||
is_dynast = yes
|
||||
government_has_flag = government_is_clan
|
||||
|
||||
faith = {
|
||||
OR = {
|
||||
has_doctrine_parameter = deviancy_illegal
|
||||
has_doctrine_parameter = deviancy_shunned
|
||||
}
|
||||
}
|
||||
|
||||
house = {
|
||||
any_house_unity_member = {
|
||||
this != root
|
||||
is_available_ai_adult = yes
|
||||
fp3_scandalous_traits_trigger = yes
|
||||
fp3_suitable_for_islamic_bathhouse_events_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
exists = cp:councillor_court_chaplain
|
||||
cp:councillor_court_chaplain = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
fp3_scandalous_traits_trigger = no
|
||||
fp3_suitable_for_islamic_bathhouse_events_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
immediate = {
|
||||
house = {
|
||||
random_house_unity_member = {
|
||||
limit = {
|
||||
this != root
|
||||
is_available_ai_adult = yes
|
||||
fp3_scandalous_traits_trigger = yes
|
||||
fp3_suitable_for_islamic_bathhouse_events_trigger = yes
|
||||
}
|
||||
save_scope_as = scandalous_clan_member
|
||||
}
|
||||
}
|
||||
|
||||
cp:councillor_court_chaplain = { save_scope_as = chaplain }
|
||||
|
||||
hidden_effect = {
|
||||
scope:scandalous_clan_member = {
|
||||
set_location = { location = root.location }
|
||||
}
|
||||
}
|
||||
add_character_flag = is_naked
|
||||
scope:chaplain = {
|
||||
add_character_flag = is_naked
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8016.a
|
||||
|
||||
add_piety = medium_piety_gain
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:scandalous_clan_member
|
||||
VALUE = minor_unity_loss
|
||||
DESC = clan_unity_denouncement.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
scope:scandalous_clan_member = {
|
||||
denounce_effect = { ACTOR = root RECIPIENT = scope:scandalous_clan_member }
|
||||
}
|
||||
|
||||
scope:chaplain = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 20
|
||||
modifier = pleased_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
forgiving = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_gain
|
||||
paranoid = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_compassion = -0.9
|
||||
ai_vengefulness = 0.5
|
||||
ai_zeal = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8016.b
|
||||
|
||||
scope:chaplain = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -20
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:scandalous_clan_member
|
||||
VALUE = minor_unity_gain
|
||||
DESC = clan_unity_denouncement_refusal.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
zealous = medium_stress_impact_gain
|
||||
trusting = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_zeal = -0.5
|
||||
ai_rationality = 0.8
|
||||
ai_sociability = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
after = {
|
||||
remove_character_flag = is_naked
|
||||
scope:chaplain = {
|
||||
remove_character_flag = is_naked
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
###################################
|
||||
# A Questionable Position
|
||||
# By Ola Jentzsch
|
||||
###################################
|
||||
#Tax collector acting as muhtasib
|
||||
fp3_clan.8017 = {
|
||||
type = character_event
|
||||
title = fp3_clan.8017.t
|
||||
|
||||
desc = {
|
||||
desc = fp3_clan.8017.opening_desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:tax_collector = {
|
||||
OR = {
|
||||
has_trait = diligent
|
||||
has_trait = zealous
|
||||
has_trait = chaste
|
||||
has_trait = just
|
||||
has_trait = ambitious
|
||||
ai_zeal >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8017.overly_eager.desc
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:tax_collector = {
|
||||
OR = {
|
||||
has_trait = drunkard
|
||||
has_trait = greedy
|
||||
has_trait = deceitful
|
||||
has_trait = arbitrary
|
||||
AND = {
|
||||
ai_greed >= medium_positive_ai_value
|
||||
ai_honor < low_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8017.corrupt.desc
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:tax_collector = {
|
||||
NOT = { ai_compassion >= low_positive_ai_value }
|
||||
OR = {
|
||||
has_trait = sadistic
|
||||
has_trait = wrathful
|
||||
has_trait = callous
|
||||
ai_vengefulness >= medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = fp3_clan.8017.cruel.desc
|
||||
}
|
||||
desc = fp3_clan.8017.generic.desc
|
||||
}
|
||||
desc = fp3_clan.8017.ending.desc
|
||||
}
|
||||
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = disapproval
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = generous
|
||||
has_trait = compassionate
|
||||
stress > low_stress
|
||||
}
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:unclan_taxpayer
|
||||
animation = stress
|
||||
}
|
||||
lower_left_portrait = scope:tax_collector
|
||||
|
||||
trigger = {
|
||||
|
||||
has_fp3_dlc_trigger = yes
|
||||
is_available_adult = yes
|
||||
government_has_flag = government_is_clan
|
||||
|
||||
has_religion = religion:islam_religion
|
||||
|
||||
any_tax_collector = {
|
||||
is_in_same_clan_as_trigger = { CHARACTER = root }
|
||||
has_religion = religion:islam_religion
|
||||
any_tax_collector_vassal = {
|
||||
NOT = {
|
||||
is_in_same_clan_as_trigger = { CHARACTER = root }
|
||||
}
|
||||
is_landed = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
|
||||
random_tax_collector = {
|
||||
limit = {
|
||||
is_in_same_clan_as_trigger = { CHARACTER = root }
|
||||
has_religion = religion:islam_religion
|
||||
any_tax_collector_vassal = {
|
||||
NOT = {
|
||||
is_in_same_clan_as_trigger = { CHARACTER = root }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
random_tax_collector_vassal = {
|
||||
limit = {
|
||||
NOT = {
|
||||
is_in_same_clan_as_trigger = { CHARACTER = root }
|
||||
}
|
||||
is_landed = yes
|
||||
}
|
||||
save_scope_as = unclan_taxpayer
|
||||
}
|
||||
save_scope_as = tax_collector
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8017.a
|
||||
flavor = fp3_clan_protect_kinsman_flavor
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
root != house.house_head
|
||||
}
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:tax_collector
|
||||
VALUE = minor_unity_gain
|
||||
DESC = clan_unity_protected_muhtasib_position.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:tax_collector
|
||||
VALUE = medium_unity_gain
|
||||
DESC = clan_unity_protected_muhtasib_position.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
scope:unclan_taxpayer = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -20
|
||||
modifier = frustrated_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_gain
|
||||
just = medium_stress_impact_gain
|
||||
zealous = medium_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
modifier = {
|
||||
factor = 2
|
||||
has_trait = zealous
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = just
|
||||
has_trait = compassionate
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8017.b
|
||||
flavor = fp3_clan_accuse_accuser_flavor
|
||||
trigger = {
|
||||
scope:unclan_taxpayer = { num_sinful_traits = { value > 0 target = root.faith } }
|
||||
}
|
||||
|
||||
add_dread = minor_dread_gain
|
||||
|
||||
scope:unclan_taxpayer = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -30
|
||||
modifier = shamed_me_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
wrathful = medium_stress_impact_loss
|
||||
compassionate = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
modifier = {
|
||||
factor = 2
|
||||
has_trait = zealous
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = trusting
|
||||
has_trait = compassionate
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8017.c
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
root != house.house_head
|
||||
}
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:tax_collector
|
||||
VALUE = minor_unity_loss
|
||||
DESC = clan_unity_fired_from_muhtasib_position.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = root
|
||||
TARGET = scope:tax_collector
|
||||
VALUE = medium_unity_loss
|
||||
DESC = clan_unity_fired_from_muhtasib_position.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
has_hook_of_type = {
|
||||
target = scope:unclan_taxpayer
|
||||
type = favor_hook
|
||||
}
|
||||
}
|
||||
}
|
||||
add_hook = {
|
||||
target = scope:unclan_taxpayer
|
||||
type = favor_hook
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
trusting = medium_stress_impact_loss
|
||||
arrogant = minor_stress_impact_gain
|
||||
callous = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_vengefulness = -0.9
|
||||
ai_rationality = 0.9
|
||||
ai_sociability = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_clan.8017.d
|
||||
#Low effect opt out that is only needed if the taxpayer is not intimidated because of their sins
|
||||
|
||||
trigger = {
|
||||
scope:unclan_taxpayer = { num_sinful_traits = { value = 0 target = root.faith } }
|
||||
}
|
||||
|
||||
scope:unclan_taxpayer = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
trusting = major_stress_impact_gain
|
||||
compassionate = medium_stress_impact_gain
|
||||
just = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
ai_value_modifier = {
|
||||
ai_vengefulness = 0.4
|
||||
ai_greed = 0.6
|
||||
ai_compassion = -0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1376
N3OW/events/dlc/fp3/fp3_dynasty_decision_events.txt
Normal file
1376
N3OW/events/dlc/fp3/fp3_dynasty_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2221
N3OW/events/dlc/fp3/fp3_extra_flavor_events.txt
Normal file
2221
N3OW/events/dlc/fp3/fp3_extra_flavor_events.txt
Normal file
File diff suppressed because it is too large
Load diff
2056
N3OW/events/dlc/fp3/fp3_frontier_story_cycle.txt
Normal file
2056
N3OW/events/dlc/fp3/fp3_frontier_story_cycle.txt
Normal file
File diff suppressed because it is too large
Load diff
2906
N3OW/events/dlc/fp3/fp3_misc_decision_events.txt
Normal file
2906
N3OW/events/dlc/fp3/fp3_misc_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1362
N3OW/events/dlc/fp3/fp3_religious_decision_events.txt
Normal file
1362
N3OW/events/dlc/fp3/fp3_religious_decision_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1918
N3OW/events/dlc/fp3/fp3_scholarship_events.txt
Normal file
1918
N3OW/events/dlc/fp3/fp3_scholarship_events.txt
Normal file
File diff suppressed because it is too large
Load diff
153
N3OW/events/dlc/fp3/fp3_story_cycle_seljuks_invasion_events.txt
Normal file
153
N3OW/events/dlc/fp3/fp3_story_cycle_seljuks_invasion_events.txt
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
namespace = fp3_story_cycle_seljuks_invasion_events
|
||||
|
||||
### RISE OF THE SELJUKS #############################################
|
||||
## 0001 Leader and Story Cycle Creation by Maxence Voleau
|
||||
## 0002 The First Settlers by Hugo Cortell
|
||||
#####################################################################
|
||||
|
||||
###################################
|
||||
# Setup: we create the leader and start the story cycle
|
||||
# By Maxence Voleau
|
||||
###################################
|
||||
fp3_story_cycle_seljuks_invasion_events.0001 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
spawn_seljuk_character_effect = yes
|
||||
scope:lead_seljuk = {
|
||||
create_story = story_seljuk_invasion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
###################################
|
||||
# The First Settlers
|
||||
# By Hugo Cortell
|
||||
###################################
|
||||
fp3_story_cycle_seljuks_invasion_events.0002 = {
|
||||
type = character_event
|
||||
title = fp3_story_cycle_seljuks_invasion_events.0001.t
|
||||
desc = {
|
||||
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = { highest_held_title_tier > tier_duchy }
|
||||
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_vassal
|
||||
}
|
||||
desc = fp3_story_cycle_seljuks_invasion_events.0001.desc_independent
|
||||
}
|
||||
}
|
||||
theme = realm
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = thinking
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:lead_seljuk
|
||||
animation = personality_honorable
|
||||
}
|
||||
|
||||
immediate = {
|
||||
save_scope_as = seljuk_victim
|
||||
random_sub_realm_county = {
|
||||
limit = {
|
||||
any_neighboring_county = {
|
||||
exists = holder
|
||||
holder.top_liege != scope:seljuk_victim
|
||||
}
|
||||
de_jure_liege = scope:fp3_seljuk_settle_target
|
||||
}
|
||||
alternative_limit = {
|
||||
any_neighboring_county = {
|
||||
exists = holder
|
||||
holder.top_liege != scope:seljuk_victim
|
||||
}
|
||||
any_neighboring_county = { de_jure_liege = scope:fp3_seljuk_settle_target }
|
||||
}
|
||||
alternative_limit = {
|
||||
any_neighboring_county = {
|
||||
exists = holder
|
||||
holder.top_liege != scope:seljuk_victim
|
||||
}
|
||||
}
|
||||
random_county_province = {
|
||||
limit = {
|
||||
this != scope:fp3_seljuk_settle_target.title_capital_county.title_province
|
||||
}
|
||||
save_scope_as = spawn_location
|
||||
}
|
||||
}
|
||||
save_scope_value_as = {
|
||||
name = victim_strength_modifier
|
||||
value = {
|
||||
value = current_military_strength
|
||||
divide = 10000
|
||||
add = 1.25
|
||||
}
|
||||
}
|
||||
scope:lead_seljuk = {
|
||||
#move to the army spawn location, so it's less confusing when you want to see where they are
|
||||
set_location = scope:spawn_location
|
||||
var:seljuk_birthplace = { save_scope_as = seljuk_birthplace }
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Yes - Serve me well!
|
||||
name = fp3_story_cycle_seljuks_invasion_events.0001.a_liege
|
||||
|
||||
fp3_story_cycle_seljuks_invasion_events_grant_seljuks_land_effect = yes
|
||||
scope:lead_seljuk = {
|
||||
add_trait = loyal
|
||||
culture = {
|
||||
change_cultural_acceptance = {
|
||||
target = scope:seljuk_victim.culture
|
||||
value = 30
|
||||
desc = STEWARD_PROMOTE_CULTURE_ALLOWED_NOMAD_SETTLEMENT
|
||||
}
|
||||
}
|
||||
}
|
||||
create_seljuk_army_at_peace_effect = yes
|
||||
debug_log = "Seljuk got the land and were vassalized"
|
||||
ai_chance = {
|
||||
base = 50
|
||||
|
||||
ai_value_modifier = {
|
||||
ai_boldness = -0.5
|
||||
ai_compassion = 0.2
|
||||
ai_greed = -0.5
|
||||
ai_energy = -0.5
|
||||
ai_rationality = 0.3
|
||||
ai_sociability = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # No - To war with you!
|
||||
name = fp3_story_cycle_seljuks_invasion_events.0001.b
|
||||
|
||||
# Start war
|
||||
scope:lead_seljuk = {
|
||||
start_war = {
|
||||
casus_belli = fp3_seljuk_invasion_cb
|
||||
target = root
|
||||
target_title = scope:fp3_seljuk_settle_target
|
||||
}
|
||||
random_character_war = { save_scope_as = war }
|
||||
}
|
||||
|
||||
create_seljuk_army_effect = yes
|
||||
debug_log = "Seljuk have to win a war"
|
||||
ai_chance = {
|
||||
base = 50
|
||||
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 0.5
|
||||
ai_greed = 0.5
|
||||
ai_energy = 0.5
|
||||
ai_vengefulness = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
726
N3OW/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt
Normal file
726
N3OW/events/dlc/fp3/fp3_story_cycle_zanj_rebellion_events.txt
Normal file
|
|
@ -0,0 +1,726 @@
|
|||
namespace = fp3_story_cycle_zanj_rebellion_events
|
||||
|
||||
### Ali Ibn Muhammad and Zanj Rebellion Setup
|
||||
fp3_story_cycle_zanj_rebellion_events.0001 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
spawn_zanj_leader_character_effect = yes
|
||||
scope:zanj_leader = {
|
||||
save_scope_as = story_owner
|
||||
create_story = story_zanj_rebellion
|
||||
give_nickname = nick_albaghid
|
||||
}
|
||||
|
||||
title:c_basra.holder = {
|
||||
add_visiting_courtier = scope:zanj_leader
|
||||
}
|
||||
title:c_basra.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0002
|
||||
}
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0005
|
||||
days = { 60 120 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Ali Ibn Muhammad riling up locals in Basra
|
||||
fp3_story_cycle_zanj_rebellion_events.0002 = {
|
||||
type = character_event
|
||||
theme = intrigue
|
||||
override_background = { reference = wilderness_wetlands }
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0002.t
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0002.desc
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = marshal
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:zanj_leader
|
||||
animation = scheme
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:zanj_leader = {
|
||||
save_scope_as = outspoken_rebel
|
||||
}
|
||||
}
|
||||
|
||||
#Try to arrest Ali
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0002.a
|
||||
duel = {
|
||||
skill = intrigue
|
||||
target = scope:outspoken_rebel
|
||||
50 = {
|
||||
# You arrest Ali Ibn Muhammad
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0002.a.success
|
||||
left_icon = root
|
||||
right_icon = scope:outspoken_rebel
|
||||
rightfully_imprison_character_effect = {
|
||||
TARGET = scope:outspoken_rebel
|
||||
IMPRISONER = root
|
||||
}
|
||||
}
|
||||
inherit_zanj_rebellion_effect = yes
|
||||
}
|
||||
50 = {
|
||||
# Ali Ibn Muhammad escapes
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0002.a.failure
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
|
||||
left_icon = root
|
||||
right_icon = scope:outspoken_rebel
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:zanj_leader = {
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 4
|
||||
}
|
||||
}
|
||||
title:c_baghdad.holder = {
|
||||
hidden_effect = {
|
||||
title:c_baghdad.holder = {
|
||||
add_visiting_courtier = scope:outspoken_rebel
|
||||
}
|
||||
}
|
||||
}
|
||||
title:c_basra.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0003
|
||||
days = { 30 60 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
progress_towards_rival_effect = {
|
||||
REASON = fp3_zanj_rebellion_opressed_me
|
||||
CHARACTER = scope:outspoken_rebel
|
||||
OPINION = default_rival_opinion
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_loss
|
||||
just = minor_stress_impact_loss
|
||||
callous = minor_stress_impact_loss
|
||||
sadistic = minor_stress_impact_loss
|
||||
trusting = medium_stress_impact_gain
|
||||
forgiving = medium_stress_impact_gain
|
||||
compassionate = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = trusting
|
||||
has_trait = forgiving
|
||||
has_trait = compassionate
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Ignore Ali
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0002.c
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
|
||||
scope:zanj_leader = {
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 2
|
||||
}
|
||||
}
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_leaves_for_baghdad
|
||||
hidden_effect = {
|
||||
title:c_baghdad.holder = {
|
||||
add_visiting_courtier = scope:outspoken_rebel
|
||||
}
|
||||
}
|
||||
title:c_basra.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0003
|
||||
days = { 30 60 }
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_gain
|
||||
just = minor_stress_impact_gain
|
||||
callous = minor_stress_impact_gain
|
||||
sadistic = medium_stress_impact_gain
|
||||
trusting = medium_stress_impact_loss
|
||||
forgiving = medium_stress_impact_loss
|
||||
compassionate = medium_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = paranoid
|
||||
has_trait = just
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Setup to find correct scope for event 0004 and check if Ali is dead or imprisoned
|
||||
fp3_story_cycle_zanj_rebellion_events.0003 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
|
||||
immediate = {
|
||||
if ={
|
||||
#check if Ali is still alive and not in prison and is not an inheritor of the rebellion
|
||||
limit = {
|
||||
scope:zanj_leader = {
|
||||
AND = {
|
||||
is_alive = yes
|
||||
is_imprisoned = no
|
||||
NOT = { has_character_flag = new_zanj_leader }
|
||||
}
|
||||
}
|
||||
}
|
||||
title:c_baghdad.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0004
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Ali Ibn Muhammad claims divinity
|
||||
fp3_story_cycle_zanj_rebellion_events.0004 = {
|
||||
type = character_event
|
||||
theme = faith
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0004.t
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0004.desc
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = dismissal
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:zanj_leader
|
||||
animation = personality_zealous
|
||||
}
|
||||
|
||||
#Contest Ali Ibn Muhammad's claims
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0004.a
|
||||
duel = {
|
||||
skill = learning
|
||||
target = scope:zanj_leader
|
||||
50 = {
|
||||
# You disprove Ali's claims
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0004.a.success
|
||||
add_piety = medium_piety_gain
|
||||
add_prestige = minor_prestige_gain
|
||||
left_icon = root
|
||||
right_icon = scope:zanj_leader
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
# Ali Ibn Muhammad validates his claims
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
|
||||
send_interface_toast = {
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0004.a.failure
|
||||
left_icon = root
|
||||
right_icon = scope:zanj_leader
|
||||
|
||||
scope:zanj_leader = {
|
||||
add_trait = sayyid
|
||||
add_pressed_claim = title:e_arabia
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 4
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
progress_towards_rival_effect = {
|
||||
REASON = fp3_zanj_rebellion_opressed_me
|
||||
CHARACTER = scope:zanj_leader
|
||||
OPINION = default_rival_opinion
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = minor_stress_impact_loss
|
||||
just = minor_stress_impact_loss
|
||||
zealous = medium_stress_impact_loss
|
||||
trusting = medium_stress_impact_gain
|
||||
forgiving = medium_stress_impact_gain
|
||||
cynical = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = cynical
|
||||
has_trait = trusting
|
||||
has_trait = forgiving
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Ignore Ali
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0004.b
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
|
||||
|
||||
scope:zanj_leader = {
|
||||
add_trait = sayyid
|
||||
add_pressed_claim = title:e_arabia
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 2
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = minor_stress_impact_gain
|
||||
just = minor_stress_impact_gain
|
||||
zealous = medium_stress_impact_gain
|
||||
trusting = minor_stress_impact_loss
|
||||
forgiving = medium_stress_impact_loss
|
||||
cynical = medium_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = paranoid
|
||||
has_trait = just
|
||||
has_trait = zealous
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Setup event to find the correct scope and check if Ali or the current Zanj Leader is dead or imprisoned
|
||||
fp3_story_cycle_zanj_rebellion_events.0005 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:zanj_leader = {
|
||||
OR = {
|
||||
is_imprisoned = yes
|
||||
is_alive = no
|
||||
is_landed = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
inherit_zanj_rebellion_effect = yes
|
||||
}
|
||||
title:c_basra.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0006
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### A Zanj Steps Forth
|
||||
fp3_story_cycle_zanj_rebellion_events.0006 = {
|
||||
type = character_event
|
||||
theme = corruption
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0006.t
|
||||
desc = {
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.a
|
||||
|
||||
triggered_desc = {
|
||||
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.b
|
||||
}
|
||||
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0006.desc.c
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = eyeroll
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:outspoken_rebel
|
||||
animation = worry
|
||||
}
|
||||
|
||||
lower_left_portrait = {
|
||||
trigger = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
|
||||
character = scope:zanj_leader
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = { scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader } } }
|
||||
spawn_zanj_representative_character_effect = yes
|
||||
scope:zanj_representative = { save_scope_as = outspoken_rebel }
|
||||
}
|
||||
else = {
|
||||
scope:zanj_leader = { save_scope_as = outspoken_rebel }
|
||||
}
|
||||
}
|
||||
#Give Basra to the Zanj
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0006.a
|
||||
|
||||
create_title_and_vassal_change = {
|
||||
type = independency
|
||||
save_scope_as = change
|
||||
add_claim_on_loss = no
|
||||
}
|
||||
|
||||
title:c_basra = {
|
||||
set_county_culture = culture:east_bantu
|
||||
set_county_faith = faith:azariqa
|
||||
}
|
||||
|
||||
show_as_tooltip = { # UI/UX
|
||||
title:c_basra = {
|
||||
change_title_holder = {
|
||||
holder = scope:outspoken_rebel
|
||||
change = scope:change
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scope:outspoken_rebel = {
|
||||
becomes_independent = {
|
||||
change = scope:change
|
||||
}
|
||||
add_truce_both_ways = {
|
||||
character = root
|
||||
years = 10
|
||||
name = fp3_landed_zanj_reason
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { title:c_basra.holder = root }
|
||||
}
|
||||
add_tyranny = 30
|
||||
set_relation_rival = {
|
||||
reason = fp3_rival_gave_title_away
|
||||
target = title:c_basra.holder
|
||||
}
|
||||
}
|
||||
|
||||
hidden_effect = {
|
||||
title:c_basra = {
|
||||
change_title_holder = {
|
||||
holder = scope:outspoken_rebel
|
||||
change = scope:change
|
||||
}
|
||||
every_de_jure_county = {
|
||||
change_title_holder = {
|
||||
holder = scope:outspoken_rebel
|
||||
change = scope:change
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:zanj_leader = {
|
||||
random_owned_story = {
|
||||
type = story_zanj_rebellion
|
||||
end_story = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
resolve_title_and_vassal_change = scope:change
|
||||
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_loss
|
||||
just = minor_stress_impact_loss
|
||||
forgiving = minor_stress_impact_loss
|
||||
generous = medium_stress_impact_loss
|
||||
content = medium_stress_impact_loss
|
||||
callous = medium_stress_impact_gain
|
||||
sadistic = major_stress_impact_gain
|
||||
ambitious = medium_stress_impact_gain
|
||||
greedy = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
has_trait = ambitious
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Make minor concessions to the Zanj
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0006.b
|
||||
|
||||
scope:zanj_leader = {
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 3
|
||||
}
|
||||
}
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_strengthened_tt
|
||||
hidden_effect = {
|
||||
title:c_basra.holder = {
|
||||
if = {
|
||||
limit = { scope:zanj_leader != scope:outspoken_rebel}
|
||||
add_visiting_courtier = scope:zanj_leader
|
||||
}
|
||||
add_visiting_courtier = scope:outspoken_rebel
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { title:c_basra.holder = root }
|
||||
}
|
||||
progress_towards_rival_effect = {
|
||||
REASON = fp3_zanj_rebellion_interfered_with_my_workers
|
||||
CHARACTER = title:c_basra.holder
|
||||
OPINION = default_rival_opinion
|
||||
}
|
||||
}
|
||||
|
||||
title:c_basra = {
|
||||
add_county_modifier = {
|
||||
modifier = fp3_zanj_rebellion_work_concessions_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0007
|
||||
days = { 30 60 }
|
||||
}
|
||||
stress_impact = {
|
||||
compassionate = minor_stress_impact_loss
|
||||
just = minor_stress_impact_loss
|
||||
forgiving = minor_stress_impact_loss
|
||||
generous = minor_stress_impact_loss
|
||||
content = minor_stress_impact_loss
|
||||
callous = minor_stress_impact_gain
|
||||
sadistic = medium_stress_impact_gain
|
||||
ambitious = minor_stress_impact_gain
|
||||
greedy = minor_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
has_trait = ambitious
|
||||
has_trait = greedy
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Ignore the Zanj
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0006.c
|
||||
|
||||
scope:zanj_leader = {
|
||||
change_variable = {
|
||||
name = zanj_rebellion_strength_score
|
||||
add = 5
|
||||
}
|
||||
}
|
||||
custom_tooltip = fp3_story_cycle_zanj_rebellion_events_cause_greatly_strengthened_tt
|
||||
hidden_effect = {
|
||||
title:c_basra.holder = {
|
||||
add_visiting_courtier = scope:zanj_leader
|
||||
add_visiting_courtier = scope:zanj_representative
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { title:c_basra.holder = root }
|
||||
}
|
||||
|
||||
progress_towards_friend_effect = {
|
||||
REASON = fp3_rival_stayed_out_of_my_business
|
||||
CHARACTER = title:c_basra.holder
|
||||
OPINION = default_friend_opinion
|
||||
}
|
||||
}
|
||||
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0007
|
||||
days = { 30 60 }
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = minor_stress_impact_gain
|
||||
just = minor_stress_impact_gain
|
||||
forgiving = minor_stress_impact_gain
|
||||
generous = minor_stress_impact_gain
|
||||
content = minor_stress_impact_gain
|
||||
callous = minor_stress_impact_loss
|
||||
sadistic = medium_stress_impact_loss
|
||||
ambitious = minor_stress_impact_loss
|
||||
greedy = minor_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 0.5
|
||||
OR = {
|
||||
has_trait = compassionate
|
||||
has_trait = just
|
||||
has_trait = forgiving
|
||||
has_trait = generous
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fp3_story_cycle_zanj_rebellion_events.0007 = {
|
||||
scope = none
|
||||
hidden = yes
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:zanj_leader = {
|
||||
OR = {
|
||||
is_imprisoned = yes
|
||||
is_alive = no
|
||||
is_landed = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
inherit_zanj_rebellion_effect = yes
|
||||
}
|
||||
title:c_basra.holder.top_liege = {
|
||||
trigger_event = {
|
||||
id = fp3_story_cycle_zanj_rebellion_events.0008
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### The Zanj Rebellion
|
||||
fp3_story_cycle_zanj_rebellion_events.0008 = {
|
||||
type = character_event
|
||||
theme = battle
|
||||
override_background = { reference = wilderness_wetlands }
|
||||
title = fp3_story_cycle_zanj_rebellion_events.0008.t
|
||||
desc = {
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.a
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:zanj_leader = { NOT = { has_character_flag = new_zanj_leader}}
|
||||
}
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.b
|
||||
}
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:zanj_leader = { has_character_flag = new_zanj_leader }
|
||||
}
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.c
|
||||
}
|
||||
desc = fp3_story_cycle_zanj_rebellion_events.0008.desc.d
|
||||
}
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shock
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:zanj_leader
|
||||
animation = celebrate_sword
|
||||
}
|
||||
|
||||
immediate = {
|
||||
scope:zanj_leader = {
|
||||
give_nickname = nick_chief_of_the_zanj
|
||||
hidden_effect = {
|
||||
random_owned_story = {
|
||||
type = story_zanj_rebellion
|
||||
end_story = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
hidden_effect = {
|
||||
fp3_start_zanj_rebellion_effect = {
|
||||
TARGET_COUNTY = title:c_basra
|
||||
REBEL_LEADER = scope:zanj_leader
|
||||
}
|
||||
create_zanj_courtier_effect = {
|
||||
EMPLOYER = scope:zanj_leader
|
||||
LOCATION = scope:zanj_leader.location
|
||||
}
|
||||
create_zanj_courtier_effect = {
|
||||
EMPLOYER = scope:zanj_leader
|
||||
LOCATION = scope:zanj_leader.location
|
||||
}
|
||||
create_zanj_courtier_effect = {
|
||||
EMPLOYER = scope:zanj_leader
|
||||
LOCATION = scope:zanj_leader.location
|
||||
}
|
||||
create_zanj_courtier_effect = {
|
||||
EMPLOYER = scope:zanj_leader
|
||||
LOCATION = scope:zanj_leader.location
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_story_cycle_zanj_rebellion_events.0008.a
|
||||
}
|
||||
}
|
||||
1339
N3OW/events/dlc/fp3/fp3_struggle_events.txt
Normal file
1339
N3OW/events/dlc/fp3/fp3_struggle_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1416
N3OW/events/dlc/fp3/fp3_tax_collector_events_ola.txt
Normal file
1416
N3OW/events/dlc/fp3/fp3_tax_collector_events_ola.txt
Normal file
File diff suppressed because it is too large
Load diff
1060
N3OW/events/dlc/fp3/fp3_tax_collector_flavor_events.txt
Normal file
1060
N3OW/events/dlc/fp3/fp3_tax_collector_flavor_events.txt
Normal file
File diff suppressed because it is too large
Load diff
3131
N3OW/events/dlc/fp3/fp3_yearly_events_eren.txt
Normal file
3131
N3OW/events/dlc/fp3/fp3_yearly_events_eren.txt
Normal file
File diff suppressed because it is too large
Load diff
286
N3OW/events/dlc/fp3/fp3_yearly_events_hugo.txt
Normal file
286
N3OW/events/dlc/fp3/fp3_yearly_events_hugo.txt
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
namespace = fp3_h_yearly
|
||||
|
||||
###################################
|
||||
# You have pissed off your ulema and you're a drunkard
|
||||
# By Hugo Cortell
|
||||
# Rewritten by Henrik Lohmander
|
||||
###################################
|
||||
fp3_h_yearly.0001 = {
|
||||
type = character_event
|
||||
title = fp3_h_yearly.0001.t
|
||||
desc = {
|
||||
triggered_desc = {
|
||||
trigger = { always = yes }
|
||||
desc = fp3_h_yearly.0001.desc.main
|
||||
}
|
||||
}
|
||||
theme = feast_activity
|
||||
override_background = { reference = throne_room }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = drink_goblet
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:ulema_member
|
||||
animation = disapproval
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
|
||||
modifier = {
|
||||
exists = cp:councillor_court_chaplain
|
||||
cp:councillor_court_chaplain = { has_trait = drunkard }
|
||||
factor = 0.4
|
||||
}
|
||||
modifier = {
|
||||
any_character_struggle = {
|
||||
is_struggle_type = persian_struggle
|
||||
}
|
||||
add = 0.5
|
||||
}
|
||||
modifier = {
|
||||
has_trait = fp3_struggle_supporter
|
||||
add = -0.5
|
||||
}
|
||||
modifier = {
|
||||
has_trait = fp3_struggle_detractor
|
||||
add = 0.5
|
||||
}
|
||||
}
|
||||
|
||||
trigger = {
|
||||
has_fp3_dlc_trigger = yes
|
||||
has_trait = drunkard
|
||||
NOT = { has_character_modifier = ulema_displeased_drinking }
|
||||
exists = cp:councillor_court_chaplain
|
||||
NOT = {
|
||||
has_hook = cp:councillor_court_chaplain
|
||||
}
|
||||
cp:councillor_court_chaplain = {
|
||||
is_ai = yes
|
||||
faith = { trait_is_sin = drunkard }
|
||||
trigger_if = {
|
||||
limit = { exists = house }
|
||||
house != root.house
|
||||
}
|
||||
NOT = {
|
||||
has_trait = lifestyle_mystic
|
||||
}
|
||||
OR = {
|
||||
opinion = { # They will not do this unless they have reason to dislike you
|
||||
target = root
|
||||
value < -25
|
||||
}
|
||||
has_relation_rival = root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
cp:councillor_court_chaplain = { save_scope_as = ulema_member }
|
||||
save_scope_as = actor
|
||||
scope:ulema_member = { save_scope_as = recipient }
|
||||
}
|
||||
|
||||
option = { #Deflection (They are a drunkard too) Look who is talking!
|
||||
name = fp3_h_yearly.0001.a
|
||||
trigger = { scope:ulema_member = { has_trait = drunkard } }
|
||||
|
||||
#No duel, this deflection always succeeds.
|
||||
|
||||
stress_impact = {
|
||||
craven = minor_stress_gain
|
||||
deceitful = minor_stress_loss
|
||||
callous = minor_stress_loss
|
||||
}
|
||||
add_prestige = medium_prestige_gain
|
||||
reverse_add_opinion = {
|
||||
target = scope:ulema_member
|
||||
modifier = ignored_concerns
|
||||
}
|
||||
}
|
||||
|
||||
option = { #Deflection - Argue that drinking is healthy to the human spirit
|
||||
name = fp3_h_yearly.0001.b
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = scholar
|
||||
has_trait = theologian
|
||||
has_trait = whole_of_body
|
||||
has_trait = lifestyle_physician
|
||||
has_trait = lifestyle_poet
|
||||
faith = { trait_is_virtue = drunkard }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:ulema_member
|
||||
modifier = ignored_concerns
|
||||
}
|
||||
|
||||
duel = {
|
||||
desc = fp3_h_yearly.0001.b.desc
|
||||
skill = learning
|
||||
target = scope:annoying_clergy
|
||||
|
||||
35 = { #Success
|
||||
desc = fp3_h_yearly.0001.b.success
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = fp3_h_yearly.0001.b.success
|
||||
left_icon = root
|
||||
add_prestige = minor_prestige_gain
|
||||
}
|
||||
}
|
||||
65 = {
|
||||
desc = fp3_h_yearly.0001.b.failure
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
title = fp3_h_yearly.0001.b.failure
|
||||
left_icon = root
|
||||
add_piety = medium_piety_loss
|
||||
add_character_modifier = {
|
||||
modifier = ulema_displeased_drinking
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
honest = minor_stress_gain
|
||||
humble = minor_stress_gain
|
||||
callous = minor_stress_loss
|
||||
deceitful = minor_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
option = { # You do not get to speak to me in this way!
|
||||
name = fp3_h_yearly.0001.e
|
||||
|
||||
add_dread = medium_dread_gain
|
||||
imprison_court_chaplain_consequences_effect = yes
|
||||
imprison_character_effect = {
|
||||
TARGET = scope:recipient
|
||||
IMPRISONER = scope:actor
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
just = medium_stress_gain
|
||||
zealous = medium_stress_gain
|
||||
deceitful = minor_stress_loss
|
||||
callous = minor_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
option = { #Bribery - Offer a generous donation
|
||||
name = fp3_h_yearly.0001.c
|
||||
trigger = { NOT = { scope:ulema_member = { has_trait = drunkard } } } #If you can deflect we don't show this option
|
||||
custom_tooltip = fp3_h_yearly.0001.c.tt
|
||||
pay_short_term_gold = {
|
||||
target = scope:ulema_member
|
||||
gold = medium_gold_value
|
||||
}
|
||||
random_list = {
|
||||
75 = {
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = greedy
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = deceitful
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = ambitious
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
desc = fp3_h_yearly.0001.c.success
|
||||
send_interface_toast = {
|
||||
title = fp3_h_yearly.0001.c.success
|
||||
left_icon = root
|
||||
add_prestige = minor_prestige_gain
|
||||
}
|
||||
}
|
||||
25 = {
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = zealous
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = honest
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
modifier = {
|
||||
scope:ulema_member = {
|
||||
has_trait = just
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
desc = fp3_h_yearly.0001.c.failure
|
||||
send_interface_toast = {
|
||||
title = fp3_h_yearly.0001.c.failure
|
||||
left_icon = root
|
||||
add_piety = medium_piety_loss
|
||||
add_character_modifier = {
|
||||
modifier = ulema_displeased_drinking
|
||||
years = 10
|
||||
}
|
||||
reverse_add_opinion = {
|
||||
target = scope:ulema_member
|
||||
modifier = ignored_concerns
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
stress_impact = {
|
||||
just = medium_stress_gain
|
||||
greedy = minor_stress_gain
|
||||
honest = minor_stress_gain
|
||||
callous = minor_stress_loss
|
||||
deceitful = minor_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
option = { # There is nothing I can do!
|
||||
name = fp3_h_yearly.0001.d
|
||||
|
||||
add_piety = minor_piety_loss
|
||||
add_character_modifier = {
|
||||
modifier = ulema_displeased_drinking
|
||||
years = 5
|
||||
}
|
||||
stress_impact = {
|
||||
arrogant = minor_stress_gain
|
||||
deceitful = minor_stress_gain
|
||||
drunkard = minor_stress_gain
|
||||
honest = minor_stress_loss
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
4027
N3OW/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt
Normal file
4027
N3OW/events/dlc/fp3/fp3_yearly_events_ola_batch_1.txt
Normal file
File diff suppressed because it is too large
Load diff
824
N3OW/events/dlc/fp3/fp3_yearly_frontier_chains.txt
Normal file
824
N3OW/events/dlc/fp3/fp3_yearly_frontier_chains.txt
Normal file
|
|
@ -0,0 +1,824 @@
|
|||
namespace = fp3_yearly
|
||||
|
||||
scripted_trigger not_steppe_nomad_trigger = {
|
||||
culture = {
|
||||
NOR = {
|
||||
has_cultural_pillar = heritage_mongolic
|
||||
has_cultural_pillar = heritage_turkic
|
||||
has_cultural_tradition = tradition_horse_lords
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_trigger suitable_nomad_settling_province_trigger = {
|
||||
has_holding_type = castle_holding
|
||||
barony = {
|
||||
is_under_holy_order_lease = no
|
||||
#is_capital_barony = no
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fp3_yearly.8888 = { #Nomads story cycle
|
||||
type = character_event
|
||||
title = fp3_yearly.8888.t
|
||||
desc = fp3_yearly.8888.desc
|
||||
theme = vassal
|
||||
left_portrait = {
|
||||
character = scope:upset_vassal
|
||||
animation = anger
|
||||
}
|
||||
right_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
diplomacy >= decent_skill_rating
|
||||
}
|
||||
animation = personality_honorable
|
||||
}
|
||||
}
|
||||
lower_left_portrait = {
|
||||
character = scope:possibly_capable_marshal
|
||||
}
|
||||
lower_right_portrait = {
|
||||
character = scope:turkic_leader
|
||||
}
|
||||
|
||||
trigger = {
|
||||
|
||||
#standard checks
|
||||
has_fp3_dlc_trigger = yes
|
||||
root.capital_province = { geographical_region = world_persian_empire }
|
||||
is_available_at_peace_adult = yes
|
||||
|
||||
#event fluff triggers
|
||||
not_steppe_nomad_trigger = yes
|
||||
|
||||
NOT = { has_character_flag = had_turkic_tribe_story } #since this event starts the story
|
||||
|
||||
exists = cp:councillor_marshal
|
||||
|
||||
cp:councillor_marshal = {
|
||||
NOT = { has_trait = craven }
|
||||
is_ai = yes
|
||||
}
|
||||
|
||||
any_vassal = {
|
||||
not_steppe_nomad_trigger = yes
|
||||
is_ai = yes
|
||||
NOT = {
|
||||
this = root.cp:councillor_marshal
|
||||
}
|
||||
any_held_county = {
|
||||
any_county_province = {
|
||||
geographical_region = dlc_fp3_eastern_persian_frontier_regions
|
||||
NOT = { terrain = steppe }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
any_held_county = { any_county_province = { suitable_nomad_settling_province_trigger = yes } }
|
||||
}
|
||||
|
||||
cooldown = { years = 50 }
|
||||
|
||||
immediate = {
|
||||
|
||||
random_vassal = {
|
||||
limit = {
|
||||
not_steppe_nomad_trigger = yes
|
||||
is_ai = yes
|
||||
NOT = {
|
||||
this = root.cp:councillor_marshal
|
||||
}
|
||||
any_held_county = {
|
||||
any_county_province = {
|
||||
geographical_region = dlc_fp3_eastern_persian_frontier_regions
|
||||
NOT = { terrain = steppe }
|
||||
}
|
||||
}
|
||||
}
|
||||
save_scope_as = upset_vassal
|
||||
random_held_county = {
|
||||
limit = {
|
||||
any_county_province = {
|
||||
geographical_region = dlc_fp3_eastern_persian_frontier_regions
|
||||
NOT = { terrain = steppe }
|
||||
}
|
||||
}
|
||||
save_scope_as = nomads_county
|
||||
}
|
||||
}
|
||||
|
||||
random_held_county = {
|
||||
limit = {
|
||||
any_county_province = { suitable_nomad_settling_province_trigger = yes }
|
||||
}
|
||||
save_scope_as = nomads_new_county #for use in the claim the former_master might get
|
||||
}
|
||||
|
||||
scope:nomads_new_county = {
|
||||
random_county_province = {
|
||||
limit = { suitable_nomad_settling_province_trigger = yes }
|
||||
barony = { save_scope_as = nomads_barony }
|
||||
}
|
||||
}
|
||||
|
||||
cp:councillor_marshal = { save_scope_as = possibly_capable_marshal }
|
||||
|
||||
scope:nomads_county = {
|
||||
add_county_modifier = {
|
||||
modifier = fp3_nomad_friction_county_modifier
|
||||
years = 50
|
||||
}
|
||||
}
|
||||
|
||||
create_character = {
|
||||
location = root.capital_province
|
||||
template = fp3_turko-mongol_leader
|
||||
save_scope_as = turkic_leader
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8888.a
|
||||
|
||||
duel = {
|
||||
skill = diplomacy
|
||||
value = average_skill_rating
|
||||
|
||||
20 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 2
|
||||
}
|
||||
root = {
|
||||
custom_tooltip = fp3_treating_with_turks.success.tt
|
||||
trigger_event = {
|
||||
id = fp3_yearly.8889
|
||||
days = { 2 3 }
|
||||
}
|
||||
}
|
||||
}
|
||||
20 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
|
||||
custom_tooltip = fp3_treating_with_turks.failure.tt
|
||||
send_interface_toast = {
|
||||
title = fp3_treating_with_turks_toast.failure
|
||||
left_icon = root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scope:upset_vassal = {
|
||||
if = {
|
||||
limit = {
|
||||
OR = { #if he's diplomatically minded, he'll appreciate this
|
||||
has_trait = forgiving
|
||||
has_trait = trusting
|
||||
has_trait = compassionate
|
||||
has_diplomacy_lifestyle_trait_trigger = yes
|
||||
}
|
||||
}
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 20
|
||||
modifier = respect_opinion
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_opinion = { #but otherwise, they're not on board
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = fp3_treats_with_barbarians_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scope:possibly_capable_marshal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
craven = medium_stress_impact_gain
|
||||
lazy = medium_stress_impact_gain
|
||||
shy = medium_stress_impact_gain
|
||||
gregarious = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_sociability = 0.5
|
||||
ai_boldness = 1
|
||||
ai_compassion = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8888.b
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 20
|
||||
modifier = grateful_opinion
|
||||
}
|
||||
}
|
||||
|
||||
scope:possibly_capable_marshal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 10
|
||||
modifier = trusted_me_opinion
|
||||
}
|
||||
}
|
||||
|
||||
scope:possibly_capable_marshal = {
|
||||
duel = {
|
||||
skill = martial
|
||||
value = average_skill_rating
|
||||
|
||||
20 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 2
|
||||
}
|
||||
root = {
|
||||
custom_tooltip = fp3_fighting_turks.success.tt
|
||||
trigger_event = {
|
||||
id = fp3_yearly.8890
|
||||
days = { 2 3 }
|
||||
}
|
||||
}
|
||||
}
|
||||
20 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -1
|
||||
}
|
||||
root = {
|
||||
custom_tooltip = fp3_fighting_turks.failure.tt
|
||||
send_interface_toast = {
|
||||
title = fp3_fighting_turks_toast.failure
|
||||
left_icon = scope:possibly_capable_marshal
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 1
|
||||
ai_vengefulness = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #Ignore the issue
|
||||
name = fp3_yearly.8888.c
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -20
|
||||
modifier = angry_opinion
|
||||
}
|
||||
}
|
||||
|
||||
scope:possibly_capable_marshal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
ambitious = minor_stress_impact_gain
|
||||
diligent = minor_stress_impact_gain
|
||||
just = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_energy = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fp3_yearly.8889 = { #Nomads story cycle
|
||||
type = character_event
|
||||
title = fp3_yearly.8889.t
|
||||
desc = fp3_yearly.8889.desc
|
||||
theme = vassal
|
||||
left_portrait = {
|
||||
character = scope:turkic_leader
|
||||
animation = disapproval
|
||||
}
|
||||
right_portrait = {
|
||||
character = root
|
||||
animation = drink_goblet
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
diplomacy >= decent_skill_rating
|
||||
NOR = {
|
||||
has_trait = callous
|
||||
has_trait = wrathful
|
||||
has_trait = vengeful
|
||||
}
|
||||
}
|
||||
animation = personality_compassionate
|
||||
}
|
||||
}
|
||||
lower_left_portrait = {
|
||||
character = scope:upset_vassal
|
||||
}
|
||||
|
||||
override_background = { reference = wilderness }
|
||||
|
||||
trigger = {
|
||||
|
||||
#standard checks
|
||||
is_available_adult = yes
|
||||
|
||||
#event not breaking sanity triggers
|
||||
exists = scope:upset_vassal
|
||||
scope:upset_vassal = { is_alive = yes }
|
||||
|
||||
exists = scope:turkic_leader
|
||||
scope:turkic_leader = { is_alive = yes }
|
||||
|
||||
exists = scope:nomads_county
|
||||
|
||||
exists = scope:nomads_new_county
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8889.a
|
||||
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
scope:upset_vassal = {
|
||||
NOT = {
|
||||
has_relation_rival = root
|
||||
has_relation_nemesis = root
|
||||
}
|
||||
}
|
||||
}
|
||||
root = {
|
||||
progress_towards_rival_effect = {
|
||||
CHARACTER = scope:upset_vassal
|
||||
REASON = rival_let_hostile_nomads_roam_free
|
||||
OPINION = -20
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -40
|
||||
modifier = hate_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_courtier = scope:turkic_leader
|
||||
|
||||
spawn_army = {
|
||||
men_at_arms = {
|
||||
type = horse_archers
|
||||
stacks = 1
|
||||
}
|
||||
location = root.capital_province
|
||||
war_keep_on_attacker_victory = yes
|
||||
uses_supply = yes
|
||||
inheritable = no
|
||||
save_scope_as = horsemen_army
|
||||
name = turkic_tribal_event_troops
|
||||
}
|
||||
|
||||
#This is needed to make the story cycle able to pick up the scopes
|
||||
set_variable = {
|
||||
name = turkic_leader
|
||||
value = scope:turkic_leader
|
||||
}
|
||||
set_variable = {
|
||||
name = upset_vassal
|
||||
value = scope:upset_vassal
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_county
|
||||
value = scope:nomads_county
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_new_county
|
||||
value = scope:nomads_new_county
|
||||
}
|
||||
|
||||
create_story = turkic_tribe_story
|
||||
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_sociability = 0.4
|
||||
ai_boldness = 0.7
|
||||
ai_vengefulness = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8889.b
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = disappointed_opinion
|
||||
}
|
||||
}
|
||||
|
||||
add_courtier = scope:turkic_leader
|
||||
|
||||
spawn_army = {
|
||||
men_at_arms = {
|
||||
type = horse_archers
|
||||
stacks = 1
|
||||
}
|
||||
location = root.capital_province
|
||||
war_keep_on_attacker_victory = yes
|
||||
uses_supply = yes
|
||||
inheritable = no
|
||||
save_scope_as = horsemen_army
|
||||
name = turkic_tribal_event_troops
|
||||
}
|
||||
|
||||
#This is needed to make the story cycle able to pick up the scopes
|
||||
set_variable = {
|
||||
name = turkic_leader
|
||||
value = scope:turkic_leader
|
||||
}
|
||||
set_variable = {
|
||||
name = upset_vassal
|
||||
value = scope:upset_vassal
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_county
|
||||
value = scope:nomads_county
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_new_county
|
||||
value = scope:nomads_new_county
|
||||
}
|
||||
|
||||
create_story = turkic_tribe_story
|
||||
|
||||
scope:nomads_county = {
|
||||
remove_county_modifier = fp3_nomad_friction_county_modifier
|
||||
}
|
||||
|
||||
scope:nomads_new_county = {
|
||||
add_county_modifier = {
|
||||
modifier = fp3_nomad_friction_county_modifier
|
||||
years = 30
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
generous = medium_stress_impact_loss
|
||||
content = medium_stress_impact_gain
|
||||
paranoid = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_sociability = 0.6
|
||||
ai_boldness = 1
|
||||
ai_compassion = 0.2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #no deal
|
||||
name = fp3_yearly.8889.c
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 20
|
||||
modifier = pleased_opinion
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
ambitious = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_greed = -0.5
|
||||
ai_vengefulness = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
fp3_yearly.8890 = { #Nomads story cycle
|
||||
type = character_event
|
||||
title = fp3_yearly.8890.t
|
||||
desc = {
|
||||
desc = fp3_yearly.8890.desc_beginning
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
scope:upset_vassal = {
|
||||
AND = {
|
||||
ai_compassion < medium_positive_ai_value
|
||||
ai_vengefulness > medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
}
|
||||
desc = fp3_yearly.8890_brutal_demands
|
||||
}
|
||||
desc = fp3_yearly.8890_nonbrutal_demands
|
||||
}
|
||||
desc = fp3_yearly.8890.desc_ending
|
||||
}
|
||||
|
||||
|
||||
theme = vassal
|
||||
left_portrait = {
|
||||
character = scope:turkic_leader
|
||||
animation = prisonhouse
|
||||
}
|
||||
right_portrait = {
|
||||
character = root
|
||||
animation = personality_rational
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
diplomacy < high_skill_rating
|
||||
NOR = {
|
||||
has_trait = compassionate
|
||||
has_trait = forgiving
|
||||
has_trait = just
|
||||
}
|
||||
}
|
||||
animation = personality_callous
|
||||
}
|
||||
}
|
||||
lower_left_portrait = {
|
||||
character = scope:upset_vassal
|
||||
}
|
||||
|
||||
lower_right_portrait = {
|
||||
character = scope:possibly_capable_marshal
|
||||
}
|
||||
|
||||
trigger = {
|
||||
|
||||
#standard checks
|
||||
is_available_adult = yes
|
||||
|
||||
#event not breaking sanity triggers
|
||||
exists = scope:upset_vassal
|
||||
scope:upset_vassal = { is_alive = yes }
|
||||
|
||||
exists = scope:turkic_leader
|
||||
scope:turkic_leader = { is_alive = yes }
|
||||
|
||||
exists = scope:nomads_county
|
||||
|
||||
exists = scope:nomads_new_county
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8890.a
|
||||
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = -15
|
||||
modifier = fp3_suspicious_motives_opinion
|
||||
}
|
||||
}
|
||||
|
||||
add_courtier = scope:turkic_leader
|
||||
|
||||
add_hook = {
|
||||
type = indebted_hook
|
||||
target = scope:turkic_leader
|
||||
}
|
||||
|
||||
spawn_army = {
|
||||
men_at_arms = {
|
||||
type = horse_archers
|
||||
stacks = 1
|
||||
}
|
||||
location = root.capital_province
|
||||
war_keep_on_attacker_victory = yes
|
||||
uses_supply = yes
|
||||
inheritable = no
|
||||
save_scope_as = horsemen_army
|
||||
name = turkic_tribal_event_troops
|
||||
}
|
||||
|
||||
#This is needed to make the story cycle able to pick up the scopes
|
||||
set_variable = {
|
||||
name = turkic_leader
|
||||
value = scope:turkic_leader
|
||||
}
|
||||
set_variable = {
|
||||
name = upset_vassal
|
||||
value = scope:upset_vassal
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_county
|
||||
value = scope:nomads_county
|
||||
}
|
||||
set_variable = {
|
||||
name = nomads_new_county
|
||||
value = scope:nomads_new_county
|
||||
}
|
||||
|
||||
create_story = turkic_tribe_story
|
||||
|
||||
scope:nomads_county = {
|
||||
remove_county_modifier = fp3_nomad_friction_county_modifier
|
||||
}
|
||||
|
||||
scope:nomads_new_county = {
|
||||
add_county_modifier = {
|
||||
modifier = fp3_nomad_friction_county_modifier
|
||||
years = 30
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
content = medium_stress_impact_gain
|
||||
paranoid = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 0.5
|
||||
ai_rationality = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { #execute the nomad leader
|
||||
name = fp3_yearly.8890.b
|
||||
|
||||
add_dread = medium_dread_gain
|
||||
|
||||
scope:upset_vassal = {
|
||||
if = {
|
||||
limit = {
|
||||
AND = { #if they're cruel, he'll enjoy this
|
||||
ai_compassion < 0
|
||||
ai_vengefulness > medium_positive_ai_value
|
||||
}
|
||||
}
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 30
|
||||
modifier = fp3_very_very_pleased_opinion
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_opinion = { #but otherwise, they're not on board
|
||||
target = root
|
||||
opinion = -10
|
||||
modifier = fp3_went_too_far_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
scope:turkic_leader = {
|
||||
death = {
|
||||
death_reason = death_execution
|
||||
killer = root
|
||||
}
|
||||
}
|
||||
|
||||
random_list = {
|
||||
50 = {
|
||||
send_interface_toast = {
|
||||
title = nomad_friction_gone.tt
|
||||
left_icon = root
|
||||
|
||||
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
send_interface_toast = {
|
||||
title = nomad_friction_active.tt
|
||||
left_icon = root
|
||||
|
||||
scope:nomads_county = {
|
||||
add_county_modifier = {
|
||||
modifier = fp3_vengeful_nomads_county_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
compassionate = medium_stress_impact_gain
|
||||
just = medium_stress_impact_gain
|
||||
arbitrary = medium_stress_impact_loss
|
||||
sadistic = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_vengefulness = 0.5
|
||||
ai_compassion = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = fp3_yearly.8890.c
|
||||
|
||||
add_dread = minor_dread_gain
|
||||
|
||||
scope:turkic_leader = {
|
||||
hard_imprison_character_effect = {
|
||||
TARGET = this
|
||||
IMPRISONER = root
|
||||
}
|
||||
}
|
||||
|
||||
scope:upset_vassal = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
opinion = 20
|
||||
modifier = pleased_opinion
|
||||
}
|
||||
}
|
||||
|
||||
random = {
|
||||
chance = 75
|
||||
send_interface_toast = {
|
||||
title = nomad_friction_gone.tt
|
||||
left_icon = root
|
||||
|
||||
scope:nomads_county = { remove_county_modifier = fp3_nomad_friction_county_modifier }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
stress_impact = {
|
||||
compassionate = minor_stress_impact_gain
|
||||
just = minor_stress_impact_gain
|
||||
arbitrary = minor_stress_impact_loss
|
||||
cynical = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_vengefulness = 0.5
|
||||
ai_rationality = 1
|
||||
ai_compassion = -0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
307
N3OW/events/dlc/mpo/court_astrologer_events.txt
Normal file
307
N3OW/events/dlc/mpo/court_astrologer_events.txt
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
namespace = court_astrologer_events
|
||||
|
||||
#Triggered by the "Consult the Skies" decision
|
||||
court_astrologer_events.0001 = {
|
||||
type = character_event
|
||||
title = court_astrologer_events.0001.t
|
||||
desc = court_astrologer_events.0001.desc
|
||||
theme = faith
|
||||
override_effect_2d = {
|
||||
reference = legend_glow
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
has_trait = zealous
|
||||
}
|
||||
animation = beg
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = craven
|
||||
has_trait = paranoid
|
||||
}
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = cynical
|
||||
has_trait = arrogant
|
||||
}
|
||||
}
|
||||
animation = boredom
|
||||
}
|
||||
animation = prayer
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:astrologer
|
||||
animation = holding_staff
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_courtier = {
|
||||
limit = { has_court_position = court_astrologer_court_position }
|
||||
save_scope_as = astrologer
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Tell me about my love life
|
||||
name = court_astrologer_events.0001.a
|
||||
random_list = {
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.a.success
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.a.success
|
||||
left_icon = root
|
||||
custom_tooltip = court_astrologer_events.0001.a.success.tt
|
||||
if = {
|
||||
limit = {
|
||||
culture ?= { has_cultural_pillar = ethos_spiritual }
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_love_spiritual_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_love_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.a.failure
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.a.failure
|
||||
left_icon = root
|
||||
add_stress = minor_stress_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = miniscule_stress_impact_gain
|
||||
cynical = miniscule_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Tell me about war
|
||||
name = court_astrologer_events.0001.b
|
||||
random_list = {
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.b.success
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.b.success
|
||||
left_icon = root
|
||||
if = {
|
||||
limit = {
|
||||
culture ?= { has_cultural_pillar = ethos_spiritual }
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_war_spiritual_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_war_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.a.failure
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.a.failure
|
||||
left_icon = root
|
||||
add_stress = minor_stress_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = miniscule_stress_impact_gain
|
||||
cynical = miniscule_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Just tell me about life
|
||||
name = court_astrologer_events.0001.c
|
||||
random_list = {
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.c.success
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.c.success
|
||||
left_icon = root
|
||||
if = {
|
||||
limit = {
|
||||
culture ?= { has_cultural_pillar = ethos_spiritual }
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_life_spiritual_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
else = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_divination_life_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
desc = court_astrologer_events.0001.a.failure
|
||||
send_interface_toast = {
|
||||
title = court_astrologer_events.0001.a.failure
|
||||
left_icon = root
|
||||
add_stress = minor_stress_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = miniscule_stress_impact_gain
|
||||
cynical = miniscule_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Actually, not right now
|
||||
name = court_astrologer_events.0001.d
|
||||
remove_decision_cooldown = mpo_divination_decision
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Migration Suggestion
|
||||
scripted_trigger court_astrologer_events_0002_neighbour_trigger = {
|
||||
government_has_flag = government_is_nomadic
|
||||
current_domain_fertility >= root.current_domain_fertility
|
||||
is_independent_ruler = yes
|
||||
}
|
||||
|
||||
court_astrologer_events.0002 = {
|
||||
type = character_event
|
||||
title = court_astrologer_events.0002.t
|
||||
desc = {
|
||||
desc = court_astrologer_events.0002.desc.intro
|
||||
first_valid = {
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
location.county.county_fertility <= bad_county_fertility_level
|
||||
}
|
||||
desc = court_astrologer_events.0002.desc.bad
|
||||
}
|
||||
desc = court_astrologer_events.0002.desc.meh
|
||||
}
|
||||
desc = court_astrologer_events.0002.desc.outro
|
||||
}
|
||||
theme = nomads
|
||||
override_background = { reference = mpo_steppe_evening }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = thinking
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:astrologer
|
||||
animation = holding_staff
|
||||
}
|
||||
lower_center_portrait = scope:target_realm_owner
|
||||
cooldown = { years = 5 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
government_has_flag = government_is_nomadic
|
||||
is_available = yes
|
||||
employs_court_position = court_astrologer_court_position
|
||||
court_position:court_astrologer_court_position = { is_available = yes }
|
||||
any_neighboring_realm_same_rank_owner = {
|
||||
court_astrologer_events_0002_neighbour_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = {
|
||||
current_domain_fertility <= bad_county_fertility_level
|
||||
factor = 2
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
court_position:court_astrologer_court_position = {
|
||||
save_scope_as = astrologer
|
||||
get_quirk_character_effect = yes
|
||||
}
|
||||
ordered_neighboring_realm_same_rank_owner = {
|
||||
limit = {
|
||||
court_astrologer_events_0002_neighbour_trigger = yes
|
||||
}
|
||||
order_by = current_domain_fertility
|
||||
save_scope_as = target_realm_owner
|
||||
primary_title = { save_scope_as = target_realm }
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Sounds like a great idea
|
||||
name = court_astrologer_events.0002.a
|
||||
custom_tooltip = court_astrologer_events.0002.a.tt
|
||||
set_variable = {
|
||||
name = astrologer_desired_area
|
||||
value = scope:target_realm
|
||||
years = 5
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_gain
|
||||
gregarious = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Thank you for your feedback
|
||||
name = court_astrologer_events.0002.b
|
||||
scope:astrologer = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = respect_opinion
|
||||
opinion = 20
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_gain
|
||||
gregarious = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # I'm good
|
||||
name = court_astrologer_events.0002.c
|
||||
add_prestige = minor_prestige_gain
|
||||
stress_impact = {
|
||||
paranoid = medium_stress_impact_gain
|
||||
gregarious = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
988
N3OW/events/dlc/mpo/mpo_events_anna.txt
Normal file
988
N3OW/events/dlc/mpo/mpo_events_anna.txt
Normal file
|
|
@ -0,0 +1,988 @@
|
|||
namespace = mpo_events_anna
|
||||
##################################################
|
||||
# Anna's Events for MPO
|
||||
|
||||
#Train Them Young - teach a child how to ride a horse
|
||||
mpo_events_anna.0001 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0001.t
|
||||
desc = mpo_events_anna.0001.desc
|
||||
theme = nomads
|
||||
left_portrait = {
|
||||
character = scope:pushy_adult
|
||||
animation = standing_horse
|
||||
camera = camera_event_standing_with_horse_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:child
|
||||
animation = clutching_ball
|
||||
}
|
||||
cooldown = { years = 20 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_adult = yes
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_nomadic
|
||||
any_child = {
|
||||
is_available_child = yes
|
||||
location = root.location
|
||||
age >= 5
|
||||
}
|
||||
any_courtier = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_child = {
|
||||
limit = {
|
||||
is_available_child = yes
|
||||
location = root.location
|
||||
age >= 5
|
||||
}
|
||||
save_scope_as = child
|
||||
}
|
||||
|
||||
random_courtier = {
|
||||
limit = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
save_scope_as = pushy_adult
|
||||
}
|
||||
}
|
||||
|
||||
#Put the child on the horse
|
||||
option = {
|
||||
name = mpo_events_anna.0001.a
|
||||
flavor = mpo_events_anna.0001.a.tt
|
||||
random_list = {
|
||||
70 = {
|
||||
desc = mpo_events_anna.0001.a.toast.good
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = mpo_events_anna.0001.a.toast.good
|
||||
left_icon = scope:child
|
||||
right_icon = root
|
||||
scope:child = { add_learning_lifestyle_xp = medium_lifestyle_experience }
|
||||
}
|
||||
}
|
||||
20 = {
|
||||
desc = mpo_events_anna.0001.a.toast.neutral
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_neutral
|
||||
title = mpo_events_anna.0001.a.toast.neutral
|
||||
left_icon = scope:child
|
||||
right_icon = root
|
||||
scope:child = { add_stress = miniscule_stress_gain }
|
||||
}
|
||||
}
|
||||
10 = {
|
||||
desc = mpo_events_anna.0001.a.toast.bad
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = mpo_events_anna.0001.a.toast.bad
|
||||
left_icon = scope:child
|
||||
right_icon = root
|
||||
scope:child = { increase_wounds_effect = { REASON = fall }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:pushy_adult
|
||||
modifier = respect_opinion
|
||||
opinion = 10
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
craven = minor_stress_impact_gain
|
||||
paranoid = minor_stress_impact_gain
|
||||
brave = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = 1
|
||||
ai_boldness = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Ride together with the child on the horse
|
||||
option = {
|
||||
name = mpo_events_anna.0001.b
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:child
|
||||
modifier = kindness_opinion
|
||||
opinion = 20
|
||||
}
|
||||
|
||||
add_prestige = minor_prestige_loss
|
||||
|
||||
stress_impact = {
|
||||
callous = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 1
|
||||
ai_rationality = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Refuse their request
|
||||
option = {
|
||||
name = mpo_events_anna.0001.c
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:pushy_adult
|
||||
modifier = disrespect_opinion
|
||||
opinion = -10
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
craven = minor_stress_impact_loss
|
||||
paranoid = minor_stress_impact_loss
|
||||
brave = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = -1
|
||||
ai_boldness = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Stories from the Past - choose a story to be told
|
||||
mpo_events_anna.0005 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0005.t
|
||||
desc = mpo_events_anna.0005.desc
|
||||
theme = nomads
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = ecstasy
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:storyteller
|
||||
animation = storyteller
|
||||
}
|
||||
override_background = mpo_campfire_steppe
|
||||
|
||||
cooldown = { years = 20 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_available_child = yes
|
||||
age >= 5
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_nomadic
|
||||
any_courtier = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_courtier = {
|
||||
limit = {
|
||||
is_available_healthy_ai_adult = yes
|
||||
}
|
||||
save_scope_as = storyteller
|
||||
}
|
||||
}
|
||||
|
||||
#Fantastical creatures
|
||||
option = {
|
||||
name = mpo_events_anna.0005.a
|
||||
flavor = mpo_events_anna.0005.a.tt
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = mpo_storyteller_fantastical_creatures_modifier
|
||||
years = 5
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
eccentric = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = -1
|
||||
ai_energy = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Humorous tales
|
||||
option = {
|
||||
name = mpo_events_anna.0005.b
|
||||
flavor = mpo_events_anna.0005.b.tt
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = mpo_storyteller_humorous_tales_modifier
|
||||
years = 5
|
||||
}
|
||||
|
||||
add_stress = minor_stress_loss
|
||||
|
||||
stress_impact = {
|
||||
gregarious = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 1
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Heroic triumphs
|
||||
option = {
|
||||
name = mpo_events_anna.0005.c
|
||||
flavor = mpo_events_anna.0005.c.tt
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = mpo_storyteller_heroic_triumphs_modifier
|
||||
years = 5
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
wrathful = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = 1
|
||||
ai_boldness = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Whistle Like an Arrow - being taught how to whistle as a child
|
||||
mpo_events_anna.0010 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0010.t
|
||||
desc = mpo_events_anna.0010.desc
|
||||
theme = nomads
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = shame
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:whistler
|
||||
animation = storyteller
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_available_child = yes
|
||||
age >= 5
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_nomadic
|
||||
OR = {
|
||||
any_relation = {
|
||||
type = guardian
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
any_parent = {
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
any_relation = {
|
||||
type = guardian
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
}
|
||||
random_relation = {
|
||||
type = guardian
|
||||
limit = {
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
save_scope_as = whistler
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
any_parent = {
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
}
|
||||
random_parent = {
|
||||
limit = {
|
||||
location = root.location
|
||||
is_available = yes
|
||||
}
|
||||
save_scope_as = whistler
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = mpo_events_anna.0010.a
|
||||
custom_tooltip = mpo_events_anna.0010.a.tt.learning
|
||||
duel = {
|
||||
skill = learning
|
||||
value = mediocre_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
#This takes the whistlers learning skill into account, using their skills to teach the child of how to whistle
|
||||
multiplier = { add = scope:whistler.learning multiply = 0.5 }
|
||||
min = -39
|
||||
}
|
||||
desc = mpo_events_anna.0010.a.tt.success
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = mpo_events_anna.0010.a.tt.success
|
||||
left_icon = root
|
||||
right_icon = scope:whistler
|
||||
add_learning_lifestyle_xp = medium_lifestyle_experience
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = { add = scope:whistler.learning multiply = -0.5 }
|
||||
min = -39
|
||||
}
|
||||
desc = mpo_events_anna.0010.a.tt.failure
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = mpo_events_anna.0010.a.tt.failure
|
||||
left_icon = root
|
||||
right_icon = scope:whistler
|
||||
add_character_modifier = {
|
||||
modifier = mpo_whistling_is_difficult_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
pensive = minor_stress_impact_loss
|
||||
bossy = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_energy = 1
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = mpo_events_anna.0010.b
|
||||
|
||||
add_prestige = miniscule_prestige_gain
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:whistler
|
||||
modifier = disappointed_opinion
|
||||
opinion = -5
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
bossy = minor_stress_impact_loss
|
||||
pensive = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_energy = -1
|
||||
ai_sociability = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#A Morsel of Meat - choose the fate of a fawn stuck in a trap
|
||||
mpo_events_anna.0015 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0015.t
|
||||
desc = mpo_events_anna.0015.desc
|
||||
theme = travel
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = personality_dishonorable
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:sceptic
|
||||
animation = personality_cynical
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_adult = yes
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_landless_adventurer
|
||||
NOT = {
|
||||
culture = { has_cultural_tradition = tradition_vegetarianism }
|
||||
}
|
||||
is_available_travelling = yes
|
||||
domicile = {
|
||||
provisions <= medium_provisions_value
|
||||
}
|
||||
current_travel_plan = {
|
||||
any_entourage_character = {
|
||||
is_available_allow_travelling = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
current_travel_plan = {
|
||||
random_entourage_character = {
|
||||
limit = {
|
||||
is_available_allow_travelling = yes
|
||||
}
|
||||
save_scope_as = sceptic
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Steal the prey, kill it for provisions
|
||||
option = {
|
||||
name = mpo_events_anna.0015.a
|
||||
|
||||
domicile = {
|
||||
change_provisions = minor_provisions_gain
|
||||
}
|
||||
|
||||
add_prestige = minor_prestige_loss
|
||||
|
||||
stress_impact = {
|
||||
humble = minor_stress_impact_gain
|
||||
arrogant = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = -1
|
||||
ai_greed = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Convince the entourage that it is your trap you laid out
|
||||
option = {
|
||||
name = mpo_events_anna.0015.b
|
||||
|
||||
duel = {
|
||||
skill = intrigue
|
||||
value = high_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
domicile = {
|
||||
change_provisions = minor_provisions_gain
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = mpo_sufficient_liar_modifier
|
||||
years = 5
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
add_prestige = minor_prestige_loss
|
||||
add_stress = medium_stress_gain
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
honest = minor_stress_impact_gain
|
||||
deceitful = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = -1
|
||||
ai_greed = 1
|
||||
ai_boldness = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Release the animal
|
||||
option = {
|
||||
name = mpo_events_anna.0015.c
|
||||
|
||||
add_character_modifier = {
|
||||
modifier = mpo_trapped_fawn_modifier
|
||||
years = 5
|
||||
}
|
||||
|
||||
add_prestige = miniscule_prestige_loss
|
||||
|
||||
stress_impact = {
|
||||
callous = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 1
|
||||
ai_rationality = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#It isn't your trap, leave it be
|
||||
option = {
|
||||
name = mpo_events_anna.0015.d
|
||||
|
||||
add_prestige = miniscule_prestige_gain
|
||||
|
||||
stress_impact = {
|
||||
arbitrary = minor_stress_impact_gain
|
||||
just = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_honor = 1
|
||||
ai_rationality = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Race Against Time - encounter a wounded messenger
|
||||
mpo_events_anna.0020 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0020.t
|
||||
desc = mpo_events_anna.0020.desc
|
||||
theme = travel
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = disbelief
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:messenger
|
||||
animation = loss_1
|
||||
}
|
||||
|
||||
cooldown = { years = 20 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_adult = yes
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_nomadic
|
||||
is_independent_ruler = no
|
||||
is_available_travelling = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
create_character = {
|
||||
template = wounded_messenger_character_template
|
||||
location = root.location
|
||||
culture = this.culture
|
||||
faith = this.faith
|
||||
save_scope_as = messenger
|
||||
|
||||
after_creation = {
|
||||
scope:messenger = {
|
||||
increase_wounds_effect = { REASON = battle }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#This is to make sure that the Trait Wounded is being cured by the root (player) in option A
|
||||
save_scope_as = physician
|
||||
}
|
||||
|
||||
#Treat the messengers wounds
|
||||
option = {
|
||||
name = mpo_events_anna.0020.a
|
||||
|
||||
current_travel_plan = {
|
||||
delay_travel_plan = { days = 14 }
|
||||
}
|
||||
|
||||
custom_tooltip = mpo_events_anna.0020.war_impact.tt
|
||||
|
||||
hidden_effect = {
|
||||
liege = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_messenger_negative_liege_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
duel = {
|
||||
skill = learning
|
||||
value = high_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = {
|
||||
current_travel_plan = {
|
||||
any_entourage_character = {
|
||||
has_court_position = court_physician_court_position
|
||||
}
|
||||
}
|
||||
add = 10
|
||||
}
|
||||
modifier = {
|
||||
root = {
|
||||
has_trait = lifestyle_herbalist
|
||||
}
|
||||
add = 10
|
||||
}
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = mpo_events_anna.0020.a.toast.good
|
||||
left_icon = scope:messenger
|
||||
right_icon = root
|
||||
scope:messenger = {
|
||||
wound_treatment_results_effect = { TREATMENT = safe OUTCOME = success }
|
||||
}
|
||||
current_travel_plan = { add_companion = scope:messenger }
|
||||
|
||||
reverse_add_opinion = {
|
||||
modifier = grateful_opinion
|
||||
target = scope:messenger
|
||||
opinion = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = mpo_events_anna.0020.a.toast.bad
|
||||
left_icon = scope:messenger
|
||||
right_icon = root
|
||||
}
|
||||
scope:messenger = {
|
||||
death = {
|
||||
death_reason = death_wounds
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
cynical = minor_stress_impact_gain
|
||||
compassionate = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_compassion = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Deliver the message
|
||||
option = {
|
||||
name = mpo_events_anna.0020.b
|
||||
|
||||
current_travel_plan = {
|
||||
delay_travel_plan = { days = 21 }
|
||||
}
|
||||
|
||||
scope:messenger = {
|
||||
death = {
|
||||
death_reason = death_wounds
|
||||
}
|
||||
}
|
||||
|
||||
custom_tooltip = mpo_events_anna.0020.war_impact.tt
|
||||
|
||||
duel = {
|
||||
skill = prowess
|
||||
value = high_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
modifier = {
|
||||
any_owned_story = {
|
||||
story_type = story_cycle_martial_lifestyle_warhorse
|
||||
}
|
||||
add = 10
|
||||
}
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = mpo_events_anna.0020.b.toast.good
|
||||
left_icon = root
|
||||
|
||||
add_hook = {
|
||||
target = liege
|
||||
type = favor_hook
|
||||
}
|
||||
}
|
||||
|
||||
hidden_effect = {
|
||||
liege = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_messenger_positive_liege_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = mpo_events_anna.0020.b.toast.bad
|
||||
left_icon = root
|
||||
hidden_effect = {
|
||||
liege = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_messenger_negative_liege_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
brave = minor_stress_impact_loss
|
||||
diligent = minor_stress_impact_loss
|
||||
craven = minor_stress_impact_gain
|
||||
lazy = minor_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_boldness = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#How can they be trusted?
|
||||
option = {
|
||||
name = mpo_events_anna.0020.c
|
||||
|
||||
flavor = mpo_events_anna.0020.c_flavor
|
||||
|
||||
hidden_effect = {
|
||||
liege = {
|
||||
add_character_modifier = {
|
||||
modifier = mpo_messenger_negative_liege_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
add_gold = { 5 15 }
|
||||
|
||||
scope:messenger = {
|
||||
death = {
|
||||
death_reason = death_wounds
|
||||
}
|
||||
}
|
||||
|
||||
custom_tooltip = mpo_events_anna.0020.war_impact.tt
|
||||
|
||||
current_travel_plan = {
|
||||
every_entourage_character = {
|
||||
limit = {
|
||||
has_trait = trusting
|
||||
}
|
||||
add_opinion = {
|
||||
modifier = cruelty_opinion
|
||||
target = root
|
||||
opinion = -10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
trusting = minor_stress_impact_gain
|
||||
paranoid = minor_stress_impact_loss
|
||||
sadistic = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Familiar Tunes - encounter with a performer
|
||||
mpo_events_anna.0025 = {
|
||||
type = character_event
|
||||
title = mpo_events_anna.0025.t
|
||||
desc = mpo_events_anna.0025.desc
|
||||
theme = travel
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = happiness
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:throat_singer
|
||||
animation = lute_active
|
||||
}
|
||||
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
is_adult = yes
|
||||
location = { geographical_region = world_steppe }
|
||||
government_has_flag = government_is_nomadic
|
||||
is_available_travelling = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
create_character = {
|
||||
template = throat_singer_character_template
|
||||
location = root.location
|
||||
culture = this.culture
|
||||
faith = this.faith
|
||||
save_scope_as = throat_singer
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = mpo_events_anna.0025.a
|
||||
|
||||
duel = {
|
||||
skill = learning
|
||||
value = low_skill_rating
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
desc = mpo_events_anna.0025.a.toast.success
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_good
|
||||
title = mpo_events_anna.0025.a.toast.success
|
||||
left_icon = root
|
||||
right_icon = scope:throat_singer
|
||||
add_character_modifier = {
|
||||
modifier = mpo_inspiring_tunes_modifier
|
||||
years = 5
|
||||
}
|
||||
add_learning_lifestyle_xp = medium_lifestyle_experience
|
||||
}
|
||||
}
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
desc = mpo_events_anna.0025.a.toast.failure
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = mpo_events_anna.0025.a.toast.failure
|
||||
left_icon = root
|
||||
right_icon = scope:throat_singer
|
||||
add_prestige = miniscule_prestige_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
calm = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = -1
|
||||
ai_energy = 1
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
name = mpo_events_anna.0025.b
|
||||
|
||||
add_stress = medium_stress_loss
|
||||
|
||||
stress_impact = {
|
||||
calm = minor_stress_impact_loss
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
ai_value_modifier = {
|
||||
ai_rationality = 1
|
||||
ai_energy = 1
|
||||
ai_sociability = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
after = {
|
||||
scope:throat_singer = {
|
||||
silent_disappearance_ai_effect = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
4812
N3OW/events/dlc/mpo/mpo_events_ariana.txt
Normal file
4812
N3OW/events/dlc/mpo/mpo_events_ariana.txt
Normal file
File diff suppressed because it is too large
Load diff
1870
N3OW/events/dlc/mpo/mpo_events_tova.txt
Normal file
1870
N3OW/events/dlc/mpo/mpo_events_tova.txt
Normal file
File diff suppressed because it is too large
Load diff
453
N3OW/events/dlc/mpo/mpo_flavor_events_settled.txt
Normal file
453
N3OW/events/dlc/mpo/mpo_flavor_events_settled.txt
Normal file
|
|
@ -0,0 +1,453 @@
|
|||
namespace = mpo_flavor_events_settled
|
||||
|
||||
# mpo_flavor_events_settled.0001 - You hear of a Havsarsan Zud
|
||||
# mpo_flavor_events_settled.0010 - Horse Lord at your door
|
||||
|
||||
#######################
|
||||
# You hear of a Havsarsan Zud
|
||||
#######################
|
||||
mpo_flavor_events_settled.0001 = {
|
||||
type = character_event
|
||||
title = mpo_flavor_events_settled.0001.t
|
||||
desc = mpo_flavor_events_settled.0001.desc
|
||||
theme = nomads
|
||||
override_background = { reference = ep3_city_gate }
|
||||
left_portrait = {
|
||||
character = root
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = callous
|
||||
has_trait = sadistic
|
||||
}
|
||||
}
|
||||
animation = schadenfreude
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
OR = {
|
||||
has_trait = brave
|
||||
has_trait = arrogant
|
||||
}
|
||||
}
|
||||
animation = dismissal
|
||||
}
|
||||
animation = worry
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:nomad
|
||||
animation = horse_exhausted
|
||||
camera = camera_event_horse_right
|
||||
}
|
||||
widget = {
|
||||
gui = "event_window_widget_vfx_snowstorm"
|
||||
container = "foreground_shader_vfx_container"
|
||||
}
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
NOT = { government_has_flag = government_is_nomadic }
|
||||
OR = {
|
||||
any_character_situation = { # You are a settled ruler in the Great Steppe
|
||||
any_participant_group = {
|
||||
participant_group_type = settled_rulers
|
||||
participant_group_has_character = root
|
||||
}
|
||||
any_situation_sub_region = {
|
||||
sub_region_current_phase = situation_steppe_havsarsan_zud_season
|
||||
}
|
||||
}
|
||||
any_sub_realm_county = { # You are neighbouring the Great Steppe
|
||||
any_neighboring_county = {
|
||||
holder != root
|
||||
any_county_situation = {
|
||||
situation:the_great_steppe ?= this
|
||||
any_situation_sub_region = {
|
||||
sub_region_current_phase = situation_steppe_havsarsan_zud_season
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
if = {
|
||||
limit = {
|
||||
any_neighboring_top_liege_realm_owner = {
|
||||
government_has_flag = government_is_nomadic
|
||||
}
|
||||
}
|
||||
random_neighboring_top_liege_realm_owner = {
|
||||
limit = { government_has_flag = government_is_nomadic }
|
||||
save_scope_as = nomad_lord
|
||||
}
|
||||
}
|
||||
else = {
|
||||
random_ruler = {
|
||||
limit = {
|
||||
in_diplomatic_range = root
|
||||
government_has_flag = government_is_nomadic
|
||||
}
|
||||
save_scope_as = nomad_lord
|
||||
}
|
||||
}
|
||||
create_character = {
|
||||
location = root.location
|
||||
template = nomadic_hunter_template
|
||||
faith = scope:nomad_lord.faith
|
||||
culture = scope:nomad_lord.culture
|
||||
save_scope_as = nomad
|
||||
}
|
||||
scope:nomad = { add_trait = nomadic_philosophy }
|
||||
}
|
||||
|
||||
option = { # Get out
|
||||
name = mpo_flavor_events_settled.0001.aa
|
||||
reason = faith
|
||||
add_internal_flag = special
|
||||
trigger = {
|
||||
faith = {
|
||||
trait_is_virtue = callous
|
||||
}
|
||||
}
|
||||
add_piety = medium_piety_gain
|
||||
stress_impact = {
|
||||
callous = major_stress_impact_loss
|
||||
generous = medium_stress_impact_gain
|
||||
paranoid = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
factor = 2
|
||||
has_trait = callous
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_trait = generous
|
||||
has_trait = paranoid
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Let's prepare
|
||||
name = mpo_flavor_events_settled.0001.a
|
||||
remove_short_term_gold = medium_gold_value
|
||||
every_sub_realm_county = {
|
||||
limit = { holder = root }
|
||||
add_county_modifier = {
|
||||
modifier = mpo_settled_preparations_war_county_modifier
|
||||
years = 15
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
wrathful = medium_stress_impact_loss
|
||||
brave = medium_stress_impact_loss
|
||||
craven = medium_stress_impact_gain
|
||||
greedy = medium_stress_impact_gain
|
||||
avaricious = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
modifier = {
|
||||
OR = {
|
||||
has_trait = wrathful
|
||||
has_trait = brave
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
modifier = {
|
||||
OR = {
|
||||
short_term_gold <= major_gold_value
|
||||
has_trait = greedy
|
||||
has_trait = avaricious
|
||||
has_trait = craven
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # We should focus on building
|
||||
name = mpo_flavor_events_settled.0001.b
|
||||
every_sub_realm_county = {
|
||||
limit = { holder = root }
|
||||
add_county_modifier = {
|
||||
modifier = mpo_settled_preparations_building_county_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
compassionate = major_stress_impact_loss
|
||||
greedy = medium_stress_impact_gain
|
||||
avaricious = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Recruit this guy
|
||||
name = mpo_flavor_events_settled.0001.c
|
||||
trigger = {
|
||||
NOT = {
|
||||
faith = {
|
||||
trait_is_virtue = callous
|
||||
}
|
||||
}
|
||||
}
|
||||
add_courtier = scope:nomad
|
||||
if = {
|
||||
limit = {
|
||||
faith = { trait_is_virtue = compassionate }
|
||||
}
|
||||
add_piety = major_piety_gain
|
||||
}
|
||||
else = {
|
||||
add_piety = medium_piety_gain
|
||||
}
|
||||
stress_impact = {
|
||||
compassionate = major_stress_impact_loss
|
||||
callous = major_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
custom_tooltip = mpo_flavor_events_settled.0001.tt
|
||||
if = {
|
||||
limit = { is_ai = yes }
|
||||
scope:nomad = { silent_disappearance_effect = yes }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#######################
|
||||
# Horse Lord at your door
|
||||
#######################
|
||||
scripted_trigger mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = {
|
||||
government_has_flag = government_is_nomadic
|
||||
NOR = {
|
||||
is_close_family_of = root
|
||||
is_vassal_of = root
|
||||
is_tributary_of = root
|
||||
this = root.liege
|
||||
this = root.suzerain
|
||||
}
|
||||
any_character_situation = {
|
||||
situation:the_great_steppe ?= this
|
||||
}
|
||||
}
|
||||
|
||||
mpo_flavor_events_settled.0010 = {
|
||||
type = character_event
|
||||
title = mpo_flavor_events_settled.0010.t
|
||||
desc = mpo_flavor_events_settled.0010.desc
|
||||
theme = nomads
|
||||
override_background = { reference = ep3_city_gate }
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = anger
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:nomad
|
||||
animation = horse_conversing_left
|
||||
camera = camera_event_horse_right
|
||||
}
|
||||
lower_right_portrait = scope:nomad_lord
|
||||
cooldown = { years = 10 }
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
NOT = { government_has_flag = government_is_nomadic }
|
||||
any_neighboring_top_liege_realm_owner = {
|
||||
mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
weight_multiplier = {
|
||||
base = 1
|
||||
modifier = {
|
||||
any_neighboring_top_liege_realm_owner = {
|
||||
government_has_flag = government_is_nomadic
|
||||
highest_held_title_tier >= tier_kingdom
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_neighboring_top_liege_realm_owner = {
|
||||
limit = { mpo_flavor_events_settled_0010_valid_nomad_lord_trigger = yes }
|
||||
weight = {
|
||||
base = 1
|
||||
modifier = {
|
||||
highest_held_title_tier >= tier_kingdom
|
||||
add = 5
|
||||
}
|
||||
}
|
||||
save_scope_as = nomad_lord
|
||||
}
|
||||
create_character = {
|
||||
location = root.location
|
||||
template = nomadic_commander_template
|
||||
faith = scope:nomad_lord.faith
|
||||
culture = scope:nomad_lord.culture
|
||||
save_scope_as = nomad
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:nomad = { add_trait = nomadic_philosophy }
|
||||
scope:nomad_lord = { add_courtier = scope:nomad }
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Pay tribute
|
||||
name = mpo_flavor_events_settled.0010.a
|
||||
trigger = {
|
||||
OR = {
|
||||
scope:nomad_lord.primary_title.tier > root.primary_title.tier
|
||||
scope:nomad_lord.current_military_strength > root.current_military_strength
|
||||
}
|
||||
}
|
||||
start_tributary_interaction_effect = {
|
||||
TRIBUTARY = root
|
||||
SUZERAIN = scope:nomad_lord
|
||||
}
|
||||
scope:nomad_lord = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = pleased_opinion
|
||||
opinion = 25
|
||||
}
|
||||
}
|
||||
add_prestige = medium_prestige_gain
|
||||
stress_impact = {
|
||||
vengeful = major_stress_impact_loss
|
||||
compassionate = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Pay to get truce
|
||||
name = mpo_flavor_events_settled.0010.b
|
||||
trigger = {
|
||||
NOR = {
|
||||
scope:nomad_lord.primary_title.tier > root.primary_title.tier
|
||||
scope:nomad_lord.current_military_strength > root.current_military_strength
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
has_perk = defensive_measures_perk
|
||||
}
|
||||
custom_tooltip = mpo_flavor_events_settled.0010.b_perk_tt
|
||||
pay_short_term_gold = {
|
||||
target = scope:nomad_lord
|
||||
gold = root.purchase_truce_interaction_small_sum
|
||||
}
|
||||
add_truce_both_ways = {
|
||||
character = scope:nomad_lord
|
||||
days = purchase_truce_interaction_truce_days_medium_value
|
||||
name = TRUCE_PURCHASED
|
||||
}
|
||||
}
|
||||
else = {
|
||||
pay_short_term_gold = {
|
||||
target = scope:nomad_lord
|
||||
gold = root.purchase_truce_interaction_medium_sum
|
||||
}
|
||||
add_truce_both_ways = {
|
||||
character = scope:nomad_lord
|
||||
days = purchase_truce_interaction_truce_days_medium_value
|
||||
name = TRUCE_PURCHASED
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
brave = medium_stress_impact_gain
|
||||
ambitious = medium_stress_impact_gain
|
||||
arrogant = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 50
|
||||
modifier = {
|
||||
OR = {
|
||||
has_trait = content
|
||||
has_trait = craven
|
||||
}
|
||||
factor = 2
|
||||
}
|
||||
modifier = {
|
||||
OR = {
|
||||
has_trait = brave
|
||||
has_trait = ambitious
|
||||
has_trait = arrogant
|
||||
has_trait = greedy
|
||||
gold <= root.purchase_truce_interaction_major_sum
|
||||
}
|
||||
factor = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Offend them
|
||||
name = mpo_flavor_events_settled.0010.c
|
||||
add_dread = medium_dread_value
|
||||
scope:nomad_lord = {
|
||||
progress_towards_rival_effect = {
|
||||
CHARACTER = root
|
||||
OPINION = -40
|
||||
REASON = rival_disrespected_envoy
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
callous = major_stress_impact_loss
|
||||
craven = major_stress_impact_gain
|
||||
vengeful = major_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 0
|
||||
modifier = {
|
||||
add = 150
|
||||
has_trait = callous
|
||||
current_military_strength > scope:nomad_lord.current_military_strength
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Let's just be friends
|
||||
name = mpo_flavor_events_settled.0010.d
|
||||
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
|
||||
scope:nomad_lord = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = pleased_opinion
|
||||
opinion = 5
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
gregarious = medium_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 200
|
||||
}
|
||||
}
|
||||
|
||||
after = {
|
||||
if = {
|
||||
limit = { is_ai = yes }
|
||||
scope:nomad = { silent_disappearance_effect = yes }
|
||||
}
|
||||
}
|
||||
}
|
||||
1120
N3OW/events/dlc/mpo/mpo_interactions_events.txt
Normal file
1120
N3OW/events/dlc/mpo/mpo_interactions_events.txt
Normal file
File diff suppressed because it is too large
Load diff
450
N3OW/events/dlc/mpo/mpo_jamukha_flavor_events.txt
Normal file
450
N3OW/events/dlc/mpo/mpo_jamukha_flavor_events.txt
Normal file
|
|
@ -0,0 +1,450 @@
|
|||
namespace = mpo_jamukha_flavor
|
||||
|
||||
#######################
|
||||
# Become Blood Brothers with Temujin
|
||||
#######################
|
||||
|
||||
mpo_jamukha_flavor.0001 = {
|
||||
type = character_event
|
||||
title = mpo_jamukha_flavor.0001.t
|
||||
desc = mpo_jamukha_flavor.0001.desc
|
||||
theme = nomads
|
||||
override_background = {
|
||||
reference = mpo_campfire_steppe
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = happiness
|
||||
camera = camera_event_very_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:temujin
|
||||
animation = inspect_weapon
|
||||
}
|
||||
|
||||
trigger = {
|
||||
scope:temujin = {
|
||||
is_alive = yes
|
||||
NOR = {
|
||||
has_relation_blood_brother = root
|
||||
has_relation_rival = root
|
||||
}
|
||||
}
|
||||
is_alive = yes
|
||||
}
|
||||
|
||||
immediate = {
|
||||
play_music_cue = "mx_cue_touching_moment"
|
||||
scope:temujin = {
|
||||
save_scope_as = blood_bro
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Yay
|
||||
name = mpo_jamukha_flavor.0001.a
|
||||
name = mpo_jamukha_flavor.0001.a.tt
|
||||
scope:temujin = {
|
||||
set_relation_blood_brother = {
|
||||
target = scope:jamukha
|
||||
reason = blood_brother_temujin_jamukha
|
||||
}
|
||||
}
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
NOR = {
|
||||
has_character_flag = had_warhorse_story
|
||||
any_owned_story = {
|
||||
story_type = story_cycle_martial_lifestyle_warhorse
|
||||
exists = var:story_cycle_horse_name
|
||||
}
|
||||
}
|
||||
scope:jamukha = {
|
||||
NOR = {
|
||||
has_character_flag = had_warhorse_story
|
||||
any_owned_story = {
|
||||
story_type = story_cycle_martial_lifestyle_warhorse
|
||||
exists = var:story_cycle_horse_name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = temujin_warhorse_jamukha_tt
|
||||
custom_tooltip = jamukha_warhorse_jamukha_tt
|
||||
hidden_effect = {
|
||||
start_warhorse_story_cycle_effect = yes
|
||||
scope:temujin = {
|
||||
start_warhorse_story_cycle_effect = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = blood_brother_gains_hook_tt
|
||||
custom_tooltip = blood_brother_gains_hook_other_tt
|
||||
|
||||
add_character_modifier = blood_brother_warrior_modifier
|
||||
scope:temujin = {
|
||||
add_character_modifier = blood_brother_warrior_modifier
|
||||
}
|
||||
|
||||
stress_impact = {
|
||||
gregarious = medium_stress_impact_loss
|
||||
callous = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Not a chance
|
||||
name = mpo_jamukha_flavor.0001.b
|
||||
add_dread = minor_dread_gain
|
||||
add_prestige = minor_prestige_gain
|
||||
scope:temujin = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = disappointed_opinion
|
||||
opinion = -25
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
base = minor_stress_impact_gain
|
||||
callous = medium_stress_impact_loss
|
||||
gregarious = medium_stress_impact_gain
|
||||
}
|
||||
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#######################
|
||||
# You consider breaking free from Temujin
|
||||
#######################
|
||||
|
||||
scripted_effect mpo_jamukha_flavor_0010_jamukha_leaving_effect = {
|
||||
if = {
|
||||
limit = { is_vassal_of = scope:temujin }
|
||||
create_title_and_vassal_change = {
|
||||
type = independency
|
||||
save_scope_as = change
|
||||
add_claim_on_loss = no
|
||||
}
|
||||
becomes_independent = {
|
||||
change = scope:change
|
||||
}
|
||||
resolve_title_and_vassal_change = scope:change
|
||||
}
|
||||
else = {
|
||||
end_tributary = yes
|
||||
}
|
||||
add_truce_both_ways = {
|
||||
character = scope:temujin
|
||||
years = 5
|
||||
name = temujin_jamukha_truce
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
current_military_strength < scope:temujin.current_military_strength
|
||||
}
|
||||
domicile ?= {
|
||||
change_herd = {
|
||||
value = scope:temujin.domicile.herd
|
||||
multiply = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
exists = scope:togrul
|
||||
}
|
||||
show_as_tooltip = {
|
||||
custom_tooltip = negotiate_togrul_alliance_effect_tooltip
|
||||
create_alliance = {
|
||||
target = scope:togrul
|
||||
allied_through_owner = root
|
||||
allied_through_target = scope:togrul
|
||||
}
|
||||
scope:togrul = {
|
||||
add_opinion = {
|
||||
target = scope:jamukha
|
||||
modifier = event_negotiated_alliance_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
custom_tooltip = jamukha_temujin_response_warning_tt
|
||||
}
|
||||
|
||||
scripted_trigger mpo_jamukha_flavor_0010_togrul_trigger = {
|
||||
is_ai = yes
|
||||
is_at_war = no
|
||||
is_alive = yes
|
||||
is_ruler = yes
|
||||
NOR = {
|
||||
is_at_war_with = root
|
||||
has_relation_rival = root
|
||||
is_vassal_of = scope:temujin
|
||||
}
|
||||
in_diplomatic_range = root
|
||||
NOT = {
|
||||
government_has_flag = government_is_herder
|
||||
}
|
||||
}
|
||||
|
||||
mpo_jamukha_flavor.0010 = {
|
||||
type = character_event
|
||||
title = mpo_jamukha_flavor.0010.t
|
||||
desc = {
|
||||
desc = mpo_jamukha_flavor.0010.desc
|
||||
triggered_desc = {
|
||||
trigger = {
|
||||
exists = scope:togrul
|
||||
}
|
||||
desc = mpo_jamukha_flavor.0010.desc_togrul
|
||||
}
|
||||
}
|
||||
theme = nomads
|
||||
override_background = {
|
||||
reference = mpo_steppe_evening
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = war_attacker
|
||||
camera = camera_event_very_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:temujin
|
||||
animation = dismissal
|
||||
camera = camera_event_very_right
|
||||
}
|
||||
lower_right_portrait = scope:togrul
|
||||
|
||||
trigger = {
|
||||
character:125501 = {
|
||||
has_variable = had_mpo_temujin_flavor_0001
|
||||
}
|
||||
is_alive = yes
|
||||
is_ruler = yes
|
||||
character:125501 = {
|
||||
is_alive = yes
|
||||
is_available = yes
|
||||
}
|
||||
OR = {
|
||||
is_vassal_of = character:125501
|
||||
is_tributary_of = character:125501
|
||||
}
|
||||
NOT = {
|
||||
is_at_war_with = character:125501
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
save_scope_as = jamukha
|
||||
character:125501 = {
|
||||
save_scope_as = temujin
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
character:303211 = {
|
||||
mpo_jamukha_flavor_0010_togrul_trigger = yes
|
||||
}
|
||||
}
|
||||
character:303211 = {
|
||||
save_scope_as = togrul
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
character:303211.house ?= {
|
||||
any_house_member = {
|
||||
mpo_jamukha_flavor_0010_togrul_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
character:303211.house ?= {
|
||||
ordered_house_member = {
|
||||
order_by = current_military_strength
|
||||
limit = {
|
||||
mpo_jamukha_flavor_0010_togrul_trigger = yes
|
||||
}
|
||||
save_scope_as = togrul
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
capital_county.empire ?= {
|
||||
ordered_de_jure_county_holder = {
|
||||
order_by = current_military_strength
|
||||
limit = {
|
||||
highest_held_title_tier <= tier_duchy
|
||||
mpo_jamukha_flavor_0010_togrul_trigger = yes
|
||||
}
|
||||
save_scope_as = togrul
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#I want to leave Temujin and take Togrul as an ally
|
||||
option = {
|
||||
name = mpo_jamukha_flavor.0010.a
|
||||
show_as_tooltip = {
|
||||
mpo_jamukha_flavor_0010_jamukha_leaving_effect = yes
|
||||
}
|
||||
scope:temujin = {
|
||||
trigger_event = mpo_temujin_flavor.0010
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = betrayal_opinion
|
||||
opinion = -40
|
||||
}
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
#I want to stay with Temujin and be friends forever
|
||||
option = {
|
||||
name = mpo_jamukha_flavor.0010.b
|
||||
add_character_modifier = {
|
||||
modifier = jamukha_chose_loyalty_modifier
|
||||
years = 5
|
||||
}
|
||||
scope:temujin = {
|
||||
add_opinion = {
|
||||
target = root
|
||||
modifier = loyalty_opinion
|
||||
opinion = 30
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
base = miniscule_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
on_trigger_fail = { # Jamukha becomes your rival anyways if you've migrated away
|
||||
if = {
|
||||
limit = {
|
||||
is_independent_ruler = yes
|
||||
NOT = { is_tributary_of = scope:temujin }
|
||||
}
|
||||
hidden_effect = {
|
||||
scope:temujin = {
|
||||
trigger_event = {
|
||||
days = { 360 420 }
|
||||
id = mpo_temujin_flavor.0020
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#######################
|
||||
# Temujin becomes your rival -- now you must kill him
|
||||
#######################
|
||||
|
||||
mpo_jamukha_flavor.0020 = {
|
||||
type = character_event
|
||||
title = mpo_jamukha_flavor.0020.t
|
||||
desc = mpo_jamukha_flavor.0020.desc
|
||||
theme = nomads
|
||||
override_background = {
|
||||
reference = mpo_campfire_steppe
|
||||
}
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = threatening
|
||||
camera = camera_event_very_left
|
||||
}
|
||||
right_portrait = {
|
||||
character = scope:temujin
|
||||
animation = aggressive_sword
|
||||
outfit_tags = { nightgown }
|
||||
camera = camera_event_very_right
|
||||
}
|
||||
window = scheme_successful_event_no_text
|
||||
|
||||
immediate = {
|
||||
play_music_cue = "mx_cue_murder"
|
||||
custom_tooltip = jamukha_temujin_no_more_positive_tt
|
||||
custom_tooltip = jamukha_temujin_rivals_tt
|
||||
custom_tooltip = mpo_temujin_flavor.0020.cb.tt
|
||||
if = {
|
||||
limit = {
|
||||
current_military_strength < scope:temujin.current_military_strength
|
||||
}
|
||||
domicile ?= {
|
||||
change_herd = {
|
||||
value = scope:temujin.domicile.herd
|
||||
multiply = 1.5
|
||||
}
|
||||
}
|
||||
add_prestige = major_prestige_gain # For MAA maintenance, mainly
|
||||
custom_tooltip = jamukha_gain_from_defectors_tt
|
||||
}
|
||||
}
|
||||
|
||||
option = { # You who I once called brother
|
||||
name = mpo_jamukha_flavor.0020.a
|
||||
reason = blood_brother
|
||||
add_internal_flag = special
|
||||
trigger = { has_character_flag = was_temujins_bro }
|
||||
custom_tooltip = {
|
||||
text = mpo_jamukha_flavor.0020.a_war_win
|
||||
set_variable = temujin_jamukha_war_var
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = temujin_jamukha_war_modifier
|
||||
years = 5
|
||||
}
|
||||
stress_impact = {
|
||||
base = medium_stress_impact_gain
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
|
||||
option = { # Murderrrrrrr
|
||||
name = mpo_jamukha_flavor.0020.b
|
||||
custom_tooltip = {
|
||||
text = mpo_jamukha_flavor.0020.b_murder
|
||||
set_variable = {
|
||||
name = temujin_jamukha_murder_var
|
||||
value = scope:temujin
|
||||
}
|
||||
}
|
||||
stress_impact = {
|
||||
deceitful = massive_stress_impact_loss
|
||||
sadistic = massive_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 0
|
||||
}
|
||||
}
|
||||
|
||||
option = { # I'm going to crush your skull
|
||||
name = mpo_jamukha_flavor.0020.c
|
||||
trigger = {
|
||||
NOT = { has_relation_blood_brother = scope:jamukha }
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = temujin_jamukha_war_smaller_modifier
|
||||
years = 5
|
||||
}
|
||||
stress_impact = {
|
||||
wrathful = massive_stress_impact_loss
|
||||
vengeful = massive_stress_impact_loss
|
||||
}
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
}
|
||||
}
|
||||
1585
N3OW/events/dlc/mpo/mpo_migration_contract_events.txt
Normal file
1585
N3OW/events/dlc/mpo/mpo_migration_contract_events.txt
Normal file
File diff suppressed because it is too large
Load diff
4573
N3OW/events/dlc/mpo/mpo_migration_events.txt
Normal file
4573
N3OW/events/dlc/mpo/mpo_migration_events.txt
Normal file
File diff suppressed because it is too large
Load diff
8980
N3OW/events/dlc/mpo/mpo_nomad_events_1.txt
Normal file
8980
N3OW/events/dlc/mpo/mpo_nomad_events_1.txt
Normal file
File diff suppressed because it is too large
Load diff
131
N3OW/events/dlc/mpo/mpo_nomads_blood_brothers_windy.txt
Normal file
131
N3OW/events/dlc/mpo/mpo_nomads_blood_brothers_windy.txt
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
namespace = mpo_bb_events
|
||||
|
||||
############################
|
||||
## Nomadic blood brother events
|
||||
## 0001-0099
|
||||
## By Alexander Windahl
|
||||
############################
|
||||
|
||||
mpo_bb_events.0001 = {
|
||||
type = character_event
|
||||
title = mpo_bb_events.0001.t
|
||||
desc = mpo_bb_events.0001.desc
|
||||
theme = nomads
|
||||
cooldown = { years = 15 }
|
||||
|
||||
left_portrait = {
|
||||
character = root
|
||||
animation = stayback
|
||||
}
|
||||
|
||||
right_portrait = {
|
||||
character = scope:my_blood_brother
|
||||
animation = aggressive_unarmed
|
||||
}
|
||||
|
||||
|
||||
trigger = {
|
||||
has_mpo_dlc_trigger = yes
|
||||
government_has_flag = government_is_nomadic
|
||||
is_available_adult = yes
|
||||
any_ally = {
|
||||
has_relation_blood_brother = root
|
||||
is_available_ai_adult = yes
|
||||
}
|
||||
}
|
||||
|
||||
immediate = {
|
||||
random_ally = {
|
||||
limit = {
|
||||
has_relation_blood_brother = root
|
||||
is_available_ai_adult = yes
|
||||
}
|
||||
save_scope_as = my_blood_brother
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
name = mpo_bb_events.0001.a
|
||||
|
||||
duel = {
|
||||
skill = prowess
|
||||
target = scope:my_blood_brother
|
||||
# You win
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = 3.5
|
||||
min = -49
|
||||
}
|
||||
desc = mpo_bb_events.0001.a.tt_success
|
||||
send_interface_toast = {
|
||||
title = mpo_bb_events.0001.a.tt_success
|
||||
left_icon = scope:my_blood_brother
|
||||
add_prestige = minor_prestige_gain
|
||||
reverse_add_opinion = {
|
||||
target = scope:my_blood_brother
|
||||
modifier = impressed_opinion
|
||||
opinion = 30
|
||||
}
|
||||
}
|
||||
}
|
||||
# You lose
|
||||
50 = {
|
||||
compare_modifier = {
|
||||
value = scope:duel_value
|
||||
multiplier = -3.5
|
||||
min = -49
|
||||
}
|
||||
desc = mpo_bb_events.0001.a.tt_failure
|
||||
send_interface_toast = {
|
||||
title = mpo_bb_events.0001.a.tt_failure
|
||||
left_icon = scope:my_blood_brother
|
||||
add_prestige = miniscule_prestige_loss
|
||||
reverse_add_opinion = {
|
||||
target = scope:my_blood_brother
|
||||
modifier = amused_opinion
|
||||
opinion = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
name = mpo_bb_events.0001.b
|
||||
add_dread = minor_dread_loss
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:my_blood_brother
|
||||
modifier = softening_disposition_opinion
|
||||
opinion = 5
|
||||
}
|
||||
}
|
||||
|
||||
option = {
|
||||
ai_chance = {
|
||||
base = 100
|
||||
}
|
||||
name = mpo_bb_events.0001.c
|
||||
add_dread = minor_dread_gain
|
||||
|
||||
|
||||
stress_impact = {
|
||||
callous = miniscule_stress_impact_loss
|
||||
arbitrary = miniscule_stress_impact_loss
|
||||
eccentric = miniscule_stress_impact_loss
|
||||
}
|
||||
|
||||
reverse_add_opinion = {
|
||||
target = scope:my_blood_brother
|
||||
modifier = angry_opinion
|
||||
opinion = -30
|
||||
}
|
||||
}
|
||||
}
|
||||
5743
N3OW/events/dlc/mpo/mpo_nomads_flavour_events.txt
Normal file
5743
N3OW/events/dlc/mpo/mpo_nomads_flavour_events.txt
Normal file
File diff suppressed because it is too large
Load diff
1043
N3OW/events/dlc/mpo/mpo_nomads_flavour_events_oltner.txt
Normal file
1043
N3OW/events/dlc/mpo/mpo_nomads_flavour_events_oltner.txt
Normal file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue